HTML + CSS'yi PDF'ye dönüştürme [kapalı]


1628

Firefox 3 ve IE 7'de iyi işleyen bir HTML (XHTML değil) belgesine sahibim. Stil vermek için oldukça basit CSS kullanıyor ve HTML'de iyi işliyor.

Şimdi PDF'ye dönüştürmenin bir yolunun peşindeyim. Denedim:

  • DOMPDF : tablolarla ilgili büyük sorunları vardı. Benim büyük iç içe tabloları dışarı çarpan ve yardımcı oldu (önce sadece 128 M bellek tüketen sonra ölüyor - bu php.ini bellek sınırımı thats) ama tabloların tam bir karmaşa yapar ve almak gibi görünmüyor Görüntüler. Tablolar, çeşitli noktalarda bazı çizgiler eklemek için bazı sınır stilleri ile sadece temel şeyler vardı;
  • HTML2PDF ve HTML2PS : Aslında bununla daha iyi şansım oldu. Bazı resimler (tüm resimler Google Grafik URL'leri) render ve tablo biçimlendirme çok daha iyi oldu ama henüz çözemedim ve bilinmeyen node_type () hataları ile ölmeye devam bazı karmaşıklık sorunu var gibi görünüyordu. Buradan nereye gideceğinden emin değilim; ve
  • Htmldoc : Bu temel HTML üzerinde iyi çalışıyor gibi görünüyor, ancak CSS için neredeyse hiç desteği yok, bu yüzden HTML'de her şeyi yapmak zorundasınız (Htmldoc topraklarında hala 2001 olduğunu fark etmedim ...) bu yüzden benim için işe yaramaz.

Aslında oldukça iyi bir iş yapan Html2Pdf Pilot adlı bir Windows uygulamasını denedim ama en azından Linux üzerinde çalışan ve ideal olarak Web sunucusu üzerindeki PHP üzerinden isteğe bağlı çalışan bir şeye ihtiyacım var.

Neyi kaçırıyorum veya bu sorunu nasıl çözebilirim?


9
Html2Pdf aslında sayfayı oluşturmak için IE'nin gömülü bir örneğini kullanır ve daha sonra bunu IE'nin yazdırma mekanizması aracılığıyla PDF'ye dönüştürür.
Joel Mueller

55
2008 sorusu olduğundan, dompdf artık çok daha olgun. ;-)
Hendra Uzia

5
DOMPDF şimdi CSS 2.1 desteği ve başa çıkabilirim @import, @mediave @screenkurallar ve harici stil yükleyecektir. Ayrıca, varsayılan kütüphanelerden daha iyi performans elde etmek için yükleyebileceğiniz şeyler olsa da, çalışması için gereken her şeyle birlikte gelir. code.google.com/p/dompdf
totallyNotLizards

6
2015 Güncellemesi: Birçok seçeneği araştırdıktan sonra wkhtmltopdf ile gitmeye karar verdik, CSS ile mücadele ettiğimiz güzel bir yardımcı program çünkü harici CSS dosyamız var, ancak daha sonra istediğimiz HTML öğemize kukla bir CSS bağlantısı koyma hilesi uyguladık dönüştürmek ve doğru yolu ayarlamak MAGIC gibi çalışır !!!
Anshul Nigam

10
Yakında herkesin Chrome / Chromium'u chrome --headless --print-to-pdf="path/to/pdf" https://your_url pdf oluşturma aracı için en zengin, en hızlı ve en kolay html olarak bulduğunu düşünüyoruz crbug.com/603559 , geliştiricilerin çoğu web geliştirmesine güvenen ve diğerlerinin çoğu gibi karmaşık komut dosyalarını emmediği için kütüphaneler ve araçlar yapar.
Ebrahim Byagowi

Yanıtlar:


551

Önemli: Bu cevabın 2009'da yazıldığını ve bugün 2019'da en uygun maliyetli çözüm olmayabileceğini lütfen unutmayın. Çevrimiçi alternatifler bugün bu zamana göre daha iyidir.

