一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

C#代码轻松实现调整PDF版本

时间:2026-08-06 13:52:06 编辑:袖梨 来源:一聚教程网

在某些平台上传或提交 PDF 文件时,可能会遇到平台要求特定 PDF 版本的情况。如果您的 PDF 文件版本不符合要求,就需要将其转换为兼容的版本,以确保文件能够正常使用。下文会介绍如何通过编程方式实现 PDF 版本之间的转换。

C#代码轻松实现调整PDF版本

安装相关组件

开始之前,您需要在 .NET 项目中添加所需的 PDF 处理组件。相关程序集可以从官方资源中下载,或通过 NuGet 包管理器进行安装。

PM> Install-Package Spire.PDF

在 C# 和 VB.NET 中更改 PDF 版本

通过 .NET PDF 处理组件,可以支持 PDF 1.0 到 PDF 1.7 版本之间的转换。若需要将 PDF 文件转换为更高或更低的版本,可以通过 PdfDocument.FileInfo.Version 属性进行设置。具体步骤如下:

  1. 创建一个 PdfDocument 对象。
  2. 使用 PdfDocument.LoadFromFile() 方法加载示例 PDF 文件。
  3. 通过 PdfDocument.FileInfo.Version 属性,将 PDF 版本修改为目标版本。
  4. 使用 PdfDocument.SaveToFile() 方法保存处理后的文档。

完整示例代码如下:

using Spire.Pdf;namespace ConvertPDFVersion{    class Program    {        static void Main(string[] args)        {            // 创建一个 PdfDocument 对象            PdfDocument pdf = new PdfDocument();            // 加载示例 PDF 文件            pdf.LoadFromFile("sample.pdf");            // 将 PDF 版本更改为 1.7            pdf.FileInfo.Version = PdfVersion.Version1_7;            // 保存结果文件            pdf.SaveToFile("PDFVersion.pdf");        }    }}

知识扩展

在 C# 中调整 PDF 版本,本质上是修改 PDF 文件头中的版本号。市面上主流的几个 .NET PDF 库都可以实现,下面为你整理了几种方案。

方案一:使用 Syncfusion (商业库,功能全面)

Syncfusion 的 Essential PDF 是一个功能强大的 .NET PDF 库。它通过 PdfLoadedDocument.FileStructure.Version 属性来修改版本。

安装 NuGet 包

Install-Package Syncfusion.Pdf.WinForms

核心代码

using Syncfusion.Pdf;using Syncfusion.Pdf.Parsing;// 加载 PDF 文档PdfLoadedDocument document = new PdfLoadedDocument("Input.pdf");// 关闭增量更新(确保版本修改生效)document.FileStructure.IncrementalUpdate = false;// 设置 PDF 版本为 1.7document.FileStructure.Version = PdfVersion.Version1_7;// 保存文档document.Save("Output.pdf");// 关闭文档document.Close(true);

说明

  1. PdfVersion 枚举包含了 Version1_0Version1_7 等选项。
  2. 设置 IncrementalUpdate = false 是为了确保版本修改能正确写入文件。
  3. Syncfusion 提供 30 天免费试用,商业使用需授权。

方案二:使用 Spire.PDF (商业库,API 简洁)

Spire.PDF 同样是一个成熟的 .NET PDF 处理库,通过 PdfDocument.FileInfo.Version 属性即可修改版本。

安装 NuGet 包

Install-Package Spire.PDF

核心代码

using Spire.Pdf;// 创建 PdfDocument 对象并加载 PDFPdfDocument pdf = new PdfDocument();pdf.LoadFromFile("sample.pdf");// 修改 PDF 版本为 1.7pdf.FileInfo.Version = PdfVersion.Version1_7;// 保存结果pdf.SaveToFile("PDFVersion.pdf");

说明

  1. Spire.PDF 支持 PDF 1.0 到 1.7 的版本转换。
  2. 同样提供 30 天免费试用,商业使用需授权。

方案三:使用 iTextSharp (开源/商业,需注意版本限制)

iTextSharp 是 iText 的 .NET 移植版,可以修改 PDF 版本号。

核心思路

  1. 通过 PdfWriterSetPdfVersion 方法,在写入新 PDF 时设置版本。
  2. 对于已存在的 PDF,需要打开 → 修改 → 重新保存,不能直接原地修改。

示例代码(创建新文档时设置版本)

using iTextSharp.text;using iTextSharp.text.pdf;Document document = new Document();PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("output.pdf", FileMode.Create));// 设置 PDF 版本为 1.7writer.SetPdfVersion(PdfWriter.VERSION_1_7);document.Open();// ... 添加内容 ...document.Close();

限制

1.版本只能升不能降SetPdfVersion 只有在设置的版本高于当前版本时才生效。例如,无法将 PDF 1.7 降级为 1.4。

2.仅修改版本号:iTextSharp 只改文件头的版本数字,不会移除该版本不支持的特性。比如,把一个包含 OCG(图层,PDF 1.5 特性)的 PDF 版本号改成 1.4,并不会删除这些图层。

方案四:使用 Aspose.PDF (商业库)

Aspose.PDF 也提供了设置 PDF 版本的功能。

核心方法:通过 PdfPackage.SetPdfVersion 方法设置版本。

// 参考用法(需结合实际 API)// PdfPackage.SetPdfVersion("1.7");

说明:Aspose.PDF 功能非常全面,适合企业级应用,商业使用需授权。

方案五:PdfPig (开源免费,仅支持读取)

PdfPig 是一个开源免费的 PDF 处理库,可以读取 PDF 版本。

using UglyToad.PdfPig;decimal version = document.Version;  // 读取版本号

限制:PdfPig 目前不支持修改或写入 PDF 版本。如果只需要读取版本号,这是个免费的选择。

总结

通过以上步骤,可以使用 .NET PDF 处理工具轻松修改 PDF 文件的版本。只需加载目标 PDF 文档,并通过 PdfDocument.FileInfo.Version 属性设置所需版本,即可将 PDF 转换为更高或更低的版本。该方法操作简单,适用于需要调整 PDF 兼容性或满足不同 PDF 标准要求的文档处理场景。

热门栏目