我们都知道对PDF文件进行修改和编辑不是一件容易的事。但有时当我们想用新的图像来替换PDF文件上的现有图像时,该怎么办呢?别担心,本文将向您展示如何在 C#/VB.NET 中替换 PDF 文件中的现有图像。以下是思路步骤及代码,以供大家参考

程序环境:

本次测试时,在程序中引入 Spire.PDF.dll 文件。

方法1

将 ​ ​Free Spire.PDF for .NET​​ 下载到本地,解压,找到 BIN 文件夹下的 Spire.PDF.dll。然后在 Visual Studio 中打开“解决方案资源管理器”,鼠标右键点击“引用”,“添加引用”,将本地路径 BIN 文件夹下的 dll 文件添加引用至程序。

 

方法2:

通过  ​ ​NuGet​​安装。可通过以下 2 种方法安装:

1. 可以在 Visual Studio 中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理 NuGet 包”,然后搜索“Free Spire.PDF”,点击“安装”。等待程序安装完成。

2. 将以下内容复制到 PM 控制台安装。

Install-Package FreeSpire.PDF -Version 8.6.0

替换PDF文件上的现有图像具体步骤

  • 实例化PdfDocument并加载PDF文档。
  • 获取加载的 PDF 文件的第一页。
  • 加载要替换现有图像的新图像。
  • 用新加载的图像替换 PDF 文件上的第一个图像。
  • 保存文档。

完整代码

【C#】

using Spire.Pdf;
using Spire.Pdf.Graphics; namespace ReplaceImage
{
class Program
{
static void Main(string[] args)
{
//实例化PdfDocument并加载PDF文档
PdfDocument doc = new PdfDocument();
doc.LoadFromFile("郁金香.pdf"); //获取加载的 PDF 文件的第一页
PdfPageBase page = doc.Pages[0]; //加载要替换现有图像的新图像。
PdfImage image = PdfImage.FromFile("郁金香2.jpg"); //用新加载的图像替换 PDF 文件上的第一个图像
page.ReplaceImage(0, image); //保存文档
doc.SaveToFile("结果文档.pdf");
}
}
}

【VB.NET】

Imports Spire.Pdf
Imports Spire.Pdf.Graphics Namespace ReplaceImage
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'实例化PdfDocument并加载PDF文档
Dim doc As PdfDocument = New PdfDocument()
doc.LoadFromFile("郁金香.pdf") '获取加载的 PDF 文件的第一页
Dim page As PdfPageBase = doc.Pages(0) '加载要替换现有图像的新图像。
Dim image As PdfImage = PdfImage.FromFile("郁金香2.jpg") '用新加载的图像替换 PDF 文件上的第一个图像
page.ReplaceImage(0, image) '保存文档
doc.SaveToFile("结果文档.pdf")
End Sub
End Class
End Namespace

效果图:

注意:

测试代码中的文件路径为程序 Debug 路径,仅供参考,文件路径可自定义为其他路径。

