270 PDF를 생성해야하고 DOMPDF를 사용해야합니다. 문제는 20 PDF를 생성 한 후 내부 서버 오류가 발생한다는 것입니다. 시간 제한도 0으로 설정했습니다. 많은 PDF를 생성하는 가장 좋은 방법은 무엇입니까?수백 개의 PDF 생성
답변
wkhtmltopdf을보아야합니다. 그것은 훌륭한 도구이며, 아무 문제없이 수천 페이지가있는 수천 개의 pdfs를 생성하기 위해이 도구를 사용해 왔습니다.
구문이 될 수있는 쉬운 :
wkhtmltopdf http://google.com google.pdf
이 구글 홈페이지에서 PDF를 만들 것입니다.
wkhtmltopdf는 실제 (헤드리스) 브라우저를 실행하므로 경량이 아니며 특히 빠르지 않습니다. 배치 처리, 특히 esp에 대한 좋은 대안이 아닐 수도 있습니다. 작업에 복잡한 레이아웃이 포함되지 않은 경우 –
물론 변환 할 데이터에 따라 달라집니다. 복잡한 레이아웃이 좋지 않을 수 있습니다. 수동으로 페이지를 레이아웃하기 위해'tcpdf '를 사용할 수도 있습니다. 이렇게하면 최종 결과에 더 많은 힘을 얻을 수 있지만 제작/코드 작성에 더 많은 노력이 필요합니다. 런타임 응용 프로그램이 있으면 더 빠를 수도 있습니다. – cb0
@ cb0 나는 동적으로 출력을 생성합니다 ... 그래서 변수 $ 출력 = "내 HTML"과 나는 폴더에 PDF 파일을 저장해야합니다. 이 경우 나는 이것을 할 수있다 : wkhtmltopdf $ output /folder/mypdf.pdf 또는 아닌가? – Eliana
Dompdf를 사용하여 많은 수의 문서를 생성하려면 각 렌더에 대해 외부 프로세스를 생성해야합니다. 이는 더 빠르고 자원 집약적 일 수 있습니다 (즉, 메모리 사용에 관한 것) [ref].
나는 비슷한 작업을 위해 과거에 사용했던 단계는했다 :
- 렌더링에 대한 각각의 HTML 문서를 작성 (선택적으로 파일에 저장).
- 해당 HTML을 PDF로 렌더링하는 프로세스를 생성하십시오.
- HTML을 파일로 저장 한 경우 HTML을 삭제하십시오.
foreach ($htmldocs as $htmldoc) { exec("php dompdf.php $htmldoc"); }
그리고 dompdf.php이 DOMPDF를 인스턴스화하고 HTML 파일을 렌더링하는 스크립트 될 것이다 :
그래서 2 단계는 다음과 같이 될 것이다.
$dompdf = new Dompdf();
$dompdf->load_html_file($argv[1]);
$dompdf->render();
$filename = basename($argv[1], '.html').'.pdf';
file_put_contents($filename, $dompdf->output());
보너스 정보 : 실제로 쉽게 정의 페이지와 약간 큰 문서를 작성했다 I've done something similar. 이 프로세스의 네 번째 단계에서 나는 pdftk을 사용하여 렌더링 된 PDF 문서를 단일 PDF로 결합했습니다.
$exec_cmd = 'pdftk';
for ($html_doc = 1; $html_doc <= count($html_docs); $html_doc++) {
$exec_cmd .= ' ' . TEMP_DIR . '/' . $filenames[$html_doc] . '.pdf';
}
$exec_cmd .= ' cat output ' . FILESTORE_DIR . '/' . $packet_gen_info['packet_code'] . '.pdf';
exec($exec_cmd, $pdftk_output, $pdftk_return_code);
- 1. 수백 개의 항목이있는 행
- 2. 수백 개의 이미지가있는 NSCache
- 3. VS2008에서 수백 개의 오류가 발생했습니다.
- 4. 수백 개의 서버에서 JPA 사용
- 5. 수백 개의 파일을 천천히 읽음
- 6. 수백 개의 ASP.NET MVC 경로
- 7. 수백 개의 이미지로 슬라이더 구현하기
- 8. 수백 개의 PHP 분할 배열
- 9. 수백 개의 이벤트 핸들러 분리하기
- 10. 어플의 res에는 수백 개의 mp3 파일이 있습니다.
- 11. Windows에서 수백 개의 하위 프로세스를 사용하고 있습니까?
- 12. 수백 개의 열과 열 인덱스에 문자열로 결합하기
- 13. phpexcel을 사용하여 pdf 생성
- 14. 수백 개의 하위 도메인이 Azure에 동적 매핑됩니다.
- 15. 수백 개의 데이터베이스 SQL Server 로그 전달
- 16. 수백 개의 아이콘에 대해 다중 화면 지원
- 17. 수백 개의 셀에서 문자열을 연결하는 방법은 무엇입니까?
- 18. 수백 개의 .doc 페이지를 웹 페이지에 넣기
- 19. 수백 개의 HTML 파일을 통해 검색
- 20. 가능한 한 빨리 수백 개의 파일에 액세스
- 21. 수백 개의 열로 구성된 주문 주문
- 22. Azure 테이블 저장소에서 수백 개의 엔티티 삭제하기
- 23. 수백 개의 필드에서 데이터를 저장하는 모범 사례
- 24. beginner : 수백 개의 args를 가진 python subprocess.call
- 25. 수백 개의 프로세스를 생성하는 Eclipse Gradle 플러그인
- 26. Node.JS가 동시에 수백 개의 파일을 다운로드 중
- 27. Tomcat에서 수백 개의 AJP 스레드의 원인을 확인하십시오.
- 28. 수백 개의 이미지로 슬라이드 쇼 최적화
- 29. 지연없이지도에 수백 개의 마커를 추가하는 방법은 무엇입니까?
- 30. 게시물에 수백 개의 이미지를 업로드하려면 어떻게해야합니까?
한 번에 하나씩? –
@MarkBaker 나는 pdf를 while ..으로 생성하고 테이블에 270 개의 레코드가 있습니다. – Eliana
"500 내부 서버 오류"상태 코드 (또는 빈 페이지)는 스크립트가 오류를 발생 시키지만 PHP를 구성하지 않았 음을 나타냅니다 오류 메시지를 표시하십시오. 오류 메시지를 보지 않고 올바르게 코드를 작성하기가 어렵 기 때문에 추가 작업을하기 전에 해결해야 할 사항입니다. 오류보고 엄지 규칙은 개발 및 로그인 프로덕션에 표시됩니다. 출발점으로,'error_reporting'과'display_errors' 지시자를 개발하고 조정하는 컴퓨터에서 시스템 전체의'php.ini' 파일을 편집 해보는 것이 좋습니다 ([here here] (http://stackoverflow.com/). a/5680885/13508)). –