
PDF文書のページ境界の設定値を取得します。
入力されたPDF文書の各ページに設定されている境界値を取得して画面に表示します。
取得するのはPDF仕様が持つ境界値です。
PDFのページ境界はページ毎の設定です。ページ数が多い時は先頭の10ページ分だけ表示します。
この例では次の機能を使っています。
package cookbook;
import jp.co.antenna.ptl.*;
public class GetBoundary {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
if (args.length < 1)
{
System.out.println("usage: java GetBoundary in-pdf-file");
return;
}
...【GetPageCount.javaと同じ処理のため省略
・PtlParamInputを用いてPtlPDFDocument docに入力PDFをロード】...
// ページ数の取得
int numPages = doc.getPageCount();
System.out.println("ページ数:" + numPages);
if(numPages > 10)
{
System.out.println("ページ数が10ページを超えています。");
System.out.println("ページ境界の値を表示するのは先頭10ページまでとなります。");
numPages = 10;
}
...【RemovePages.javaと同じ処理のため省略
・doc.getPages()メソッドを用いてPtlPages pagesにページコンテナを取得
・ページコンテナが空だった場合にエラーを出力して終了】...
for (int i = 0; i < numPages; i++)
{
// 読み込んだページの取得
try (PtlPage page = pages.get(i);
PtlRect mediaBox = page.getMediaBox()) // 読み込んだページのMediaBox取得
{
System.out.println("ページ:" + (i+1));
float top = mediaBox.getTop();
float bottom = mediaBox.getBottom();
float left = mediaBox.getLeft();
float right = mediaBox.getRight();
System.out.println("MediaBox の[top, bottom, left, right]は、");
System.out.println("[" + top +", " + bottom +", " + left +", " + right +"]です。");
if(page.hasCropBox())
{
try(PtlRect cropBox = page.getCropBox())
{
top = cropBox.getTop();
bottom = cropBox.getBottom();
left = cropBox.getLeft();
right = cropBox.getRight();
System.out.println("CropBox の[top, bottom, left, right]は、");
System.out.println("[" + top +", " + bottom +", " + left +", " + right +"]です。");
}
}
else
{
System.out.println("このページにはCropBoxはありません。");
}
if(page.hasBleedBox())
{
try(PtlRect bleedBox = page.getBleedBox())
{
top = bleedBox.getTop();
bottom = bleedBox.getBottom();
left = bleedBox.getLeft();
right = bleedBox.getRight();
System.out.println("BleedBox の[top, bottom, left, right]は、");
System.out.println("[" + top +", " + bottom +", " + left +", " + right +"]です。");
}
}
else
{
System.out.println("このページにはBleedBoxはありません。");
}
if(page.hasTrimBox())
{
try(PtlRect trimBox = page.getTrimBox())
{
top = trimBox.getTop();
bottom = trimBox.getBottom();
left = trimBox.getLeft();
right = trimBox.getRight();
System.out.println("TrimBox の[top, bottom, left, right]は、");
System.out.println("[" + top +", " + bottom +", " + left +", " + right +"]です。");
}
}
else
{
System.out.println("このページにはTrimBoxはありません。");
}
if(page.hasArtBox())
{
try(PtlRect artBox = page.getArtBox())
{
top = artBox.getTop();
bottom = artBox.getBottom();
left = artBox.getLeft();
right = artBox.getRight();
System.out.println("ArtBox の[top, bottom, left, right]は、");
System.out.println("[" + top +", " + bottom +", " + left +", " + right +"]です。");
}
}
else
{
System.out.println("このページにはArtBoxはありません。");
}
}
}
}
}
...【GatPageCount.javaと同じ処理のため省略
・PtlException, Exception, Error を catchするエラー処理
・finally文で"--完了--"と表示する処理】...
}
}
GetBoundary.java
C:\samples>java cookbook.GetBoundary usage: java GetBoundary in-pdf-file C:\samples>java cookbook.GetBoundary CSS-Print-v4.pdf ページ数:140 ページ数が10ページを超えています。 ページ境界の値を表示するのは先頭10ページまでとなります。 ページ:1 MediaBox の[top, bottom, left, right]は、 [285.00003, 0.0, 0.0, 210.00002]です。 CropBox の[top, bottom, left, right]は、 [285.00003, 0.0, 0.0, 210.00002]です。 BleedBox の[top, bottom, left, right]は、 [274.00003, 10.999998, 10.999998, 199.0]です。 TrimBox の[top, bottom, left, right]は、 [271.0, 14.0, 14.0, 196.0]です。 ArtBox の[top, bottom, left, right]は、 [271.0, 14.0, 14.0, 196.0]です。 ...【以降は省略】...