PDF 工具

如何在 C++ 中將 PDF 轉換為 PDFA

發佈 2023年11月14日
分享:

可攜式文件格式 (PDF) 一直是跨不同平台共享文件的首選格式。然而,隨著數位歸檔的重要性日益增加,需要以標準化格式來歸檔文件,以確保長期保存和可訪問性。PDF/A (PDFA) 格式專門為此設計,提供一個穩定且獨立的格式,適合用於歸檔。

理解 PDF/A

PDF/A 是一種經 ISO 標準化的 PDF 變體,用於長期保存文件,確保內容的可訪問性和完整性。與普通 PDF 文件相比,PDF/A 文件具有特定的限制,以確保其穩健性和自給自足。

本文指導您使用 QPDF 庫在 C++ 中將 PDF 文檔轉換為 PDF/A 格式。QPDF 是一個強大的 C++ 庫,使開發人員能夠以編程方式管理和轉換 PDF 文檔,包括只需幾行代碼即可進行 PDF 到 PDF/A 的轉換。

QPDF C++ 庫

QPDF 是一個專為使用、轉換和解析PDF文件而設計的C++庫和命令行工具。它允許開發人員以程式方式訪問和操作PDF文件的內容,並支援文字。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 IDE。

  2. 創建一個新項目: 點擊頂部菜單中的 File,然後選擇 New,接著選擇 Project

  3. 選擇項目類型:New from template 窗口中,選擇 Console application,然後點擊 Go。選擇 C/C++ 語言並點擊 Next

  4. 輸入項目詳情:Project title 字段中提供一個項目名稱。 (例如:"PDFtoPDFA")1. 選擇儲存專案檔案的位置,然後點擊 下一步

  5. 選擇編譯器: 選擇一個編譯器,如有需要,從列表中手動選擇一個。點擊 完成

將 QPDF 添加到專案中

在 Code::Blocks 中包含 QPDF 標頭檔案,請按以下步驟操作:

  1. 在選單中點擊 Project
  2. 從上下文選單中選擇 Build options
  3. Build options 對話框中,前往 Search directories 標籤。
  4. Compiler 標籤中,點擊 Add 按鈕並瀏覽到包含 QPDF 標頭檔案的目錄。 (通常位於 include 資料夾中).

  5. 然後在 連結 標籤中,點擊 添加 按鈕,並包括 libbin 目錄。

  6. 點擊 確定 關閉 構建選項 對話框。

另外,您需要在連結階段與 QPDF 庫建立連接。請按照以下步驟操作:

  1. 構建選項 對話框中,轉到 連結器設置 標籤。

  2. 連結庫 下,點擊 添加,然後瀏覽到包含 QPDF 庫文件的目錄。 (通常在 Windows 上具有 .a.lib 文件擴展名).

  3. 再次點擊 Add,並輸入 QPDF 庫的名稱 (例如,libqpdf.aqpdf.lib)4. 按一下 確定 關閉 建置選項 對話方塊。

將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 函數,將輸入文件路徑作為參數傳遞。

創建 QPDFWriter 對象以編寫 PDF/A 文件

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

一個名為writerQPDFWriter對象被創建用於寫入輸出PDF/A文件。

設定 PDF/A 合規並轉換 PDF 文件

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

此代碼使用 setQDFMode 設置 PDF/A 合規性(真)writer對象上。write()` function 將 PDF 文件轉換並將輸出保存到 PDF/A 檔案。

輸出

輸出檔案為不可編輯且符合PDF/A規範:

如何在C++中將PDF轉換為PDF/A:圖2

將 PDF 轉換為 PDF/A 在 C

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函式庫將標準PDF文件轉換為PDF/A格式。PDF/A符合性確保內容的保存和可訪問性,使其非常適合於存檔。

IronPDF還支持各種格式的轉換,如HTML、圖像和Word文檔到PDF文件。更多資訊,請訪問這個 網站.

IronPDF 提供了一個 免費試用 測試商用生產的功能。您可以從 下載軟體 這裡.

< 上一頁
如何在 Android 手機上查看 PDF 檔案
下一個 >
如何向 PDF 文件添加頁碼

準備開始了嗎? 版本: 2024.10 剛剛發布

免費 NuGet 下載 總下載次數: 10,993,239 查看許可證 >