gpt4 book ai didi

java - 在 iTextPDF 中将 BOLD 设置为自定义字体

转载 作者:行者123 更新时间:2023-12-02 04:05:01 25 4
gpt4 key购买 nike

我需要使用特定字体来制作文档,因为它包含 iText 附带的普通字体不支持的特殊字符,例如 "Đ"

所以,我做了这个:

BaseFont CROACIA = BaseFont.createFont("C:\\FreeSans.ttf",BaseFont.IDENTITY_H,BaseFont.EMBEDDED);

Font CROATA = new Font(CROACIA, 12);

它工作正常,我的“Đ”问题解决了,问题是我无法将其设置为粗体

我尝试使用“BOLD”设置制作不同的字体,如下所示_

Font CROATABOLD = new Font(CROACIA, 12, BOLD);

代码似乎没有错误,但当我将其应用于段落时,它不起作用,字体看起来像平常一样正常

最佳答案

FreeSans 和 FreeSansBold 是同一家族不同字体。您提供了 FreeSans.ttf 字体程序的路径,因此 iText 可以使用 FreeSans 系列中的常规字体。如果您想使用粗体字体,则需要提供 FreeSansBold.ttf 的路径,它是同一系列字体的不同字体程序。

这显示在 FreeSansBold 中示例:

public static final String FONT = "resources/fonts/FreeSans.ttf";
public static final String FONTBOLD = "resources/fonts/FreeSansBold.ttf";

public void createPdf(String dest) throws IOException, DocumentException {
Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream(dest));
document.open();
BaseFont bf = BaseFont.createFont(FONT, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
Font font = new Font(bf, 12);
Paragraph p = new Paragraph("FreeSans regular: \u0110", font);
document.add(p);
BaseFont bfbold = BaseFont.createFont(FONTBOLD, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
Font bold = new Font(bfbold, 12);
p = new Paragraph("FreeSans bold: \u0110", bold);
document.add(p);
document.close();
}

我们有两种不同的字体FreeSans.ttfFreeSansBold.ttf同一个家庭的。一种是常规字体;另一种是粗体字体。如果您查看结果的文档属性,free_sans_bold.pdf ,您可以清楚地看到两种不同的字体在起作用:

enter image description here

关于java - 在 iTextPDF 中将 BOLD 设置为自定义字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34396579/

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