作为我将要创建的PDF单元测试的一部分,我希望获得PDF中每页的准确尺寸。当我处理每个文档中具有许多不同页面大小的PDF时,代码将返回尺寸的ArrayList。
AFAIK每个页面也可以具有自己的DPI设置。
我已经做了很多谷歌搜索,但我只想出了这,这只能给我一部分答案,因为我仍然需要弄清楚每页的DPI是什么。
public static ArrayList<float[]> getDimentions(PDDocument document) {
ArrayList<float[]> dimensions = new ArrayList<>();
float[] dim = new float[2];
//Loop Round Each Page
//Get Dimensions of each page and DPI
for (int i = 0; i < document.getNumberOfPages(); i++) {
PDPage currentPage = document.getPage(i);
PDRectangle mediaBox = currentPage.getMediaBox();
float height = mediaBox.getHeight();
float width = mediaBox.getWidth();
// How do I get the DPI now????
}
//Calculate Size of Page in mm (
//Get Dimensions of each page and DPI ( https://stackoverflow.com/questions/20904191/pdfbox-find-page-dimensions/20905166 )
//Add size of page to list of page sizes
//Return list of page sizes.
return dimensions;
}
答案 0 :(得分:2)
页面尺寸(媒体框/裁剪框)以默认用户空间单位给出,该单位又默认为1/72英寸。因此,只需将框的宽度或高度除以72,就可以得到以英寸为单位的页面宽度或高度。
这与DPI值72不对应,因为这将是 resolution 值,而pdf没有分辨率,因此默认用户空间单位只是不同的测量单位。