2011-01-06 36 views

回答

1

有許多不同的「箱」的給定頁面可以具有:

媒體盒(必需):打印觀看時的初始頁面大小。 裁剪框(可選):取代媒體框。默認值與媒體框匹配。必須是子集或與媒體框匹配。

還有藝術/裝飾/流血箱,但他們不事儘可能多的和較爲少見。

因此,頁面大小:

PdfReader讀卡器=新PdfReader(mypath中) //獲取媒體盒 矩形pageRect = reader.getPageSize(1); // 1 - >第一頁

//獲取裁剪框(如果存在),或媒體框,如果沒有。 Rectangle cropRect = reader.getCropBox(1);

//最後 矩形作品框= reader.getBoxSize(1, 「技術」); //可能是「藝術」,「流血」,「裁剪」,「媒體」或「修剪」

我會用getCropBox()去。

我也建議檢查出這樣的事情的Javadoc。至少你會自己拿出getPageSize()。不,它不是C#。是的,這非常有用。

http://api.itextpdf.com/

另外請注意,這些矩形不必基於0,0(這將是左下角未旋轉頁)。

此外,你應該檢查頁面的旋轉,getPageRotation(int)和交換高度和寬度,如果旋轉是90或270.有getPageSizeWithRotation(int),但它只適用於媒體框,所以我會自己動手,如果我是你。這只是一些額外的代碼行:

// rotation has to be 0, 90, 180, or 270. "360" isn't kosher IIRC. 
if (reader.getPageRotation(pageNum) % 180 != 0) { 
    float tmp = width; 
    width = height; 
    height = tmp; 
}