【问题标题】:Create a pdf with dimensions 1700pixels*2200pixels in java using pdfBox使用 pdfBox 在 java 中创建尺寸为 1700pixels*2200pixels 的 pdf
【发布时间】:2014-07-25 09:30:11
【问题描述】:

我有一个应用程序可以打开一个尺寸为 1700pixels*2200pixels 的 pdf 文件。我将从中获取在 pdf 上绘制的矩形的尺寸。 当我尝试在 pdf 上创建相同的矩形时, 我正在使用 PdfBox 创建一个带有尺寸的 pdf 页面。

System.out.println(page.getMediaBox().getHeight());
System.out.println(page.getMediaBox().getWidth());

结果:

612 
792

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

【问题讨论】:

    标签: java pdf pdf-generation pdfbox


    【解决方案1】:

    你的输出

    612 792
    

    的

    System.out.println(page.getMediaBox().getHeight()); System.out.println(page.getMediaBox().getWidth());
    

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

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

        PDRectangle rec = new PDRectangle(1700, 2200);
        PDDocument document = new PDDocument();
        PDPage page = new PDPage(rec);
        document.addPage(page);
    

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

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

    【讨论】:

    • 我正在使用 PDDocument document = PDDocument.load(file); PDPage page = (PDPage)document.getDocumentCatalog().getAllPages().get(pageNo);如何在这里给出尺寸?顺便说一句,我的 Pdf 在 1700 * 2200 尺寸的应用程序中打开,但它实际上不是那个尺寸。我实际上会在该应用程序中绘制一个我需要自己创建的矩形尺寸。所以我想创建一个该大小的pdf并绘制矩形。
    • 您写道 PDFBox 创建了该页面,并询问了如何创建具有尺寸的 pdf...。您现在显示的代码不会创建新页面,而只是检索现有页面。所以你似乎自相矛盾;请澄清您的问题。
    • 对不起,我将从 pdf 中检索页面。你能告诉我什么是更好的 API 来满足上述要求吗?谢谢。
    • 我将从 pdf 中检索页面 - 好的。你到底想做什么?是否要将页面大小增加到 1700 * 2200?或者你只是想变换坐标系,以便后续代码可以假设一个(扭曲的)1700 * 2200 坐标系?
    • 应用程序的 pdf 显示为 1700 * 2200 。我将从该应用程序中获取坐标,当我尝试使用 pdfbox 创建 pdf 时,坐标为 612 *792 。所以,在这里我想将从应用程序获得的那些坐标(1700 * 2200)转换为pdfbox创建的坐标(612 * 792)。我会得到矩形坐标,所以我试着像做 1700/2.78 = 612 & 2200/2.78 = 792 一样。获得了新的 x、y、w、h,但是 y 坐标位置有变化。我想解决这个问题。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-21
    • 2018-03-20
    • 1970-01-01
    相关资源
    最近更新 更多