簡體   English   中英

C#以編程方式將字體添加到PDF

[英]C# add programmatically a font to PDF

我必須以編程方式向PDF添加(注冊,嵌入)字體。 我嘗試了很多工具,例如ghostscript或itextsharp,但我沒有設法解決問題。

例如在這種情況下: 在此處輸入圖片說明

我想添加Courier-Bold並得到這種情況:

在此處輸入圖片說明

我剛剛通過NuGet使用iTextSharp v5.5.9創建了一個項目,並使用了以下代碼:

    const string PdfLocation = @"C:\fakepath\output.pdf";

    static void Main(string[] args)
    {
        using (var pdfDoc = new Document())
        using (var fs = new FileStream(PdfLocation, FileMode.OpenOrCreate))
        using (var writer = PdfWriter.GetInstance(pdfDoc, fs))
        {
            pdfDoc.Open();

            var font = FontFactory.GetFont(FontFactory.COURIER_BOLD);

            // Doesn't use font
            var paragraph = new Paragraph("LINE 1");
            paragraph.Font = font;
            pdfDoc.Add(paragraph);

            // Doesn't use font
            var paragraph2 = new Paragraph();
            paragraph2.Add("LINE 2");
            paragraph2.Font = font;
            pdfDoc.Add(paragraph2);

            // Does use font
            var paragraph3 = new Paragraph();
            paragraph3.Font = font;
            paragraph3.Add("LINE 3"); // This must be done after setting the font
            pdfDoc.Add(paragraph3);

            var cb = writer.DirectContent;

            pdfDoc.Close();
        }
    }

我發現在編寫文本之前需要先設置字體。 以下代碼輸出具有以下屬性的PDF。 我沒有從中獲得TrueType要求,但是也許這將為您設定正確的方向。

我在使用paragraphparagraph2將使用默認字體Helvetica,因為在設置文本后設置字體。 順序很重要!

有關此的文檔當然需要擴展...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM