Yanıtlar:
Az önce jsPDF adlı bir kütüphane yazdım Javascript kullanarak PDF üreten . Hala çok genç ve yakında özellikler ve hata düzeltmeleri ekleyeceğim. Ayrıca, Veri URI'lerini desteklemeyen tarayıcılardaki geçici çözümler için de birkaç fikir edinebilirsiniz. Liberal bir MIT lisansı ile lisanslanmıştır.
Yazmaya başlamadan önce bu soruya rastladım ve geri dönüp size haber vereceğim :)
Örnek "Merhaba Dünya" PDF dosyası oluşturmak.
// Default export is a4 paper, portrait, using milimeters for units
var doc = new jsPDF()
doc.text('Hello world!', 10, 10)
doc.save('a4.pdf')
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.5/jspdf.debug.js"></script>
Bahsetmeye değer başka bir javascript kütüphanesi pdfmake'dir .
Tarayıcı desteği jsPDF kadar güçlü görünmüyor ya da şekiller için bir seçenek yok gibi görünüyor, ancak metin biçimlendirme seçenekleri şu anda jsPDF'de bulunan seçeneklerden daha gelişmiş.
Ben korumak PDFKit da güçler (zaten burada bahsedilen) pdfmake. Hem Düğümde hem de tarayıcıda çalışır ve diğer kütüphanelerin desteklemediği bir sürü şeyi destekler:
Check out http://pdfkit.org/ PDFKit neler yapabileceğini kendiniz görün tam öğretici için. Ve ne tür belgelerin üretilebileceğine ilişkin bir örnek için, PDFKit'in kendisini kullanarak bazı Markdown dosyalarından oluşturulan PDF olarak belgelere bakın: http://pdfkit.org/docs/guide.pdf .
Tarayıcıda etkileşimli olarak da deneyebilirsiniz: http://pdfkit.org/demo/browser.html .
Bir başka ilginç proje texlive.js .
Tarayıcıda (La) TeX'i PDF'ye derlemenizi sağlar.
Bu ücretsiz hizmeti, herhangi bir url'den pdf oluşturan bir bağlantı ekleyerek kullanabilirsiniz (örneğin, http://www.phys.org ):
PDF bellekte JavaScript oluşturabilseniz bile, bu verileri kullanıcıya nasıl aktaracağınız konusunda sorun yaşarsınız. JavaScript'in kullanıcıya sadece bir dosya aktarması zordur.
Dosyayı kullanıcıya almak için, tarayıcının kaydetme iletişim kutusunu açmasını sağlamak için bir sunucu gönderimi yapmak istersiniz.
Bununla birlikte, PDF oluşturmak gerçekten zor değil. Sadece özellikleri okuyun.