使用pdfBox在java中创建尺寸为1700像素* 2200像素的pdf

byr*_*ddy 0 java pdf pdf-generation pdfbox

我有一个应用程序,它打开一个尺寸为 1700 像素 * 2200 像素的 pdf 文件。我将从它的 pdf 上获得一个矩形的尺寸。当我尝试在 pdf 上创建相同的矩形时,我正在使用 PdfBox 创建一个具有尺寸的 pdf 页面。

System.out.println(page.getMediaBox().getHeight());
System.out.println(page.getMediaBox().getWidth());
Run Code Online (Sandbox Code Playgroud)

结果是 :

612 
792
Run Code Online (Sandbox Code Playgroud)

如何将 pdf 坐标从 1700*2200 转换为 612*792?

mkl*_*mkl 6

你的输出

612 792
Run Code Online (Sandbox Code Playgroud)

System.out.println(page.getMediaBox().getHeight()); System.out.println(page.getMediaBox().getWidth());
Run Code Online (Sandbox Code Playgroud)

似乎表明您PDPage使用默认构造函数创建该构造函数,即使用new PDPage()as 该构造函数将页面大小设置为美国信函页面格式。

如果你想要不同格式的页面,你应该使用构造函数PDPage(PDRectangle),例如:

    PDRectangle rec = new PDRectangle(1700, 2200);
    PDDocument document = new PDDocument();
    PDPage page = new PDPage(rec);
    document.addPage(page);
Run Code Online (Sandbox Code Playgroud)

这将创建一个 PDF,其页面大小为 1700x2200 用户空间单位,即大约 23.6"x30.6"。

顺便说一句,您谈论的是尺寸为 1700pixels*2200pixels 的 pdf 文件- PDF 不知道单位“像素”。他们知道默认的用户空间单位,默认为 1/72",因此,或多或少对应于单位点。这尤其不意味着分辨率。