PDF 工具

如何在C++中将PDF转换为PDFA

可移植文档格式 (PDF) 一直是跨各种平台共享文档的首选格式。 然而,随着数字存档的重要性日益增加,人们越来越需要以标准化格式存档文件,以确保文件的长期保存和可访问性。 PDF/A(PDFA)格式专门为此目的设计,提供了一种稳定且独立的格式,适合用于归档。

理解 PDF/A

PDF/A 是 ISO 标准化的 PDF 变体,旨在长期保存文档,保持内容的可访问性和完整性。 与普通的 PDF 文件相比,PDF/A 文件有特定的限制,以确保其稳健性和自足性。

本文将指导您使用 C# 中的 QPDF 库将 PDF 文档转换为 PDF/A 格式。 QPDF 是一个功能强大的 C++ 库,只需几行代码,开发人员就能以编程方式管理和转换 PDF 文档,包括 PDF 到 PDF/A 的转换。

QPDF C# 库

QPDF 是一个 C++ 库和命令行工具,旨在支持处理、转换和解析 PDF 文件。 它允许开发人员以编程方式访问和处理 PDF 文件的内容,并支持 word。 QPDF 是一个开源项目,提供一系列功能,包括加密、解密、线性化、优化和 PDF/A 一致性。

先决条件

在开始之前,请确保您已做好以下准备:

  1. Code::Blocks IDE:从官方网站(Code::Blocks 官方网站)下载并安装Code::Blocks

  2. QPDF库:从QPDF网站(QPDF官方站点)下载适用于您的操作系统的最新版本的QPDF库。

创建 PDF 转 PDF/A 项目

  1. 打开 Code::Blocks:在您的计算机上启动 Code::Blocks 集成开发环境。

  2. 创建新项目:在顶部菜单中点击文件,然后选择新建,接着选择项目

  3. 选择项目类型:从模板新建窗口中,选择控制台应用程序并点击启动。 选择C/C++语言,然后点击下一步

  4. 输入项目详情:项目标题字段中提供项目名称(例如,“PDFtoPDFA”)。 选择保存项目文件的位置,然后点击下一步

  5. 选择编译器:选择一个编译器,如有需要,从列表中手动选择一个。点击完成

将 QPDF 添加到项目中

要在 Code::Blocks 中包含 QPDF 头文件,请按以下步骤操作:

  1. 在菜单中点击项目

  2. 从上下文菜单中选择构建选项

  3. 构建选项 对话框中,转到 搜索 目录选项卡。

  4. 编译器选项卡中,点击添加按钮,然后浏览到包含 QPDF 头文件的目录(通常位于include文件夹中)。

  5. 然后,在链接选项卡中,点击添加按钮,并包含libbin目录。

  6. 点击确定以关闭构建选项对话框。

    此外,您还需要在链接阶段与 QPDF 库建立连接。 遵循以下步骤:

  7. 构建选项对话框中,进入链接器设置选项卡。

  8. 链接库下,点击添加,然后浏览到包含QPDF库文件的目录(通常在Windows上具有.a.lib文件扩展名)。

  9. 再次点击添加,然后输入QPDF库的名称(例如,libqpdf.aqpdf.lib)。

  10. 点击确定以关闭构建选项对话框。

将 PDF 转换为 PDF/A 文件的步骤

包含必要的头文件

#include <iostream>
#include <qpdf/QPDF.hh>
#include <qpdf/QPDFWriter.hh>
#include <iostream>
#include <qpdf/QPDF.hh>
#include <qpdf/QPDFWriter.hh>
C++

此代码包含用于处理 C++ 标准输入/输出的基本头文件 (iostream) 和 QPDF 库。

为输入和输出文件设置路径

在主函数(C++程序的起始点)中,为输入和输出文件设置路径:

std::string input_pdf_path = "input.pdf";
std::string output_pdf_a_path = "output.pdfa";
std::string input_pdf_path = "input.pdf";
std::string output_pdf_a_path = "output.pdfa";
C++

这两行代码声明并初始化了两个std::string类型的变量。 这些行声明和初始化输入("input.pdf")和输出 PDF/A("output.pdfa")路径的变量。

