HTML + CSS를 PDF로 변환 [닫기]


1628

Firefox 3 및 IE 7에서 잘 렌더링되는 HTML (XHTML 아님) 문서가 있습니다. 상당히 기본적인 CSS를 사용하여 스타일을 지정하고 HTML로 잘 렌더링합니다.

이제 PDF로 변환하는 방법을 밟고 있습니다. 나는 시도했다 :

  • DOMPDF : 테이블에 큰 문제가있었습니다. 내 큰 중첩 테이블을 제외하고 도움이되었습니다 (최대 128M의 메모리를 소비하고 죽기 전에-php.ini의 메모리에 대한 한계입니다). 그러나 테이블을 완전히 엉망으로 만들지 않는 것처럼 보입니다. 이미지. 이 테이블은 다양한 점에서 일부 선을 추가하기 위해 일부 테두리 스타일을 가진 기본 항목이었습니다.
  • HTML2PDF 및 HTML2PS : 실제로 이것으로 더 나은 행운을 얻었 습니다. 일부 이미지 (모든 이미지는 Google 차트 URL 임)를 렌더링했으며 테이블 형식이 훨씬 나아졌지 만 아직 파악하지 못하고 알 수없는 node_type () 오류로 계속 죽어가는 복잡한 문제가있는 것 같습니다. 여기서 어디로 가야할지 모르겠다. 과
  • Htmldoc : 이것은 기본 HTML에서 잘 작동하는 것처럼 보이지만 CSS를 거의 지원하지 않으므로 HTML의 모든 작업을 수행해야합니다 (Htmldoc-land에서는 여전히 2001 년이라는 것을 몰랐습니다 ...) 그래서 쓸모가 없습니다.

실제로 Html2Pdf Pilot이라는 Windows 응용 프로그램을 사용해 보았지만 실제로 Linux에서는 최소한 실행되고 웹 서버에서는 PHP를 통해 주문형으로 실행되는 것이 필요합니다.

무엇이 누락되었거나이 문제를 어떻게 해결할 수 있습니까?


9
Html2Pdf는 실제로 임베디드 IE 인스턴스를 사용하여 페이지를 렌더링 한 다음이를 IE의 인쇄 메커니즘을 통해 PDF로 변환합니다.
Joel Mueller

55
2008 년 질문이므로 dompdf는 훨씬 더 성숙해졌습니다. ;-)
Hendra Uzia

5
DOMPDF 이제 CSS 2.1을 지원하고 해결할 수있는 @import, @media그리고 @screen규칙 및 외부 스타일 시트를로드합니다. 기본 라이브러리보다 더 나은 성능을 얻기 위해 설치할 수있는 것이 있지만 작동하기 위해 필요한 모든 것이 번들로 제공됩니다. code.google.com/p/dompdf
totallyNotLizards

6
2015 업데이트 : 많은 옵션을 연구 한 후 외부 CSS 파일이 있기 때문에 CSS와 싸우는 멋진 유틸리티 인 wkhtmltopdf를 사용하기로 결정했지만 원하는 HTML 요소에 CSS의 더미 링크를 배치하는 트릭을 적용했습니다 MAGIC처럼 작동하고 올바른 경로를 설정하십시오 !!!
Anshul Nigam

10
Chrome / Chromium 헤드리스 chrome --headless --print-to-pdf="path/to/pdf" https://your_url 가 가장 풍부하고 빠르며 가장 쉬운 html to pdf 생성 도구 crbug.com/603559 에서 곧 개발자가 웹 개발에 의존하는 대부분의 HTML 기능을 지원하고 다른 대부분의 스크립트와 같이 복잡한 스크립트를 사용하지 않기 때문에 도서관과 도구
Ebrahim Byagowi

답변:


551

중요 : 이 답변은 2009 년에 작성되었으며 2019 년에는 오늘날 가장 비용 효율적인 솔루션이 아닐 수 있습니다. 온라인 대안은 이전보다 더 나은 방법입니다.

사용할 수있는 온라인 서비스는 다음과 같습니다.


