Embed font into PDF file by using iText
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 q开发者_开发知识库uestion is how to embed fonts (e.g. Polish font, Chinese font) into the target PDF when converting XML to PDF?
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
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/
Here's a really easy way of instructing iText to embed all fonts. Insert this before your code to load fonts:
FontFactory.defaultEmbedding = true;
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;
精彩评论