跳過到頁腳內容
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 文件的內容,具有廣泛的支援功能。 QPDF 是一個開源專案,提供一系列功能,包括加密、解密、線性化、優化和 PDF/A 合規性。

先決條件

在開始之前,請確保您已具備以下設置:

  1. Code::Blocks IDE:從官方網站下載並安裝 Code::Blocks (Code::Blocks 官方網站)。
  2. QPDF Library:從 QPDF 網站下載適合您作業系統的最新 QPDF 程式庫版本 (QPDF 官方網站)。

創建 PDF 到 PDF/A 專案

  1. 打開 Code::Blocks:在您的電腦上啟動 Code::Blocks IDE。
  2. 創建新專案:點擊頂部菜單中的 File,然後依次選擇 NewProject
  3. 選擇專案類型:New from template 視窗中,選擇 Console application,然後點擊 Go。 選擇 C/C++ 語言,然後點擊 Next
  4. 輸入專案詳情:Project title 欄位中提供專案名稱 (例如,"PDFtoPDFA")。 選擇存儲專案文件的位置,然後點擊 Next
  5. 選擇編譯器:選擇一個編譯器,如果需要,從列表中手動選擇一個。點擊 Finish

將 QPDF 添加到專案

要在 Code::Blocks 中包含 QPDF 標頭文件,請按以下步驟操作:

  1. 點擊菜單中的 Project
  2. 從上下文選單中選擇 Build options
  3. Build options 對話框中,轉到 Search directories 標籤。
  4. Compiler 標籤下,點擊 Add 按鈕並瀏覽到包含 QPDF 標頭文件的目錄(通常位於 include 資料夾中)。
  5. 然後,在 Link 標籤下,點擊 Add 按鈕並包含 libbin 目錄。
  6. 點擊 OK 以關閉 Build options 對話框。

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

  1. Build options 對話框中,轉到 Linker settings 標籤。
  2. Link Libraries 下,點擊 Add,然後瀏覽到包含 QPDF 程式庫文件的目錄(在 Windows 上通常是 .a.lib 文件擴展名)。
  3. 再次點擊 Add,並輸入 QPDF 程式庫的名稱(例如,libqpdf.aqpdf.lib)。
  4. 點擊 OK 以關閉 Build options 對話框。

將 PDF 轉換為 PDF/A 文件的步驟

包含必要的標頭文件

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

// The above code includes necessary header files for standard input/output operations and QPDF functionalities.
#include <iostream>
#include <qpdf/QPDF.hh>
#include <qpdf/QPDFWriter.hh>

// The above code includes necessary header files for standard input/output operations and QPDF functionalities.
C++

設置輸入和輸出文件的路徑

main 函數中(C++ 程式的起始點),設置輸入和輸出文件的路徑:

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

// These lines declare and initialize strings to store the paths of the input PDF and the output PDF/A file.
std::string input_pdf_path = "input.pdf";
std::string output_pdf_a_path = "output.pdfa";

// These lines declare and initialize strings to store the paths of the input PDF and the output PDF/A file.
C++

為 PDF 文件創建 QPDF 對象

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

// Create a QPDF object for the input PDF and process the file to prepare it for conversion.
QPDF input_pdf;
input_pdf.processFile(input_pdf_path.c_str());

// Create a QPDF object for the input PDF and process the file to prepare it for conversion.
C++

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

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

// This creates a QPDFWriter object to handle writing the converted PDF/A file.
QPDFWriter writer(input_pdf, output_pdf_a_path.c_str());

// This creates a QPDFWriter object to handle writing the converted PDF/A file.
C++

設置 PDF/A 合規性並轉換 PDF 文件

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

// Set the QPDFWriter to operate in PDF/A compliant mode and write the output file.
writer.setQDFMode(true);
writer.write();

// Set the QPDFWriter to operate in PDF/A compliant mode and write the output file.
C++

輸出

輸出文件是不可編輯的且符合 PDF/A 標準:

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

Convert PDF to PDF/A in C#

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);

// The above C# code demonstrates the use of IronPDF to convert a PDF document to a PDF/A-3b compliant file.
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);

// The above C# code demonstrates the use of IronPDF to convert a PDF document to a PDF/A-3b compliant file.
$vbLabelText   $csharpLabel

結論

這篇文章引導您通過 C++ 使用 QPDF 程式庫將標準 PDF 文件轉換為 PDF/A 格式。 PDF/A 合規性確保內容的保存和可訪問性,這使其成為存檔的理想選擇。

IronPDF 也支持各種格式轉換,例如 HTML、影像和 Word 文件到 PDF 文件。 如需進一步了解,請造訪此 IronPDF 文件頁面

IronPDF 提供 IronPDF 的免費試用來測試商業生產功能。 直接下載 IronPDF

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me