PrinceXML을 살펴보십시오 .

무료는 아니지만, HTML / CSS에서 PDF로 변환하는 것이 가장 좋습니다.하지만 프로그래밍이 자유롭지 않을 수도 있습니다. 따라서 10 시간의 작업 시간을 절약 할 수 있습니다 대체 솔루션을 사용하려면 올바른 소프트웨어로 전용 서버를 설정해야합니다.)

네, 이것이 ACID2를 완전하게하는 최초의 HTML2PDF 솔루션이라고 언급 했습니까?

PrinceXML 샘플


16
우리 회사는 Prince를 중심으로 구축 된 웹 서비스를 작성했습니다. 상당히 저렴한 선결제 비용으로 아무것도 설치하지 않고도 사용할 수 있습니다 : docraptor.com
Joel Meador

6
DocRaptor도 사용했습니다. 비싼 라이센스를 지불하지 않고도 Prince의 혜택을 누릴 수있는 멋진 방법입니다. 훌륭한 제품을 축하합니다. Joel.
Nate365

22
너무 비싸요. WKHTMLTOPDF (다른 답변 참조)는 무료이며 작업을 수행하며 멋진 웹킷을 사용합니다.
thomallen

1
가격의 일부에 대해 동일하거나 더 나은 품질의 Saas 서비스가 있습니다-htm2pdf.co.uk
user1914292

5
커맨드 라인 액세스 권한이 있고 $ 3500를 지불하고 싶지 않다면,이 스크립트를 사용하여 PhantomJS : github.com/ariya/phantomjs/blob/master/examples/rasterize.js 가 해결책이 될 수 있습니다-무료이며 쉬운 방법입니다!
chjortlund

666

를보십시오 wkhtmltopdf. 웹킷을 기반으로하며 무료로 제공되는 오픈 소스입니다.

우리는 여기에 작은 튜토리얼을 썼습니다 .

편집 (2017) :

오늘 무언가를 건설한다면 더 이상 그 길을 가지 않을 것입니다.
그러나 http://pdfkit.org/를 대신 사용 하십시오 .
아마도 모든 nodejs 의존성을 제거하여 브라우저에서 실행하십시오.


10
이것은 최고의 전제 IMO에서 작동합니다. 사소한 작업이 아닌 처음부터 새로 작성하는 대신 기존 렌더러에서 Boostrap 변환을 수행하십시오. 또한 Webkit은 C ++로 작성되었으므로 PHP 기반 구현보다 훨씬 빠르고 적은 리소스를 소비합니다.
Koobz

3
글꼴을 올바르게 CentOS 서버로 렌더링하기 위해 많은 문제가 발생했습니다. 말 그대로 몇 주 동안 엉망이 된 후에 유일한 옵션은 CentOS를 사용하지 않는 것 같습니다.
Abhi Beckert

1
경고! wkhtmltopdf (적어도 내 시스템, Windows 7 64 비트의 XAMPP)를 사용하면 모든 경우에 .gif 이미지가 PDF 파일에 나타나지 않습니다. "너비"와 "높이"를 포함하여 다양한 장소에서 제안 된 여러 가지 해결 방법을 시도하고 다른 규칙에 따라 URI를 작성했습니다. 내가 시도한 아무것도 .gif를 나타내지 않았습니다 (특히, "너비"와 "높이"제안조차도 인라인 스타일을 사용하고 고풍스럽고 원시 "너비"와 "높이"HTML 속성을 모두 사용해 보았습니다). 그러나 이미지를 .jpg로 바꾸는 것은 첫 번째 시도에서 효과적이었습니다.
Dan Nissenbaum

6
이 추상화는하지만 꽤 좋은 mikehaertl.github.io/phpwkhtmltopdf
사다

