Embed font into PDF file by using iText

2020-01-29 08:42发布

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?

4条回答
神经病院院长
2楼-- · 2020-01-29 09:19

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

查看更多
Summer. ? 凉城
3楼-- · 2020-01-29 09:19

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/

查看更多
何必那么认真
4楼-- · 2020-01-29 09:30

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;
查看更多
Lonely孤独者°
5楼-- · 2020-01-29 09:35

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

FontFactory.defaultEmbedding = true;
查看更多
登录 后发表回答