2

cfpdfのPageSizes 配列はメディアボックスのサイズを返していますが、トリムボックスを取得する必要があります

cfpdf の出力例

imagemagick (および cfexecute) などのコンソール ツールを使用せずに、ColdFusion (または Java) でトリムボックスを取得することは可能ですか?

4

2 に答える 2

4

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> 
于 2013-10-01T15:16:31.620 に答える