1
상용 서비스는 모두 우리에게 너무 비싸서 WKHTMLTOPDF 를 누구나 사용할 수있는 무료 클라우드 서비스 html2pdfrocket.com 으로 구현 한 다음 고객을 위해 직접 사용했습니다. 우리는 클라이언트가 서버 등에 exe를 설치할 필요가 없으며 크로스 플랫폼에서 작동하도록 그렇게했습니다. 당신이 당신의 자신의 서비스를 구축한다면 나는 확실히 WKHTMLTOPDF를 평가합니다.
eagle779

150

약간의 조사와 일반적인 헤어 풀링 후 솔루션은 HTML2PDF 인 것 같습니다 . DOMPDF 는 테이블, 테두리 및 약간 복잡한 레이아웃으로 끔찍한 작업을 수행했으며 htmldoc 은 상당히 강력 해 보이지만 CSS는 거의 무지하기 때문에 CSS를 사용하지 않고 HTML 레이아웃으로 돌아가고 싶지 않습니다.

HTML2PDF가 가장 유망 해 보였지만 node_type에 대한 null 참조 인수에 대한이 이상한 오류가 계속 발생했습니다. 마침내 이것에 대한 해결책을 찾았습니다. 기본적으로 PHP 5.1.x는 모든 크기의 문자열에서 정규식 대체 (preg_replace_ *)와 함께 잘 작동했습니다. PHP 5.2.1은 pcre.backtrack_limit 라는 php.ini 설정 지시자를 도입했습니다 . 이 구성 매개 변수는 일치하는 문자열 길이를 제한합니다. 이것이 왜 소개되었는지 모르겠습니다. 기본값은 100,000으로 선택되었습니다. 왜 그렇게 낮은 가치? 다시, 몰라요.

버그는 이에 대한 PHP 5.2.1에 대해 제기 된 열려있는, 거의 2 년 후 .

이것에 대해 끔찍한 것은 한계가 초과되면 교체가 자동으로 실패 한다는 것 입니다. 최소한 오류가 발생하여 기록 된 경우 어떤 일이 발생했는지, 왜 그리고 어떤 문제를 해결하기 위해 변경해야하는지에 대한 표시가있을 것입니다. 하지만.

PDF로 변환 할 70k HTML 파일이 있습니다. 다음 php.ini 설정이 필요합니다 :

  • pcre.backtrack_limit = 2000000; # 아마 필요한 것보다 많지만 괜찮습니다.
  • memory_limit = 1024M; # 예, 1 기가 바이트 ; 과
  • max_execution_time = 600; # 예, 10 분 .

이제 독자가 HTML 파일이 100k보다 작다는 것을 알았을 것입니다. 내가이 문제에 부딪친 이유에 대해 추측 할 수있는 유일한 이유는 html2pdf가 프로세스의 일부로 xhtml로 변환한다는 것입니다. 아마도 그것은 나를 인수했습니다 (거의 50 % 팽창이 이상해 보이지만). 어떤 경우이든 위의 작업이 효과적이었습니다.

이제 html2pdf는 자원 돼지입니다. 내 70k 파일은 35 페이지 PDF 파일을 만드는 데 약 5 분, 최소 500-600M의 RAM이 필요합니다. 불행히도 실시간 다운로드를 위해 충분히 빠르지는 않았으며 메모리 사용량은 1000 대 1 (70k 파일의 경우 600M RAM)의 순서로 메모리 사용 비율을 지정합니다.

불행히도, 그것은 내가 생각해 낸 최고의 것입니다.


1
@cletus HTML2PDF의 안정된 버전에 대해 알려주세요. 위의 링크 예제는 더 이상 사용되지 않습니다
Ripa Saha

최신 버전의 참조를 들어 github.com/spipu/html2pdf
누가 복음 Wenke

1
그림 오타가 더 어두워진다 : 메모리 사용률은 10,000 대 1 lol
MickLH

mPDF만큼 나쁘고 빠르지 만 정확하지는 않지만 TTF 글꼴을 변환하는 것은 매우 고통 스럽습니다. 글꼴을 생성하기위한 독립 라이브러리 "tc-lib-pdf-font"도 있습니다
Martin Zvarík

125

