ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
PDF(ポータブルドキュメントフォーマット)ファイルは、異なるプラットフォーム間で一貫した形式でドキュメントを共有および保存するために広く使用されています。 この記事では、wkhtmltopdfライブラリを使用してC++でPDFファイルを生成する方法を探ります。 これは、HTMLコンテンツをPDFファイルに変換するためのオープンソースのコマンドラインツールです。 このライブラリの力を活用することで、C++アプリケーション内でHTMLコンテンツからPDFドキュメントをプログラムによって生成することができます。
wkhtmltopdfは、HTMLウェブページまたはHTMLコンテンツをPDFドキュメントに変換するオープンソースのコマンドラインツールおよびレンダリングエンジンです。 それはWebKitレンダリングエンジンを利用して、HTML、CSS、JavaScriptを解析およびレンダリングし、そのレンダリングされたコンテンツに基づいてPDFファイルを生成します。
「wkhtmltopdf C++ ライブラリ」(「wkhtmltopdf C API」としても知られています). このライブラリは、C++アプリケーション内でHTMLコンテンツから直接PDFファイルを生成するため、wkhtmltopdf
コマンドラインツールへのC++インターフェースを提供します。 C++でWkhtmltopdfライブラリを使用してHTMLをPDFに変換する手順を詳しく見ていきましょう。
C++でPDFファイルを作成するには、次のものが必要です:
システムにインストールされたGCCまたはClangなどのC++コンパイラ。 C++プログラミングをサポートする任意のIDEを使用できます。
wkhtmltopdf ライブラリをダウンロードしてインストールしました。 公式サイトから最新バージョンをダウンロードできますwkhtmltopdfウェブサイトお使いのオペレーティングシステムの指示に従ってインストールしてください。
Code::Blocksでプロジェクトを作成し、その後ライブラリフォルダおよびファイルをリンクするための以下の手順に従ってください。他のIDEを使用している場合、オプションが異なるかもしれませんが、プロジェクトでダウンロードしたライブラリを参照する必要があります。
Code::Blocks が必要なヘッダファイルを見つけられるようにするためには、検索ディレクトリを設定する必要があります。
メニューバーの「プロジェクト」メニューをクリックし、「ビルドオプション」を選択します。 「デバッグ」を選択してください。
「ビルドオプション」ダイアログボックスで、「検索ディレクトリ」タブを選択します。
「コンパイラ」タブの下にある「追加」ボタンをクリックしてください。
wkhtmltox ヘッダーファイルが配置されているディレクトリに移動します。(例えば、 C:\Program Files\wkhtmltopdf\include)、そしてそれを選択します。
最後に、「OK」をクリックしてダイアログボックスを閉じます。
wkhtmltoxライブラリにリンクするには、以下の手順に従ってください:
再度、メニューバーの「Project」メニューをクリックし、「Build options」を選択します。 「デバッグ」を選択してください。
「ビルドオプション」ダイアログボックスで、「リンカー設定」タブを選択します。
「リンクライブラリ」タブの下にある「追加」ボタンをクリックします。
wkhtmltox ライブラリファイルがあるディレクトリに移動します。(例えば、C:\Program Files\wkhtmltopdf\lib)適切なライブラリファイルを選択してください。
「開く」をクリックして、ライブラリをプロジェクトに追加します。
最後に、「OK」をクリックしてダイアログボックスを閉じます。
開始するには、まずC++プログラムでwkhtmltopdfライブラリの機能を利用するために必要なヘッダーファイルをインクルードします。 メイン.cppソースコードファイルの冒頭に次のヘッダーファイルを含めてください:
#include <iostream>
#include <fstream>
#include <string>
#include <wkhtmltox/pdf.h>
#include <iostream>
#include <fstream>
#include <string>
#include <wkhtmltox/pdf.h>
GUIを使用していない場合、エラーを回避するためにそれを無効にする必要があります。 コードは次のようになります:
wkhtmltopdf_init(false);
wkhtmltopdf_init(false);
次に、グローバルおよびオブジェクト設定ポインタを初期化し、その後 wkhtmltopdf
コンバーターを初期化する必要があります。
wkhtmltopdf_global_settings* gs = wkhtmltopdf_create_global_settings();
wkhtmltopdf_object_settings* os = wkhtmltopdf_create_object_settings();
wkhtmltopdf_converter* converter = wkhtmltopdf_create_converter(gs);
wkhtmltopdf_global_settings* gs = wkhtmltopdf_create_global_settings();
wkhtmltopdf_object_settings* os = wkhtmltopdf_create_object_settings();
wkhtmltopdf_converter* converter = wkhtmltopdf_create_converter(gs);
では、新しく作成したPDFドキュメントにコンテンツを挿入するためのHTML文字列を作成しましょう。 コードは次のようになります:
string htmlString = "<html><body><h1>Create a PDF in C++ using WKHTMLTOPDF Library</h1></body></html>";
wkhtmltopdf_add_object(converter, os, htmlString.c_str());
string htmlString = "<html><body><h1>Create a PDF in C++ using WKHTMLTOPDF Library</h1></body></html>";
wkhtmltopdf_add_object(converter, os, htmlString.c_str());
Wkhtmltopdfは、HTMLコンテンツをPDFに変換するためのコンバーターメソッドを提供します。 以下にコードスニペットを示します:
wkhtmltopdf_convert(converter);
wkhtmltopdf_convert(converter);
wkhtmltopdf_get_output
関数を使用すると、メモリバッファストリームとしてPDFデータを取得できます。 それはまたPDFの長さも返します。 次の例は、このタスクを実行します:
const unsigned char* pdfData;
const int pdfLength = wkhtmltopdf_get_output(converter, &pdfData);
const unsigned char* pdfData;
const int pdfLength = wkhtmltopdf_get_output(converter, &pdfData);
pdfData
ポインタは、wkhtmltopdf_converter
からの文字ストリームを持つことになります。 PDFファイルに保存するために、まずPDFを保存したいファイルパスを指定します。 次に、出力ファイルストリームを使用して、ファイルをバイナリモードで開き、reinterpret_cast
関数を使用して型キャストしたpdfData
を書き込みます。 最後に、ファイルを閉じます。
const char* outputPath = "file.pdf";
ofstream outputFile(outputPath, ios::binary);
outputFile.write(reinterpret_cast<const char*>(pdfData), pdfLength);
outputFile.close();
const char* outputPath = "file.pdf";
ofstream outputFile(outputPath, ios::binary);
outputFile.write(reinterpret_cast<const char*>(pdfData), pdfLength);
outputFile.close();
PDFファイルを正常に作成した後、Wkhtmltopdfによって割り当てられたリソースをクリーンアップすることが重要です。そうしないと、メモリリークが発生します。
wkhtmltopdf_destroy_converter(converter);
wkhtmltopdf_destroy_object_settings(os);
wkhtmltopdf_destroy_global_settings(gs);
wkhtmltopdf_deinit();
cout << "PDF created successfully." << endl;
wkhtmltopdf_destroy_converter(converter);
wkhtmltopdf_destroy_object_settings(os);
wkhtmltopdf_destroy_global_settings(gs);
wkhtmltopdf_deinit();
cout << "PDF created successfully." << endl;
では、プロジェクトをビルドし、F9を使用してコードを実行してください。出力はプロジェクトフォルダーに生成および保存されます。 結果として得られたPDFは以下の通りです:
IronPDFは.NET C#のPDFライブラリで、開発者はHTMLからPDFドキュメントを簡単に作成することができます。 直感的なAPIを提供し、HTMLからPDFファイルを作成するプロセスを簡素化します。
IronPDFは、PDFの操作において堅牢かつ多用途です。 単純なHTML文書からPDFを作成するだけでなく、CSSスタイリング、JavaScriptインタラクション、さらには動的コンテンツを含む複雑なWebページも作成します。 さらに、変換メソッドへの迅速なアクセスにより、さまざまなPDF変換器を開発することができます。
以下はプログラムの一例ですIronPDFでPDFを作成する使用HTML文字列からPDFへの変換:
using IronPdf;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from a 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 a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export to a file or Stream
pdf.SaveAs("output.pdf");
HTMLコンテンツをPDFとしてレンダリングするために、ChromePdfRenderer
のインスタンスを作成します。 renderer
オブジェクトのRenderHtmlAsPdf
メソッドを呼び出し、HTML文字列を渡します。 これによりPDFドキュメントが生成され、その後、SaveAs
メソッドを使用してPDFドキュメントを保存します。
詳細情報については、IronPDFで様々なリソースからPDFを作成する以下をご覧ください IronPDFのコード例ページ
この記事では、wkhtmltopdf C++ライブラリを使用してC++でPDFを生成する方法を探り、さらにIronPDFを使用してC#でPDFドキュメントを生成する方法も学びました。
IronPDFを使用すると、.NET Framework言語でHTMLコンテンツからPDFファイルを生成することが簡単になります。 その豊富な機能セットは、変換が必要な開発者にとって貴重なツールとなります。HTMLからPDFC#プロジェクトで。 レポート、請求書、または正確なHTMLからPDFへの変換を必要とする他のドキュメントの生成であれ、IronPDFは信頼性が高く効率的なソリューションです。
IronPDFは開発目的で無料ですが、商用利用にはライセンスが必要です。 また、以下を提供します無料試用商業用途で完全な機能をテストするため。 IronPDFをダウンロード自分で試してみてください。
9つの .NET API製品 オフィス文書用