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是一個 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. 建立新專案: 在頂部菜單中點擊檔案,然後選擇新增,接著選擇專案

  3. 選擇專案類型:從範本創建新專案 的視窗中,選擇 控制臺應用程式,然後點擊 Go。 選擇 C/C++ 語言,然後點擊 下一步

  4. 輸入專案詳細資訊: 請在專案名稱欄位中提供專案名稱(例如:"PDFtoPDFA"). 選擇專案文件的儲存位置,然後點擊下一步

  5. 選擇編譯器: 選擇一個編譯器,如果需要,從清單中手動選擇一個。點擊完成

將 QPDF 添加到專案中

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

  1. 在選單中點擊專案

  2. 從右鍵選單中選擇建置選項

  3. 構建選項對話框中,前往搜索目錄選項卡。

  4. 編譯器標籤中,點擊添加按鈕,然後瀏覽到包含 QPDF 頭文件的目錄。(通常位於 include 資料夾中).

  5. 然後,在鏈接標籤中,點擊添加按鈕,並包含libbin目錄。

  6. 確定 關閉 建置選項 對話框。

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

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

  8. Link Libraries 下,點擊 Add,然後瀏覽到包含 QPDF 庫文件的目錄。(通常在 Windows 上具有 .a.lib 文件擴展名).

  9. 再次單擊 Add,然後輸入 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++

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

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

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

此代碼使用 setQDFMode 設置 PDF/A 合規性(真)writer物件上。 write() function 對 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 文件生成 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 格式的 C++ 轉換過程。 PDF/A 合規性確保了內容的保存和可访问性,使其成为归档的理想选择。

IronPDF還支持將各種格式轉換,如HTML、圖片和Word文件轉換為PDF檔案。 如需進一步資訊,請造訪此網站IronPDF 文件頁面.

IronPDF 提供一個IronPDF 免費試用測試商業生產的功能。 直接從首頁下載IronPDF.

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

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

免費 NuGet 下載 總下載次數: 11,622,374 查看許可證 >