C++でHTMLをPDFに変換する方法
HTMLファイルやコンテンツをPDFページに変換する能力は、多くのアプリケーションにおいて貴重な機能です。 C++では、HTMLをPDF形式のファイルに生成するためにゼロからアプリケーションを構築するのは非常に骨が折れることがあります。 この記事では、wkhtmltopdfライブラリを使用してC++でHTMLをPDFに変換する方法を探求します。
WKHTMLTOPDFライブラリ
wkhtmltopdfは、HTMLのプレーンテキストページを高品質なPDFドキュメントにシームレスに変換するオープンソースのコマンドラインツールです。 この機能をC++プログラム内で活用することで、簡単にHTML文字列のコンテンツをPDF形式に変換できます。 wkhtmltopdfライブラリを使用し、C++でHTMLページからPDFへの変換プロセスをステップバイステップで掘り下げましょう。
前提条件
C++でHTMLからPDFファイルへのコンバータを作成するには、以下の前提条件を満たしてください。
- システムにGCCやClangなどのC++コンパイラがインストールされていること。
- wkhtmltopdfライブラリがインストールされていること。 公式のwkhtmltopdfウェブサイトから最新バージョンをダウンロードし、オペレーティングシステムの指示に従ってインストールしてください。
- C++プログラミングの基本的な知識。
Code::BlocksでC++ HtmltoPdfプロジェクトを作成する
Code::BlocksでC++のPDF変換プロジェクトを作成するには、以下の手順に従ってください。
- Code::Blocks IDEを開きます。
- "ファイル"メニューに進み、"新規作成"、次に"プロジェクト"を選択して新しいプロジェクトウィザードを開きます。
- 新しいプロジェクトウィザードで"コンソールアプリケーション"を選択します。
- C++言語を選択します。 プロジェクトタイトルと保存したい場所を設定します。 "次へ"をクリックして進みます。
- 適切なC++コンパイラとビルドターゲットを選択し、例えばデバッグやリリース。 "完了"をクリックしてプロジェクトを作成します。
検索ディレクトリの設定
Code::Blocksが必要なヘッダーファイルを見つけられるようにするために、検索ディレクトリを設定する必要があります。
- メニューバーの"プロジェクト"メニューをクリックして"ビルドオプション"を選択します。 "デバッグ"を選択していることを確認してください。
- "ビルドオプション"ダイアログボックスで、"検索ディレクトリ"タブを選択します。
- "コンパイラ"タブの下、"追加"ボタンをクリックします。
- wkhtmltoxヘッダーファイルが格納されているディレクトリ(例:C:\Program Files\wkhtmltopdf\include)を参照し、選択します。
- 最後に、"OK"をクリックしてダイアログボックスを閉じます。

ライブラリのリンク
wkhtmltoxライブラリにリンクするには、以下のステップに従ってください。
- 再度メニューバーの"プロジェクト"メニューをクリックして"ビルドオプション"を選択します。 "デバッグ"を選択していることを確認してください。
- "ビルドオプション"ダイアログボックスで"リンカー設定"タブを選択します。
- "リンクライブラリ"タブの下、"追加"ボタンをクリックします。
- wkhtmltoxライブラリファイルが格納されているディレクトリ(例:C:\Program Files\wkhtmltopdf\lib)を参照し、適切なライブラリファイルを選択します。
- "開く"をクリックしてライブラリをプロジェクトに追加します。
- 最後に、"OK"をクリックしてダイアログボックスを閉じます。

