.NET用C#在PDF文档中添加、删除和替换图片

在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一。通过C#在.NET平台实现图片的添加、替换和删除功能,不仅能显著提升PDF文档的视觉表现力与信息承载效率,更可满足数据动态更新、内容精准维护等复杂业务场景,为PDF文档的专业领域应用提供强有力的支持。本文 将介绍如何在.NET平台使用C#代码在PDF文档中添加、删除和替换图片。包括以下几个部分:

文章目录

本文所使用的方法需要用到Free Spire.PDF for .NET,NuGet:PM> Install-Package FreeSpire.PDF。

用C#添加图片到PDF文档

库中提供的PdfImage.FromFile()方法可以从文件载入图片,然后我们可以使用PdfPageBase.Canvas.DrawImage()方法,经图片绘制到PDF页面的指定位置。以下是操作步骤:

  1. 初始化PdfDocument实例以新建或载入PDF文档。
  2. 使用PdfDocument.Pages.Add()方法在PDF文档中新建一个页面。
  3. 使用PdfImage.FromFile()方法载入图片。
  4. 指定绘制图片的其实位置坐标。
  5. 使用PdfPageBase.Canvas.DrawImage()方法将图片绘制到页面上。
  6. 使用PdfDocument.SaveToFile()方法保存PDF文档。
  7. 释放资源。

代码示例

csharp 复制代码
using Spire.Pdf;
using Spire.Pdf.Graphics;

namespace AddImageToPDF
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建PdfDocument实例
            PdfDocument pdf = new PdfDocument();

            // 添加一个页面到文档中
            PdfPageBase page = pdf.Pages.Add(PdfPageSize.A4, new PdfMargins(20f, 50f));

            // 载入图片
            PdfImage image = PdfImage.FromFile("Image.png");

            // 指定图像绘制的起始点坐标
            float x = (page.Size.Width - 40f) / 2 - image.Width / 2;
            float y = pdf.PageSettings.Margins.Top + 50;

            // 将图片绘制到PDF页面上
            page.Canvas.DrawImage(image, x, y, image.Width, image.Height);

            // 保存PDF文档
            pdf.SaveToFile("output/InsertImagePDF.pdf");
            pdf.Dispose();
        }
    }
}

结果文档

用C#删除PDF文档中的图片

库中的PdfImageHelper类可以用来处理PDF页面上图片。先使用PdfImageHelper.GetImagesInfo(PdfPageBase)[Index]获取PDF页面上的指定图片,然后使用PdfImageHelper.DeleteImage()将其删除。以下是操作步骤:

  1. 创建PdfDocument对象,使用PdfDocument.LoadFromFile()方法载入PDF文档。
  2. 使用PdfDocument.Pages[]属性获取指定页面。
  3. 创建PdfImageHelper实例,使用PdfImageHelper.GetImagesInfo(PdfPageBase)[Index]获取PDF页面上的指定图片。
  4. 使用PdfImageHelper.DeleteImage()将图片删除。
  5. 使用PdfDocument.SaveToFile()方法保存PDF文档。
  6. 释放资源。

代码示例

csharp 复制代码
using Spire.Pdf;
using Spire.Pdf.Graphics;
using Spire.Pdf.Utilities;
using System.Drawing;

namespace AddImageToPDF
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建PdfDocument实例
            PdfDocument pdf = new PdfDocument();

            // 载入PDF文档
            pdf.LoadFromFile("output/InsertImagePDF.pdf");

            // 获取图片所在页面
            PdfPageBase page = pdf.Pages[0];

            // 创建PdfImageHelper对象
            PdfImageHelper imageHelper = new PdfImageHelper();

            // 获取该页面指定图片的信息
            PdfImageInfo imageInfo = imageHelper.GetImagesInfo(page)[0];

            // 删除指定图片
            imageHelper.DeleteImage(imageInfo);

            // 绘制提示文本
            page.Canvas.DrawString("Image deleted.", new PdfFont(PdfFontFamily.Helvetica, 16f), PdfBrushes.Black, new PointF(imageInfo.Bounds.X, imageInfo.Bounds.Y));

            // 保存PDF文档
            pdf.SaveToFile("output/DeleteImagePDF.pdf");
            pdf.Dispose();
        }
    }
}

结果文档

用C#替换PDF文档中的图片

PdfImageHelper类还提供ReplaceImage(PdfImageInfo, PdfImage)方法来将PDF页面上的指定图片替换为新的图片。以下是操作步骤:

  1. 创建PdfDocument对象,使用PdfDocument.LoadFromFile()方法载入PDF文档。
  2. 使用PdfDocument.Pages[]属性获取指定页面。
  3. 创建PdfImageHelper实例,使用PdfImageHelper.GetImagesInfo(PdfPageBase)[Index]获取PDF页面上的指定图片。
  4. 使用PdfImage.FromFile()方法载入新的图片。
  5. 使用PdfImageHelper.ReplaceImage()方法用新图片替换页面上的图片。
  6. 使用PdfDocument.SaveToFile()方法保存PDF文档。
  7. 释放资源。

代码示例

csharp 复制代码
using Spire.Pdf;
using Spire.Pdf.Graphics;
using Spire.Pdf.Utilities;
using System.Drawing;

namespace AddImageToPDF
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建PdfDocument实例
            PdfDocument pdf = new PdfDocument();

            // 载入PDF文档
            pdf.LoadFromFile("output/InsertImagePDF.pdf");

            // 获取图片所在页面
            PdfPageBase page = pdf.Pages[0];

            // 创建PdfImageHelper对象
            PdfImageHelper imageHelper = new PdfImageHelper();
            // 获取该页面指定图片的信息
            PdfImageInfo imageInfo = imageHelper.GetImagesInfo(page)[0];

            // 载入新图片
            PdfImage newImage = PdfImage.FromFile("G:/Documents/Image3.png");

            // 使用新图片替换指定图片
            imageHelper.ReplaceImage(imageInfo, newImage);

            // 保存PDF文档
            pdf.SaveToFile("output/ReplaceImagePDF.pdf");
            pdf.Dispose();
        }
    }
}

结果文档

本文演示如何使用C#在.NET平台实现PDF文档中添加、删除和替换图片,提供步骤介绍和代码示例。

相关推荐
code2cat6 小时前
Java工具篇之Gradle:用任务图组织构建与交付
java·开发语言·单元测试·gradle
北京中科新远科技6 小时前
高速交换机端口预算怎么做?下行、上联、拆分和冗余计算框架
开发语言·php
xiaoye-duck6 小时前
《C++ 项目:手写大模型接入 SDK》DeepSeek接口设计(下):流式响应实现和测试
开发语言·网络·c++·语言模型
AI源码7 小时前
基于 Python 的短视频用户行为分析系统
开发语言·python
旖旎夜光7 小时前
【C++ 基础入门】类和对象(上):封装、对象模型与 this 指针
开发语言·c++·笔记·学习
揽星河..8 小时前
【C语言】结构体
c语言·开发语言
2601_966949658 小时前
如何封装 qd.klines.batch(),让批量 K 线查询函数在多个策略中复用?
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
神仙别闹9 小时前
基于Python实现英词语自动对齐系统
开发语言·python
akinggw9 小时前
libagentcore - 一个基于c++的AI多agent系统升级到2.0版本
开发语言·jvm·c++
老歌老听老掉牙10 小时前
圆柱端面四平面交线及其在yoz面投影的几何解析与 Python 实现
开发语言·python·平面