首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CFPDF或Java:获取pdf文件的裁剪框大小

CFPDF或Java:获取pdf文件的裁剪框大小
EN

Stack Overflow用户
提问于 2013-10-01 14:43:50
回答 2查看 485关注 0票数 2

cfpdf的PageSizes数组正在返回mediabox大小,但我需要获得裁剪箱

如果不使用像imagemagick (和cfexecute)这样的控制台工具,就可以使用ColdFusion (或Java)获得裁剪框吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-01 17:14:43

cfpdf的PageSizes数组实际上返回。

虽然CF不直接公开裁剪框,但是您可以使用底层的java对象来获得相同的结果。如果您在带有cfpdf操作读取的变量中读取PDF,则该变量只是PDFDocument上的一个包装器(用LiveCycle记录)。伪代码如下所示:

代码语言:javascript
复制
pageTree = varname.getDoc().requirePages();

page = pageTree.getPage(index);

trimBox = page.getTrimBox().getValues();

height = trimBox[4] - trimBox[2];

width = trimBox[3] - trimBox[1];

昌丹·库马尔

附注:使用无文档的api

票数 2
EN

Stack Overflow用户

发布于 2013-10-01 15:16:31

您可以使用与CF捆绑在一起的旧版本的iText。将文件加载到PdfReader对象中。然后使用PdfReader.getBoxSize(int index,String boxName)获取每个页面的裁剪框(可能为null),并提取宽度和高度。

下面是一个用CF9测试的示例:

代码语言:javascript
复制
<cfscript>
    path = "C:/path/to/file.pdf";
    reader = createObject("java", "com.lowagie.text.pdf.PdfReader").init( path );

    sizes = [];
    for (i = 1; i <= reader.getNumberOfPages(); i++) {
        //note: the trimbox may be null / undefined
        rect = reader.getBoxSize( i, "trim");
        if (structKeyExists(variables, "rect")) {
            arrayAppend(sizes, {height=rect.getHeight(), width=rect.getWidth()});
        }
    }

    WriteDump(sizes);
</cfscript> 
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19119219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档