PDFは、レイアウトが一貫しているため、ドキュメントを共有および印刷するための一般的な形式です。ただし、PDFファイルのカバー画像を生成したり、そのページをWebページに埋め込んだりする場合があります。このような場合、PDFファイルを画像形式に変換すると便利です。そのために、この記事では、C++を使用してPDFページをPNG画像に変換する方法を説明します。
PDFページをPNG画像に変換するためのC++API
Aspose.PDF for C++は、PDFドキュメントを作成、読み取り、更新できるC++ライブラリです。さらに、APIはPDFページからPNG画像への変換をサポートしています。 APIは、NuGetからインストールするか、ダウンロードセクションから直接ダウンロードできます。
PM> Install-Package Aspose.PDF.Cpp
C++を使用してPDFページをPNG画像に変換する
以下は、PDFページをPNG画像に変換する手順です。
- Documentクラスを使用してPDFファイルをロードします。
- PDFファイルのページを繰り返し処理します。
- ループ内で、出力画像のFileStreamクラスのインスタンスを作成します。
- Resolutionクラスのインスタンスを作成します。
- PngDeviceクラスのインスタンスを作成します。
- PngDeviceクラスのProcess(System::SharedPtr page, System::SharedPtrSystem::IO::Stream output)メソッドを使用して、PDFページの画像を保存します。
次のサンプルコードは、C++を使用してPDFファイルのページをPNG画像として保存する方法を示しています。
// PDFファイルをロードします
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Sample 1.pdf");
// PDFページ全体を繰り返します
for (auto page : pdfDocument->get_Pages())
{
// FileStreamクラスのインスタンスを作成します
System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"OutputDirectory\\page_{0}.png", page->get_Number()));
// Resolutionクラスのインスタンスを作成します
auto resolution = MakeObject<Aspose::Pdf::Devices::Resolution>(300);
// PngDeviceクラスのインスタンスを作成します
auto pngDevice = MakeObject<Aspose::Pdf::Devices::PngDevice>(500, 700, resolution);
// ページを画像として保存
pngDevice->Process(page, imageStream);
// ストリームを閉じる
imageStream->Close();
}
C++を使用して単一のPDFページをPNG画像に変換する
以下は、PDFファイルの1ページをPNG画像に変換する手順です。
- Documentクラスを使用してPDFファイルをロードします。
- Document->get_Pages()->idx_get(int32_t index)メソッドを使用して変換するページを取得します。
- 出力画像のFileStreamクラスのインスタンスを作成します。
- Resolutionクラスのオブジェクトをインスタンス化します。
- PngDeviceクラスのインスタンスを作成します。
- Process(System::SharedPtr page, System::SharedPtrSystem::IO::Stream output) PngDeviceクラスのメソッドで、PDFページの画像を保存します。
次のサンプルコードは、C++を使用して単一のPDFページをPNG画像に変換する方法を示しています。
// PDFファイルをロードします
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Sample 1.pdf");
// 最初のページを取得する
auto page = pdfDocument->get_Pages()->idx_get(1);
// FileStreamクラスのインスタンスを作成します
System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"OutputDirectory\\page_{0}.png", page->get_Number()));
// Resolutionクラスのインスタンスを作成します
auto resolution = MakeObject<Aspose::Pdf::Devices::Resolution>(300);
// PngDeviceクラスのインスタンスを作成します
auto pngDevice = MakeObject<Aspose::Pdf::Devices::PngDevice>(500, 700, resolution);
// ページを画像として保存
pngDevice->Process(page, imageStream);
// ストリームを閉じる
imageStream->Close();
無料ライセンスを取得する
無料の一時ライセンスをリクエストすることで、評価の制限なしにAPIを試すことができます。
結論
この記事では、C++を使用してPDFファイルのページをPNG画像に変換する方法を学習しました。 PDFファイルのすべてのページまたは選択したページをPNG画像に変換できます。 Aspose.PDF for C++は、PDF関連のワークフローを自動化するための多くの追加機能を備えた堅牢なAPIです。 公式ドキュメントにアクセスすると、APIの詳細を調べることができます。ご不明な点がございましたら、無料サポートフォーラムまでお気軽にお問い合わせください。