Saya ingin menghasilkan PDF dengan mengirimkan konten HTML ke suatu fungsi. Saya telah menggunakan iTextSharp untuk ini tetapi tidak berkinerja baik ketika bertemu tabel dan tata letak hanya berantakan.
Apakah ada cara yang lebih baik?
c#
html
pdf
itextsharp
Amedee Van Gasse
sumber
sumber
Jawaban:
EDIT: Saran Baru Renderer HTML untuk PDF menggunakan PdfSharp
(Setelah mencoba wkhtmltopdf dan menyarankan untuk menghindarinya)
HtmlRenderer.PdfSharp adalah 100% kode sepenuhnya dikelola C # , mudah digunakan, aman thread dan yang paling penting GRATIS ( Lisensi BSD Baru ) solusi.
Pemakaian
Gunakan Metode Contoh.
Alternatif yang Sangat Baik Adalah Versi Gratis dari iTextSharp
Sampai versi 4.1.6 iTextSharp dilisensikan di bawah lisensi LGPL dan versi hingga 4.16 (atau mungkin juga ada garpu) tersedia sebagai paket dan dapat digunakan secara bebas. Tentu saja seseorang dapat menggunakan versi berbayar 5+ yang berkelanjutan .
Saya mencoba mengintegrasikan solusi wkhtmltopdf pada proyek saya dan memiliki banyak rintangan.
Saya pribadi akan menghindari penggunaan solusi berbasis wkhtmltopdf pada aplikasi Hosted Enterprise karena alasan berikut.
--- PRE Edit Bagian ---
Bagi siapa saja yang ingin menghasilkan pdf dari html di aplikasi / lingkungan yang lebih sederhana, saya meninggalkan posting lama saya sebagai saran.
SelPechkin
https://www.nuget.org/packages/TuesPechkin/
atau Khusus Untuk Aplikasi Web MVC (Tapi saya pikir Anda dapat menggunakannya dalam aplikasi .net)
Rotativa
https://www.nuget.org/packages/Rotativa/
Keduanya menggunakan biner wkhtmtopdf untuk mengkonversi html ke pdf. Yang menggunakan mesin webkit untuk merender halaman sehingga juga dapat mengurai style sheet css .
Mereka menyediakan integrasi tanpa batas yang mudah digunakan dengan C #.
Rotativa juga dapat menghasilkan langsung PDF dari Tampilan Razor apa pun .
Selain itu untuk aplikasi web dunia nyata, mereka juga mengelola keamanan utas dll ...
sumber
Pembaruan: Saya sekarang akan merekomendasikan PupeteerSharp di atas wkhtmltopdf.
Coba wkhtmtopdf . Ini adalah alat terbaik yang saya temukan sejauh ini.
Untuk .NET, Anda dapat menggunakan ini perpustakaan kecil untuk dengan mudah memanggil utilitas baris perintah wkhtmtopdf.
sumber
Baru-baru ini saya melakukan PoC tentang konversi HTML ke PDF dan ingin membagikan hasil saya.
Sejauh ini favorit saya adalah OpenHtmlToPdf
Keuntungan alat ini:
Alat lain yang diuji:
sumber
using IronPdf; IronPdf.HtmlToPdf Renderer = new IronPdf.HtmlToPdf(); // Render an HTML document or snippet as a string Renderer.RenderHtmlAsPdf("<h1>Hello World</h1>").SaveAs("html-string.pdf");
background-color
. OpenHtmlToPdf bekerja dengan sempurna secara gratis.Terakhir Diperbarui: Maret 2020
Ini adalah daftar opsi untuk konversi HTML ke PDF di .NET yang telah saya kumpulkan (beberapa gratis berbayar)
Dokumen GemBox
PDF Metamorfosis .Net
HtmlRenderer.PdfSharp
PuppeteerSharp
EO.Pdf
WnvHtmlToPdf_x64
IronPdf
Spire.PDF
Free Spire.PDF untuk .NET (Versi Komunitas)
Aspose.Html
EvoPDF
ExpertPdfHtmlToPdf
Zetpdf
PDFtron
WkHtmlToXSharp
PilihPDF
Jika tidak ada opsi di atas yang membantu Anda, Anda selalu dapat mencari paket NuGet https://www.nuget.org/packages?q=html+pdf
sumber
Sebagian besar pengonversi HTML ke PDF mengandalkan IE untuk melakukan penguraian dan rendering HTML. Ini bisa pecah ketika pengguna memperbarui IE mereka. Ini adalah salah satu yang tidak bergantung pada IE.
Kodenya kira-kira seperti ini:
Seperti banyak konverter lainnya, Anda dapat mengirimkan teks, nama file, atau Url. Hasilnya dapat disimpan ke dalam file atau stream.
sumber
Saya sangat merekomendasikan NReco , serius. Ini memiliki versi gratis dan berbayar, dan sangat berharga. Ini menggunakan wkhtmtopdf di latar belakang, tetapi Anda hanya perlu satu perakitan. Fantastis.
Contoh penggunaan:
Instal melalui NuGet .
Penafian: Saya bukan pengembang, hanya penggemar proyek :)
sumber
Winnovative menawarkan perpustakaan .Net PDF yang mendukung input HTML. Mereka menawarkan uji coba gratis tanpa batas . Bergantung pada bagaimana Anda ingin menggunakan proyek Anda, ini mungkin cukup.
sumber
Essential PDF dapat digunakan untuk mengonversi HTML ke PDF : C # sample . Sampel yang ditautkan ke sini adalah berbasis ASP.NET, tetapi pustaka dapat digunakan dari Windows Forms, WPF, ASP.NET Webforms, dan ASP.NET MVC. Perpustakaan menawarkan opsi untuk menggunakan mesin rendering HTML yang berbeda: Internet Explorer (default) dan WebKit (output terbaik).
Seluruh rangkaian kontrol tersedia gratis (aplikasi komersial juga) melalui program lisensi komunitas jika Anda memenuhi syarat. Lisensi komunitas adalah produk lengkap tanpa batasan atau tanda air.
Catatan: Saya bekerja untuk Syncfusion.
sumber
Jika Anda tidak benar-benar membutuhkan perpustakaan .Net PDF yang sebenarnya, ada banyak alat HTML ke PDF gratis , yang banyak di antaranya dapat dijalankan dari baris perintah.
Salah satu solusinya adalah dengan memilih salah satu dari mereka dan kemudian menulis pembungkus tipis di sekitar itu di C #. Misalnya, seperti yang dilakukan dalam tutorial ini .
sumber
Saya menggunakan ExpertPDF Html To Pdf Converter . Melakukan pekerjaan yang layak. Sayangnya, ini tidak gratis.
sumber
Ada juga aplikasi pembuatan dokumen berbasis web baru - DocRaptor.com . Tampaknya mudah digunakan, dan ada opsi gratis.
sumber
Pembaruan 2018, dan Mari gunakan persamaan HTML + CSS = PDF standar!
Ada kabar baik untuk tuntutan HTML-ke-PDF. Seperti yang ditunjukkan oleh jawaban ini , standar W3C css-break-3 akan menyelesaikan masalah ... Ini adalah Calon Rekomendasi dengan rencana untuk berubah menjadi Rekomendasi definitif pada 2017 atau 2018, setelah pengujian.
Karena tidak terlalu standar ada solusi, dengan plugin untuk C #, seperti yang ditunjukkan oleh print-css.rocks .
sumber
Anda dapat menggunakan fitur cetak-ke-pdf Google Chrome dari mode tanpa kepala. Saya menemukan ini sebagai metode paling sederhana namun paling kuat.
sumber
ABCpdf.NET (http://www.websupergoo.com/abcpdf-5.htm)
Kami menggunakan dan merekomendasikan.
Komponen yang sangat bagus, itu tidak hanya mengkonversi halaman web ke PDF seperti gambar tetapi benar-benar mengubah teks, gambar, pemformatan, dll ...
Ini tidak gratis tetapi murah.
sumber
Saya penulis paket Rotativa. Memungkinkan untuk membuat file PDF langsung dari tampilan pisau cukur:
https://www.nuget.org/packages/Rotativa/
Sepele untuk digunakan dan Anda memiliki kontrol penuh pada tata letak karena Anda dapat menggunakan tampilan pisau cukur dengan data dari Model dan wadah ViewBag Anda.
Saya mengembangkan versi SaaS di Azure. Itu membuatnya lebih mudah untuk menggunakannya dari WebApi atau aplikasi .Net, layanan, situs web Azure, webjob Azure, apa pun yang menjalankan .Net.
http://www.rotativahq.com/
Akun gratis tersedia.
sumber
Di bawah ini adalah contoh konversi html + css ke PDF menggunakan iTextSharp (iTextSharp + itextsharp.xmlworker)
sumber
Itu tergantung pada persyaratan lain yang Anda miliki.
Solusi yang sangat sederhana tetapi tidak mudah untuk digunakan adalah dengan menggunakan kontrol WebBrowser untuk memuat Html dan kemudian menggunakan metode cetak untuk mencetak ke printer PDF yang diinstal secara lokal. Ada beberapa printer PDF gratis yang tersedia dan kontrol WebBrowser adalah bagian dari framework .Net.
EDIT: Jika Anda Html adalah XHtml Anda dapat menggunakan PDFizer untuk melakukan pekerjaan itu.
sumber
Visi PDF bagus. Namun, Anda harus memiliki Kepercayaan Penuh untuk menggunakannya. Saya sudah mengirim email dan bertanya mengapa HTML saya tidak dikonversi di server tetapi bekerja dengan baik di localhost.
sumber
Saya menemukan perpustakaan berikut ini lebih efektif dalam mengkonversi html ke pdf.
nuget : https://www.nuget.org/packages/Select.HtmlToPdf/
sumber
Saya juga mencari ini beberapa waktu lalu. Saya berlari ke HTMLDOC http://www.easysw.com/htmldoc/ yang merupakan aplikasi baris perintah open source gratis yang mengambil file HTML sebagai argumen dan mengeluarkan PDF dari itu. Ini bekerja dengan baik untuk proyek sampingan saya, tetapi semuanya tergantung pada apa yang sebenarnya Anda butuhkan.
Perusahaan yang membuatnya menjual binari yang dikompilasi, tetapi Anda bebas mengunduh dan mengkompilasi dari sumber dan menggunakannya secara gratis. Saya berhasil menyusun revisi yang cukup baru (untuk versi 1.9) dan saya bermaksud merilis installer biner untuk itu dalam beberapa hari, jadi jika Anda tertarik saya dapat memberikan tautan kepadanya segera setelah saya mempostingnya.
Sunting (2/25/2014): Sepertinya dokumen dan situs dipindahkan ke http://www.msweet.org/projects.php?Z1
sumber
Anda perlu menggunakan perpustakaan komersial jika Anda membutuhkan rendering html yang sempurna dalam pdf.
ExpertPdf Html To Pdf Converter sangat mudah digunakan dan mendukung html5 / css3 terbaru. Anda dapat mengonversi seluruh url ke pdf:
atau string html:
Anda juga memiliki alternatif untuk secara langsung menyimpan dokumen pdf yang dihasilkan ke Stream file pada disk.
sumber
Ini adalah perpustakaan gratis dan bekerja dengan sangat mudah: OpenHtmlToPdf
sumber
Sepertinya sejauh ini solusi .NET gratis terbaik adalah perpustakaan SubsPechkin yang merupakan pembungkus di sekitar perpustakaan asli wkhtmltopdf .
Saya sekarang telah menggunakan versi single-threaded untuk mengonversi beberapa ribu string HTML ke file PDF dan tampaknya berfungsi dengan baik. Seharusnya juga berfungsi di lingkungan multi-threaded (IIS, misalnya) tetapi saya belum mengujinya.
Juga karena saya ingin menggunakan versi terbaru dari wkhtmltopdf ( 0.12.5 pada saat penulisan), saya mengunduh DLL dari situs web resmi, menyalinnya ke root proyek saya, mengatur salinan ke keluaran ke true, dan menginisialisasi perpustakaan seperti begitu:
Kode di atas akan terlihat persis "wkhtmltox.dll", jadi jangan mengubah nama file. Saya menggunakan versi 64-bit dari DLL.
Pastikan Anda membaca instruksi untuk lingkungan multi-utas, karena Anda harus menginisialisasi hanya sekali per siklus hidup aplikasi sehingga Anda harus memasukkannya ke dalam singleton atau apalah.
sumber
Ini bungkusnya untuk wkhtmltopdf.dll oleh pruiz
Dan pembungkus untuk wkhtmltopdf.exe oleh Codaxy
- juga di nuget .
sumber
No tests are run because no tests are loaded or the selected tests are disabled
googling juga tidak membantuAlat terbaik yang saya temukan dan digunakan untuk menghasilkan PDF dari javascript dan gaya yang diberikan tampilan atau halaman html adalah phantomJS .
Unduh file .exe dengan fungsi rasterize.js yang ditemukan di root dari folder contoh exe dan masukkan solusi di dalamnya.
Bahkan memungkinkan Anda untuk mengunduh file dalam kode apa pun tanpa membuka file itu juga memungkinkan untuk mengunduh file ketika gaya dan jquery khusus diterapkan.
Kode berikut menghasilkan File PDF:
sumber
Anda juga dapat memeriksa Spire , ini memungkinkan Anda membuat
HTML to PDF
dengan potongan kode sederhana iniArtikel terperinci: Cara mengonversi HTML ke PDF di asp.net C #
sumber
Sebagai perwakilan dari Perangkat Lunak HiQPdf saya percaya solusi terbaik adalah HiQPdf HTML to PDF converter untuk .NET . Ini berisi mesin rendering HTML5, CSS3, SVG dan JavaScript paling canggih di pasaran. Ada juga versi gratis dari perpustakaan HTML ke PDF yang dapat Anda gunakan untuk menghasilkan secara gratis hingga 3 halaman PDF. Kode C # minimal untuk menghasilkan PDF sebagai byte [] dari halaman HTML adalah:
Anda dapat menemukan contoh yang lebih terperinci baik untuk ASP.NET dan MVC dalam repositori contoh HTML ke PDF Converter HiQPdf .
sumber
Kemungkinan besar sebagian besar proyek akan membungkus Mesin C / C ++ daripada mengimplementasikan solusi C # dari awal. Coba Proyek Gotenberg .
Untuk mengujinya
Contoh Keriting
C # sample.cs
Untuk mengkompilasi
sumber
Coba komponen konversi PDF Duo .Net ini untuk mengonversi HTML ke PDF dari aplikasi ASP.NET tanpa menggunakan dll.
Anda dapat melewati string atau file HTML, atau streaming untuk menghasilkan PDF. Gunakan kode di bawah ini (Contoh C #):
Info + C # / VB contohnya dapat Anda temukan di: http://www.duodimension.com/html_pdf_asp.net/component_html_pdf.aspx
sumber
Untuk mengonversi HTML ke PDF dalam C # gunakan ABCpdf .
ABCpdf dapat menggunakan mesin rendering Gecko atau Trident, sehingga tabel HTML Anda akan terlihat sama seperti yang muncul di FireFox dan Internet Explorer.
Ada demo online ABCpdf di www.abcpdfeditor.com. Anda bisa menggunakan ini untuk memeriksa bagaimana tabel Anda akan merender terlebih dahulu, tanpa perlu mengunduh dan menginstal perangkat lunak.
Untuk merender seluruh halaman web Anda memerlukan fungsi AddImageUrl atau AddImageHtml. Tetapi jika semua yang ingin Anda lakukan hanyalah menambahkan teks bergaya HTML maka Anda dapat mencoba fungsi AddHtml, seperti di bawah ini:
ABCpdf adalah judul perangkat lunak komersial, namun edisi standar seringkali dapat diperoleh secara gratis dengan penawaran khusus.
sumber
However, you must disclose your affiliation with the product in your answers. Also, if a huge percentage of your posts include a mention of your product, you're clearly here for the wrong reasons.
Semua jawaban Anda tentang ABCpdf