2017-05-04 4 views
0

Itext와 xmlworker 5.5.5를 사용하여 HTML을 PDF로 변환합니다. 다음은 코드입니다. 문제는 우리가 pdf로 렌더링 된 라디오 나 체크 박스를 볼 수 없다는 것입니다. 확인란과 라디오 박스에 필요한 추가 작업은 무엇입니까?Itext (확인란, 라디오)를 사용하여 HTML을 PDF로 변환하지 않았습니다.

cssStr - 모든 CSS 클래스를 포함합니다. 그 문자열.

 // step 1 
     Document document = new Document(); 
     // step 2 
     PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(destFile)); 
     writer.setRunDirection(PdfWriter.RUN_DIRECTION_RTL); 

     // step 3 
     document.open(); 
     // step 4 - Styles 
     CSSResolver cssResolver = new StyleAttrCSSResolver(); 
     CssFile cssFile = XMLWorkerHelper.getCSS(new ByteArrayInputStream(cssStr.getBytes())); 
     cssResolver.addCss(cssFile); 

     XMLWorkerFontProvider fontProvider = new XMLWorkerFontProvider(XMLWorkerFontProvider.DONTLOOKFORFONTS); 
     fontProvider.register(OLTContext.getWebappDir()+"/bs/fonts/ARIALUNI.TTF", BaseFont.IDENTITY_H); 
     CssAppliers cssAppliers = new CssAppliersImpl(fontProvider); 
     HtmlPipelineContext htmlContext = new HtmlPipelineContext(cssAppliers); 
     htmlContext.setTagFactory(Tags.getHtmlTagProcessorFactory()); 

     // Pipelines 
     PdfWriterPipeline pdf = new PdfWriterPipeline(document, writer); 
     HtmlPipeline html = new HtmlPipeline(htmlContext, pdf); 
     CssResolverPipeline css = new CssResolverPipeline(cssResolver, html); 

     // XML Worker 
     XMLWorker worker = new XMLWorker(css, true); 
     XMLParser p = new XMLParser(worker); 
     ByteArrayInputStream stream = new ByteArrayInputStream(printable.getBytes("UTF-8")); 
     p.parse(stream, Charset.forName("UTF-8")); 

     // step 5 
     document.close(); 
+0

는 https://github.com/itext/i5js-sandbox/tree/e53379c073e55def4fb0736778177efd8d0932c9, SRC/메인/자바/sandbox.xmlworker에서 보면 많은 유틸 예제가 –

+0

어떤 예를 찾을 수 없습니다 HTML에서 radio/checkbox를 생성 된 PDF에 적절히 렌더링되도록 명시 적으로 만듭니다. – Ashish

답변

0

XMLWorker를 사용해야하는 아주 좋은 이유가 없다면 pdfHtml을 사용해 보시기 바랍니다. HTML5 및 CSS3 지원을 제공하는 iText7 용으로 출시 된 애드온입니다.

무료 라이센스는 iText 웹 사이트에서 얻을 수 있습니다. pdfHtml의 다음 릴리스는 AGPL 라이센스 및 오픈 소스 여야합니다 (현재 최종 코드 정리 중입니다).

+0

은 itext5에 사용할 수있는 Addon입니까? – Ashish

+1

pdfHtml은 iText7에서만 사용할 수 있습니다 (본인이 아는 한). –

+0

- RTL 언어로 i18 지원이 필요합니다. – Ashish

1

또한 pdfHtml의 평가판 라이센스로 7 번 시도했습니다. 라디오 & HTML의 체크 상자 또는 기본적으로 모든 입력 요소가 전혀 렌더링되지 않습니다. 다음 코드

LicenseKey.loadLicenseFile ("/ 사용자/ashish/서버 - ws/workspac 전자/테스트/lib/itextkey - 0.xml"); HtmlConverter.convertToPdf (새 파일 (HTML), 새 파일 (DEST)); 이 저장소에서