poneli
1
textLayer.updateText(textMapping.get(layerName));
IText textData = textLayer.getTextData();
ITextPortion textPortion = textData.getItems()[0];
ITextStyle style = textPortion.getStyle();
style.setFontName(fontName);
textData.updateLayerData();
fontName指定我为电脑自己安装的字体时不生效
@poneli
要在Aspose.PSD for Java中使用自定义字体,您需要确保字体已正确加载并且可以被程序识别。以下是一些步骤和建议,帮助您解决字体不生效的问题:
-
确保字体已安装:首先,确保您要使用的字体已经在您的操作系统中安装。Aspose.PSD会使用系统字体,因此如果字体未安装,您将无法使用它。
-
设置字体替换:如果您在处理PSD文件时遇到缺失字体的情况,可以通过设置字体替换来解决。您可以使用PsdLoadOptions
类来指定替换字体。例如:
PsdLoadOptions loadOptions = new PsdLoadOptions();
loadOptions.setMissingFontReplacement("Arial"); // 替换为您希望使用的字体
-
更新文本数据:在更新文本图层时,确保您正确设置了文本样式的字体名称。以下是一个示例代码片段,展示如何更新文本图层的字体:
textLayer.updateText(textMapping.get(layerName));
IText textData = textLayer.getTextData();
ITextPortion textPortion = textData.getItems()[0];
ITextStyle style = textPortion.getStyle();
style.setFontName("您的自定义字体名称"); // 确保字体名称正确
textData.updateLayerData();
-
检查字体名称:确保您在代码中指定的字体名称与系统中安装的字体名称完全匹配,包括大小写和空格。
-
使用字体文件:如果您希望使用特定的字体文件而不是系统字体,可以考虑将字体文件嵌入到您的项目中,并在代码中加载它。
通过以上步骤,您应该能够在Aspose.PSD for Java中成功使用自定义字体。如果问题仍然存在,请检查是否有其他错误或异常信息,并确保您的代码逻辑正确。
如果您需要更详细的指导或示例,可以参考Aspose的官方文档,了解如何处理缺失字体的设置。
Sources:
[1]: Aspose.PSD for Java 中替换缺失字体的设置
[2]: 用於替換 Aspose.PSD for Java 中缺少字體的設置
@poneli
请尝试此方法来获取正确的字体名称。
您也可以尝试使用此方法来指定字体文件夹。
如果这些方法没有帮助,请指出操作系统的版本和Aspose.PSD的版本,并提供出现此问题的文件
Aspose.PSD 有自己的字体渲染引擎,支持各种效果,包括扭曲变换,要确定渲染中的问题出在哪里,请提供 PSD 输入文件。此外,操作系统和平台也会影响渲染。
您提供的图片看起来像是文本层已应用变换。
poneli
7
resource.zip (937.1 KB)
这是我的资源文件
if (layer instanceof TextLayer textLayer) {
IText textData = textLayer.getTextData();
textLayer.updateText(content);
ITextPortion[] items = textData.getItems();
ITextPortion textPortion = items[0];
ITextStyle style = textPortion.getStyle();
style.setFontName(fontName);
textData.updateLayerData();
}
这是我修改文字内容和字体的代码 辛苦您帮忙看一下
@poneli
您需要任何额外的帮助吗?
为了检查此问题,我们在内部问题跟踪系统中打开了以下新票证,并将根据 Free Support Policies 中提到的条款提供修复。
Issue ID(s): PSDNET-2254
如果您需要优先支持,以及直接联系我们的付费支持管理团队,您可以获取 Paid Support Services。