HTML 내용을 함수에 전달하여 PDF를 생성하고 싶습니다. 나는 이것을 위해 iTextSharp를 사용했지만 테이블을 만났을 때 잘 수행되지 않고 레이아웃이 지저분 해집니다.
더 좋은 방법이 있습니까?
답변
편집 :
PdfSharp를 사용하여 PDF에 대한 새로운 제안 HTML 렌더러
(wkhtmltopdf를 시도하고 피하도록 제안한 후)
HtmlRenderer.PdfSharp는 100 % 완전 C # 관리 코드 이며, 사용 하기 쉽고 , 스레드 안전하고 가장 중요한 무료 ( New BSD License ) 솔루션입니다.
용법
- HtmlRenderer.PdfSharp nuget 패키지를 다운로드 하십시오 .
-
예제 방법을 사용하십시오.
public static Byte[] PdfSharpConvert(String html) { Byte[] res = null; using (MemoryStream ms = new MemoryStream()) { var pdf = TheArtOfDev.HtmlRenderer.PdfSharp.PdfGenerator.GeneratePdf(html, PdfSharp.PageSize.A4); pdf.Save(ms); res = ms.ToArray(); } return res; }
아주 좋은 대안 은 iTextSharp 의 무료 버전 입니다
버전 4.1.6까지 iTextSharp는 LGPL 라이센스에 따라 라이센스가 부여되었으며 4.16까지 (또는 포크가있을 때까지) 버전이 패키지로 제공되어 자유롭게 사용할 수 있습니다. 물론 누군가 계속 5+ 유료 버전을 사용할 수 있습니다 .
프로젝트에 wkhtmltopdf 솔루션 을 통합하려고 시도했지만 많은 장애물이있었습니다.
개인적 으로 Hosted Enterprise 응용 프로그램에서 wkhtmltopdf 기반 솔루션을 사용하지 않는 이유는 다음과 같습니다.
- 우선 wkhtmltopdf는 C #이 아닌 C ++로 구현되어 있으며, 특히 프로젝트의 32 비트와 64 비트 빌드 사이를 전환 할 때 C # 코드에 포함시키는 데 여러 가지 문제가 발생합니다. 다른 컴퓨터에서 “잘못된 형식 예외”를 피하기 위해 조건부 프로젝트 빌드 등을 포함한 여러 가지 해결 방법을 시도했습니다.
- 자신의 가상 머신을 관리한다면 괜찮습니다. 그러나 프로젝트가 ( Azure
(실제로 TuesPenchin 작성자가 언급 한 바와 같이 azure를 사용할 수 없음 ),
Elastic Beanstalk 등) 와 같은 제한된 환경에서 실행되는 경우 wkhtmltopdf가 작동하도록 환경을 구성하는 것은 악몽입니다. - wkhtmltopdf는 서버 내에서 파일을 생성하므로 사용자 권한을 관리하고 wkhtmltopdf가 실행중인 위치에 “쓰기”액세스 권한을 부여해야합니다.
- Wkhtmltopdf는 독립형 애플리케이션으로 실행되므로 IIS 애플리케이션 풀에서 관리하지 않습니다 . 따라서 다른 머신에서 서비스로 호스팅하거나 프로덕션 서버 내에서 스파이크 및 메모리 소비를 처리해야합니다.
- 임시 파일을 사용하여 pdf를 생성하며 실제로 디스크 i / o가 느린 AWS EC2 와 같은 경우 에는 큰 성능 문제입니다.
- 많은 사용자가 가장 많이보고 한 “DLL ‘wkhtmltox.dll’을 (를)로드 할 수 없습니다”오류를보고했습니다.
— PRE 편집 섹션 —
간단한 응용 프로그램 / 환경에서 html에서 pdf를 생성하려는 사람은 이전 게시물을 제안으로 남겨 둡니다.
https://www.nuget.org/packages/TuesPechkin/
또는 특히 MVC 웹 응용 프로그램의 경우
(그러나 .net 응용 프로그램에서 사용할 수 있다고 생각합니다)
https://www.nuget.org/packages/Rotativa/
둘 다
wkhtmtopdf 바이너리를 사용하여 html을 pdf로 변환합니다. 이것은 웹킷 엔진을 사용하여 페이지를 렌더링하므로 CSS 스타일 시트를 구문 분석 할 수 있습니다 .
C #과의 완벽한 통합을 제공합니다.
Rotativa는 모든 Razor View 에서 직접 PDF를 생성 할 수도 있습니다 .
또한 실제 웹 응용 프로그램의 경우 스레드 안전 등을 관리합니다.
답변
업데이트 : 이제 wkhtmltopdf 보다 PupeteerSharp를 권장 합니다.
wkhtmtopdf를 사용해보십시오 . 내가 지금까지 찾은 최고의 도구입니다.
.NET의 경우이 작은 라이브러리 를 사용 하여 wkhtmtopdf 명령 행 유틸리티를 쉽게 호출 할 수 있습니다.
답변
최근에 HTML에서 PDF 로의 변환에 관한 PoC를 수행했으며 결과를 공유하고 싶었습니다.
내가 가장 좋아하는 것은 OpenHtmlToPdf입니다.
이 도구의 장점 :
- 매우 우수한 HTML 호환성 (예 : 테이블이 여러 페이지에 걸쳐있을 때 테이블 헤더를 올바르게 반복 한 예제에서 유일한 도구였습니다)
- 유창한 API
- 무료 및 오픈 소스 ( Creative Commons Attribution 3.0 라이센스 )
- NuGet을 통해 사용 가능
테스트 된 다른 도구 :
- ExpertPDF ( http://www.html-to-pdf.net/ )
- IronPDF ( http://ironpdf.com/ )
- iTextSharp ( https://sourceforge.net/projects/itextsharp/ )
- .NET 용 NReco PDF Creator ( http://www.nrecosite.com/pdf_generator_net.aspx )
- PDF Sharp 용 HTML 렌더러 ( https://www.nuget.org/packages/HtmlRenderer.PdfSharp/ )
- SelectPDF 커뮤니티 에디션 ( http://selectpdf.com/community-edition/ )
답변
최종 업데이트 : 2020 년 3 월
이것은 내가 결합 한 .NET에서 HTML을 PDF로 변환하는 옵션 목록입니다 (일부 무료)
-
GemBox.Document
-
PDF 변형 .Net
- https://www.nuget.org/packages/sautinsoft.pdfmetamorphosis/
- $ 439-$ 1439- https ://www.sautinsoft.com/products/pdf-metamorphosis/order.php
- https://www.sautinsoft.com/products/pdf-metamorphosis/convert-html-to-pdf-dotnet-csharp.php
-
HtmlRenderer.PdfSharp
- https://www.nuget.org/packages/HtmlRenderer.PdfSharp/1.5.1-beta1
- BSD 지정되지 않은 라이센스
-
꼭두각시
-
EO.Pdf
-
WnvHtmlToPdf_x64
-
IronPdf
- https://www.nuget.org/packages/IronPdf/
- $ 399-$ 1599- https ://ironpdf.com/licensing/
- https://ironpdf.com/examples/using-html-to-create-a-pdf/
-
첨탑 .PDF
- https://www.nuget.org/packages/Spire.PDF/
- $ 599- https ://www.e-iceblue.com/Buy/Spire.PDF.html
- https://www.e-iceblue.com/Tutorials/Spire.PDF/Spire.PDF-Program-Guide/Convert-HTML-to-PDF-Customize-HTML-to-PDF-Conversion-by-Yourself.html
-
.NET 용 무료 Spire.PDF (커뮤니티 버전)
-
Aspose.Html
- https://www.nuget.org/packages/Aspose.Html/
- $ 599- https ://purchase.aspose.com/pricing
- https://docs.aspose.com/display/htmlnet/HTML+to+PDF+Conversion
-
EvoPDF
- https://www.nuget.org/packages/EvoPDF/
- $ 450-$ 1200- http ://www.evopdf.com/buy.aspx
-
ExpertPdfHtmlToPdf
-
Zetpdf
- https://zetpdf.com
- $ 249- https ://zetpdf.com/pricing/
- 잘 알고 있거나 지원되는 라이브러리가 아닙니까-ZetPDF-이 제품의 배경을 아는 사람이 있습니까?
-
PDFtron
-
WkHtmlToXSharp
- https://github.com/pruiz/WkHtmlToXSharp
- 비어 있는
- 동시 변환은 처리 대기열로 구현됩니다.
-
PDF 선택
- https://selectpdf.com/pdf-library-for-net/
- 무료 (최대 5 페이지)
- $ 499-개발자 1 명, 배포 시스템 1 대 https://selectpdf.com/pricing/
- https://www.nuget.org/packages/Select.HtmlToPdf/
위의 옵션 중 어느 것도 도움이되지 않으면 항상 NuGet 패키지를 검색 할 수 있습니다
https://www.nuget.org/packages?q=html+pdf
답변
대부분의 HTML을 PDF로 변환하는 변환기는 IE를 사용하여 HTML 구문 분석 및 렌더링을 수행합니다. 사용자가 IE를 업데이트하면 중단 될 수 있습니다. 다음 은 IE에 의존하지 않는 것입니다.
코드는 다음과 같습니다.
EO.Pdf.HtmlToPdf.ConvertHtml(htmlText, pdfFileName);
다른 많은 변환기와 마찬가지로 텍스트, 파일 이름 또는 URL을 전달할 수 있습니다. 결과는 파일 또는 스트림에 저장 될 수 있습니다.
답변
나는 NReco 를 진지하게 추천 합니다. 무료 및 유료 버전이 있으며 실제로 가치가 있습니다. 백그라운드에서 wkhtmtopdf를 사용하지만 어셈블리가 하나만 있으면됩니다. 환상적인.
사용 예 :
NuGet을 통해 설치하십시오 .
var htmlContent = String.Format("<body>Hello world: {0}</body>", DateTime.Now);
var pdfBytes = (new NReco.PdfGenerator.HtmlToPdfConverter()).GeneratePdf(htmlContent);
면책 조항 : 나는 개발자가 아니며 프로젝트의 팬 일뿐입니다 🙂
답변
Winnovative 는 HTML 입력을 지원하는 .Net PDF 라이브러리를 제공합니다. 그들은 무제한 무료 평가판을 제공합니다 . 프로젝트 배포 방법에 따라 이것으로 충분할 수 있습니다.