2016-06-02 8 views
0

cfdocument를 사용하여 HTML에서 PDF를 인쇄하려고합니다. 이 코드는 localhost를 통해 액세스 할 때 제대로 작동하지만 정적 IP를 사용하여 같은 서버에서 온라인으로 테스트 할 때 시간 초과가 발생합니다.cfchart가 PDF로 인쇄되지 않습니다.

나는 cfhtmltopdf을 시도했지만 타임 아웃하지 않았지만 차트를 생성하지 않고 "이미지 누락 아이콘"을 표시합니다. 차트가 생성되거나 이미지가 생성되지 않습니다. 텍스트가 잘 인쇄됩니다. 이미지 나 차트를 사용할 때 PDF를 생성하는 데 20 ~ 30 초 정도 걸립니다.

CF11 32 비트 및 6 비트 모두에서 동일한 문제가 발생했습니다. 심지어 간단한 코드는 실패

<cfhtmltopdf> 
<!DOCTYPE html> 
<html> 
<body> 
    <div class="pdf_logo" style="margin-bottom: 20px;"> 
     <a href="##"><img src="images/logo.png" width="180"></a> 
    </div> 
</body> 
</html> 
</cfhtmltopdf> 
+1

당신이 웹에서 이미지를 렌더링하려고 단순히 PDF 부분을 잊고 경우 브라우저에서 문제가 사라지거나 지속됩니까? –

+0

늦게 답장을 보내 주셔서 죄송합니다. @DanBracuk은 cfdocument가 없어도 잘 작동합니다. – Bsienn

답변

1

cfhtmltopdf에서 비슷한 문제가 발생했습니다. 필자의 경우에는 cfimage 태그를 사용하고 있었으며 이미지는 PDF 문서에서 매우 산발적으로 렌더링되었습니다.

cfhtmltopdf 태그 렌더링은 해당 태그 (예 : cfimage 또는 cfchart)에서 발생할 수있는 렌더링과는 별도의 스레드에서 비동기 적으로 발생합니다. 따라서 cfhtmltopdf 태그는 렌더링을 끝내고 cfimage 또는 cfchart 렌더링 결과를 갖지 않으므로 소스를 찾을 수 없기 때문에 "깨진 이미지"아이콘이 표시됩니다.

그래서 ColdFusion 설명서에 따라이 솔루션은 † 당신을 도울 수 있습니다

<!--- 1. Generate the chart as a jpeg image. ---> 
<cfchart name="myChart" format="jpg">    
    <cfchartseries type="pie"> 
     <cfchartdata item="New Vehicle Sales" value=500000> 
     <cfchartdata item="Used Vehicle Sales" value=250000> 
     <cfchartdata item="Leasing" value=300000> 
     <cfchartdata item="Service" value=400000> 
    </cfchartseries> 
</cfchart> 

<!--- 2. Write the jpeg image to a temporary directory. ---> 
<cffile 
    action="write" 
    file="#ExpandPath('/charts/vehicle.jpg')#" 
    output="#myChart#" /> 

<!--- 3. Generate the PDF file. ---> 
<cfhtmltopdf> 
<!DOCTYPE html> 
<cfoutput> 
<html> 
    <body> 
     <div class="chart"> 
      <!--- This image tag refers to the file created by cffile ---> 
      <img src="/charts/vehicle.jpg" /> 
     </div> 
    </body> 
</html> 
</cfoutput> 
</cfhtmltopdf> 

† 여기에 예를 바탕으로 : http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec22c24-7934.html

+0

답장을 보내 주셔서 감사합니다. 시간이 좀 걸리지 만 귀하의 제안을 시도하겠습니다. 미래의 문제에 도움이되기를 바랍니다. – Bsienn

3

귀하의 문제는 이미지에 대한 경로의 해상도 아마도. 절대 경로 (http : //) 또는 파일 경로 (file : \)를 시도하십시오 ... 서버 자체의 데스크탑에서 이미지를 분석하십시오.

내부적으로 서버가 images/logo.png를 다음과 같은 것으로 해결해야한다는 것을 기억하십시오. 예를 들어 cfm을 생성하는 pdf가 루트가 아닌 폴더에 있으면 서버에서 http://blah.com/일부 폴더 /images/logo.png로 해결할 수 있습니다. "images"폴더가 없어 자연히 작동하지 않습니다 거기에.

다른 가능성? 서버가 "내부"natted 주소를 확인할 수 없거나 방화벽 인터페이스를 통해 외부 주소를 사용하려합니다.

다행히도 거의 모든 이러한 문제를 쉽게 테스트하거나 해결할 수 있습니다. 또한 file method을 사용하여 PDF 파일에 리소스를 포함시키는 것만으로도 골치 아픈 일을 피할 수 있습니다.

해상도 문제에 대한 자세한 내용은 내 게시물 Network address resolution and Cfdocument을 참조하십시오.

희망이 도움이됩니다. 행운을 빕니다.

+0

답장을 보내 주셔서 감사합니다. 이미지를 제거해도 cfm이 생성 한 cfchart가 있는데 cfchart와 동일한 문제가 계속 발생합니다. 정보는 도움이된다. CF에 처음 온 사람입니다. – Bsienn

+0

localURI = true를 사용했으며 이미지가 표시되었습니다. 그러나 차트가 표시되지 않고 대신 적색 아이콘이 표시됩니다. 이것에 대한 어떤 생각? – Bsienn