2015-01-09 3 views
2

coldfusion pdf를 사용할 때와 같이 파일을 저장하거나 "열 수있는"팝업을 만들려면 어떻게해야합니까? ColdFusion PDF "열기"또는 "파일 저장"프롬프트

enter image description here

나는이 양식은 실제로 광산하지 않을 때 그것을 만드는 방법을 알아 내려고 노력하고 있어요 난 그냥 사용하고 이미 존재하는 양식을 미리 입력하고있다.

<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> 

하지만이 두 가지를 결합 할 수있는 방법 확실하지 않다 :

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

나는 이런 식으로 뭔가를 수행하여이 팝업을 만들 수 있었다. 어떤 도움이라도 대단히 감사합니다! 내가 시도 무엇 요청에 따라

: 기본적으로

<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을 = "true"를

<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"> 

변수 :

사용 변수에 내용을 저장하기 위해 "name"속성. "이름"은 설명서에 나와 있지 않지만 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

(편집) 결과에 무엇이 잘못된 것인지 설명하는 것을 잊었습니다. 당신이 가지고있는 것은 나를 위해 잘 작동합니다. 참고로 문제를 재현하는 데 필요한 * 최소 * 코드 만 게시하십시오. 이 경우 단일 필드를 채우는 코드가이를 수행합니다. – Leigh

+0

그럴 것 같지 않습니다. 실제 코드에는 뭔가 다른 것이 있거나 캐싱과 같이 간단합니다. 직접 처리 할 수 ​​있습니다. [내 편집의 간단한 예제] (http://stackoverflow.com/posts/27869058/revisions)에서 시작하십시오. 해당 코드 만 사용하여 간단한 테스트 페이지를 작성하십시오. 당신은 그것을 볼 수 있습니다 작동합니다. 그럼 거기서가. 분명히 "* c : /path/to/someUniqueFileName.pdf"에 실제 * 경로와 * 고유 * 파일 이름을 대체하십시오. – Leigh