C++を使用してPUBを画像に変換する

Microsoft Publisher(PUB)ファイルは、情報の印刷または公開に使用されます。これらのファイルを共有する必要があり、受信側がMicrosoftPublisherにアクセスできないシナリオが存在する可能性があります。このような場合、共有する前にこれらのファイルを画像に変換すると便利です。そのために、この記事では、C++を使用してPUBファイルをさまざまな画像形式に変換する方法を説明します。

PUBファイルを画像形式に変換するためのC++API

この変換を実行するには、Aspose.PUB for C++およびAspose.PDF for C++APIを使用します。前者はMicrosoftPublisher(PUB)ファイルを操作するためのライブラリであり、後者はPDFファイルを作成、読み取り、および変更するためのライブラリです。 Aspose.PUB for C++ APIを使用してPUBファイルをPDF形式に変換し、Aspose.PDF for C++APIを使用して生成されたPDFファイルを画像形式に変換します。 NuGetを介してAPIをインストールするか、ダウンロードセクションから直接ダウンロードできます。

PM> Install-Package Aspose.PUB.Cpp
PM> Install-Package Aspose.PDF.Cpp

C++を使用してPUBファイルをJPG画像に変換する

PUBファイルをJPG画像に変換する手順は次のとおりです。

次のサンプルコードは、C++を使用してPUBファイルをJPG画像に変換する方法を示しています。

// ソースPUBと出力PDFファイルパス
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";

// PUBファイルをロードします
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();

// PUBファイルをPDFに変換する
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);

// 生成されたPDFファイルをロードします
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);

// PDFページを繰り返し処理します
for (auto page : pdfDocument->get_Pages())
{
	// PDFページの寸法を取得する
	int width = info->GetPageWidth(page->get_Number());
	int height = info->GetPageHeight(page->get_Number());

	// Resolutionクラスのインスタンスを作成します
	auto resolution = MakeObject<Devices::Resolution>(300);

	// 指定された幅、高さ、解像度でJPEGデバイスを作成します
	auto device = MakeObject<Devices::JpegDevice>(width, height, resolution);

	// 出力画像のファイルストリームを作成します
	System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"OutputDirectory\\page_{0}.jpg", page->get_Number()));

	// PDFページをJPG画像に変換します
	device->Process(page, imageStream);

	// ストリームを閉じる
	imageStream->Close();
}

C++を使用してPUBファイルをPNG画像に変換する

PUBファイルをPNG画像に変換するには、以下の手順に従ってください。

次のサンプルコードは、C++を使用してPUBファイルをPNG画像に変換する方法を示しています。

// ソースPUBと出力PDFファイルパス
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";

// PUBファイルをロードします
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();

// PUBファイルをPDFに変換する
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);

// 生成されたPDFファイルをロードします
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);

// PDFページを繰り返し処理します
for (auto page : pdfDocument->get_Pages())
{
	// PDFページの寸法を取得する
	int width = info->GetPageWidth(page->get_Number());
	int height = info->GetPageHeight(page->get_Number());

	// Resolutionクラスのインスタンスを作成します
	auto resolution = MakeObject<Devices::Resolution>(300);

	// 指定された幅、高さ、解像度でPNGデバイスを作成します
	auto device = MakeObject<Devices::PngDevice>(width, height, resolution);

	// 出力画像のファイルストリームを作成します
	System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"OutputDirectory\\page_{0}.png", page->get_Number()));

	// PDFページをPNG画像に変換する
	device->Process(page, imageStream);

	// ストリームを閉じる
	imageStream->Close();
}

C++を使用したPUBファイルのTIFF画像への変換

PUBファイルをTIFF画像に変換する手順は次のとおりです。

次のサンプルコードは、C++を使用してPUBファイルをTIFF画像に変換する方法を示しています。

// ソースPUBと出力PDFファイルパス
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";

// PUBファイルをロードします
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();

// PUBファイルをPDFに変換する
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);

// 生成されたPDFファイルをロードします
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);

// 最初のPDFページの寸法を取得する
int width = info->GetPageWidth(1);
int height = info->GetPageHeight(1);

// Resolutionクラスのインスタンスを作成します
auto resolution = MakeObject<Devices::Resolution>(300);

// TiffSettingsクラスのインスタンスを作成し、必要な設定を設定します
auto settings = MakeObject<Devices::TiffSettings>();
settings->set_Compression(Devices::CompressionType::None);
settings->set_Depth(Devices::ColorDepth::Default);

// 指定された幅、高さ、解像度、TiffSettingsでTIFFデバイスを作成します
auto device = MakeObject<Devices::TiffDevice>(width, height, resolution, settings);

// 出力画像のファイルストリームを作成します
System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(u"OutputDirectory\\pdf.tiff");

// PDFファイルをTIFF画像に変換します
device->Process(pdfDocument, 1, 1, imageStream);

// ストリームを閉じる
imageStream->Close();

無料ライセンスを取得する

無料の一時ライセンスをリクエストすることで、評価の制限なしにAPIを試すことができます。

結論

この記事では、C++を使用してMicrosoftPublisher(PUB)ファイルをJPG、PNG、およびTIFF画像に変換する方法を学習しました。これを実現するために、C++用のAspose.PUBとC++API用のAspose.PDFを使用しました。これらのAPIについては、公式ドキュメントにアクセスして詳しく調べることができます。ご不明な点がございましたら、無料サポートフォーラムまでお気軽にお問い合わせください。

関連項目