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

时间:2019-09-18 13:35:35

标签: pdflib

使用PDFlib,我正在向页面添加元素。我的目标是通过$p->end_page_ext("");关闭页面后以某种方式检索元素的组合高度和宽度。

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

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

对页面的高度或宽度不感兴趣-仅添加元素所占据的空间。

1 个答案:

答案 0 :(得分:1)

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

之后,您可以从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]"));

            }