2015-01-09 2 views
2

Как создать всплывающее окно, которое позволяет пользователю «открывать с» или сохранять файл, как при работе с документами coldfusion pdf?ColdFusion PDF «Открыть с помощью» или «сохранить файл» приглашение

enter image description here

Я пытаюсь понять, как создать его, когда эта форма на самом деле не моя, и я просто использовать и автозаполнение формы, которая уже существует.

<cfpdfform source="82040.pdf" action="populate"> 
    <cfpdfformparam name="cust ##" value=""> <!---Section1 Customer Number---> 
</cfpdfform> 

Я был в состоянии создать эту шипучку вверх, делая что-то вроде этого:

<cfsetting enablecfoutputonly="true"> 
<cfcontent type="application/pdf"> 
<cfheader name="Content-Disposition" value="attachment;filename=test.pdf"> 
<cfdocument format="PDF" localurl="yes" 
    marginTop=".25" marginLeft=".25" marginRight=".25" marginBottom=".25" 
    pageType="custom" pageWidth="8.5" pageHeight="10.2"> 
<cfoutput><?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title>PDF Export Example</title> 
</head> 
<body> 
</body> 
</html> 
</cfoutput> 
</cfdocument> 

Но я не знаю, как я могу объединить эти два. Любая помощь очень ценится!

Per Запроса То, что я пробовал:

<cfset tempFilePath = "c:/path/to/someUniqueFileName.pdf"> 
<cfpdfform source="82040.pdf" action="populate" destination="#tempFilePath#"> 
    <cfpdfformparam name="org" value="Yes"> <!---Above Section1 Original ---> <!---On---> 
</cfpdfform> 
<cfheader name="Content-Disposition" value="attachment;filename=Testme.pdf"> 
<cfcontent type="application/pdf" file="#tempFilePath#" deleteFile="false"> 
+0

я не вижу ответ там .. Я пытаюсь сделать эту форму есть подсказка ' ' Все это coldfusion и не имеет html. – Vicki

+0

Это ссылка на pdf. Я предварительно заполняю http://www.flhsmv.gov/dmv/forms/BTR/82040.pdf – Vicki

ответ

1

По умолчанию cfpdfform делает результат в браузере, т.е. "инлайн". Вместо этого верните его в качестве вложения, сохраните содержимое в файл или переменную. Затем используйте cfheader/cfcontent, чтобы вернуть его в качестве вложения.

Файл:

Используйте "целевой" атрибут, чтобы сохранить его в файл. Чтобы избежать конфликтов с другими потоками, обязательно используйте уникальные имена файлов. Для того, чтобы автоматически удалить временный файл, когда закончите, установите DeleteFile = «истинный»

<cfset tempFilePath = "c:/path/to/someUniqueFileName.pdf"> 
<cfpdfform source="82040.pdf" action="populate" destination="#tempFilePath#"> 
    ... 
<cfheader name="Content-Disposition" value="attachment;filename=test.pdf"> 
<cfcontent type="application/pdf" file="#tempFilePath#" deleteFile="false"> 

Variable:

Используйте «имя» атрибут сохранить содержимое переменной. Хотя «имя» не указано в документации, this bug report предполагает, что это просто ошибка документации.

<cfpdfform source="82040.pdf" action="populate" name="pdfContent"> 
... etcetera ... 
<cfheader name="Content-Disposition" value="attachment;filename=test.pdf"> 
<cfcontent type="application/pdf" variable="#toBinary(pdfContent)#"> 
+0

Извините, у меня нет времени на чат прямо сейчас. Тем не менее, это в значительной степени то, что я написал выше. Можете ли вы обновить свой вопрос с помощью кода, который вы пробовали? – Leigh

+0

(Edit) Вы забыли объяснить, что не так с результатом. То, что у вас есть, отлично подходит для меня. Обратите внимание, что только сообщение * минимальный * код, необходимый для воспроизведения проблемы. В этом случае код, заполняющий одно поле, сделает это. – Leigh

+0

Это кажется маловероятным. Либо в вашем фактическом коде есть что-то другое, либо что-то простое, как кеширование - которое вы можете обрабатывать самостоятельно. Начните с [упрощенного примера в моем редактировании] (http://stackoverflow.com/posts/27869058/revisions). Создайте простую тестовую страницу с * только * этим кодом - ничего больше. Вы увидите, что он работает. Затем идите оттуда. Очевидно, замените имя * real * path и * unique * на имя файла «c: /path/to/someUniqueFileName.pdf». – Leigh

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