PDF 工具

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

发布 2023年十一月14日
分享:

便携式文档格式 (PDF) 一直是在各种平台上共享文档的常用格式。然而,随着数字存档的重要性日益凸显,人们越来越需要以标准化格式存档文件,以确保文件的长期保存和可访问性。PDF/A (PDF/A) 格式就是为此专门设计的,它提供了一种适合存档的稳定、自足的格式。

了解 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 (http://www.codeblocks.org/).

  2. QPDF 库: 从 QPDF 网站为您的操作系统下载最新版本的 QPDF 库。 (https://qpdf.sourceforge.io/).

创建 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 库建立连接。请按照以下步骤操作:

1.在构建选项对话框中,转到链接器设置选项卡。

2.在链接库下,单击添加,然后浏览到包含 QPDF 库文件的目录 (在 Windows 系统中,文件扩展名通常为 .a.lib).

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

4.单击 OK 关闭 Build options 对话框。

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

包含必要的头文件

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

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

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

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

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

这两行声明并初始化了两个类型为 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());

创建名为 input_pdfQPDF 对象。在input_pdf对象上使用processFile函数,并将输入文件路径作为参数传递。

创建用于编写 PDF/A 文件的 QPDFWriter 对象

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

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

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

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

该代码使用 `setQDFMode 设置 PDF/A 一致性(真)写入器 "对象。写()功能对 PDF 文档执行转换,并将输出保存为 PDF/A 文件。

输出

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

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

在 C&num 中将 PDF 转换为 PDF/A;

IronPDF 是一个.NET PDF 库,为处理 PDF 文档提供了全面的功能。它允许开发人员使用 C# 或 VB.NET 创建、修改和转换 PDF 文档。用户可以使用 IronPDF 从 HTML、ASPX、Word 文档中生成 PDF 文件。 (.doc)或图像,并纳入图表、表格和图像等丰富的元素 (如 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)
VB   C#

结论

本文指导读者使用 QPDF 库以 C++ 方式将标准 PDF 文档转换为 PDF/A 格式。PDF/A 合规性可确保内容的保存和可访问性,因此非常适合存档。

IronPDF 还支持各种格式转换,如将 HTML、图像和 Word 文档转换为 PDF 文件。更多信息,请访问 地点.

IronPDF 提供了一个 免费试用 以测试商业生产的功能。您可以从以下网址下载该软件 这里.

< 前一页
如何在安卓手机上查看PDF文件
下一步 >
如何向PDF文件添加页码

准备开始了吗? 版本: 2024.9 刚刚发布

免费NuGet下载 总下载量: 10,731,156 查看许可证 >