3

我正在升级到 ColdFusion 2018。我用来转换和旋转 PDF 的 iText 例程,pdfReader 会锁定在页面完成时不会释放的文件。

我尝试close()在我的代码中添加一个方法。(第 11 版中的 pdfReader 不需要它。)

<cfscript>

reader = createObject("java", "com.lowagie.text.pdf.PdfReader").init( "test.pdf" );

reader.close();

inStream = createObject("java", "java.io.FileReader").init("test2.pdf");

inStream.close();

</cfscript>

我希望在运行提供的脚本时能够重命名或删除这两个文件,但只有 inStream 文件 ( test2.pdf) 可以。阅读器文件 ( test.pdf) 已被系统锁定。

4

2 回答 2

2

使用上面的建议,我认为以下解决方案会起作用。

<cfscript>

    fkeys = createObject("java", "java.io.FileInputStream");
    lKeyStoreFileStream = createObject("java", "java.io.BufferedInputStream").init(fkeys.init("test.pdf"));    

    reader = createObject("java", "com.lowagie.text.pdf.PdfReader").init( lKeyStoreFileStream );

    lKeyStoreFileStream.close();
    fkeys.close();

    reader.close();

</cfscript> 
于 2019-05-30T15:35:44.750 回答
0

与其使用较旧的 Java 插件,不如使用原生的cfpdf.

<cfpdf action="transform" source="myPDF.pdf" rotation="90" name="outPDF">

这个标签还有很多其他的功能。https://cfdocs.org/cfpdf

https://cffiddle.org/app/file?filepath=eca41ba2-22f2-41f2-a205-0c2d3aafe91c/ca3873c8-4d4b-4cfc-8e64-6c4ceb825717/9861993d-7db3-43ee-882f-681a1aa498d4.cfm

于 2019-05-30T17:59:39.310 回答