cfpdfのPageSizes 配列はメディアボックスのサイズを返していますが、トリムボックスを取得する必要があります。
imagemagick (および cfexecute) などのコンソール ツールを使用せずに、ColdFusion (または Java) でトリムボックスを取得することは可能ですか?
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>