PDF 形式は多くの場合に適していますが、画像に変換する必要がある場合もあります。PDF を画像に変換することで、ソーシャルメディアに公開したり、画像表示しかできないデバイスにアップロード・転送することができます。また、Word ドキュメントや PowerPoint プレゼンテーションにも埋め込むことが可能です。この記事では、Spire.PDF for C++ を使用して C++ で PDF を画像に変換する方法について説明します。 特定のページを画像に変換する PDF 全体を複数の画像に変換する Spire.PDF for C++ をインストールします Spire.PDF for C++ をアプリケーションに組み込むには、2つの方法があります。一つは NuGet 経由でインストールする方法、もう一つは当社のウェブサイトからパッケージをダウンロードし、ライブラリをプログラムにコピーする方法です。NuGet 経由のインストールの方が便利で、より推奨されます。詳しくは、以下のリンクからご覧いただけます。 Spire.PDF for C++ を C++ アプリケーションに統合する方法 特定のページを画像に変換する Spire.PDF for C++ の PdfDocument->SaveAsImage(int pageIndex) メソッドは特定のページを画像ストリームに変換することをサポートします。ストリームは、PNG、JPG、BMP などの目的の拡張子を持つ画像ファイルとして保存できます。詳細な手順は次のとおりです。 PdfDocument インスタンスを作成します。 PdfDocument->LoadFromFile() メソッドを使用して PDF ファイルをロードします。 PdfDocument->SaveAsImage() メソッドを使用して、特定のページを画像ストリームに変換します。 Stream->Save() メソッドを使用して、画像ストリームを JPG ファイルとして保存します。 C++ #include "Spire.Pdf.o.h"; using namespace Spire::Pdf; using namespace std; int main() { //入力と出力のパスを指定する wstring inputFile = L"C:UsersAdministratorDesktopsample.pdf"; wstring outputFile = L"C:UsersAdministratorDesktopOutputToImage"; //PdfDocumentオブジェクトを作成する PdfDocument* doc = new PdfDocument(); //PDFファイルをロードする doc->LoadFromFile(inputFile.c_str()); //特定のページを画像に変換する Stream* image = doc->SaveAsImage(0, PdfImageType::Bitmap); //画像を.jpgファイルに書き込む wstring fileName = outputFile + L".jpg"; image->Save(fileName.c_str()); doc->Close(); delete doc; } PDF 全体を複数の画像に変換する PDF 全体を個別の画像として保存するには、変換部分をループ文に入れるだけです。以下に詳細な手順を示します。 PdfDocument インスタンスを作成します。 PdfDocument->LoadFromFile() メソッドを使用して PDF ファイルをロードします。 ファイル内のページをループし、PdfDocument->SaveAsImage(int pageIndex) メソッドを使用して各ページを画像ストリームに変換します。 Stream->Save() メソッドを使用して、画像ストリームを JPG ファイルとして保存します。 C++ #include "Spire.Pdf.o.h"; using namespace Spire::Pdf; using namespace std; int main() { //入力と出力のパスを指定する wstring inputFile = L"C:UsersAdministratorDesktopsample.pdf"; wstring outputFile = L"C:UsersAdministratorDesktopOutputToImg-"; //PdfDocumentオブジェクトを作成する PdfDocument* doc = new PdfDocument(); //PDFファイルをロードする doc->LoadFromFile(inputFile.c_str()); //ファイルのページをループする for (int i = 0; i < doc->GetPages()->GetCount(); i++) { //特定のページを画像として保存 Stream* image = doc->SaveAsImage(i); //画像を.jpgファイルに書き込む wstring fileName = outputFile + to_wstring(i) + L".jpg"; image->Save(fileName.c_str()); } doc->Close(); delete doc; } 一時ライセンスを申請する 結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。