首页 > 编程语言 >C#/VB.NET 替换 PDF 文件上的现有图像

C#/VB.NET 替换 PDF 文件上的现有图像

时间:2022-08-15 16:25:33浏览次数:58  
标签:文件 VB C# doc Spire 图像 PDF 加载

我们都知道对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 路径,仅供参考,文件路径可自定义为其他路径。

 

标签:文件,VB,C#,doc,Spire,图像,PDF,加载
From: https://www.cnblogs.com/Carina-baby/p/16588661.html

相关文章

  • 14 Django_forms组件之ChoiceField类型
    如果想要灵活应用ChoiceField,那么请看如下:classTransactionRecord(ActiveBaseModel):"""交易记录"""charge_type_class_mapping={1:"success",......
  • C++易忘知识点记录
    隐藏的默认构造函数没有参数的构造函数称为【默认构造函数】如果没有手动定义构造函数,编译器会给你一个【“隐藏的默认构造函数”】如果数据成员使用了【类内初始值】......
  • Linux client with AD authentication login windows SQL Server
    Pre-WorklinuxshouldjoinADsameasSQLServersetspnonwindowsSQLServerforlinuxWindowsSQLServerC:\Users\Administrator>setspn-LsqladminRegi......
  • ServletContext对象概述、ServletContext获取
    ServletContext对象概述1,概念:代表整web应用,可以和程序容器(服务器)来通信2,功能:获取MIME类型域对象:共享数据获取文件的真实(服务器)路径......
  • .vscodeignore All In One
    .vscodeignoreAllInOne#.vscode/**.vscode-test/**https://github.com/xgqfrms/vscode/blob/master/.vscodeignoreAutocorrectfromquotestobackticksThis......
  • leetcode698-划分为k个相等的子集
    划分为k个相等的子集回溯+剪枝首先先判断总和sum能否被整除。然后对数组排序,从后向前遍历。如果当前的值大于target,表明最大值已经超出范围,直接返回false如果当前的......
  • web和vue-cli
    1、什么是WebpackWebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其打包......
  • python itertools库 itertools.product() 用法 产生多个序列的笛卡尔积
    python itertools.product()用来产生多个序列的笛卡尔积,参数可两个或者多个序列,元组tulple,列表list,range生成的序列,集合set都可作为参数1importitertools2#par......
  • Mac 中配置 Open Tabby here
    系统与偏好设置->扩展->访达->OpenTabbyhere系统与偏好设置->键盘->快捷键->OpenTabbyhere之后就可以在右键使用OpenTabbyhere了:......
  • 使用iterator调用map中的(first)键和(second)值
    #include<iostream>#include<string>#include<map>usingnamespacestd;intmain(){//c++里面的map容器的迭代器里面有个first和second,分别指向键值和数......