C++を使用してPDFファイルを分割する

PDFは、インターネットを介してドキュメントを共有するための標準形式です。そのグローバルなサポートと一貫したレイアウトにより、このようなシナリオに最適です。ただし、完全なPDFファイルを共有することが理想的または適切なオプションではない場合があります。このような場合、要件に応じてPDFファイルを分割できます。これは手動で行うことができますが、効率が悪く、時間がかかる場合があります。または、PDFドキュメントをプログラムで分割することもできます。この記事では、C++を使用してPDFファイルを分割する方法を学習します。

PDFファイルを分割するためのC++API

Aspose.PDF for C++は、PDFドキュメントを作成、読み取り、更新できるC++ライブラリです。さらに、APIはPDFファイルを複数のドキュメントに分割することをサポートしています。 APIは、NuGetからインストールするか、ダウンロードセクションから直接ダウンロードできます。

PM> Install-Package Aspose.PDF.Cpp

C++を使用してPDFファイルを分割する

Aspose.PDF for C++を使用すると、PDFファイルの各ページを個別のPDFドキュメントとして保存できます。以下は、C++を使用してこれを実現するための手順です。

  • Documentクラスを使用してソースPDFファイルをロードします。
  • Document->getPages()メソッドを使用して、ソースPDFファイルのページをループします。
  • ループ内で、新しいPDFファイルを表すDocumentクラスのインスタンスを作成します。
  • ループで取得したPageを、新しく作成したDocumentオブジェクトに追加します。
  • Document->Save(System::String outputFileName)メソッドを使用して新しいPDFファイルを保存します。

以下は、C++を使用してPDFファイルを分割するためのサンプルコードです。

// PDFファイルをロード
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");

// ページカウンター
int pageCount = 1;

// すべてのページをループする
for (auto page : pdfDocument->get_Pages())
{
	// 新しいドキュメントを作成する
	auto newDoc = MakeObject<Document>();

	// ドキュメントにページを追加
	newDoc->get_Pages()->Add(page);

	// PDFとして保存
	newDoc->Save(u"OutputDirectory\\Sample_Page_" + System::Convert::ToString(pageCount) + u"_out.pdf");
	pageCount++;
}

C++を使用して選択したPDFページを分割する

各ページを個別に保存する代わりに、PDFファイルを分割するためのさまざまな条件を指定できます。以下は、C++を使用して選択したPDFページを分割する手順です。

  • Documentクラスを使用してソースPDFファイルをロードします。
  • Documentクラスのインスタンスを作成して、新しいPDFファイルを表します。
  • Document->get_Pages()メソッドを使用して、ソースPDFファイルのページをループします。
  • 新しく作成したDocumentオブジェクトに目的のページを追加します。
  • Document->Save(System::String outputFileName)メソッドを使用して新しいPDFファイルを保存します。

以下は、C++を使用して特定のPDFページを分割するためのサンプルコードです。

// PDFファイルをロード
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");

// 新しいドキュメントを作成する
auto newDoc = MakeObject<Document>();

// ページカウンター
int pageCount = 1;

// すべてのページをループする
for (auto page : pdfDocument->get_Pages())
{
	// 偶数ページのみを取得
	if (pageCount % 2 == 0)
	{
		// ドキュメントにページを追加
		newDoc->get_Pages()->Add(page);
	}
	pageCount++;
}

// PDFとして保存
newDoc->Save(u"OutputDirectory\\Sample_Even_Pages_out.pdf");

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

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

結論

この記事では、C++を使用してPDFファイルを個々のページに分割する方法を学習しました。さらに、カスタム基準を使用してPDFファイルの分割をカスタマイズする方法を学習しました。 Aspose.PDF for C++は、PDFファイルを操作するための多くの追加機能を備えた広大なライブラリです。 公式ドキュメントを使用して、APIを詳細に調べることができます。ご不明な点がございましたら、無料サポートフォーラムまでお気軽にお問い合わせください。

関連項目