使用C#代码在PDF文档中添加、删除和替换图片

2025-04-04 03:50

本文主要是介绍使用C#代码在PDF文档中添加、删除和替换图片,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.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. 使PFhUwLxKMPdfPageBase.Canvas.DrawImage()方法将图片绘制到页面上。
  6. 使用PdfDocument.SaveToFile()方法保存PDF文档。
  7. 释放资源。

代码示例

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.androidTop + 50;

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

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

结果文档

使用C#代码在PDF文档中添加、删除和替换图片

用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. 释放资源。

代码示例

using Spire.Pdf;
using Spire.Pdf.Graphics;
using Spire.Pdf.Utilities;
using System.Drawing;

namespace AddImageToPDF
{
    class Program
    {
        static void Main(China编程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文档中添加、删除和替换图片

用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. 释放资源。

代码示例

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)[0http://www.chinasem.cn];

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

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

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

结果文档

使用C#代码在PDF文档中添加、删除和替换图片

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

以上就是使用C#代码在PDF文档中添加、删除和替换图片的详细内容,更多关于C# PDF添加、删除和替换图片的资料请关注China编程(www.chinasem.cn)其它相关文章!

这篇关于使用C#代码在PDF文档中添加、删除和替换图片的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1154084

相关文章

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

Java Thread中join方法使用举例详解

《JavaThread中join方法使用举例详解》JavaThread中join()方法主要是让调用改方法的thread完成run方法里面的东西后,在执行join()方法后面的代码,这篇文章主要介绍... 目录前言1.join()方法的定义和作用2.join()方法的三个重载版本3.join()方法的工作原

Spring AI使用tool Calling和MCP的示例详解

《SpringAI使用toolCalling和MCP的示例详解》SpringAI1.0.0.M6引入ToolCalling与MCP协议,提升AI与工具交互的扩展性与标准化,支持信息检索、行动执行等... 目录深入探索 Spring AI聊天接口示例Function CallingMCPSTDIOSSE结束语

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

在Java中使用OpenCV实践

《在Java中使用OpenCV实践》用户分享了在Java项目中集成OpenCV4.10.0的实践经验,涵盖库简介、Windows安装、依赖配置及灰度图测试,强调其在图像处理领域的多功能性,并计划后续探... 目录前言一 、OpenCV1.简介2.下载与安装3.目录说明二、在Java项目中使用三 、测试1.测

Python实现PDF按页分割的技术指南

《Python实现PDF按页分割的技术指南》PDF文件处理是日常工作中的常见需求,特别是当我们需要将大型PDF文档拆分为多个部分时,下面我们就来看看如何使用Python创建一个灵活的PDF分割工具吧... 目录需求分析技术方案工具选择安装依赖完整代码实现使用说明基本用法示例命令输出示例技术亮点实际应用场景扩

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

C++中detach的作用、使用场景及注意事项

《C++中detach的作用、使用场景及注意事项》关于C++中的detach,它主要涉及多线程编程中的线程管理,理解detach的作用、使用场景以及注意事项,对于写出高效、安全的多线程程序至关重要,下... 目录一、什么是join()?它的作用是什么?类比一下:二、join()的作用总结三、join()怎么

mybatis中resultMap的association及collectio的使用详解

《mybatis中resultMap的association及collectio的使用详解》MyBatis的resultMap定义数据库结果到Java对象的映射规则,包含id、type等属性,子元素需... 目录1.reusltmap的说明2.association的使用3.collection的使用4.总

Spring Boot配置和使用两个数据源的实现步骤

《SpringBoot配置和使用两个数据源的实现步骤》本文详解SpringBoot配置双数据源方法,包含配置文件设置、Bean创建、事务管理器配置及@Qualifier注解使用,强调主数据源标记、代... 目录Spring Boot配置和使用两个数据源技术背景实现步骤1. 配置数据源信息2. 创建数据源Be