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-to-PDF/A 変換を含む PDF 文書の管理と変換をプログラムで行うことができます。

QPDF C++ライブラリ

QPDFは、PDFファイルの操作、変換、および解析をサポートするために設計されたC++ライブラリおよびコマンドラインツールです。 開発者がPDFファイルのコンテンツにプログラムでアクセスおよび操作できるようにし、ワードをサポートします。 QPDF は、暗号化、復号化、線形化、最適化、および PDF/A 準拠を含む幅広い機能を提供するオープンソースプロジェクトです。

前提条件

始める前に、以下の設定が整っていることを確認してください:

  1. Code::Blocks IDE: Code::Blocks を公式ウェブサイト(Code::Blocks Official Site)からダウンロードしてインストールしてください。

  2. QPDFライブラリ: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ヘッダーファイルが含まれているディレクトリを参照します(通常はインクルードフォルダにあります)。

  5. その後、リンクタブで、追加ボタンをクリックし、libおよびbinディレクトリを含めます。

  6. OK をクリックして、ビルドオプション ダイアログを閉じます。

    さらに、リンクフェーズ中にQPDFライブラリとの接続を確立する必要があります。 以下の手順に従ってください:

  7. ビルドオプションダイアログで、リンカ設定タブに移動します。

  8. リンクライブラリの下で、追加をクリックし、QPDFライブラリファイルがあるディレクトリを参照します(通常、Windowsでは.aまたは.libファイル拡張子があります)。

  9. 追加をもう一度クリックして、QPDFライブラリの名前(例: libqpdf.a または qpdf.lib)を入力します。

  10. OK をクリックして、ビルドオプション ダイアログを閉じます。

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++

これらの2行は、std::string型の2つの変数を宣言して初期化します。 これらの行は、入力 ("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_pdfという名前のQPDFオブジェクトが作成されます。 processFile 関数は、引数として入力ファイルパスを渡して、input_pdf オブジェクトで使用されます。

PDF/Aファイルを書き込むためのQPDFWriterオブジェクトを作成する

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

出力PDF/Aファイルを書き込むために、QPDFWriterオブジェクトwriterが作成されます。

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 は、PDFドキュメントを操作するための包括的な機能を提供する.NET 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ライブラリを使用した、標準PDF文書のPDF/A形式へのC++変換について説明します。 PDF/A準拠は、コンテンツの保存とアクセスの確保を保証するため、アーカイブに最適です。

IronPDFは、HTML、画像、Wordドキュメントなどの多様な形式のPDFファイルへの変換もサポートしています。 詳細については、こちらのIronPDF Documentation Pageをご覧ください。

IronPDFは、商用製作の機能をテストするためのIronPDFの無料トライアルを提供しています。 ホームページから直接IronPDFをダウンロード

チペゴ
ソフトウェアエンジニア
チペゴは優れた傾聴能力を持ち、それが顧客の問題を理解し、賢明な解決策を提供する助けとなっています。彼は情報技術の学士号を取得後、2023年にIron Softwareチームに加わりました。現在、彼はIronPDFとIronOCRの2つの製品に注力していますが、顧客をサポートする新しい方法を見つけるにつれて、他の製品に関する知識も日々成長しています。Iron Softwareでの協力的な生活を楽しんでおり、さまざまな経験を持つチームメンバーが集まり、効果的で革新的な解決策を提供することに貢献しています。チペゴがデスクを離れているときは、良い本を楽しんだり、サッカーをしていることが多いです。
< 以前
Android 搭載のスマートフォンで PDF ファイルを表示する方法
次へ >
PDFファイルにページ番号を追加する方法