1

何千もの PDF ファイルを 1 つの 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 にマージする方法を誰か提案できますか?

4

0 に答える 0