2013-08-21 3 views
2

Я пытаюсь выполнить слияние PDF в CFScript.Слияние CFScript PDF с несколькими источниками

До сих пор у меня есть:

pdfService = new pdf(); 
pdfService.addParam(source='#source1#'); 
pdfService.addParam(source='#source2#'); 
writedump(pdfService); 
pdfService.merge(destination="#getTempDirectory()#myfile.pdf"; 

Но кажется, что addParam не работает. Когда pdfService сбрасывается после addParams, источник не задан. Каков правильный способ настройки с помощью addParams? Если есть только один источник, то он отлично работает с помощью

pdfService.addSource(source1); 

Но в случае нескольких источников, addParam не работает, и когда он пытается выполнить слияние ошибка появляется о том, что источник пустой.

Обратите внимание, что источником не является путь в файловой системе, это двоичный объект PDF. Он отлично работает, когда я делаю это в обычном CF образом:

<cfpdf action="merge" destination="#getTempDirectory()#myfile.pdf"> 
    <cfpdfparam source="source1" /> 
    <cfpdfparam source="source2" /> 
</cfpdf> 

Но мне нужно, чтобы заставить его работать в CFScript.

ответ

0

Возможно, это связано с тем, как вы читаете источники (ваш код не показывает это). Попробуйте следующее, который работает на CF9.01 и принимает PDF-файлы находятся в том же каталоге, что и сценарий (EDIT: исходные файлы PDF для чтения из URL-адресов):

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()).

+0

Как я уже отмечал, источник не является фактическим путем в файловой системе. Это URL, который отображает PDF в браузере. ex) www.mysite.com/viewpdf/1234 Он отлично работает и сглаживается с использованием метода cfml, но не с помощью cfscript, используя тот же источник. – Guest

+0

Чтение исходных двоичных файлов PDF из URL-адресов, а не путей, также работает для меня. См. Обновленный ответ. – CfSimplicity

Смежные вопросы