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

如果不使用像imagemagick (和cfexecute)这样的控制台工具,就可以使用ColdFusion (或Java)获得裁剪框吗?
发布于 2013-10-01 17:14:43
cfpdf的PageSizes数组实际上返回。
虽然CF不直接公开裁剪框,但是您可以使用底层的java对象来获得相同的结果。如果您在带有cfpdf操作读取的变量中读取PDF,则该变量只是PDFDocument上的一个包装器(用LiveCycle记录)。伪代码如下所示:
pageTree = varname.getDoc().requirePages();
page = pageTree.getPage(index);
trimBox = page.getTrimBox().getValues();
height = trimBox[4] - trimBox[2];
width = trimBox[3] - trimBox[1];昌丹·库马尔
附注:使用无文档的api
发布于 2013-10-01 15:16:31
您可以使用与CF捆绑在一起的旧版本的iText。将文件加载到PdfReader对象中。然后使用PdfReader.getBoxSize(int index,String boxName)获取每个页面的裁剪框(可能为null),并提取宽度和高度。
下面是一个用CF9测试的示例:
<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> https://stackoverflow.com/questions/19119219
复制相似问题