C#/VB.NET 替换 PDF 文件上的现有图像的更多相关文章

  1. iOS:quartz2D绘图(在PDF文件上绘制图片)

    quartz2D还可以在PDF文件上绘制图片,它有自己的PDF Graphics Context上下文,通过UIGraphicsBeginPDFContextToFile方法开始上下文后就可以绘制图片 ...

  2. PHP PDF文件上传

    /** * 上传PDF文件 */ function UploadPdf(){ if(is_array($_FILES)){ $tmp_file = $_FILES['pdf'] ['tmp_name' ...

  3. 阿里云OSS下载pdf文件,并在pdf文件上添加水印

    代码: 兵马未动,粮草先行 作者: 传说中的汽水枪 如有错误,请留言指正,欢迎一起探讨. 转载请注明出处. 公司要求从阿里云OSS下载pdf文件并且需要添加水印. 因此这里总结一下. 首先添加了一个F ...

  4. 将HTML页面自动保存为PDF文件并上传的两种方式(一)-前端(react)方式

    一.业务场景 公司的样本检测报告以React页面的形式生成,已调整为A4大小的样式并已实现分页,业务上需要将这个网页生成PDF文件,并上传到服务器,后续会将这个文件发送给客户(这里不考虑). 二.原来 ...

  5. C# 给PDF文件添加水印

      水印种类及功能介绍 PDF水印分为两种:文本水印和图片水印.文本水印一般被用在商业领域,提醒读者该文档是受版权保护的,其他人不能抄袭或者免费使用.除了这个特征,水印还可以用来标记这个文档 的一些基 ...

  6. 根据PDF模板生成PDF文件(基于iTextSharp)

    根据PDF模板生成PDF文件,这里主要借助iTextSharp工具来完成.场景是这样的,假如要做一个电子协议,用过通过在线填写表单数据,然后系统根据用户填写的数据,生成电子档的协议.原理很简单,但是每 ...

  7. 使用itext直接替换PDF中的文本

    直接说问题,itext没有直接提供替换PDF中文本的接口(查看资料得到的结论是PDF不支持这种操作),不过存在解决思路:在需要替换的文本上覆盖新的文本.按照这个思路我们需要解决以下几个问题: itex ...

  8. 你以为的ASP.NET文件上传大小限制是你以为的吗

    我们以为的文件大小限制 我们大家都知道ASP.NET为我们提供了文件上传服务器控件FileUpload,默认情况下可上传的最大文件为4M,如果要改变可上传文件大小限制,那么我们可以在web.confi ...

  9. ASP.NET文件上传大小的限制解决方案

    我们大家都知道ASP.NET为我们提供了文件上传服务器控件FileUpload,默认情况下可上传的最大文件为4M,如果要改变可上传文件大小限制,那么我们可以在web.config中的httpRunti ...

随机推荐

  1. ML第一周学习小结

    最近的学习内容为<Python机器学习基础教程>这本书 从第一章开始,慢慢来,比较快. 一下为我的本周机器学习小结,以及下周的Flag. 本周收获 总结一下本周学习内容: 1.了解到机器学 ...

  2. 「文化课 · 校园生活」街舞社演出 & 校园十佳歌手决赛

    女孩子跳舞很好看(流鼻血),男孩子跳舞很骚,跳的很有感觉.

  3. 意味着JNPF迈入新时代的3.4版本,与3.3.3版本有着哪些功能区别呢?

    在线开发‍ 3.3.3版本 同一个功能分功能设计和移动设计 功能设计没有更换模式 功能设计没有同步菜单 功能设计和移动设计无表模式 3.4.1版本 同一个功能可以在功能设计里面设计,根据客户需求自己选 ...

  4. 10分钟学会 API 测试 !

    本文面向对象主要是后端开发人员   API 开发好之后,我们需要对 API 进行简单的调试,确保 API 可以跑通再提交给前端人员进行对接或者是测试人员对 API 进行测试:   在测试过程中我们关注 ...

  5. isprime

    C++实现求素数个数 问题描述 求1~n的素数个数(例:n=10) 1 2 3 4 5 6 7 8 9 10 prime 2 3 5 7 not prime 1 4 6 8 9 10 素数又称质数.所 ...

  6. 【Golang】创建有配置参数的结构体时,可选参数应该怎么传?

    写在前面的话 Golang中构建结构体的时候,需要通过可选参数方式创建,我们怎么样设计一个灵活的API来初始化结构体呢. 让我们通过如下的代码片段,一步一步说明基于可选参数模式的灵活 API 怎么设计 ...

  7. C#/VB 数据库连接字符串大全

    C#/VB 数据库连接字符串大全 https://www.connectionstrings.com/ SQL Server常用 Standard Security Server=myServerAd ...

  8. 腾讯视频的qlv格式转换为mp4格式

    1.点击设置->下载设置->缓存管理 下的文件目录复制; 2复制在 我的电脑路径栏目中 找到缓存目录 文件夹vodcache; 3.打开视频对应文件; 4.打开cmd命令窗口 5.跳转 到 ...

  9. 关于一次Web线下面试的思考

    前言: 今天面试一家Web前端的公司,由于跟初筛的面试官关系挺好,按理来说我在第一次线上面试就应该被淘汰了(呜呜呜),接下来是线下面试,不出意外的话,我凉了.但是这些天的面试经验并非全无收获.我的线下 ...

  10. WPF第三方控件,只能输入数字型数据

    话不多说,根据最近项目需求,为了减少输入验证等相关代码量,需要此控件 先上效果图 默认样式是这样,自己可以根据需求修改外形,但我更喜欢它自带的简洁版 有人可能会问怎么实现的呢?其实很简单,我们设置它的 ...