mPDF 버전 2.0 을 사용해 보지 않겠 습니까? PDF로 문서를 만들 때 사용했습니다. 잘 작동합니다.

한편 mPDF는 버전 5.7이며 HTML2PS / HTML2PDF와 대조적으로 활발하게 유지됩니다.

그러나 설명서는 실제로 다루기가 어려울 수 있습니다. 예를 들어 https://mpdf.github.io/ 페이지를 살펴보십시오 .

html에서 pdf에 관한 매우 기본적인 작업은이 라이브러리에서 수행 할 수 있지만보다 복잡한 작업은 설명서를 읽고 "이해"하는 데 다소 시간이 걸립니다.


1
나는 여기에 제안 된 것들을 많이 시도했다. 지금 까지이 문서는 번거 로움없이 업로드되어 즉시 처리되었으며 문서는 나머지 문서에 비해 정말 훌륭합니다. 사용 설명서가 명확하게 작성되었습니다.
Smith Smithy

데이터베이스에서 이미지 배경 또는 태그가있는 html 태그를 게시 할 때 mPDF를 사용하면 심각한 번거 로움이 발생합니다.mPDF error: IMAGE Error (http://www.example.com/folder/image.jpg): Error parsing image file - image type not recognised, and not supported by GD imagecreate
Stefan

버전 6.0은 예상대로 작동합니다. 포함 (또는 프레임 워크에로드) 인스턴스화하고 물건을 채우고 다른 방법으로 출력하십시오.
toesslab

잘 MPDF는 잘 작동하고 있습니다! 그러나 코드와 문서는 일관성이 없습니다. 예를 들어, 표준과 관련된 문자를 만드는 등 복잡한 작업을 수행하는 것은 정말 어렵습니다.
Qullbrune

그것이 html2fpdf보다 훨씬 느리다고 주장합니다. 그러나 기본 내용의 경우 청구서, 보고서 등이 너무 빠르다고 생각했습니다. mPDF의 큰 장점은 PHP 확장 요구 사항이 거의 없다는 것입니다 (공유 호스팅에서 즉시 작동)
Joao

70

1) MPDF를 사용 하십시오 !

a) 추출 yourfolder

b) file.php 를 만들고 yourfolder다음 코드를 삽입하십시오.

<?php
include('../mpdf.php');
$mpdf=new mPDF();
$mpdf->WriteHTML('<p style="color:red;">Hallo World<br/>Fisrt sentencee</p>');
$mpdf->Output();   exit;
 ?>

c) 브라우저에서 file.php 를 엽니 다




2) pdfToHtml을 사용하십시오 !

1) pdftohtml.exe 를 루트 폴더로 추출 하십시오.

2) 해당 폴더 안에 anyfile.php 파일에 다음 코드를 입력하십시오 (소스 example.pdf도 있다고 가정).

<?php
$source="example.pdf";
$output_fold="FinalFolder";

    if (!file_exists($output_fold)) { mkdir($output_fold, 0777, true);}
$result= passthru("pdftohtml $source $output_fold/new_filename",$log);
//var_dump($result); var_dump($log);
?>

3) FinalFolder를 입력 하면 변환 된 파일 (소스 PDF의 수만큼 많은 페이지)이 생성됩니다.


GrabzIt의 API는 CSS, JavaScript 및 대부분의 다른 리소스 유형을 지원합니다. 절대 URL을 참조하거나 인라인으로 만들어 서비스에 보내는 HTML에 포함시키기 만하면됩니다. 여기에서 시도하십시오 : grabz.it/html-to-pdf-image-api.aspx

GrabzIt는 무료가 아닙니다
Chatoxz


32

스레드를 부딪 치기 위해 DOMPDF를 사용해 보았고 완벽하게 작동했습니다. 나는 DIV모든 것을 배치하기 위해 다른 블록 레벨 요소를 사용 했으며 CSS 2.1을 엄격하게 유지했으며 매우 훌륭하게 연주했습니다.


31

DocRaptor ( PrinceXML"엔진"으로 사용) 를 제안합니다