C++で簡単にHTMLをPDFに変換する手順
ステップ1:HTMLファイルを変換するライブラリのインクルード
まず始めに、C++プログラム内でwkhtmltopdfライブラリを利用するための必要なヘッダーファイルをインクルードします。 次の例のように、main.cppソースコードファイルの最初に以下のヘッダーファイルをインクルードしてください。
#include <iostream>
#include <fstream>
#include <string>
#include <wkhtmltox/pdf.h>#include <iostream>
#include <fstream>
#include <string>
#include <wkhtmltox/pdf.h>ステップ2:コンバータの初期化
HTMLをPDFに変換するためには、wkhtmltopdfコンバータを初期化する必要があります。 コードは次の通りです:
// Initialize the wkhtmltopdf library
wkhtmltopdf_init(false);
// Create global settings object
wkhtmltopdf_global_settings* gs = wkhtmltopdf_create_global_settings();
// Create object settings object
wkhtmltopdf_object_settings* os = wkhtmltopdf_create_object_settings();
// Create the PDF converter with global settings
wkhtmltopdf_converter* converter = wkhtmltopdf_create_converter(gs);// Initialize the wkhtmltopdf library
wkhtmltopdf_init(false);
// Create global settings object
wkhtmltopdf_global_settings* gs = wkhtmltopdf_create_global_settings();
// Create object settings object
wkhtmltopdf_object_settings* os = wkhtmltopdf_create_object_settings();
// Create the PDF converter with global settings
wkhtmltopdf_converter* converter = wkhtmltopdf_create_converter(gs);ステップ3:HTMLコンテンツの設定
それでは、PDFに変換する必要があるHTMLコンテンツを提供しましょう。 HTMLファイルを読み込むか、直接文字列を提供することができます。
std::string htmlString = "<html><body><h1>Hello, World!</h1></body></html>";
// Add the HTML content to the converter
wkhtmltopdf_add_object(converter, os, htmlString.c_str());std::string htmlString = "<html><body><h1>Hello, World!</h1></body></html>";
// Add the HTML content to the converter
wkhtmltopdf_add_object(converter, os, htmlString.c_str());ステップ4:HTMLをPDFに変換
コンバータとHTMLコンテンツの準備が整ったところで、HTMLをPDFファイルに変換することができます。次のコードスニペットを使用してください。
// Perform the actual conversion
if (!wkhtmltopdf_convert(converter)) {
std::cerr << "Conversion failed!" << std::endl;
}// Perform the actual conversion
if (!wkhtmltopdf_convert(converter)) {
std::cerr << "Conversion failed!" << std::endl;
}ステップ5:メモリバッファとして出力を取得
wkhtmltopdf_get_output関数を使用すると、PDFデータがメモリバッファストリームとして取得できます。 また、PDFの長さも返します。 次の例はこのタスクを実行します。
// Retrieve the PDF data in memory buffer
const unsigned char* pdfData;
int pdfLength = wkhtmltopdf_get_output(converter, &pdfData);// Retrieve the PDF data in memory buffer
const unsigned char* pdfData;
int pdfLength = wkhtmltopdf_get_output(converter, &pdfData);ステップ6:PDFファイルの保存
変換が完了すると、生成されたPDFファイルをディスクに保存する必要があります。 PDFを保存したいファイルパスを指定してください。 その後、出力ファイルストリームを使用して、ファイルをバイナリモードで開き、pdfDataを書き込んでください。 最後にファイルを閉じます。
const char* outputPath = "file.pdf";
std::ofstream outputFile(outputPath, std::ios::binary);
// Write the PDF data to the file
outputFile.write(reinterpret_cast<const char*>(pdfData), pdfLength);
outputFile.close();const char* outputPath = "file.pdf";
std::ofstream outputFile(outputPath, std::ios::binary);
// Write the PDF data to the file
outputFile.write(reinterpret_cast<const char*>(pdfData), pdfLength);
outputFile.close();ステップ7:クリーンアップ
HTMLをPDFに変換した後、wkhtmltopdfにより割り当てられたリソースをクリーンアップすることが重要です。
// Clean up the converter and settings
wkhtmltopdf_destroy_converter(converter);
wkhtmltopdf_destroy_object_settings(os);
wkhtmltopdf_destroy_global_settings(gs);
// Deinitialize the wkhtmltopdf library
wkhtmltopdf_deinit();
std::cout << "PDF saved successfully." << std::endl;// Clean up the converter and settings
wkhtmltopdf_destroy_converter(converter);
wkhtmltopdf_destroy_object_settings(os);
wkhtmltopdf_destroy_global_settings(gs);
// Deinitialize the wkhtmltopdf library
wkhtmltopdf_deinit();
std::cout << "PDF saved successfully." << std::endl;ステップ8:コードを実行してPDFファイルを生成
プロジェクトをビルドし、F9を使用してコードを実行します。出力が生成され、プロジェクトフォルダーに保存されます。 結果として得られるPDFは次のようになります。

HTMLファイルからC#でPDFファイルへ
IronPDF
IronPDF HTML-to-PDF Conversion Libraryは、開発者がHTMLコンテンツから簡単にPDFドキュメントを生成できる堅牢な.NETおよび.NET Core C#ライブラリです。 これは、HTMLウェブページをPDFに変換するプロセスを簡素化し、さまざまなアプリケーションやユースケースで人気の選択肢になります。
IronPDFの主な利点の一つは、その汎用性です。 単純なHTMLドキュメントだけでなく、CSSスタイリング、JavaScriptインタラクション、さらには動的コンテンツを含む複雑なウェブページの変換もサポートしています。 さらに、変換メソッドへ迅速にアクセスして異なるPDFコンバーターを開発することができます。
次にC#でIronPDFを使用してHTML文字列をPDFに変換するコード例を示します。
using IronPdf;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create PDF content from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export to a file or Stream
pdf.SaveAs("output.pdf");using IronPdf;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create PDF content from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export to a file or Stream
pdf.SaveAs("output.pdf");PDF出力:

さまざまなHTMLファイル、ウェブページURL、画像をPDFに変換する方法の詳細については、このHTML to PDFコード例を参照してください。
IronPDFを使用すると、.NET Framework 言語でHTMLコンテンツからのPDFファイル生成が簡単な作業になります。 直感的な API と広範な機能セットにより、C# プロジェクト内でHTMLをPDFに変換する必要がある開発者にとって貴重なツールになります。 レポートや請求書など、正確なHTMLからPDFへの変換を必要とする他のドキュメントを生成する場合でも、IronPDFは信頼性が高く効率的なソリューションです。
IronPDFは開発目的のために無料ですが、商業利用にはライセンスが必要です。 商業利用のためにその完全な機能を試用するためのIronPDFのフル機能の無料試用版も提供しています。 ソフトウェアはIronPDFをダウンロードから入手できます。






