我有一个应用程序可以打开尺寸为 1700 像素 * 2200 像素的 pdf 文件。我将从其中获取在 pdf 上绘制的矩形的尺寸。 当我尝试在 pdf 上创建相同的矩形时, 我正在使用 PdfBox 创建带有尺寸的 pdf 页面。
System.out.println(page.getMediaBox().getHeight());
System.out.println(page.getMediaBox().getWidth());
结果:
612
792
如何将pdf坐标从1700*2200转换为612*792?
最佳答案
你的输出
612 792
的
System.out.println(page.getMediaBox().getHeight()); System.out.println(page.getMediaBox().getWidth());
似乎表明您使用默认构造函数创建该PDPage
,即使用new PDPage()
,因为该构造函数将页面大小设置为美国信函页面格式。
如果您想要不同格式的页面,您应该使用构造函数PDPage(PDRectangle)
,例如:
PDRectangle rec = new PDRectangle(1700, 2200);
PDDocument document = new PDDocument();
PDPage page = new PDPage(rec);
document.addPage(page);
这将创建一个 PDF,其页面大小为 1700x2200 用户空间单位,即大约 23.6"x30.6"。
顺便说一句,您谈论的是尺寸为1700像素*2200像素的pdf文件 - PDF不知道单位“像素”。他们知道默认的用户空间单位,默认为 1/72",因此或多或少对应于单位点。这尤其不意味着分辨率。
关于java - 使用 pdfBox 在 java 中创建尺寸为 1700pixels*2200pixels 的 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24952437/