많은 이미지가 포함 된 큰 PDF 파일을 생성하려는 경우 불행히도 사용할 수 없습니다. 요청에 60 초의 시간 제한이 있다고 생각하고 Docraptor가 많은 파일을 다운로드 해야하는 경우 초과되어 파일이 만들어지지 않습니다.
Vilhelm

1
빌헬름이 언급 한이 문제가 해결되었습니다.
illbzo1

30

그것은 이미 언급되었지만 mpdf가 가장 쉽고 강력하며 가장 자유로운 HTML-pdf 변환기임을 확인하고 싶습니다. 하늘은 정말 한계입니다. 동적 인 사용자 생성 데이터의 PDF를 생성 할 수도 있습니다.

예를 들어, 고객이 CMS 시스템을 원했기 때문에 클럽에서 연주 한 음악의 트랙리스트를 업데이트 할 수있었습니다. 문제가되지 않았지만 사용자가 재생 목록의 .pdf를 다운로드 할 수 있기를 원했기 때문에이 다운로드 가능한 pdf도 cms로 업데이트해야했습니다. 간단한 루프와 산재 변수가있는 mpdf 덕분에 그렇게 할 수 있습니다. 몇 주가 걸리는 줄 알았는데 몇 분이 걸렸습니다.

시작하는 데 도움이 된 훌륭한 기사 .


7
재생 목록의 PDF 신이 도와주세요.
Henrik Erlandsson

29

좋은 소식! 스 내피 !!

Snappy는 URL 또는 html 페이지에서 축소판, 스냅 샷 또는 PDF 생성을 허용 하는 매우 쉬운 오픈 소스 PHP5 라이브러리입니다. 그리고 ... 그것은 훌륭한 웹킷 기반 wkhtmltopdf를 사용합니다

즐겨! ^ _ ^


1
Snappy (wkhtmltopdf 기반)를 사용하는 HTTP API를 구축했습니다. URL을 전달하고 웹 페이지를 HTML에서 PDF로 변환 할 수 있습니다 : github.com/Dellos7/dhtml2pdf
David López

26

완벽한 XHTML + CSS to PDF 변환기 라이브러리를 찾으려면 잊어 버리십시오. 가능하지 않습니다. 완벽한 브라우저 (XHTML + CSS 렌더링 엔진)를 찾는 것과 같습니다. 우리는 하나 있습니까? IE 또는 FF?

DOMPDF를 사용하여 약간의 성공을 거두었습니다. 문제는 라이브러리가 작동하는 방식에 맞게 HTML + CSS 코드를 수정해야한다는 것입니다. 그 외에는 꽤 좋은 결과가 있습니다.

아래를보십시오 :

원본 HTML

HTML을 PDF로 변환


25

HTML2PDF과 HTML2PS 원래 오프닝 게시물에 언급이와 함께 2009 패키지에 대해 얘기했다 링크

그러나 더 나은 HTML2PDF가 있습니다

TCPDF를 기반으로하지만 부분적으로 프랑스어입니다.

페이지에서 반복되고 페이지 번호와 총 페이지 수를 갖는 표 머리글 또는 바닥 글을 가질 수 있습니다. 예제를 참조하십시오 . 나는 그것을 3 년 이상 사용해 왔으며 그것을 추천합니다.


1
왜 맨 위에 있지 않습니까? 추가 종속성없이 작동 하며 $ 3800을 소비하지 않고도 대부분의 사람들의 응용 프로그램에 충분 합니다!
퇴보

22

PHP를 사용하여 PDF 파일을 생성하기 위해 fpdf 를 사용 하고 있습니다. 지금까지 간단한 출력을 생성하는 것이 잘 작동합니다.


21

Zend의 devzone에는 외부 라이브러리없이 PHP에서 pdf ( part 1 , part 2 ) 를 생성하는 방법에 대한 자습서가 있습니다 . 나는 이런 종류의 솔루션을 구현하지는 않았지만 모두 PHP이기 때문에 구현하고 디버깅하는 것이 더 유연 할 수 있습니다.