Kullanabileceğiniz bazı çevrimiçi hizmetler şunlardır:


PrinceXML'e bir göz atın .

Kesinlikle en iyi HTML / CSS'den PDF'ye dönüştürücü, ancak ücretsiz olmasa da (Ama hey, programlamanız da ücretsiz olmayabilir, bu yüzden size 10 saatlik çalışma tasarrufu sağlıyorsa, evde özgürsünüz (ayrıca alternatif çözümlerin doğru yazılımla özel bir sunucu kurmanızı gerektireceğini dikkate alın)

Oh evet, bunun tam ACID2 yapan ilk (ve muhtemelen sadece) HTML2PDF çözümü olduğunu söylemiş miydim ?

PrinceXML Örnekleri


16
Şirketim Prens çevresinde bir web servisi yazdı. Önemli ölçüde daha ucuz ön maliyetler ve herhangi bir şey yüklemeye gerek kalmadan kullanılabilir: docraptor.com
Joel Meador

6
Ben de DocRaptor kullandım. Pahalı lisans için ödemek zorunda kalmadan Prens faydaları elde etmek için harika bir yol. Harika bir ürün için tebrikler Joel.
Nate365

22
Çok pahalı. WKHTMLTOPDF (diğer cevaba bakınız) ücretsizdir, işi yapar ve harika olan web kitini kullanır.
thomallen

1
fiyat bir kısmı için eşit veya daha iyi kalitede Saas hizmeti vardır - bkz. htm2pdf.co.uk
user1914292

5
Komut satırı erişiminiz varsa ve 3500 $ ödemek istemiyorsanız, PhantomJS bu komut dosyasıyla: github.com/ariya/phantomjs/blob/master/examples/rasterize.js bir çözüm olabilir - bu ücretsiz ve kolay bir yoldur!
chjortlund

666

Bir bak wkhtmltopdf. Webkit tabanlı açık kaynak kodlu ve ücretsizdir.

Biz küçük bir öğretici yazdı buraya .

EDIT (2017):

Bugün bir şey inşa etmek olsaydı, artık o rotaya gitmezdim.
Ancak bunun yerine http://pdfkit.org/ kullanılır.
Muhtemelen tarayıcıda çalıştırmak için tüm düğüm bağımlılıklarından sıyırma.


10
Bu, en iyi öncül IMO üzerinde çalışır. Önemsiz bir görev yazmak yerine mevcut bir oluşturucunun dönüşümünü artırın. Ayrıca, Webkit C ++ ile yazılmıştır ve bu nedenle PHP tabanlı uygulamaya göre çok daha hızlı ve daha az kaynak domuzudur.
Koobz

3
Bu yazı tiplerini düzgün CentOS sunucuları oluşturmak için elde etmeye çalışırken büyük sorunlar yaşadık. Kelimenin tam anlamıyla haftalar geçtikten sonra, tek seçenek CentOS kullanmak değil gibi görünüyor.
Abhi Beckert

1
UYARI! Wkhtmltopdf kullanıyorsanız (en azından sistemimde, Windows 7 64 bit'te XAMPP), denediğim her durumda, .gif görüntüleri PDF dosyasında görünmez. "Genişlik" ve "yükseklik" dahil olmak üzere URI'leri farklı kurallara göre yazmak gibi çeşitli yerlerde önerilen bir dizi geçici çözümü denedim. Denediğim hiçbir şey .gif'in görünmesine neden olmadı (özellikle, hem satır içi stilleri hem de arkaik, ham "genişlik" ve "yükseklik" HTML niteliklerini kullanarak denediğim "genişlik" ve "yükseklik" önerisi bile değil). Ancak, görüntüleri .jpg olarak değiştirmek ilk denemede çalıştı.
Dan Nissenbaum

6
Bu soyutlama çok güzel olsa da mikehaertl.github.io/phpwkhtmltopdf
saada

1
Ticari hizmetler biz ücretsiz bulut hizmeti olarak WKHTMLTOPDF uygulanan bu yüzden bizim için çok pahalı idi html2pdfrocket.com kullanımına herkes için ve sonra müşterilerimiz için kendimizi kullandı. Bu şekilde yaptık, böylece müşterilerimiz exe'nin sunucularına vb. Kendi hizmetinizi inşa ediyorsanız kesinlikle WKHTMLTOPDF oranı.
eagle779

150

Bazı araştırma ve genel saç çekme sonra çözüm HTML2PDF gibi görünüyor . DOMPDF tablolar, kenarlıklar ve hatta orta derecede karmaşık düzen ile korkunç bir iş yaptı ve htmldoc makul derecede sağlam görünüyor, ancak neredeyse tamamen CSS cahil ve sadece bu program için CSS olmadan HTML düzeni yapmaya geri dönmek istemiyorum.

HTML2PDF en umut verici görünüyordu ama node_type için null başvuru argümanları hakkında bu garip hatayı almaya devam ettim. Sonunda buna bir çözüm buldum. Temel olarak, PHP 5.1.x herhangi bir boyuttaki dizelerde normal ifade yerine (preg_replace_ *) iyi çalıştı. PHP 5.2.1, pcre.backtrack_limit adlı bir php.ini yapılandırma yönergesi sundu . Bu config parametresinin yaptığı, eşleşmenin yapıldığı dize uzunluğunu sınırlar. Bu neden tanıtıldı bilmiyorum. Varsayılan değer 100.000 olarak seçilmiştir. Neden bu kadar düşük bir değer? Yine, hiçbir fikrim yok.

Bunun için PHP 5.2.1'e karşı bir hata oluştu , bu da neredeyse iki yıl sonra hala açık .

Bu konuda dehşet verici olan şey, sınır aşıldığında değiştirme işleminin sessizce başarısız olmasıdır . En azından bir hata oluşturulduysa ve günlüğe kaydedildiyse, ne olduğunu, neden ve neyi düzeltmek için neyi değiştireceğinizi gösteren bazı işaretleriniz olacaktır. Ama hayır.

PDF'ye dönüştürmek için 70k HTML dosyam var. Aşağıdaki php.ini ayarlarını gerektirir:

  • pcre.backtrack_limit = 2000000; # muhtemelen ihtiyacımdan daha fazla ama sorun değil
  • bellek_ sınırı = 1024M; # evet, bir gigabayt ; ve
  • max_execution_time = 600; # evet, 10 dakika .

Şimdi zekice okuyucu HTML dosyamın 100 bin'den küçük olduğunu fark etmiş olabilir. Neden bu sorunu vurduğumu tahmin edebilmemizin tek nedeni, html2pdf sürecinin bir parçası olarak xhtml'ye bir dönüşüm gerçekleştirmesidir. Belki de bu beni devraldı (neredeyse% 50 şişkinlik garip görünüyor). Durum ne olursa olsun, yukarıdakiler işe yaradı.

Şimdi, html2pdf bir kaynak domuzudur. 70 sayfamın dosyası yaklaşık 5 dakika ve en az 500-600M RAM ile 35 sayfalık bir PDF dosyası oluşturur. Ne yazık ki gerçek zamanlı bir indirme için yeterince hızlı değil (bellek) ve bellek kullanımı bellek kullanım oranını 1000'e 1 (70k dosya için 600M RAM) sırasına koyar ki bu tamamen saçmadır.

Ne yazık ki, bu benim en iyi buldum.


1
@cletus HTML2PDF'nin kararlı sürümü hakkında bilgi verebilir misiniz? Yukarıdaki bağlantı örneği kullanımdan kaldırıldı
Ripa Saha

En son sürüm için bkz. Github.com/spipu/html2pdf
Luke Wenke

1
Grim typo daha da acımasız hale geliyor: Bellek kullanım oranı 10.000 ile 1 lol arasındadır
MickLH

MPDF kadar kötü çalışır ... daha hızlı, ancak kesin değil ... ve TTF yazı tiplerini dönüştürmek inanılmaz derecede acı vericidir ... hatta sadece yazı tipleri oluşturmak için bağımsız kitaplığı "tc-lib-pdf-yazı tipi" vardır
Martin Zvarík

125

Neden mPDF sürüm 2.0'ı denemiyorsunuz ? PDF dosyası oluşturmak için kullandım. İyi çalışıyor.

Bu arada mPDF 5.7 sürümündedir ve HTML2PS / HTML2PDF'nin aksine aktif olarak korunur

Ancak, belgelerin ele alınmasının gerçekten zor olabileceğini unutmayın. Örneğin, şu sayfaya bakın: https://mpdf.github.io/ .

Html'den pdf'e kadar çok temel görevler bu kütüphane ile yapılabilir, ancak daha karmaşık görevler belgelerin okunması ve "anlaşılması" biraz zaman alacaktır.


1
Burada önerilenlerden bir sürü denedim. Şimdiye kadar, bu yüklendi ve sorunsuz bir şekilde kutunun dışında çalıştı ve dokümanlar geri kalanına kıyasla gerçekten şaşırtıcı. Kullanım talimatları açıkça yazılmıştır.
Smith Smithy

mPDF görüntü arka plan veya veritabanından etiketleri ile html etiketleri POSTing zaman bana bazı ciddi sorunlar veren: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

Sürüm 6.0 beklendiği gibi çalışır: dahil edin (veya bir çerçeveye yükleyin, yükleyin) öğelerinizi doldurun, bir şekilde veya başka bir şekilde çıktı alın ... İşte bu!
toesslab

MPDF iyi çalışıyor, doğru! Ancak kod ve belgeler tutarsızdır - daha karmaşık bir görevi yerine getirmek gerçekten zordur, örneğin din normuna ilişkin bir mektup oluşturmak.
Qullbrune

Html2fpdf'den çok daha yavaş olduğu iddia ediliyor. Ama temel içerik için, çok hızlı olduğunu düşündüm (faturalar, raporlar, vb). MPDF için büyük artı neredeyse hiç PHP uzantısı gereksinimleri (paylaşılan barındırma kutusundan çalışır)
Joao

70

1) MPDF kullanın !

a) ekstrakte etmek yourfolder

