如何在 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。

Nuget Icon立即开始使用 NuGet 创建 PDF 文件:

  1. 使用 NuGet 包管理器安装 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](/how-to/stamp-text-image/) 功能,可用于更复杂的叠加。 ### 了解坐标系 在绘制文本之前,请先了解 PDF 坐标系。 原点(0,0)位于页面左下角,X 值向右递增,Y 值向上递增。 这与许多图形系统不同,后者的原点位于左上方。 ```csharp :path=/static-assets/pdf/content-code-examples/how-to/draw-text-and-bitmap-draw-text.cs ```

我可以使用哪些字体? `DrawText` 方法目前支持 IronPDF 中的所有 [标准字体](/how-to/manage-fonts/#standard-fonts),包括 `Courier`, `Arial` (或 `Helvetica`), `TimesNewRoman`, `Symbol`, 和 `ZapfDingbats`. 访问管理字体文章中的'[IronPDF中的标准字体](/how-to/manage-fonts/#standard-fonts)'部分,获取这些字体类型的斜体、粗体和倾斜体变体。 ZapfDingbats 字体可以显示 ▲ 等符号。 有关受支持符号的完整列表,请访问 [Wikipedia on Zapf Dingbats](https://en.wikipedia.org/wiki/Zapf_Dingbats)。 #### PDF上的输出字体样本
字体示例,显示 Arial、Courier、Helvetica 和 Times New Roman 系列字体以及粗体、斜体和斜体变化

如何添加带换行符的文本? 绘制文本操作支持换行符,允许您使用内置换行符来呈现文本,以实现更好的格式和视觉清晰度。 这在添加多行注释或创建结构化文本布局时非常有用。 为实现此目标,请将`换行符(\n)`添加到文本字符串中。 以上面的例子为例: ```csharp // 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); ```

如何使用自定义字体? `DrawText` 方法支持自定义字体,从而将您的排版选项扩展到标准字体之外。 在保持品牌一致性或使用专用字体时,这一特点至关重要。 有关高级字体管理,请参阅我们的[管理 PDF 中的字体](/how-to/manage-fonts/)指南。 下面是一个示例,文本中添加了 [Pixelify Sans 字体](https://fonts.google.com/specimen/Pixelify+Sans): ```csharp :path=/static-assets/pdf/content-code-examples/how-to/draw-text-and-bitmap-draw-custom-font.cs ``` ### 高级文本定位 在精确定位文本时,请考虑以下提示: - **页面尺寸**:使用 `pdf.Pages[pageIndex].Width` 和 `pdf.Pages[pageIndex].Height` 获取页面尺寸。 - **旋转**:旋转参数可接受角度(0-360),以显示有角度的文本。 - **颜色选项**:除基本颜色外,请使用 RGB 值:<代码>Color.FromArgb(255, 100, 100)

如何在 PDF 上绘制图像? IronPDF 的 `DrawBitmap` 方法可让您在现有 PDF 文档中添加位图。 此方法的功能与图像印记功能类似,允许您将图像印记到现有的 PDF 文件上。 对于复杂的图像处理需求,请参阅我们的[向 PDF 添加图像](/how-to/add-images-to-pdfs/)指南。
请注意`DrawBitmap(绘制位图)` 方法在处理大图像时效果最佳。 在使用较小分辨率的图片时,您可能会遇到以下例外情况:**IronPdf.Exceptions.IronPdfNativeException:'绘制图像时出错:数据长度(567000)小于预期(756000)'。**要解决这个问题,请使用图像捕捉器(Image Stamper),它可以处理各种尺寸的图像。
class="content-img-align-center">
class="center-image-wrapper"> ![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)**:此 `bool` 属性决定该方法在绘制位图时是否忽略页面旋转。默认情况下,该值为 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,012,929 | 版本: 2025.12 刚刚发布