그래,하지만 원시 PDF 생성의 HTML ... 변환하지 않습니다
마틴 Zvarík

16

최신 야간 dompdf 빌드를 잡아보십시오. 나는 끔찍한 리소스 호그였던 오래된 버전을 사용하고 있었고 내 PDF를 렌더링하는 데 영원히 걸렸습니다. 여기 에서 매일 밤을 잡은 후 .

PDF를 생성하는 데 몇 초 밖에 걸리지 않았 으며 PrinceXML / Docraptor 와 마찬가지로 멋지게 렌더링되었습니다 . 마지막으로 사용한 이후 dompdf 코드를 심각하게 최적화 한 것 같습니다 !


dompdf는 정말 훌륭한 옵션입니다. 나는 두 번 사용했고 매우 쉽습니다. dompdf를 사용해 보는 것이 좋습니다. 공식 github repo의 링크는 다음과 같습니다 : github.com/dompdf/dompdf
Rituparna

16

TCPDF에 대한 Darryl Hein의 언급 은 좋은 생각 일 것입니다. Nicola Asuni의 코드는 매우 편리하고 강력합니다. 유일한 킬러는 PDF 파일을 생성 된 PDF와 병합하려는 경우 해당 기능이없는 것입니다. PDF를 작성하고 Sid Steward (www.pdflabs.com/tools/pdftk-the-pdf-toolkit/)의 PDFTK와 같은 것을 사용하여 병합해야합니다.


13

비용면에서 웹 서비스 (API)를 사용하는 것이 더 합리적인 방법 일 수 있습니다. 또한이 프로세스를 아웃소싱하여 자체 인프라 / 백엔드를 부담하지 않고 평판 좋은 서비스를 사용하는 경우 웹 표준, 가동 시간, 짧은 처리 시간 및 빠른 컨텐츠 전달 조정과의 호환성을 보장하십시오.

현재 시장에 나와있는 대부분의 웹 서비스에 대해 조사한 결과 가격 / 값 비율을 기준으로이 스레드에서 언급 할 가치가있는 API를 아래에서 찾을 수 있습니다. 그들 모두는 미리 작성된 PHP 클래스와 패키지를 제공합니다.

  1. pdflayer.com- 비용 : $-품질 : ☆☆☆☆
  2. docraptor.com- 비용 : $$$-품질 : ☆☆☆☆☆
  3. pdfcrowd.com- 비용 : $$-품질 : ☆☆☆

품질:

DocRaptorPrinceXML 는 고품질 엔진 을 백본으로 사용 하여 최상의 PDF 품질을 제공하여 고도로 세련되고 잘 변환 된 PDF 문서를 반환합니다. 그러나 pdflayer API 서비스는 여기에서 매우 가깝습니다. Pdfcrowd 는 반드시 품질은 아니지만 처리 속도로 점수를 매 깁니다 .

비용:

pdflayer.com- 위에서 언급했듯이 여기에서 가장 비용 효율적인 옵션은 pdflayer.com이며, 월간 100 개의 PDF 및 $ 9.99에서 $ 119.99 사이의 프리미엄 구독에 대한 완전 무료 구독 계획을 제공합니다. 월별 PDF 문서 10,000 개에 대한 가격은 $ 39.99입니다.

docraptor.com -7 일 무료 평가판 제공. 프리미엄 가입 플랜은 $ 15- $ 2250입니다. 월별 10,000 개 PDF 문서의 가격은 ~ $ 300.00입니다.

pdfcrowd.com - 100 PDF 파일 제공하는 한 번 무료. 프리미엄 가입 플랜은 $ 9- $ 89입니다. 월별 10,000 개 PDF 문서의 가격은 ~ $ 49.00입니다.

저는이 세 가지를 모두 사용했으며이 텍스트는 모든 사람이 비용을 지불하지 않고 결정하는 데 도움이됩니다. 이 텍스트는 한 제품을 보증하기 위해 작성되지 않았으며 어떤 제품과도 관련이 없습니다.


