获取 PDPage/PDDocument 的 DPI 以准确计算 PDF 尺寸
Getting DPI of PDPage/PDDocument to calculate PDF Dimensions Accurately
我希望获得 PDF 中每个页面的准确大小,作为我将创建的 PDF 单元测试的一部分。当我处理每个文档中具有许多不同页面大小的 PDF 时,代码 returns 一个维度的 ArrayList。
据我所知,每个页面也可以有自己的 DPI 设置。
我已经进行了相当多的谷歌搜索,但我只是想出了这个,它只给了我部分答案,因为我仍然需要计算出每个页面的 DPI。
PDFBox - find page dimensions
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 ( )
//Add size of page to list of page sizes
//Return list of page sizes.
return dimensions;
}
页面尺寸(媒体框/裁剪框)以默认用户空间单位给出,而默认为 1/72 英寸。因此,只需将框的宽度或高度除以 72 即可得到以英寸为单位的页面宽度或高度。
这不对应于 72 的 DPI 值,因为那将是一个 分辨率 值并且 pdf 没有分辨率,默认的用户空间单位只是不同的测量单位。
我希望获得 PDF 中每个页面的准确大小,作为我将创建的 PDF 单元测试的一部分。当我处理每个文档中具有许多不同页面大小的 PDF 时,代码 returns 一个维度的 ArrayList。
据我所知,每个页面也可以有自己的 DPI 设置。
我已经进行了相当多的谷歌搜索,但我只是想出了这个,它只给了我部分答案,因为我仍然需要计算出每个页面的 DPI。
PDFBox - find page dimensions
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 ( )
//Add size of page to list of page sizes
//Return list of page sizes.
return dimensions;
}
页面尺寸(媒体框/裁剪框)以默认用户空间单位给出,而默认为 1/72 英寸。因此,只需将框的宽度或高度除以 72 即可得到以英寸为单位的页面宽度或高度。
这不对应于 72 的 DPI 值,因为那将是一个 分辨率 值并且 pdf 没有分辨率,默认的用户空间单位只是不同的测量单位。