我在编写和合并数千个PDF文件到单个PDF文件时遇到了性能问题。每个PDF文件大约是1.76MB。我的JVM堆大小默认为512。我已将JAVA堆大小增加到2048 MB。以下代码为1000 pdf编写pdf表单字段,并将1000 pdf合并为单个。超过1000个pdfs它会在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?