使用 iText 将字体嵌入到 PDF 文件中

发布于 2024-08-12 11:48:39 字数 107 浏览 4 评论 0原文

我定义了一个标签映射,并获得了一个 XML 数据文件。我想使用 iText 将 XML 数据文件转换为 PDF。问题是在将XML转换为PDF时如何将字体(例如波兰语字体、中文字体)嵌入到目标PDF中?

I defined a tag map, and got a XML data file. I want to convert the XML data file to PDF by using iText. The question is how to embed fonts (e.g. Polish font, Chinese font) into the target PDF when converting XML to PDF?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

尴尬癌患者 2024-08-19 11:48:39

如果您正在使用 iText 进行更多工作,您可能需要阅读 iText 书 - 它有示例对于 iText 的所有功能。

您在创建定义字体嵌入的字体时指定一个参数:

BaseFont helvetica = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.EMBEDDED);
Font font = new Font(helvetica, 12, Font.NORMAL);

您可以在此处找到更多 iText 字体相关示例:http://1t3xt .info/examples/browse/?page=toc&id=14

If you are doing more work with iText, you may want to invest into the iText book - it has examples for all the features of iText.

There is a parameter that you specify when you create your font that defines font embedding:

BaseFont helvetica = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.EMBEDDED);
Font font = new Font(helvetica, 12, Font.NORMAL);

You can find more iText font related examples here: http://1t3xt.info/examples/browse/?page=toc&id=14

风苍溪 2024-08-19 11:48:39

但是,如果您没有与您使用的任何字符相匹配的单一字体并且您需要多种字体,那么您将会遇到问题。

在这种情况下,FontSelector 类适合您。

我写了一篇关于此的短文:
http://lechlukasz。 wordpress.com/2010/01/06/using-dynamic-fonts-for-international-texts-in-itext/

However, you will have problem if you will not have single font matching any characters used by you and you need multiple fonts.

In this case the FontSelector class is for you.

I've written a short article about that:
http://lechlukasz.wordpress.com/2010/01/06/using-dynamic-fonts-for-international-texts-in-itext/

宫墨修音 2024-08-19 11:48:39

这是指示 iText 嵌入所有字体的非常简单的方法。将其插入到加载字体的代码之前:

FontFactory.defaultEmbedding = true;

Here's a really easy way of instructing iText to embed all fonts. Insert this before your code to load fonts:

FontFactory.defaultEmbedding = true;
浅紫色的梦幻 2024-08-19 11:48:39

您可以尝试将其转换为嵌入了所有字体的 PDF/A。

    PdfReader reader = new PdfReader(GetTemplateBytes());
    pst = new PdfStamper(reader, Response.OutputStream);

    pst.Writer.SetPdfVersion(PdfWriter.PDF_VERSION_1_4);
    pst.Writer.PDFXConformance = PdfWriter.PDFA1A;

You can try transforming it into PDF/A which has all the fonts embedded.

    PdfReader reader = new PdfReader(GetTemplateBytes());
    pst = new PdfStamper(reader, Response.OutputStream);

    pst.Writer.SetPdfVersion(PdfWriter.PDF_VERSION_1_4);
    pst.Writer.PDFXConformance = PdfWriter.PDFA1A;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文