PDFlib - 使用 ArtBox 存储放置元素的宽度和高度

PDFlib - using ArtBox to store width and height of placed elements

我正在使用 PDFlib 向页面添加元素。我的 objective 是在使用 $p->end_page_ext("");.

关闭页面后以某种方式检索元素的组合高度和宽度

我知道添加到该页面的元素的组合高度。

问题。是否可以使用 PDF 的 ArtBox 以某种方式存储这些尺寸并稍后检索它们?

对页面的高度或宽度感兴趣 - 只有添加的元素占据的 space。

使用 PDFlib,您还可以将艺术框添加到页面。 (使用 begin_page_ext/end_page_ext() 选项列表中的选项“ArtBox {llx lly urx ury}”。

之后您可以从 PDF 中检索此值。例如,当使用 pCOS 接口时(它是 PDFlib+PDI、PLOP 或 TET 的一部分)。您在 pCOS Cookbook 中找到了 MediaBox 的代码示例:https://www.pdflib.com/pcos-cookbook/pages/page_size/

要检索 ArtBox,您只需使用 pCOS 路径:

           // $pageno is the 0 based index of the pages. First page is 0
           if ($p->pcos_get_number($doc, "type:pages[" . $pageno . "]/ArtBox") == 5)
            {
                $llx = sprintf("%.2f", $p->pcos_get_number($doc, "pages[" . $pageno . "]/ArtBox[0]"));
                $lly = sprintf("%.2f", $p->pcos_get_number($doc, "pages[" . $pageno . "]/ArtBox[1]"));
                $urx = sprintf("%.2f", $p->pcos_get_number($doc, "pages[" . $pageno . "]/ArtBox[2]"));
                $ury = sprintf("%.2f", $p->pcos_get_number($doc, "pages[" . $pageno . "]/ArtBox[3]"));

            }