2017-03-07 3 views
0

나는 wkhtmltopdf (0.12.4, 패치 된 qt 포함) 및 phpwkhtmltopdf를 사용하여 html에서 PDF 파일을 만듭니다. 이 PDF 중 일부에서는 차트를 여러 개 포함해야하며 Google 차트를 사용하고 있습니다. 현재 직면하고있는 문제는 차트가 포함 된 여러 페이지가있는 PDF를 만들려고 할 때 발생합니다. 다음 메시지와 함께 프로세스 오류가 발생합니다.Wkhtmltopdf 및 Google 차트

Loading pages (1/6) 
[>               ] 0% 
[>               ] 0% 
[>               ] 1% 
[=>               ] 2% 
[=>               ] 3% 
[==>               ] 4% 
[===>              ] 5% 
[===>              ] 6% 
[====>              ] 7% 
[====>              ] 8% 
[=====>              ] 9% 
[======>              ] 10% 
[======>              ] 10% 
[=======>             ] 13% 
[==========>             ] 18% 
[============>            ] 21% 
[===============>           ] 26% 
[===============>           ] 26% 
[==================>           ] 30% 
[=====================>          ] 35% 
[======================>          ] 38% 
[=========================>         ] 43% 
[===========================>        ] 46% 
[==============================>        ] 51% 
[=================================>       ] 55% 
[===================================>      ] 59% 
[=====================================>      ] 63% 
[========================================>     ] 67% 
[==========================================>     ] 71% 
[=============================================>    ] 76% 
[=============================================>    ] 76% 
[==============================================>    ] 78% 
[==============================================>    ] 78% 
[===============================================>   ] 79% 
[================================================>   ] 80% 
[================================================>   ] 81% 
[====================================================>  ] 87% 
[=====================================================>  ] 89% 
[======================================================>  ] 90% 
[======================================================>  ] 91% 
[=======================================================> ] 92% 
[=========================================================> ] 95% 
[============================================================] 100% 

매우 유용한 오류는 아닙니다.

차트를로드 할 수있는 기회를주기 위해 1 초 js 지연을 사용하고 있습니다. 이 지연을 제거하면 오류없이 PDF가 작성되지만 차트가 표시되지 않습니다. 또한 지연을 1 초로 유지하면서 차트가 포함 된 페이지 수를 줄이면 모든 것이 완벽하게 작동합니다. 5 개의 "차트 페이지"로 10 페이지의 PDF를 만들 수 있지만 6 개의 차트로 11 페이지를 시도하면 실패합니다. 하나의 PDF에서 10 개 또는 15 개의 차트를 더 처리 할 수 ​​있어야합니다.

이 오류에 대한 통찰력이나 다른 접근 방법에 대한 제안은 감사하겠습니다. 감사!

+0

@WhiteHat, 제안에 감사드립니다. 나는 운이없는 그것을 시도했다. 이전과 같은 결과를 얻었습니다. – saudes

답변

0

차트가 포함 된 부하가 많은 페이지에서 비슷한 문제가 발생했습니다. 타이밍을 올바르게 잡는 것은 까다 롭습니다. 그리고 나는 많은 시간 동안 머리카락을 잡아 당겨서 키를 발견했습니다. (적어도 나를 위해) 방정식의 '양쪽'이 오랜 시간 동안 정확하게 시간이 맞춰 지는지 확인하는 것입니다. wkhtmltopdf 대기 상태. 구글 차트 측

IE, 나는 실제 라이브러리 풀에 JS 지연을 추가하여 바보 크롬 '느린 페이지로드'오류를 방지하기에 충분한 지연 포함 :

setTimeout(function(){google.load('visualization', '1.1', {'callback':'drawChart', 'packages':['corechart', 'bar']})}, 1200); 

1200 나의를 위해 잘 작동 니가 필요로 할 때, 당신은 당신이 구글로부터 무엇을 당기는 지에 따라 그것을 더 높이 올릴 필요가있을 것이다.

중요한 것은 (나를 위해) wkhtmltopdf가 지연 시간을 조정하고 자체 지연 (Google 지연 + 처리 지연)을 조금 더 추가했는지 확인하는 것이 었습니다. 이 페이지에서는 pdf 쪽에서 2200ms 지연을 추가했습니다.

--javascript-delay: 2200 

두 항목이 균형을 이룰 때까지 전혀 작동하지 않습니다. 앞에서 말했듯이 지연없이 차트가 전혀 표시되지 않습니다. 이는 절반의 오류를 해결할 가능성이 높다는 것을 보여줍니다. 상대방에게 지연을 추가하고 도움이되는지 확인하는 것이 도움이 될 수 있습니다.