输入文件

输入文件为可编辑表单:

如何在 C++ 中将 PDF 转换为 PDF/A:图 1

为 PDF 文件创建 QPDF 对象

QPDF input_pdf;
input_pdf.processFile(input_pdf_path.c_str());
QPDF input_pdf;
input_pdf.processFile(input_pdf_path.c_str());
C++

创建了一个名为input_pdfQPDF对象。 processFile 函数用于 input_pdf 对象,传递输入文件路径作为参数。

创建QPDFWriter对象以编写PDF/A文件

QPDFWriter writer(input_pdf, output_pdf_a_path.c_str());
QPDFWriter writer(input_pdf, output_pdf_a_path.c_str());
C++

创建一个QPDFWriter对象writer,用于写入输出的PDF/A文件。

设置 PDF/A 一致性并转换 PDF 文档

writer.setQDFMode(true);
writer.write();
writer.setQDFMode(true);
writer.write();
C++

此代码在writer对象上使用setQDFMode(true)设置PDF/A合规性。 write()函数对PDF文档进行转换,并将输出保存为PDF/A文件。

输出

输出文件不可编辑并符合 PDF/A 标准:

如何在 C++ 中将 PDF 转换为 PDF/A:图 2

在 C# 中将 PDF 转换为 PDF/A;

IronPDF Library 是一个 .NET PDF 库,提供全面的功能,用于处理 PDF 文档。 它允许开发人员使用 C# 或 VB.NET 创建、修改和转换 PDF 文档。 用户可以使用IronPDF从HTML、ASPX、Word文档(.doc)或图像动态生成PDF文件,并结合图表、表格和图像数据(如JPG、PNG格式)等丰富元素。 它还可以合并、分割和编辑现有 PDF 文件的页面,以及对 PDF 数据进行文本提取和内容操作。

IronPDF 仅需几行代码即可实现 PDF 到 PDF/A-3b 格式 标准的转换。 以下代码有助于完成此任务:

using IronPdf;

// Create a PdfDocument object or open any PDF file
PdfDocument pdf = PdfDocument.FromFile("wikipedia.pdf");

// Use the SaveAsPdfA method to save to file
pdf.SaveAsPdfA("pdf-a3-wikipedia.pdf", PdfAVersions.PdfA3);
using IronPdf;

// Create a PdfDocument object or open any PDF file
PdfDocument pdf = PdfDocument.FromFile("wikipedia.pdf");

// Use the SaveAsPdfA method to save to file
pdf.SaveAsPdfA("pdf-a3-wikipedia.pdf", PdfAVersions.PdfA3);
Imports IronPdf

' Create a PdfDocument object or open any PDF file
Private pdf As PdfDocument = PdfDocument.FromFile("wikipedia.pdf")

' Use the SaveAsPdfA method to save to file
pdf.SaveAsPdfA("pdf-a3-wikipedia.pdf", PdfAVersions.PdfA3)
$vbLabelText   $csharpLabel

结论

本文将指导您使用 QPDF 库以 C++ 方式将标准 PDF 文档转换为 PDF/A 格式。 PDF/A 合规性可确保内容的保存和可访问性,使其成为存档的理想选择。

IronPDF 还支持各种格式转换,如将 HTML、图像和 Word 文档转换为 PDF 文件。 欲了解更多信息,请访问此IronPDF 文档页面

IronPDF 提供一个免费的 IronPDF 试用来测试其商业生产功能。 直接从首页下载IronPDF

Chipego
软件工程师
Chipego 拥有出色的倾听技巧,这帮助他理解客户问题并提供智能解决方案。他在 2023 年加入 Iron Software 团队,此前他获得了信息技术学士学位。IronPDF 和 IronOCR 是 Chipego 主要专注的两个产品,但他对所有产品的了解每天都在增长,因为他不断找到支持客户的新方法。他喜欢 Iron Software 的合作氛围,公司各地的团队成员贡献他们丰富的经验,以提供有效的创新解决方案。当 Chipego 离开办公桌时,你经常可以发现他在看书或踢足球。
< 前一页
如何在安卓手机上查看PDF文件
下一步 >
如何向PDF文件添加页码