如何在 C# 中在 PDF 上绘制文本和位图

如何使用 C# 在 PDF 上绘制文本和位图

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

IronPDF允许您使用 DrawTextDrawBitmap 方法在现有 PDF 上绘制文本和图像,从而可以在不改变原始内容的情况下,通过水印、徽标、注释和改进的视觉外观进行自定义。

在 PDF 上绘制文本和图像涉及在现有文档中添加内容。 IronPDF无缝启用此功能。 通过整合文本和图像,您可以用 水印、徽标和 注释自定义 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 添加动态内容,类似于 stamp text and image 功能,可用于更复杂的叠加。

了解坐标系

在绘制文本之前,请先了解 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");
$vbLabelText   $csharpLabel

我可以使用哪些字体?

DrawText 方法目前支持IronPDF中的所有标准字体,包括 Arial(或 SymbolZapfDingbats。 访问管理字体文章中的'IronPDF中的标准字体'部分,获取这些字体类型的斜体、粗体和倾斜体变体。

ZapfDingbats 字体可以显示 ▲ 等符号。 有关受支持符号的完整列表,请访问 Wikipedia on 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);
$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");
$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)'。要解决此问题,请使用图像标记器,它可以处理所有尺寸的图像。

![1200 x 627图像](/static-assets/pdf/how-to/draw-text-and-bitmap/ironsoftware.png)
Iron Software 徽标,品牌背景上有彩色 3D 互锁几何设计
### 实施是什么样的? ```csharp :path=/static-assets/pdf/content-code-examples/how-to/draw-text-and-bitmap-draw-bitmap.cs ``` ### 输出PDF ### 还有哪些其他参数可用? - **PixelFormat** :`PixelFormat` 属性指定位图的颜色数据格式,主要控制透明度支持。 默认值为 `Format32bppArgb`。 通过传递参数作为选项,可以在像素枚举格式 `Format32bppRgb` 和 `Format32bppArgb` 之间进行选择。 这在处理 PDF 中的 [ 背景和前景](/how-to/background-foreground/)元素时非常有用。 - **IgnorePageRotation** :此属性决定方法在绘制位图时是否忽略页面旋转。默认值为 false。 在对所有页面(无论旋转与否)一致地应用水印时尤其有用。 ### 常见用例和最佳实践 在 PDF 上绘制文本和图像时,请考虑这些实际应用: 1.**动态水印**:为敏感文档添加公司徽标或 "机密 "标记 2.**页码**:在所有页面的一致位置绘制页码 3.**签名位置**:在表单指定位置添加签名图像 4.**页眉/页脚增强**:用动态内容补充现有页眉 为调试和监控 PDF 操作,请执行 [ 自定义日志](/how-to/custom-logging/) 以跟踪绘图操作并确保正确执行。 ### 性能考虑 在处理多页或大型文档时: - 尽可能进行批量操作,以尽量减少内存使用量 - 使用后处置位图对象以释放资源 - 考虑预加载常用图片以提高性能 准备好看看您还能做些什么吗? 请查看我们的教程页面:[编辑 PDF](https://ironpdf.com/tutorials/csharp-edit-pdf-complete-tutorial/)

常见问题解答

我可以使用哪些方法在现有 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 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
Nuget 下载 17,803,474 | 版本: 2026.3 刚刚发布
Still Scrolling Icon

还在滚动吗?

想快速获得证据? PM > Install-Package IronPdf
运行示例看着你的HTML代码变成PDF文件。