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 forC++でページを回転させるのは簡単です。ほんの数行のコードで、PDFドキュメントのすべてのページを回転させることができます。以下は、C++を使用してPDFページをローテーションする手順です。
- Documentクラスを使用してソースPDFドキュメントをロードします。
- ドキュメントのページをループします。選択したページのみをローテーションする場合は、このループ内でそのロジックを定義できます。
- Page->setRotate(Rotation value)メソッドを使用して各ページを回転します。
- Document->Save(System::String outputFileName, SaveFormat format)メソッドを使用して出力PDFファイルを保存します。
次のサンプルコードは、C++を使用してPDFページを回転する方法を示しています。
// ソースPDFドキュメントを開く
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");
// ページをループする
for (System::SharedPtr<Page> page : pdfDocument->get_Pages())
{
// ページを回転する
page->set_Rotate(Aspose::Pdf::Rotation::on180);
}
// PDFファイルを保存します
pdfDocument->Save(u"OutputDirectory\\Rotated_out.pdf", SaveFormat::Pdf);
C++を使用したPDFページのテキストの回転
PDFドキュメントにテキストを追加するときに、角度など、多くのテキストプロパティを変更できます。次の例では、PDFページにテキストを追加し、45度の角度で回転させます。これを実現するための手順は次のとおりです。
- Documentクラスのインスタンスを作成して、新しいPDFドキュメントを表します。
- PDFドキュメントに新しいページを追加します。
- 追加するテキストを使用して、TextFragmentクラスのインスタンスを作成します。
- テキストの位置、角度、およびその他のプロパティを設定します。
- TextBuilder->AppendText(System::SharedPtr textFragment)メソッド。
- Document->Save(System::String outputFileName, SaveFormat format)メソッドを使用して出力PDFファイルを保存します。
次のサンプルコードは、C++を使用してPDFページのテキストを回転する方法を示しています。
// Documentクラスのインスタンスを作成します
auto pdfDocument = MakeObject<Document>();
// 新しいページを追加
System::SharedPtr<Page> page = pdfDocument->get_Pages()->Add();
// TextFragmentオブジェクトを作成する
System::SharedPtr<TextFragment> textFragment = MakeObject<TextFragment>(u"Rotated Text");
// テキストの位置を設定します
textFragment->set_Position(MakeObject<Position>(200, 600));
// テキストプロパティを設定する
textFragment->get_TextState()->set_FontSize(12);
textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment->get_TextState()->set_BackgroundColor(Aspose::Pdf::Color::get_LightGray());
textFragment->get_TextState()->set_ForegroundColor(Aspose::Pdf::Color::get_Red());
textFragment->get_TextState()->set_Rotation(45);
textFragment->get_TextState()->set_Underline(true);
// TextBuilderオブジェクトを作成します
System::SharedPtr<TextBuilder> textBuilder = MakeObject<TextBuilder>(page);
// ページにtexcを追加します
textBuilder->AppendText(textFragment);
// PDFファイルを保存します
pdfDocument->Save(u"OutputDirectory\\Rotated_text_out.pdf", SaveFormat::Pdf);
C++を使用してPDFページ上の画像を回転させる
PDFドキュメントに画像を追加するときに、高さ、幅、不透明度、回転などの多くのプロパティを設定できます。この例では、PDFページに画像を追加し、90度の角度で回転させます。以下は、PDFページ上の画像を回転させる手順です。
- Documentクラスを使用してソースPDFドキュメントをロードします。
- 追加する画像を使用して、ImageStampクラスのインスタンスを作成します。
- 画像の回転やその他のプロパティを設定します。
- Document->get_Pages()->idx_get(1)->AddStamp(System::SharedPtr stamp)メソッドを使用して画像をPDFページに追加します。
- Document->Save(System::String outputFileName, SaveFormat format)メソッドを使用して出力PDFファイルを保存します。
次のサンプルコードは、C++を使用してPDFページ上の画像を回転させる方法を示しています。
// ソースPDFドキュメントを開く
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");
// ImageStampオブジェクトを作成します
System::SharedPtr<ImageStamp> imageStamp = MakeObject<ImageStamp>(u"SourceDirectory\\aspose.png");
// ImageStampプロパティを設定します
imageStamp->set_XIndent(250);
imageStamp->set_YIndent(350);
imageStamp->set_Height(100);
imageStamp->set_Width(300);
imageStamp->set_Rotate(Rotation::on90);
imageStamp->set_Opacity(0.5);
// ページにImageStampを追加します
pdfDocument->get_Pages()->idx_get(1)->AddStamp(imageStamp);
// PDFファイルを保存します
pdfDocument->Save(u"OutputDirectory\\Rotated_image_out.pdf", SaveFormat::Pdf);
無料ライセンスを取得する
無料の一時ライセンスをリクエストすることで、評価の制限なしにAPIを試すことができます。
結論
この記事では、C++を使用してPDFドキュメントのページ、テキスト、および画像を回転する方法を学習しました。 Aspose.PDF for C++は、PDFファイルを操作するための多くの追加機能を提供する広大なAPIです。 公式ドキュメントにアクセスすると、APIの詳細を調べることができます。ご不明な点がございましたら、無料サポートフォーラムまでお気軽にお問い合わせください。