PDF 形式は多くの場合に適していますが、画像に変換する必要がある場合もあります。PDF を画像に変換することで、ソーシャルメディアに公開したり、画像表示しかできないデバイスにアップロード・転送することができます。また、Word ドキュメントや PowerPoint プレゼンテーションにも埋め込むことが可能です。この記事では、Spire.PDF for C++ を使用して C++ で 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:\\Users\\Administrator\\Desktop\\sample.pdf";
wstring outputFile = L"C:\\Users\\Administrator\\Desktop\\Output\\ToImage";
//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:\\Users\\Administrator\\Desktop\\sample.pdf";
wstring outputFile = L"C:\\Users\\Administrator\\Desktop\\Output\\ToImg-";
//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 日間有効な一時ライセンスを取得してください。