我有一个java应用程序,我必须在itextPdf中使用FontFactory使用“Bodoni MT Black”字体我应该如何修改我的代码?这是我的代码
Font base = FontFactory.getFont(FontFactory.TIMES_ROMAN, 6);
Run Code Online (Sandbox Code Playgroud)
如何将字体更改为“Bodoni MT Black”(FontFactory 不支持)而不是 TIMES_ROMAN?请帮忙。
您问题中的代码是使用 iText 5 的代码。但是,不再支持 iText 5。iText 的当前版本是 iText 7.1.2:
如果你正在做一个新项目,你应该放弃 iText 5 并升级到 iText 7,因为所有新的开发都将在 iText 7 上完成,而不是在 iText 5 上。假设在某个时候你需要对 PDF 2.0 的支持,那么你'需要扔掉你的 iText 5 代码,因为 iText 5 永远不会支持对 PDF 2.0 的支持。假设在某个时候你需要在 HTML 到 PDF 转换的上下文中支持 SVG,你将需要扔掉你所有的iText 代码并从 iText 7 重新开始。
如果您按照我的建议进行升级,那么您应该阅读有关字体的 iText 7 教程章节:https : //developers.itextpdf.com/content/itext-7-building-blocks/chapter-1
本教程说明,如果您不想使用诸如 times roman 之类的标准 Type 1 字体之一,则需要一个字体程序。Mpre 具体来说,如果你想使用“Bodoni MT Black”,你需要在你的计算机上的某个地方有BodoniMTBlack.ttf文件,例如:
public static final String BODONIBLACK = "src/main/resources/fonts/BodoniMTBlack.ttf";
Run Code Online (Sandbox Code Playgroud)
接下来,您可以使用此路径创建FontProgram从以下位置获取的对象FontProgramFactory:
FontProgram fontProgram = FontProgramFactory.createFont(BODONIBLACK);
Run Code Online (Sandbox Code Playgroud)
使用FontProgram实例,您可以创建一个PdfFont对象。
PdfFont font = PdfFontFactory.createFont(fontProgram, PdfEncodings.WINANSI, true);
Run Code Online (Sandbox Code Playgroud)
该font实例可以用作该setFont()方法的参数:
Paragraph bodoni = new Paragraph().setFont(font).add("Bodoni");
Run Code Online (Sandbox Code Playgroud)
万一您别无选择,只能使用 iText 5,那么您应该阅读使用 PDF 和 iText 中的字体
就像 iText 7 你需要一个字体程序:
public static final String BODONIBLACK = "src/main/resources/fonts/BodoniMTBlack.ttf";
Run Code Online (Sandbox Code Playgroud)
现在你可以创建一个Font这样的对象:
BaseFont baseFont = BaseFont.createFont(BODONIBLACK, BaseFont.WINANSI, BaseFont.EMBEDDED);
Font bodoni = new Font(basefont, 12);
Run Code Online (Sandbox Code Playgroud)
补充说明:
Stack Overflow 引入了新的行为准则,旨在在网站上营造更健康的氛围(善待、贡献、尊重是其副标题中强调的一些方面)。
在该行为准则的背景下,我想通知您,在提出问题之前,您可以通过使用官方 iText 网站上提供的信息为未来营造更好的氛围做出贡献。
当您使用 iText 并且遇到 iText 相关问题时,您的第一反应应该是访问 iText 官方网站,在那里您可以找到我上面总结的信息。人们已经付出了巨大的努力来编写教程来回答与您类似的问题。忽视那些伟大的内容,你就无法欣赏所做的辛勤工作。请在未来考虑到这一点。
| 归档时间: |
|
| 查看次数: |
6233 次 |
| 最近记录: |