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();
는 https://github.com/itext/i5js-sandbox/tree/e53379c073e55def4fb0736778177efd8d0932c9, SRC/메인/자바/sandbox.xmlworker에서 보면 많은 유틸 예제가 –
어떤 예를 찾을 수 없습니다 HTML에서 radio/checkbox를 생성 된 PDF에 적절히 렌더링되도록 명시 적으로 만듭니다. – Ashish