b) oluşturmak file.php içinde yourfolderve bu kod elemanı:

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

c) tarayıcınızdan file.php dosyasını açın




2) pdfToHtml kullanın !

1) pdftohtml.exe dosyasını kök klasörünüze çıkarın:

2) bu klasörün içine, anyfile.php dosyasına bu kodu koyun ( varsayalım , bir kaynak example.pdf var):

<?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 girin ve dönüştürülen dosyalar olacaktır (kaynak PDF'nin sahip olduğu kadar çok sayfa ..)


GrabzIt API'sı CSS, JavaScript ve diğer birçok kaynak türünü destekler denemek istiyorsunuz. Yalnızca mutlak URL'lerle referanslanması veya satır içi yapılması ve hizmete gönderilen HTML'ye dahil edilmesi gerekir. Burada deneyin: grabz.it/html-to-pdf-image-api.aspx

GrabzIt ücretsiz değil
Chatoxz


32

Sadece iplik çarpmak için, DOMPDF denedim ve mükemmel çalıştı. Ben DIVve her şeyi konumlandırmak için diğer blok seviyesi elemanları kullandım, kesinlikle CSS 2.1 tuttu ve çok güzel oynadı.


31

DocRaptor'u öneririm ( PrinceXML"motor" olarak kullanılır)


Çok sayıda resim içeren büyük PDF dosyaları oluşturmak istiyorsanız ne yazık ki kullanmak imkansız. İsteklerde 60 saniyelik bir zaman sınırı olduğunu düşünüyorum ve Docraptor'ın çok fazla dosya indirmesi gerekiyorsa bu aşılacak ve hiçbir dosya yapılmayacak.
Vilhelm

1
Vilhelm'in bahsettiği bu sorun giderildi.
illbzo1

30

Zaten bahsedildi, ama mpdf orada pdf dönüştürücü en kolay, en güçlü ve en ücretsiz HTML olduğunu onaylamak istiyorum. Gökyüzü gerçekten sınır. Dinamik, kullanıcı tarafından oluşturulan verilerin pdf'sini bile oluşturabilirsiniz.

Örneğin, bir müşteri kulübünde çaldığı müziğin parça listesini güncelleyebilmesi için bir CMS sistemi istedi. Bu sorun değildi, ama aynı zamanda kullanıcıların oynatma listesinin bir .pdf dosyasını indirmesini istedi ve bu yüzden bu indirilebilir pdf'nin de cms tarafından güncellenmesi gerekiyordu. Mpdf sayesinde, bazı basit döngüler ve serpiştirilmiş değişkenlerle bunu yapabilirdim. Bana haftalar süreceğini düşündüğüm bir şey tam anlamıyla dakikalar aldı.

Başlamama yardımcı olan harika bir makale .


7
Bir çalma listesinin PDF dosyası. Tanrı bana yardım et.
Henrik Erlandsson

29

İyi haberler! Çabuk !!

Snappy, bir url veya html sayfasından küçük resim, anlık görüntü veya PDF oluşturmaya izin veren çok kolay bir açık kaynak kodlu PHP5 kütüphanesidir. Ve ... mükemmel webkit tabanlı wkhtmltopdf kullanıyor

Zevk almak! ^ _ ^


1
Snappy (wkhtmltopdf tabanlı) kullanan bir HTTP API oluşturdum. Bir URL iletebilir ve web sayfasını HTML'den PDF'ye dönüştürebilirsiniz: github.com/Dellos7/dhtml2pdf
David López

26

Peki mükemmel bir XHTML + CSS PDF dönüştürücü kitaplığı bulmak istiyorsanız, unutun. Mümkün olmaktan çok uzak. Çünkü tıpkı mükemmel bir tarayıcı (XHTML + CSS oluşturma motoru) bulmak gibi. Bir tane var mı? IE veya FF?

DOMPDF ile bazı başarılar elde ettim. Mesele şu ki, HTML + CSS kodunuzu kütüphanenin çalışması gerektiği şekilde değiştirmek zorundasınız. Bunun dışında oldukça iyi sonuçlar aldım.

Aşağıya bakınız:

Orijinal HTML

HTML'yi PDF'ye dönüştürme


25

HTML2PDF ve html2ps aslen açılış sonrası sözü edilen bu ile 2009 paketi hakkında konuşuyordu linke

Ancak daha iyi bir HTML2PDF var

Kısmen Fransızca olmasına rağmen TCPDF'ye dayanmaktadır.

Sayfalarda yinelenen, sayfa numaralarına ve toplam sayfalara sahip tablo üstbilgileri veya altbilgileri olabilir. Örneklerine bakın . Üç yılı aşkın bir süredir kullanıyorum ve tavsiye ederim.


1
Bu neden zirvede değil? Ekstra bağımlılık olmadan çalışır ve çoğu insanın uygulamaları için 3800 $ harcamak zorunda kalmadan yeterince iyidir !
dejenere

22

PHP kullanarak PDF dosyaları üretmek için fpdf kullanıyorum. Basit çıktılar üretmek benim için şimdiye kadar iyi çalışıyor.


21

Zend'in herhangi bir harici kütüphane olmadan php'den ( bölüm 1 , bölüm 2 ) pdf oluşturmaya yönelik bir öğretici var . Bu tür bir çözümü hiç uygulamamıştım, ancak hepsi php olduğundan, uygulamayı ve hata ayıklamayı daha esnek bulabilirsiniz.



Evet ama bu ham PDF nesil var HTML ... dönüştürmez
Martin Zvarík

16

En son gece dompdf yapısını kapmaya çalışın - korkunç bir kaynak domuz olan ve pdf'imi oluşturmak için sonsuza dek süren eski bir sürümünü kullanıyordum. Buradan bir gece yakaladıktan sonra .

PDF'yi oluşturmak sadece birkaç saniye sürdü - ve PrinceXML / Docraptor'da olduğu gibi güzel bir şekilde işlendi . Son kullandığımdan beri dompdf kodunu ciddi şekilde optimize ettiler gibi görünüyor !


dompdf gerçekten harika bir seçenektir. İki kez kullandım ve çok kolay. Dompdf'yi denemenizi tavsiye ederim. Resmi github repo bağlantısı: github.com/dompdf/dompdf
Rituparna sonowal

16

Darryl Hein'in yukarıda TCPDF'den bahsetmesi muhtemelen harika bir fikir. Nicola Asuni'nin kodu oldukça kullanışlı ve güçlü. Tek katil, PDF dosyalarını oluşturulan PDF'nizle birleştirmeyi planlıyorsanız, bu özelliklere sahip değildir. PDF'yi oluşturmanız ve ardından Sid Steward tarafından PDFTK gibi bir şey kullanarak birleştirmeniz gerekir (www.pdflabs.com/tools/pdftk-the-pdf-toolkit/).


13

Maliyet açısından, bir web hizmeti (API) kullanmak çoğu durumda daha mantıklı bir yaklaşım olabilir. Ayrıca, bu işlemi dış kaynaklardan sağlayarak kendi altyapınızı / arka ucunuzu yükler ve - saygın bir hizmet kullanmanız koşuluyla - web standartlarını ayarlama, çalışma süresi, kısa işlem süreleri ve hızlı içerik teslimi ile uyumluluk sağlar.

Şu anda piyasada web hizmetlerinin çoğu üzerinde biraz araştırma yaptım, fiyat / değer oranına dayalı bir sırayla, bu konu üzerinde bahsetmeye değer olduğunu düşündüğüm API'lerin altında bulabilirsiniz. Hepsi önceden hazırlanmış PHP sınıfları ve paketleri sunuyor.

  1. pdflayer.com - Maliyet: $ - Kalite: ☆☆☆☆
  2. docraptor.com - Maliyet: $$$ - Kalite: ☆☆☆☆☆
  3. pdfcrowd.com - Maliyet: $$ - Kalite: ☆☆☆

Kalite:

Yüksek kaliteli motoru PrinceXMLbir omurga olarak kullanan DocRaptor , en iyi PDF kalitesini net bir şekilde sunar ve yüksek derecede cilalanmış ve iyi dönüştürülmüş PDF belgeleri döndürür. Ancak, pdflayer API hizmeti burada oldukça yakınlaşıyor. Pdfcrowd mutlaka kalite ile değil, işlem hızı ile skor yapar.

Maliyet:

pdflayer.com - Yukarıda belirtildiği gibi, burada en uygun maliyetli seçenek pdflayer.com, aylık 100 PDF için tamamen ücretsiz bir abonelik planı ve 9,99 $ ile 119,99 $ arasında premium abonelikler sunuyor. 10.000 aylık PDF belgesinin fiyatı 39.99 dolar.

docraptor.com - 7 Günlük Ücretsiz Deneme süresi sunuyor. Premium abonelik planları 15 ila 2250 dolar arasında değişiyor. 10.000 aylık PDF belgesinin fiyatı ~ 300,00 $ 'dır.

pdfcrowd.com - Bir kez ücretsiz 100 PDF sunuyor . Premium abonelik planları 9-89 $ arasında değişiyor. 10.000 aylık PDF belgesinin fiyatı ~ 49,00 $.

Üçünü de kullandım ve bu metnin, herkes için ödeme yapmak zorunda kalmadan karar vermesine yardımcı olması gerekiyor. Bu metin herhangi bir ürünü onaylamak için yazılmamıştır ve hiçbir ürünle hiçbir ilişkim yoktur.


Sharings için teşekkürler. Bütün seçenekleri bütün gün araştırıyordum ve daha özgür kütüphanelere ya da lib'i satın almaya daha çok yoğunlaşmıştım. Cevabınız tekrar thnik yapmama yardımcı oluyor. Ben küçük işletmeler için thnik bu web hizmetleri ile gitmek için uygun maliyetli ve en kolay yoludur. Pdflayer.com için; 100 $ / yıl daha az bile kırmak için 20 veya 30 yıl sürer, ama ben 20 yıl sonra aynı dünyada bırakacağız thnik yok :)
freewill

12

Komut satırına erişiminiz varsa , bir uzak (yerel veya yerel) oluşturmak için PhantomJS'yi kullanabilirsiniz .PDFURL

Gerçekten iyi çalışıyor ve ücretsiz bir çözüm.

Bu tam sorun için hazırlanmış bu örnek komut dosyasına bir göz atın .


ancak yazı tipleriyle (webfonts) bazı sorunlarınız olabilir
Mihai Crăiță

11

Bu soru zaten oldukça eski, ama CutyCapt'tan bahseden kimseyi görmedim bu yüzden yapacağım :)

CutyCapt

CutyCapt , WebKit'in bir web sayfasını oluşturmasını SVG, PDF, PS, PNG, JPEG, TIFF, GIF ve BMP dahil olmak üzere çeşitli vektör ve bitmap formatlarında yakalamak için küçük bir platformlar arası komut satırı yardımcı programıdır.



9

Ben bir php sınıf css ile bir xHtml sayfası oluşturmak için en iyi olacağını sanmıyorum.

Yeni bir css kuralı çıktığında ne olur? (yakında css 3.0 ...)

Bir html sayfası oluşturmanın en iyi yolu, açıkça bir tarayıcıdır. Firefox 3.0 yerel olarak pdf formatında 'yazdırabilir', torisugary kullanmak için bir uzantı (komut satırı yazdırma) geliştirdi. Burada bulacaksınız.

Neyse, hala pek çok problmes firefox runninr vardır sadece pdf dönüştürücü olarak ...

Şu anda, wkhtmltopdf (safari tarayıcısı tarafından kullanılan) en iyisi, hızlı, hızlı, harika olduğunu düşünüyorum. Evet, açık kaynak kodlu ... Bir göz atın


Bir kullanıcı için makbuz gibi resmi belgelerin bir tür çıktısını almak istiyorsanız ve yararlı görünmesini sağlamak için CSS kullanabilirsiniz.
Luke Wenke

9

Web sayfalarından PDF dosyaları oluşturmak için herkese açık bir API geliştirdim. Kullanımı kolay hale getiren güzel bir PHP istemci sınıfına sahiptir. PDF'yi bulutta oluşturmak için wkhtmltopdf kullanır.

HTML'de özel bir şeye gerek yok. Resim / css / js bağlantılarında mutlak URL'lere gerek yoktur. Localhost (dev makinesi) üzerinde de çalışır.

Şu anda hizmetin 4 Azure bölgesinde uç noktaları var: ABD Doğu, ABD Batı, AB Kuzey, Güneydoğu Asya.

Web sayfasının içeriğini PDF'ye dönüştürmek için API'ye göndermek için özel bir protokol kullandığından hızlıdır.

Güvenilirdir çünkü tüm uç noktalar yük dengelidir.

Test veya düşük kullanım için ücretsiz hesap. Web sitesindeki ayrıntılar:

https://rotativahq.com


8

Belki de dosyayı dönüştürücüye teslim etmeden önce Tidy'i kullanmayı deneyebilirsiniz. Oluşturuculardan biri HTML sorununu (kapatılmamış etiket gibi) boğarsa yardımcı olabilir.


Evet geçerli bir nokta ama bunu zaten düşündüm. HTML'mde eşleşmeyen veya standart olmayan etiket yok.
cletus

7

İnce işleme hiçbir şey ifade etmez. Doğrulanıyor mu?

Giriş ne kadar kötü olursa olsun, tüm tarayıcılar ekranda bir şey göstermek için ellerinden geleni yaparlar. Ve elbette aynı şeyi yapmıyorlar. FireFox ile aynı oluşturmayı istiyorsanız, oluşturma motorunu kullanabilirsiniz. Bunun için pdf jeneratörleri var. Yine de çok fazla iş var.


7

Zaten sunulan birçok çözüm olmasına rağmen, aşağıdaki ikisini öneririm:

  1. HTM2PDF - HTML'yi PDF'ye dönüştürmek için bir API sunar ve ayrıca bir PHP SDK'ya sahiptir, bu da PHP'de uygulamayı çok kolaylaştırır; Avrupa, Asya ve ABD'de çeşitli sunucu konumları sunar
  2. PDFmyURL - HTM2PDF ile aynı işlevsellik ile URL ve HTML'yi PDF'ye de yapan bir API sunuyor, ancak yük dengeli bir manzara üzerinde çalışıyor ve biraz daha uzun süredir var

Bu iki API hakkında daha önce bahsedilen çözümlerden farklı olan şey, HTML'yi CSS ve JavaScript ile PDF'ye dönüştürmenin yanı sıra PDF hak yönetimi, filigran ve şifreleme de sunmasıdır. Bu nedenle, koşmak isteyenler için hepsi bir arada bir çözüm.

Feragatname: Bu web sitelerinin ikisini de işleten bir şirket olan Kaiomi için çalışıyorum.


Satışa çıktığında bir hizmete güvenmek istemem . Bu açık artırmada satılmadığı göz önüne alındığında, sadece yakın gelecekte satılacağını varsayabilir miyim?
Robin van Baalen

aslında benim şirket ihale sonra bir süre satın aldı ....
user1914292

Bu durumda, endişelenecek bir şey olmadığını düşünüyorum.
Robin van Baalen

5

HTML'den PDF'e dönüştürme işleminin gerçekten PHP kullanarak sunucu tarafında olması gerekiyor mu?

HTML5 / JavaScript kullanan bir istemci tarafı çözümü olan jsPDF ile karşılaştım . MIT lisanslı kod da GitHub'dadır .


benim için kütüphane çok sınırlı
YXN

5

TCPDF iyi çalışıyor, bağımlılık yok, ücretsiz ve sürekli hata düzeltildi. Sağlanan HTML / CSS içerikleri iyi biçimlendirilmişse makul bir hıza sahiptir. Normalde 50 - 300 kB HTML giriş (CSS dahil) oluşturur ve PDF çıktısını 10-15 PDF sayfa ile 1-3 saniye içinde alırım.

TCPDF'ye herhangi bir şey göndermeden önce düzenli kitaplığı HTML güzel biçimlendirici olarak kullanmanızı şiddetle tavsiye ederim .


4

PHP için birçok farklı kütüphane denedim. Tüm listelenen denedim. Bence TCPDF kütüphanesi performans / kullanılabilirlikten en iyi şekilde yararlanır. Kurulumu ve kullanımı çok basit, ayrıca küçük orta ölçekli uygulamalarda iyi performans. Yüksek performansa ve çok büyük PDF belgesine ihtiyacınız varsa, Zend_PDF modülünü kullanın , ancak kodlamaya hazır olun!


Zend PDF HTML'den dönüştürülemiyor
Martin Zvarík

3

Web API'sı

Her zaman bu tür şeyler arayan insanlar varsa, html kodunu ve sayfalarını pdf'ye dönüştürmenize izin veren ücretsiz bir web sitesi vardır. Ayrıca url'den pdf dosyası almanıza izin veren bir (çok küçük) api vardır.

Buradan kontrol edin


2

değil PHP , ama bir Java kütüphanesi şeyi yapar:

Flying Saucer XML veya XHTML alır ve PDF'ye dönüştürmek için CSS 2.1 uyumlu stil sayfalarını uygular

Bu gelen kullanılabiliyor PHP Via system()veya benzer çağrı. Her ne kadar XML iyi biçimlendirilmesi gerektirir input.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.