如何在 PDF 上繪製文字和位圖 C#

如何使用 C# PDF 編輯:在 PDF 上繪製文字和點陣圖

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF可讓您使用 DrawTextDrawBitmap 方法在現有 PDF 上繪製文字和圖像,從而可以在不改變原始內容的情況下,透過浮水印、標誌、註釋和改進的視覺外觀進行自訂。

在 PDF 上繪製文字和圖像是指向現有文件添加內容。 IronPDF可以無縫啟用此功能。 透過添加文字和圖像,您可以自訂 PDF,添加浮水印、徽標和註釋,從而改善文件的視覺外觀和品牌形象。 此外,文字和圖像有助於資訊呈現、資料視覺化和互動式表單建立。

快速入門:PDF 編輯 — 使用 IronPDF 為 PDF 新增文字和圖像

快速且有效率地使用文字和圖像增強您的 PDF 文件。 使用 DrawTextDrawBitmap 方法,您可以輕鬆地透過新增浮水印、標誌或註釋來自訂 PDF。 本範例示範如何在特定座標處繪製文本,以及如何將影像無縫插入 PDF 。

  1. 使用NuGet套件管理器安裝https://www.nuget.org/packages/IronPdf

    PM > Install-Package IronPdf
  2. 複製並運行這段程式碼。

    new ChromePdfRenderer()
        .RenderHtmlAsPdf("<h1>Doc</h1>")
        .DrawText("Hello World", FontTypes.TimesNewRoman.Name, 12, 0, 100, 100, Color.Black, 0)
        .DrawBitmap(AnyBitmap.FromFile("logo.png"), 0, 50, 250, 500, 300)
        .SaveAs("annotated.pdf");
  3. 部署到您的生產環境進行測試

    今天就在您的專案中開始使用免費試用IronPDF

    arrow pointer


如何在PDF上繪製文字?

PdfDocument物件上的 DrawText 方法可讓您為現有 PDF 新增文本,而不會變更其原始內容。 這種方法特別適用於在 PDF 中添加動態內容,類似於圖章文字和圖像功能,可以實現更複雜的疊加效果。

理解座標系

繪製文字前,請先了解 PDF 座標系。 原點 (0,0) 位於頁左下角,X 值向右遞增,Y 值向上遞增。 這與許多圖形系統不同,在這些系統中,原點位於左上角。

:path=/static-assets/pdf/content-code-examples/how-to/draw-text-and-bitmap-draw-text.cs
using IronPdf;
using IronSoftware.Drawing;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");

// Draw text on PDF
pdf.DrawText("Some text", FontTypes.TimesNewRoman.Name, FontSize: 12, PageIndex: 0, X: 100, Y: 100, Color.Black, Rotation: 0);

pdf.SaveAs("drawText.pdf");
Imports IronPdf
Imports IronSoftware.Drawing

Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")

' Draw text on PDF
pdf.DrawText("Some text", FontTypes.TimesNewRoman.Name, FontSize:=12, PageIndex:=0, X:=100, Y:=100, Color.Black, Rotation:=0)

pdf.SaveAs("drawText.pdf")
$vbLabelText   $csharpLabel

我可以使用哪些字體?

DrawText 方法目前支援IronPDF中的所有標準字體,包括 CourierArial(或 Helvetica)、TimesNewRomanSymbolZapfDingbats。 請造訪"管理字體"文章中的" IronPDF中的標準字體"部分,以了解這些字體類型的斜體、粗體和傾斜變體。

ZapfDingbats 字型可以顯示諸如 ▲ 之類的符號。 有關支持的符號的完整列表,請訪問維基百科上的 Zapf Dingbats 頁面

在 PDF 上輸出字體範例

字體範例展示了 Arial、Courier、Helvetica 和 Times New Roman 字體家族的粗體、斜體和傾斜變體。

如何添加帶有換行符的文字?

繪製文字操作支援換行符,可讓您使用內建換行符渲染文本,以獲得更好的格式和視覺清晰度。 這在添加多行註解或建立結構化文字佈局時非常有用。

要實現這一點,請在文字字串中新增 newline characters (\n)。 以上述例子為例:

// Multi-line text example with proper spacing
string textWithNewlines = "Some text\nSecond line\nThird line with more content";
pdfDoc.DrawText(textWithNewlines, font, position);

// You can also use Environment.NewLine for platform-specific line breaks
string platformText = $"Line 1{Environment.NewLine}Line 2{Environment.NewLine}Line 3";
pdfDoc.DrawText(platformText, font, position);
// Multi-line text example with proper spacing
string textWithNewlines = "Some text\nSecond line\nThird line with more content";
pdfDoc.DrawText(textWithNewlines, font, position);

// You can also use Environment.NewLine for platform-specific line breaks
string platformText = $"Line 1{Environment.NewLine}Line 2{Environment.NewLine}Line 3";
pdfDoc.DrawText(platformText, font, position);
' Multi-line text example with proper spacing
Dim textWithNewlines As String = "Some text" & vbLf & "Second line" & vbLf & "Third line with more content"
pdfDoc.DrawText(textWithNewlines, font, position)

' You can also use Environment.NewLine for platform-specific line breaks
Dim platformText As String = $"Line 1{Environment.NewLine}Line 2{Environment.NewLine}Line 3"
pdfDoc.DrawText(platformText, font, position)
$vbLabelText   $csharpLabel

如何使用自訂字體?

使用 DrawText 方法支援自訂字體,從而擴展您的排版選項,使其超越標準字體。 在保持品牌一致性或使用特殊字體時,此功能至關重要。 有關進階字體管理,請參閱我們的 PDF字體管理指南。

以下是一個新增了Pixelify Sans 字體的範例:

:path=/static-assets/pdf/content-code-examples/how-to/draw-text-and-bitmap-draw-custom-font.cs
using IronPdf;
using IronSoftware.Drawing;
using System.IO;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");

// Add custom font to the PDF
byte[] fontByte = File.ReadAllBytes(@".\PixelifySans-VariableFont_wght.ttf");
var addedFont = pdf.Fonts.Add(fontByte);

// Draw text on PDF
pdf.DrawText("Iron Software", addedFont.Name, FontSize: 12, PageIndex: 0, X: 100, Y: 600, Color.Black, Rotation: 0);

pdf.SaveAs("drawCustomFont.pdf");
Imports IronPdf
Imports IronSoftware.Drawing
Imports System.IO

Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")

' Add custom font to the PDF
Private fontByte() As Byte = File.ReadAllBytes(".\PixelifySans-VariableFont_wght.ttf")
Private addedFont = pdf.Fonts.Add(fontByte)

' Draw text on PDF
pdf.DrawText("Iron Software", addedFont.Name, FontSize:= 12, PageIndex:= 0, X:= 100, Y:= 600, Color.Black, Rotation:= 0)

pdf.SaveAs("drawCustomFont.pdf")
$vbLabelText   $csharpLabel

進階文字定位

精確定位文字時,請參考以下技巧:

-頁面尺寸:使用 pdf.Pages[pageIndex].Widthpdf.Pages[pageIndex].Height 取得頁面尺寸 -旋轉:旋轉參數接受角度值(0-360),用於調整文字角度。 -顏色選項:除了基本顏色外,還可以使用 RGB 值:Color.FromArgb(255, 100, 100)


如何在PDF上繪製影像?

IronPDF 的 DrawBitmap 方法可讓您在現有 PDF 文件中新增點陣圖。 此方法的功能與影像蓋章功能類似,可讓您將影像蓋章到現有的 PDF 上。 對於複雜的影像處理需求,請參閱我們關於向 PDF 新增影像的指南。

請注意DrawBitmap 方法最適合處理大型影像。 使用較小解析度影像時,可能會遇到以下異常: IronPDF:'繪製影像時出錯:資料長度 (567000) 小於預期 (756000)'。要解決此問題,請使用圖像標記器,它可以處理所有尺寸的圖像。

範例影像

Iron Software 的標誌採用色彩鮮豔的 3D 交錯幾何設計,背景為品牌標誌。

具體的實施方案是怎樣的?