공유해 주셔서 감사합니다. 나는 하루 종일 모든 옵션을 조사하고 무료 라이브러리에 더 집중하거나 라이브러리를 구입했습니다. 당신의 대답은 나를 다시 생각하게 도와줍니다. 소기업에게는 비용 효율적인 방법이며 웹 서비스를 이용하는 가장 쉬운 방법입니다. pdflayer.com의 경우; $ 100 / 년 미만으로 깨는 데 20 년에서 30 년이 걸리지 만, 20 년 후에 같은 세상에 떠날 것 같지 않습니다. :)
freewill

12

명령 줄에 액세스 할 수있는 경우는 사용 가능 PhantomJS를 을 만들 PDF에서 URL(원격 또는 로컬).

정말 잘 작동하며 무료 솔루션입니다.

이 정확한 문제에 대해 작성된 이 예제 스크립트를 살펴보십시오 .


그러나 당신은 글꼴 (웹 폰트)에 문제가있을 수 있습니다
Mihai Crăiță

11

이 질문은 이미 오래되었지만 CutyCapt를 언급 한 사람을 보지 못했기 때문에 :)

CutyCapt

CutyCapt 는 WebKit의 웹 페이지 렌더링을 SVG, PDF, PS, PNG, JPEG, TIFF, GIF 및 BMP를 포함한 다양한 벡터 및 비트 맵 형식으로 캡처하는 작은 플랫폼 간 명령 줄 유틸리티입니다.



9

나는 PHP 클래스가 CSS로 xHtml 페이지를 렌더링하는 데 가장 적합하다고 생각하지 않습니다.

새로운 CSS 규칙이 나오면 어떻게 되나요? (곧 CSS 3.0 ...)

html 페이지를 렌더링하는 가장 좋은 방법은 브라우저입니다. Firefox 3.0은 기본적으로 pdf 형식으로 '인쇄'할 수 있으며 torisugary는이를 사용하기 위해 확장 (명령 줄 인쇄)을 개발했습니다. 여기에서 찾을 수 있습니다.

어쨌든, pdf 변환기처럼 여전히 많은 파이어 폭스가 있습니다 .

현재 wkhtmltopdf가 최고 (사파리 브라우저에서 사용되는 것), 빠르고 빠르며 훌륭하다고 생각합니다. 예, 오픈 소스뿐만 아니라 ... 그것 봐주세요


PHP는 사용자 영수증과 같은 공식 문서를 출력하고 CSS를 사용하여보기 좋게 만들 때 유용합니다.
Luke Wenke

9

웹 페이지에서 PDF 파일을 작성하는 공개 API를 개발했습니다. 멋진 PHP 클라이언트 클래스가있어 사용하기가 쉽습니다. wkhtmltopdf를 사용하여 클라우드에서 PDF를 렌더링합니다.

HTML에 특별한 것이 필요하지 않습니다. images / css / js 링크에서 절대 URL이 필요하지 않습니다. localhost (dev machine)에서도 작동합니다.

현재이 서비스에는 4 개의 Azure 지역 (미국 동부, 미국 서부, EU 북, 동남아시아)에 엔드 포인트가 있습니다.

독점적 인 프로토콜을 사용하여 웹 페이지 내용을 API로 전송하여 PDF로 변환하기 때문에 빠릅니다.

모든 엔드 포인트가로드 밸런싱되므로 안정적입니다.

테스트 또는 사용량이 적은 무료 계정. 웹 사이트의 세부 사항 :

https://rotativahq.com


8

파일을 변환기에 전달하기 전에 Tidy를 사용해 볼 수 있습니다. 렌더러 중 하나가 닫히지 않은 태그와 같은 일부 HTML 문제에 질식하면 도움이 될 수 있습니다.


예, 올바른 지적이지만 이미 생각했습니다. HTML에 일치하지 않거나 비표준 태그가 없습니다.
cletus

7

훌륭한 렌더링은 아무 의미가 없습니다. 확인합니까?

