我在将数千个 PDF 文件写入和合并为单个 PDF 文件时遇到性能问题。每个 PDF 文件大约 1.76MB。我的 JVM 堆大小仅默认为 512。我已将 JAVA 堆大小增加到 2048 MB。以下代码为 1000 个 pdf 编写 pdf 表单字段,并将 1000 个 pdf 合并为单个。超过 1000 个 pdf 文件会在 Coldfusion-out.log 文件中引发以下错误日志。
2016 年 12 月 30 日 18:43:12 PM 信息 [scheduler-1] - 运行客户端存储清除
我该如何解决这个问题?
我正在使用以下代码编写一些 pdf 字段并合并为单个 pdf:
<cfset outputFilePath = "PDF_#dateformat(now(),"dd_mm_yyyy")#">
<cfloop from="1" to="1500" index="i">
<cfset RandToken = createUUID()>
<cfset inputFileName = "Test-cert.pdf">
<cfif directoryExists("C:\ColdFusion10\cfusion\wwwroot\outputPDF\#outputFilePath#") EQ false>
<cfdirectory action="create" directory="C:\ColdFusion10\cfusion\wwwroot\outputPDF\#outputFilePath#">
</cfif>
<cfset OutputFile = "outputPDF/#outputFilePath#/#RandToken#_outputPDF.pdf">
<cfpdfform source="#inputFileName#" destination="#OutputFile#" action="populate">
<cfloop from="1" to="10" index="CurrentField">
<cfset FormField = "BirthDate">
<cfset FormValue = "12/24/1987">
<cfpdfformparam name="#FormField#" value="#FormValue#" />
</cfloop>
<cfloop from="1" to="3" index="Fieldvalue">
<cfset FormField = "fullName">
<cfset WorkingText = "Sathish#Fieldvalue#">
<cfpdfformparam name="#FormField#" value="#WorkingText#" />
</cfloop>
</cfpdfform>
<cfpdf action="write" flatten="yes" overwrite="yes" source="#OutputFile#" destination="#OutputFile#">
</cfloop>
<cfpdf action="merge" directory="C:\ColdFusion10\cfusion\wwwroot\outputPDF\#outputFilePath#" order="name" ascending="yes" stoponerror="false" overwrite="yes" destination="mergedPDf.pdf" />
<cfdirectory action="list" directory="C:\ColdFusion10\cfusion\wwwroot\outputPDF\#outputFilePath#" recurse="yes" name="resultOfZip"/>
<cfloop query="resultOfZip">
<cffile action="delete" file="C:\ColdFusion10\cfusion\wwwroot\outputPDF\#outputFilePath#\#resultOfZip.NAME#">
</cfloop>
<cfheader name="Content-Disposition" value='inline;filename="mergedPDf.pdf"'>
<cfcontent type="application/pdf" file="mergedPDf.pdf" deleteFile="yes">
我在以下配置机器上运行上面的代码:windows 10,RAM 6 GB,CF10 谁能建议我如何将所有文件合并到一个 pdf 中?