C++ で PDF 文書を編集

概要

Aspose.Slides for C++ は、PDF のページをスライドとしてインポートし、プレゼンテーションを修正し、PDF にエクスポートすることで PDF コンテンツを編集できます。本記事ではシンプルなテキスト置換の例を示します。プレゼンテーションはメモリ内に保持されるため、中間の PPTX ファイルを保存する必要は任意です。

PDF のテキスト置換

ページをインポートするにはSlideCollection::AddFromPdf を、テキストを更新するにはPresentation::ReplaceText を、結果をエクスポートするにはPresentation::Save を使用します。

以下の例は、インポート後に input.pdf に編集可能なテキストとして「Draft」という単語が含まれていることを前提としています。この単語を「Final」に置換し、edited.pdf として書き出します。インポート前に最初のスライドをクリアすることで、出力に余分な空白ページが入るのを防ぎます。検索は同一の大文字小文字で完全一致する単語を対象とし、nullptr は結果コールバックが不要であることを意味します。

#include <DOM/ISlideCollection.h>
#include <DOM/Presentation.h>
#include <DOM/TextFind/TextSearchOptions.h>
#include <Export/SaveFormat.h>
#include <system/smart_ptr.h>

using namespace System;
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;

auto presentation = MakeObject<Presentation>();
presentation->get_Slides()->RemoveAt(0);

presentation->get_Slides()->AddFromPdf(u"input.pdf");

auto searchOptions = MakeObject<TextSearchOptions>();
searchOptions->set_WholeWordsOnly(true);
searchOptions->set_CaseSensitive(true);
presentation->ReplaceText(u"Draft", u"Final", searchOptions, nullptr);

presentation->Save(u"edited.pdf", SaveFormat::Pdf);
presentation->Dispose();

詳細なオプションについてはテキスト検索と置換PowerPoint を PDF に変換 を参照してください。

よくある質問

PDF をエクスポートする前に PPTX ファイルを保存する必要がありますか?

いいえ。メモリ内の同じプレゼンテーションを編集してエクスポートできます。PowerPoint で引き続き編集したい場合のみ PPTX のコピーを保存してください。詳しくはプレゼンテーションの保存 を参照してください。

なぜ一部のテキストが変更されない場合があるのでしょうか?

この例では、完全一致かつ大文字小文字を区別して単語「Draft」を検索しています。画像としてインポートされたテキストや、別々のテキストフレームに分割されたテキストは検索にヒットしない可能性があります。インポートされたコンテンツを確認し、ドキュメントに合わせて検索条件を調整してください。