iTextSharp: HTML을 PDF로 효율적으로 변환
iTextSharp를 사용하여 HTML 문서를 PDF 형식으로 변환하려면 구조화된 접근 방식이 필요합니다. HTML과 PDF는 서로 다른 형식이므로 변환 과정에서 주의 깊게 처리해야 한다는 점을 기억하는 것이 중요합니다.
iTextSharp의 HTML 처리 이해
iTextSharp에는 HTML 및 CSS를 구문 분석하는 기능이 있지만 ASP.NET, MVC 또는 Razor와 같은 프레임워크에 대한 지원은 부족합니다. 선택한 프레임워크에서 HTML 콘텐츠를 추출하는 것은 귀하의 책임입니다. iTextSharp는 이 기능을 제공하지 않습니다.
파서 선택: HTMLWorker와 XMLWorker
iTextSharp는 HTML 태그 구문 분석을 위해 HTMLWorker와 XMLWorker라는 두 가지 옵션을 제공합니다. 이전에는 HTMLWorker가 사용되었지만 이제는 XMLWorker가 권장되는 파서입니다. XMLWorker는 향상된 확장성과 뛰어난 CSS 지원을 자랑합니다.
코드 예: HTMLWorker 및 XMLWorker를 사용한 HTML 태그 구문 분석
다음 C# 코드 조각은 두 가지 방법을 모두 사용하여 HTML 태그를 구문 분석하는 방법을 보여줍니다.
<code class="language-csharp">// Example HTML string html = "..."; // Parsing with HTMLWorker (CSS ignored) using (var htmlWorker = new iTextSharp.text.html.simpleparser.HTMLWorker(doc)) { using (var sr = new StringReader(html)) { htmlWorker.Parse(sr); } } // Parsing with XMLWorker (CSS supported) using (var srHtml = new StringReader(html)) { iTextSharp.tool.xml.XMLWorkerHelper.GetInstance().ParseXHtml(writer, doc, srHtml); }</code>
CSS 지원을 위해 XMLWorker 활용
XMLWorker를 사용하면 CSS 스타일시트를 원활하게 통합할 수 있습니다. 다음 예는 이를 보여줍니다.
<code class="language-csharp">string css = "..."; // Convert CSS and HTML strings to memory streams using (var msCss = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(css))) using (var msHtml = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(html))) { iTextSharp.tool.xml.XMLWorkerHelper.GetInstance().ParseXHtml(writer, doc, msHtml, msCss); }</code>
중요 사항: iTextSharp의 HTML 및 CSS 기능 지원은 완전하지 않습니다. 지원되는 기능 및 제한 사항에 대한 포괄적인 세부 정보는 공식 iTextSharp 설명서를 참조하세요.
위 내용은 iTextSharp를 사용하여 HTML을 PDF로 변환하는 방법: HTMLWorker와 XMLWorker?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!