我正在尝试在CFScript中进行PDF合并。
到目前为止,我有:
pdfService = new pdf();
pdfService.addParam(source='#source1#');
pdfService.addParam(source='#source2#');
writedump(pdfService);
pdfService.merge(destination="#getTempDirectory()#myfile.pdf";
但似乎addParam不起作用。 在addParams之后转储pdfService时,不会设置源。 使用addParams设置它的正确方法是什么? 如果只有一个源,则使用
可以正常工作pdfService.addSource(source1);
但是在多个源的情况下,addParam不起作用,当它尝试进行合并时,会出现错误,说明源是空的。
请注意,源文件系统中不是路径,它是二进制PDF对象。 当我以通常的CF方式进行时,它工作正常:
<cfpdf action="merge" destination="#getTempDirectory()#myfile.pdf">
<cfpdfparam source="source1" />
<cfpdfparam source="source2" />
</cfpdf>
但我需要让它在CFScript中运行。
答案 0 :(得分:0)
这可能与您在源中阅读的方式有关(您的代码没有显示)。尝试以下适用于CF9.01 的内容,并假设pdf文件与脚本位于同一目录中(编辑:从URL读取源PDF):
pdfService = New com.adobe.coldfusion.pdf();
//source1 = pdfService.read( source="#ExpandPath( 'a.pdf' )#",name="source1" );
//source2 = pdfService.read( source="#ExpandPath( 'b.pdf' )#",name="source2" );
source1 = pdfService.read( source="http://www.mysite.com/viewpdf/a.pdf",name="source1" );
source2 = pdfService.read( source="http://www.mysite.com/viewpdf/b.pdf",name="source2" );
pdfService.addParam( source="source1" );
pdfService.addParam( source="source2" );
pdfService.merge( destination="#ExpandPath( 'merged.pdf' )#" );
顺便提一下,我建议始终指定CF脚本“标签为cfcs”的完整点路径,以防你在其他地方有任何类似命名的组件(即New com.adobe.coldfusion.pdf()
而不仅仅是New pdf()
)。