Chcę wygenerować plik PDF, przekazując treść HTML do funkcji. Użyłem do tego iTextSharp, ale nie działa on dobrze, gdy napotyka tabele, a układ jest po prostu nieuporządkowany.
Czy jest lepszy sposób?
c#
html
pdf
itextsharp
Amedee Van Gasse
źródło
źródło
Odpowiedzi:
EDYCJA: Nowa sugestia Renderer HTML dla PDF za pomocą PdfSharp
(Po wypróbowaniu wkhtmltopdf i zasugerowaniu, aby tego uniknąć)
HtmlRenderer.PdfSharp to w 100% w pełni zarządzany kod C # , łatwy w użyciu, bezpieczny w wątkach i co najważniejsze BEZPŁATNE ( nowa licencja BSD ) .
Stosowanie
Użyj przykładowej metody.
Bardzo dobry Alternatywny Czy Free Version of iTextSharp
Do wersji 4.1.6 iTextSharp był licencjonowany na licencji LGPL, a wersje do 4.16 (lub mogą być również widelce) są dostępne jako pakiety i mogą być swobodnie używane. Oczywiście ktoś może korzystać z kontynuowanej płatnej wersji 5+ .
Próbowałem zintegrować rozwiązania wkhtmltopdf z moim projektem i miałem sporo przeszkód.
Osobiście unikałbym używania rozwiązań opartych na wkhtmltopdf w aplikacjach Hosted Enterprise z następujących powodów.
--- PRE Edytuj sekcję ---
Dla każdego, kto chce generować pdf z HTML w prostszych aplikacjach / środowiskach, pozostawiam mój stary post jako sugestię.
TuesPechkin
https://www.nuget.org/packages/TuesPechkin/
lub Specjalnie dla aplikacji internetowych MVC (ale myślę, że możesz go użyć w dowolnej aplikacji .net)
Rotativa
https://www.nuget.org/packages/Rotativa/
Oba wykorzystują plik binarny wkhtmtopdf do konwersji html na pdf. Który używa silnika Webkit do renderowania stron, aby mógł także analizować arkusze stylów css .
Zapewniają łatwą w użyciu płynną integrację z C #.
Rotativa może również generować bezpośrednio pliki PDF z dowolnego widoku Razor .
Dodatkowo dla aplikacji internetowych w świecie rzeczywistym zarządzają także bezpieczeństwem wątków itp.
źródło
Aktualizacja: Polecam teraz PupeteerSharp zamiast wkhtmltopdf.
Spróbuj wkhtmtopdf . To najlepsze narzędzie, jakie do tej pory znalazłem.
W przypadku platformy .NET można użyć tej małej biblioteki, aby łatwo wywołać narzędzie wiersza polecenia wkhtmtopdf.
źródło
Niedawno przeprowadziłem PoC w zakresie konwersji HTML na PDF i chciałem udostępnić swoje wyniki.
Jak dotąd moim ulubionym jest OpenHtmlToPdf
Zalety tego narzędzia:
Inne przetestowane narzędzia:
źródło
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 działa idealnie za darmo.Ostatnia aktualizacja: marzec 2020 r
Oto lista opcji konwersji HTML na PDF w .NET, które przygotowałem (niektóre darmowe, niektóre płatne)
GemBox.Document
PDF Metamorfoza .Net
HtmlRenderer.PdfSharp
PuppeteerSharp
EO.Pdf
WnvHtmlToPdf_x64
IronPdf
Spire.PDF
Darmowy Spire.PDF dla .NET (wersja społecznościowa)
Aspose.Html
EvoPDF
ExpertPdfHtmlToPdf
Zetpdf
PDFtron
WkHtmlToXSharp
Wybierz PDF
Jeśli żadna z powyższych opcji nie pomoże, zawsze możesz przeszukać pakiety NuGet https://www.nuget.org/packages?q=html+pdf
źródło
Większość konwerterów HTML na PDF polega na IE do analizowania i renderowania HTML. Może się to zepsuć, gdy użytkownik zaktualizuje swój IE. Oto taki, który nie opiera się na IE.
Kod jest mniej więcej taki:
Podobnie jak wiele innych konwerterów, możesz przekazywać tekst, nazwę pliku lub adres URL. Wynik można zapisać w pliku lub strumieniu.
źródło
Szczerze polecam NReco . Ma darmową i płatną wersję i naprawdę warto. Używa wkhtmtopdf w tle, ale potrzebujesz tylko jednego zestawu. Fantastyczny.
Przykład zastosowania:
Zainstaluj przez NuGet .
Oświadczenie: Nie jestem programistą, tylko fanem projektu :)
źródło
Winnovative oferuje bibliotekę PDF .Net, która obsługuje wprowadzanie HTML. Oferują nieograniczony bezpłatny okres próbny . W zależności od sposobu wdrożenia projektu może to być wystarczające.
źródło
Niezbędny plik PDF może służyć do konwersji HTML na PDF : próbka C # . Przykład, do którego prowadzi link tutaj, oparty jest na ASP.NET, ale biblioteki można używać z Windows Forms, WPF, ASP.NET Webforms i ASP.NET MVC. Biblioteka oferuje opcję korzystania z różnych mechanizmów renderowania HTML: Internet Explorer (domyślnie) i WebKit (najlepsze wyjście).
Cały zestaw elementów sterujących jest dostępny bezpłatnie (również aplikacje komercyjne) za pośrednictwem programu licencji społecznościowej , jeśli się kwalifikujesz. Licencja społecznościowa jest pełnym produktem bez ograniczeń i znaków wodnych.
Uwaga: Pracuję dla Syncfusion.
źródło
Jeśli tak naprawdę nie potrzebujesz prawdziwej biblioteki PDF .Net, istnieje wiele bezpłatnych narzędzi HTML do PDF , z których wiele można uruchomić z wiersza polecenia.
Jednym z rozwiązań byłoby wybranie jednego z nich, a następnie napisanie cienkiego opakowania wokół tego w języku C #. Np. Tak jak w tym samouczku .
źródło
Użyłem ExpertPDF Html To Pdf Converter . Wykonuje przyzwoitą pracę. Niestety nie jest za darmo.
źródło
Pojawiła się także nowa internetowa aplikacja do generowania dokumentów - DocRaptor.com . Wydaje się, że jest łatwy w użyciu i jest darmowa opcja.
źródło
Aktualizacja 2018 roku i użyjmy standardowego HTML + CSS = równanie PDF!
Są dobre wiadomości dotyczące wymagań HTML-to-PDF. Jak pokazała ta odpowiedź , norma W3C css-break-3 rozwiąże problem ... Jest to Rekomendacja Kandydacka z planem przekształcenia w ostateczną Rekomendację w 2017 lub 2018 roku, po testach.
Jako nietypowe są rozwiązania z wtyczkami do C #, co pokazuje print-css.rocks .
źródło
Możesz używać funkcji Google Chrome drukuj na pdf z trybu bezgłowego. Uznałem, że jest to najprostsza, a jednocześnie najbardziej niezawodna metoda.
źródło
ABCpdf.NET (http://www.websupergoo.com/abcpdf-5.htm)
Używamy i polecamy.
Bardzo dobry komponent, nie tylko konwertuje stronę internetową do formatu PDF jak obraz, ale tak naprawdę konwertuje tekst, obraz, formatowanie itp.
To nie jest darmowe, ale tanie.
źródło
Jestem autorem pakietu Rotativa. Pozwala tworzyć pliki PDF bezpośrednio z widoków maszynki:
https://www.nuget.org/packages/Rotativa/
Prosty w użyciu i masz pełną kontrolę nad układem, ponieważ możesz używać widoków brzytwy z danymi z modelu i kontenera ViewBag.
Opracowałem wersję SaaS na platformie Azure. Ułatwia to korzystanie z niego z poziomu WebApi lub dowolnej aplikacji .Net, usługi, witryny Azure, webjob Azure, niezależnie od tego, co działa .Net.
http://www.rotativahq.com/
Darmowe konta dostępne.
źródło
Poniżej znajduje się przykład konwersji html + css do PDF za pomocą iTextSharp (iTextSharp + itextsharp.xmlworker)
źródło
To zależy od wszelkich innych wymagań.
Naprawdę proste, ale niełatwe do wdrożenia rozwiązanie to użycie formantu WebBrowser do załadowania pliku HTML, a następnie użycie metody drukowania na drukarce PDF zainstalowanej lokalnie. Dostępnych jest kilka bezpłatnych drukarek PDF, a kontrola WebBrowser jest częścią frameworka .Net.
EDYCJA: Jeśli twój HTML to XHtml, możesz użyć PDFizera do wykonania zadania.
źródło
PDF Vision jest dobry. Musisz jednak mieć pełne zaufanie, aby z niego korzystać. Wysłałem już wiadomość e-mail i zapytałem, dlaczego mój kod HTML nie został przekonwertowany na serwerze, ale działał dobrze na localhost.
źródło
Znalazłem następującą bibliotekę bardziej skuteczną w konwersji HTML do PDF.
nuget : https://www.nuget.org/packages/Select.HtmlToPdf/
źródło
Szukałem tego też jakiś czas temu. Natknąłem się na HTMLDOC http://www.easysw.com/htmldoc/, która jest bezpłatną aplikacją wiersza poleceń o otwartym kodzie źródłowym, która bierze plik HTML jako argument i wyrzuca z niego plik PDF. W moim projekcie pobocznym zadziałało całkiem nieźle, ale wszystko zależy od tego, czego naprawdę potrzebujesz.
Firma, która sprawia, że sprzedaje skompilowane pliki binarne, ale możesz pobrać i skompilować ze źródła i używać go za darmo. Udało mi się skompilować całkiem nową wersję (dla wersji 1.9) i zamierzam wypuścić dla niej binarny instalator za kilka dni, więc jeśli jesteś zainteresowany, mogę podać link do niego, jak tylko go opublikuję.
Edytuj (25.02.2014): Wygląda na to, że dokumenty i witryna zostały przeniesione na http://www.msweet.org/projects.php?Z1
źródło
Jeśli potrzebujesz doskonałego renderowania HTML w formacie pdf, musisz użyć biblioteki komercyjnej.
ExpertPdf Html To Pdf Converter jest bardzo łatwy w użyciu i obsługuje najnowszy HTML5 / CSS3. Możesz przekonwertować cały adres URL na pdf:
lub ciąg HTML:
Możesz także zapisać bezpośrednio wygenerowany dokument pdf w strumieniu pliku na dysku.
źródło
Jest to darmowa biblioteka i działa bardzo łatwo: OpenHtmlToPdf
źródło
Wygląda na to, że jak dotąd najlepszym darmowym rozwiązaniem .NET jest biblioteka TuesPechkin, która jest otoczką natywnej biblioteki wkhtmltopdf .
Użyłem teraz wersji jednowątkowej do konwersji kilku tysięcy ciągów HTML na pliki PDF i wydaje się, że działa świetnie. Ma także działać w środowiskach wielowątkowych (na przykład IIS), ale tego nie testowałem.
Ponieważ chciałem użyć najnowszej wersji wkhtmltopdf (0.12.5 w momencie pisania), pobrałem bibliotekę DLL z oficjalnej strony internetowej, skopiowałem ją do katalogu głównego projektu, ustawiłem wartość kopiowania na true i zainicjowałem bibliotekę jak więc:
Powyższy kod będzie szukał dokładnie „wkhtmltox.dll”, więc nie zmieniaj nazwy pliku. Użyłem 64-bitowej wersji biblioteki DLL.
Przeczytaj instrukcje dla środowisk wielowątkowych, ponieważ będziesz musiał zainicjować je tylko raz na cykl życia aplikacji, więc będziesz musiał umieścić je w singletonie lub coś takiego.
źródło
Oto opakowanie dla wkhtmltopdf.dll firmy pruiz
I opakowanie dla wkhtmltopdf.exe firmy Codaxy
- również w nuget .
źródło
No tests are run because no tests are loaded or the selected tests are disabled
googling nie pomagaNajlepszym narzędziem, jakie znalazłem i którego używałem do generowania plików PDF javascript i stylów renderowanych widoków lub stron HTML jest phantomJS .
Pobierz plik .exe z funkcją rasterize.js znalezioną w katalogu głównym exe przykładowego folderu i umieść w nim rozwiązanie.
Pozwala nawet pobrać plik w dowolnym kodzie bez otwierania tego pliku, a także pozwala pobrać plik po zastosowaniu stylów i specjalnej jquery.
Poniższy kod wygeneruje plik PDF:
źródło
Możesz także sprawdzić Spire , dzięki czemu możesz tworzyć za
HTML to PDF
pomocą tego prostego fragmentu koduSzczegółowy artykuł: Jak przekonwertować HTML na PDF w asp.net C #
źródło
Jako przedstawiciel oprogramowania HiQPdf uważam, że najlepszym rozwiązaniem jest konwerter HTML na PDF HiQPdf dla platformy .NET . Zawiera najbardziej zaawansowany silnik renderujący HTML5, CSS3, SVG i JavaScript na rynku. Istnieje również bezpłatna wersja biblioteki HTML na PDF, którą można wykorzystać do tworzenia za darmo do 3 stron PDF. Minimalny kod C # do wygenerowania pliku PDF jako bajtu [] ze strony HTML to:
Bardziej szczegółowe przykłady zarówno dla ASP.NET, jak i MVC można znaleźć w repozytorium przykładów konwertera HTML na PDF .
źródło
Całkiem prawdopodobne, że większość projektów opakowuje silnik C / C ++ zamiast wdrażać od podstaw rozwiązanie C #. Wypróbuj Project Gotenberg .
Aby to przetestować
Przykład zwijania
C # sample.cs
Kompilować
źródło
Wypróbuj ten komponent konwertujący PDF Duo .Net do konwersji HTML na PDF z aplikacji ASP.NET bez użycia dodatkowych bibliotek dll.
Możesz przekazać ciąg lub plik HTML lub strumień, aby wygenerować plik PDF. Użyj poniższego kodu (Przykład C #):
Informacje + przykłady C # / VB można znaleźć na stronie : http://www.duodimension.com/html_pdf_asp.net/component_html_pdf.aspx
źródło
Aby przekonwertować HTML na PDF w C # użyj ABCpdf .
ABCpdf może korzystać z silników renderujących Gecko lub Trident, więc twoja tabela HTML będzie wyglądać tak samo jak w FireFox i Internet Explorer.
Na stronie www.abcpdfeditor.com dostępna jest wersja demonstracyjna ABCpdf. Możesz to wykorzystać, aby sprawdzić, jak najpierw będą renderowane tabele, bez konieczności pobierania i instalowania oprogramowania.
Do renderowania całych stron internetowych potrzebujesz funkcji AddImageUrl lub AddImageHtml. Ale jeśli wszystko, co chcesz zrobić, to po prostu dodać tekst w stylu HTML, możesz wypróbować funkcję AddHtml, jak poniżej:
ABCpdf to komercyjny tytuł oprogramowania, jednak wydanie standardowe można często uzyskać bezpłatnie w ramach oferty specjalnej.
źródło
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.
najczęściej