2009-11-21 112 views
10

我定義了一個標籤貼圖,並獲得了一個XML數據文件。我想通過使用iText將XML數據文件轉換爲PDF。問題是如何在將XML轉換爲PDF時將字體(例如波蘭語字體,中文字體)嵌入到目標PDF中?使用iText將字體嵌入到PDF文件中

回答

9

如果您在iText上做了更多的工作,您可能需要投資iText book--它具有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

+1

我已經在iText書中研究了一些示例,似乎沒有提供任何有關我的問題的提示。在你的例子中,有一個標誌「BaseFont.EMBEDDED」,可以用來表示嵌入字體文件。但我必須做的是將XML文件轉換爲帶有定義的tagmap的PDF目錄,整個過程只有一次調用。沒有地方可以放置一些代碼來嵌入字體。 在您的示例中,我們可以將字體設置爲某個段落,以便字體嵌入到該段落中。但是對於使用tagmap自動生成PDF,我們如何設置字體,我們可以使用哪種類別/接口來嵌入字體?謝謝。 – moonli

+4

問題解決了。我們可以在TagMap中嵌入具有配置的字體。將「embedded」屬性設置爲「true」表示字體嵌入。 無論如何。 – moonli

+0

https://www.manning.com/books/itext-in-action-second-edition是這本書嗎? –

0

你可以嘗試將其轉化爲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; 
7

下面是指導iText嵌入所有字體的一個非常簡單的方法。在您的代碼之前插入此代碼以加載字體:

FontFactory.defaultEmbedding = true; 
+1

請注意,在iTextSharp中,FontFactory.DefaultEmbedding是一個只讀屬性。 – howcheng

相關問題