gpt4 book ai didi

java - 如何在 iText PDF 中使用字体

转载 作者:行者123 更新时间:2023-12-01 17:49:44 33 4
gpt4 key购买 nike

我有一个java应用程序,我必须在itextPdf中使用FontFactory使用“Bodoni MT Black”字体,我应该如何修改我的代码?这是我的代码,

Font base = FontFactory.getFont(FontFactory.TIMES_ROMAN, 6);

如何将字体更改为“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 解决方案

如果您按照我的建议进行升级,那么您应该阅读 iText 7 教程中有关字体的章节:https://developers.itextpdf.com/content/itext-7-building-blocks/chapter-1

本教程说明,如果您不想使用标准 Type 1 字体(例如 times roman)之一,则需要一个字体程序。具体来说,如果您想使用“Bodoni MT Black”,您需要文件 BodoniMTBlack.ttf您计算机上的某个位置,例如:

public static final String BODONIBLACK = "src/main/resources/fonts/BodoniMTBlack.ttf";

接下来,您可以使用此路径创建从 FontProgramFactory 获取的 FontProgram 对象:

FontProgram fontProgram = FontProgramFactory.createFont(BODONIBLACK);

使用 FontProgram 实例,您可以创建 PdfFont 对象。

PdfFont font = PdfFontFactory.createFont(fontProgram, PdfEncodings.WINANSI, true);

font 实例可以用作 setFont() 方法的参数:

Paragraph bodoni = new Paragraph().setFont(font).add("Bodoni");

iText 5 解决方案

万一您除了使用 iText 5 之外别无选择,那么您应该阅读 Using fonts in PDF and iText

就像使用 iText 7 一样,您需要一个字体程序:

public static final String BODONIBLACK = "src/main/resources/fonts/BodoniMTBlack.ttf";

现在您可以创建一个 Font 对象,如下所示:

BaseFont baseFont = BaseFont.createFont(BODONIBLACK, BaseFont.WINANSI, BaseFont.EMBEDDED);
Font bodoni = new Font(basefont, 12);

附加说明:

Stack Overflow 引入了新的 Code of Conduct旨在在网站上营造更健康的氛围(副标题中强调了友善、贡献、表示尊重等一些方面)。

根据该行为准则,我想通知您,在提问之前,您可以使用 iText 官方网站上提供的信息,为将来营造更好的氛围做出贡献。

当您使用 iText 并遇到与 iText 相关的问题时,您的第一 react 应该是访问 iText 官方网站,在那里您可以找到我上面总结的信息。人们付出了巨大的努力来编写教程来回答与您类似的问题。如果忽略了这些精彩的内容,您就无法欣赏所做的艰苦工作。请将来考虑到这一点。

关于java - 如何在 iText PDF 中使用字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51743430/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com