ページプロパティの取得と設定
Aspose.PDF for C++ を使用すると、C++アプリケーションでPDFファイル内のページのプロパティを読み取り、設定することができます。このセクションでは、PDFファイルのページ数を取得し、色などのPDFページプロパティに関する情報を取得し、ページプロパティを設定し、PDFファイルの特定のページを取得する方法などを示します。
PDFファイルのページ数を取得する
ドキュメントを扱うとき、多くの場合、それらが何ページ含まれているかを知りたいと思うでしょう。Aspose.PDFを使用すると、これは2行のコードで済みます。
PDFファイルのページ数を取得するには:
- Document クラスを使用してPDFファイルを開きます。
- ドキュメントオブジェクトからPageCollectionコレクションのCountプロパティを使用して、ドキュメント内のページの総数を取得します。
次のコードスニペットは、PDFファイルのページ数を取得する方法を示しています。
void GetNumberOfPages() {
// ドキュメントを開く
String _dataDir("C:\\Samples\\");
String srcFileName("GetNumberofPages.pdf");
auto srcDocument = MakeObject<Document>(_dataDir + srcFileName);
// ページ数を取得
std::cout << "Page Count : " << srcDocument->get_Pages()->get_Count() << std::endl;
}
ドキュメントを保存せずにページ数を取得する
時々、PDFファイルをフライで生成し、PDFファイルの作成中に、システムやストリーム上でファイルを保存せずにPDFファイルのページ数を取得する必要がある場合があります(目次の作成など)。 この要件に対応するために、DocumentクラスにProcessParagraphsメソッドが導入されました。ドキュメントを保存せずにページ数を取得する手順を示す以下のコードスニペットをご覧ください。
void GetPageCountWithoutSavingTheDocument() {
// Documentインスタンスをインスタンス化
auto document = MakeObject<Document>();
// PDFファイルのページコレクションにページを追加
auto page = document->get_Pages()->Add();
// ループインスタンスを作成
for (int i = 0; i < 300; i++)
// ページオブジェクトの段落コレクションにTextFragmentを追加
page->get_Paragraphs()->Add(MakeObject<TextFragment>(u"ページ数テスト"));
// 正確なページ数を取得するためにPDFファイルの段落を処理
document->ProcessParagraphs();
// ドキュメントのページ数を出力
std::cout << "ドキュメントのページ数 = " << document->get_Pages()->get_Count();
}
ページプロパティを取得する
ページプロパティへのアクセス
Page クラスは、特定のPDFページに関連するすべてのプロパティを提供します。PDFファイルのすべてのページは、Document オブジェクトの PageCollection コレクションに含まれています。
そこから、インデックスを使用して個々のPageオブジェクトにアクセスするか、foreachループを使用してコレクションをループしてすべてのページを取得することができます。個々のページにアクセスしたら、そのプロパティを取得できます。次のコードスニペットは、ページプロパティを取得する方法を示しています。
void AccessingPageProperties() {
String _dataDir("C:\\Samples\\");
String pdfDocument("GetProperties.pdf");
// ドキュメントを開く
auto document = MakeObject<Document>(_dataDir + pdfDocument);
// 特定のページを取得
auto pdfPage = document->get_Pages()->idx_get(1);
// ページプロパティを取得
Console::WriteLine(u"ArtBox : Height={0},Width={1},LLX={2},LLY={3},URX={4},URY={5}",
pdfPage->get_ArtBox()->get_Height(), pdfPage->get_ArtBox()->get_Width(),
pdfPage->get_ArtBox()->get_LLX(), pdfPage->get_ArtBox()->get_LLY(),
pdfPage->get_ArtBox()->get_URX(), pdfPage->get_ArtBox()->get_URY());
Console::WriteLine(u"->get_BleedBox() : Height={0},Width={1},LLX={2},LLY={3},URX={4},URY={5}",
pdfPage->get_BleedBox()->get_Height(), pdfPage->get_BleedBox()->get_Width(),
pdfPage->get_BleedBox()->get_LLX(), pdfPage->get_BleedBox()->get_LLY(),
pdfPage->get_BleedBox()->get_URX(), pdfPage->get_BleedBox()->get_URY());
Console::WriteLine(u"get_CropBox() : Height={0},Width={1},LLX={2},LLY={3},URX={4},URY={5}",
pdfPage->get_CropBox()->get_Height(), pdfPage->get_CropBox()->get_Width(),
pdfPage->get_CropBox()->get_LLX(), pdfPage->get_CropBox()->get_LLY(),
pdfPage->get_CropBox()->get_URX(), pdfPage->get_CropBox()->get_URY());
Console::WriteLine(u"get_MediaBox() : Height={0},Width={1},LLX={2},LLY={3},URX={4},URY={5}",
pdfPage->get_MediaBox()->get_Height(), pdfPage->get_MediaBox()->get_Width(),
pdfPage->get_MediaBox()->get_LLX(), pdfPage->get_MediaBox()->get_LLY(),
pdfPage->get_MediaBox()->get_URX(), pdfPage->get_MediaBox()->get_URY());
Console::WriteLine(u"get_TrimBox() : Height={0},Width={1},LLX={2},LLY={3},URX={4},URY={5}",
pdfPage->get_TrimBox()->get_Height(), pdfPage->get_TrimBox()->get_Width(),
pdfPage->get_TrimBox()->get_LLX(), pdfPage->get_TrimBox()->get_LLY(),
pdfPage->get_TrimBox()->get_URX(), pdfPage->get_TrimBox()->get_URY());
Console::WriteLine(u"Rect : Height={0},Width={1},LLX={2},LLY={3},URX={4},URY={5}",
pdfPage->get_Rect()->get_Height(), pdfPage->get_Rect()->get_Width(),
pdfPage->get_Rect()->get_LLX(), pdfPage->get_Rect()->get_LLY(),
pdfPage->get_Rect()->get_URX(), pdfPage->get_Rect()->get_URY());
Console::WriteLine(u"Page Number : {0}", pdfPage->get_Number());
Console::WriteLine(u"Rotate : {0}", pdfPage->get_Rotate());
}