모든 브라우저는 입력이 아무리 좋지 않더라도 화면에 무언가를 표시하기 위해 최대한 노력합니다. 물론 그들은 똑같은 일을하지 않습니다. FireFox와 동일한 렌더링을 원한다면 렌더링 엔진을 사용할 수 있습니다. PDF 생성기가 있습니다. 그래도 엄청나게 많은 일입니다.


7

이미 제공되는 솔루션이 많이 있지만 다음 두 가지를 권장합니다.

  1. HTM2PDF -HTML을 PDF로 변환하는 API와 PHP SDK가있어 PHP에서 구현하기가 매우 쉽습니다. 유럽, 아시아 및 미국의 서버 위치를 선택할 수 있습니다.
  2. PDFmyURL - HTM2PDF 와 거의 동일한 기능을 사용하여 URL 및 HTML을 PDF로 PDF로 처리하는 API를 제공하지만로드 균형 조정 환경에서 작동하며 조금 더 오래되었습니다.

앞에서 언급 한 모든 솔루션과이 두 API의 차이점은 CSS 및 JavaScript를 사용하여 HTML을 PDF로 변환하는 것 외에도 PDF 권한 관리, 워터 마킹 및 암호화를 제공한다는 것입니다. 따라서이 솔루션은 획기적인 실행을 원하는 사람들을위한 올인원 솔루션입니다.

면책 조항 : 나는이 두 웹 사이트를 모두 운영하는 회사 Kaiomi에서 일합니다.


서비스가 판매 될 때 서비스에 의존하고 싶지 않습니다 . 경매에서 팔리지 않았다는 사실을 감안할 때 가까운 시일 내에 판매 될 것이라고 생각할 수 있습니까?
Robin van Baalen

실제로 우리 회사는 경매 후 얼마 후 그것을 얻었습니다. ...
user1914292

이 경우 걱정할 것이 없다고 생각합니다.
Robin van Baalen

5

PHP를 사용하여 HTML을 PDF로 변환 해야 합니까?

방금 HTML5 / JavaScript를 사용하는 클라이언트 측 솔루션 인 jsPDF 를 발견했습니다. MIT 라이센스 코드도 GitHub 에 있습니다.


나를 위해, 도서관은 매우 제한되어 있습니다
YXN

5

TCPDF는 종속성없이 작동하며 무료이며 지속적으로 버그를 수정합니다. 제공된 HTML / CSS 내용의 형식이 적절하면 속도가 적당합니다. 일반적으로 50-300kB의 HTML 입력 (CSS 포함)을 생성하고 10-15 개의 PDF 페이지로 1-3 초 내에 PDF 출력을 얻습니다.

TCPDF로 무엇이든 보내기 전에 깔끔한 라이브러리를 HTML 프리티 포매터로 사용하는 것이 좋습니다 .


4

PHP를 위해 많은 다른 라이브러리를 시도했습니다. 나열된 모든 목록을 시도했습니다. 제 생각에는 TCPDF 라이브러리가 최고의 성능 / 사용성 손상입니다. 설치 및 사용이 매우 간단하며 중소 규모의 응용 프로그램에서도 우수한 성능을 제공합니다. 고성능의 매우 큰 PDF 문서가 필요한 경우 Zend_PDF 모듈을 사용 하십시오 .


젠드 PDF는 HTML로 변환 할 수 없습니다
마틴 Zvarík에게

3

웹 API

이런 종류의 물건을 항상 찾는 사람들이 있다면 html 코드와 페이지를 pdf로 변환 할 수 있는 무료 웹 사이트가 있습니다. URL에서 pdf 파일을 가져올 수있는 (매우 작은) api도 있습니다.

여기서 확인하십시오


2

하지 PHP 하지만 자바 라이브러리 일을 수행합니다 :

Flying Saucer는 PDF로 렌더링하기 위해 XML 또는 XHTML을 사용하여 CSS 2.1 호환 스타일 시트를 적용합니다.

PHPsystem() 또는 유사한 호출을 통해 사용할 수 있습니다 . XML 형식의을 요구하지만 input.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.