:path=/static-assets/pdf/content-code-examples/how-to/draw-text-and-bitmap-draw-bitmap.cs
using IronPdf;
using IronSoftware.Drawing;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");

// Open the image from file
AnyBitmap bitmap = AnyBitmap.FromFile("ironSoftware.png");

// Draw the bitmp on PDF
pdf.DrawBitmap(bitmap, 0, 50, 250, 500, 300);

pdf.SaveAs("drawImage.pdf");
Imports IronPdf
Imports IronSoftware.Drawing

Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")

' Open the image from file
Dim bitmap As AnyBitmap = AnyBitmap.FromFile("ironSoftware.png")

' Draw the bitmap on PDF
pdf.DrawBitmap(bitmap, 0, 50, 250, 500, 300)

pdf.SaveAs("drawImage.pdf")
$vbLabelText   $csharpLabel

輸出 PDF

還有哪些其他參數可用?

  • PixelFormatPixelFormat 屬性指定位圖的顏色資料格式,主要控制透明度支援。 預設值為 Format32bppArgb。 透過傳遞參數作為選項,可以在像素枚舉格式 Format32bppRgbFormat32bppArgb 之間進行選擇。 這在處理 PDF 中的背景和前景元素時非常有用。

  • IgnorePageRotation :此屬性決定方法在繪製點陣圖時是否忽略頁面旋轉。預設值為 false。 尤其適用於無論頁面旋轉與否,都要在所有頁面上一致地套用浮水印的情況。

常見用例和最佳實踐

在 PDF 上繪製文字和圖像時,請考慮以下實際應用:

1.動態浮水印:在敏感文件上新增公司標誌或"機密"印章 2.頁碼:在所有頁面上,頁碼的位置保持一致。 3.簽名位置:在表格上的指定位置新增簽名圖片 4.增強頁首/頁尾:以動態內容補充現有頁眉

為了調試和監控 PDF 操作,實作自訂日誌記錄以追蹤繪圖操作並確保正確執行。

性能考量

處理多頁或大型文件時:

  • 盡可能使用批次操作,以最大限度地減少記憶體佔用 使用後釋放位圖物件以釋放資源
  • 考慮預先載入常用圖片以提高效能

準備好要看看你還能做什麼了嗎? 請造訪我們的教學頁面:編輯 PDF

常見問題解答

我可以使用哪些方法將文字和圖片新增至現有的 PDF?

IronPDF 提供了兩種主要的方法來為現有的 PDF 添加內容:DrawText 方法用於添加文字,DrawBitmap 方法用於添加圖片。這些方法允許您在不改變原始文件內容的情況下,使用水印、標誌和註釋自訂 PDF。

繪製文字時,PDF 坐標系統如何運作?

在 IronPDF 中,PDF 坐標系的原點 (0,0) 位於頁面的左下角。X 值向右增加,Y 值向上增加。這與許多原點位於左上角的圖形系統不同。

在 PDF 上繪製文字時支援哪些字型?

IronPDF 的 DrawText 方法支援所有標準字體,包括 Courier、Arial (Helvetica)、Times New Roman、Symbol 和 ZapfDingbats。這些字體也有斜體、粗體和斜體等變體。ZapfDingbats 字型可用於顯示特殊符號。

我可以在一次操作中將文字和圖片同時加入 PDF 嗎?

是的,IronPDF 允許您將方法鏈結在一起。您可以使用 ChromePdfRenderer 創建 PDF,然後在一行代碼中依次應用 DrawText 和 DrawBitmap 方法,這樣就可以高效地在 PDF 文件中添加多個元素。

在 PDF 上繪製文字和圖片的常見用例有哪些?

IronPDF 的繪圖功能常用於加入水印以保護文件、插入公司標誌以建立品牌、建立註解以檢閱文件、改善視覺外觀、促進資料可視化,以及建立互動式表格。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

準備好開始了嗎?
Nuget 下載 18,332,619 | 版本: 2026.4 剛剛發布
Still Scrolling Icon

還在捲動嗎?

想要快速證明? PM > Install-Package IronPdf
執行範例 觀看您的 HTML 變成 PDF。