flying-saucer/iText를 사용하여 PDF를 생성 할 수 있습니다. 그러나, 나는 스타일 시트를 PDF 렌더링에 포함시키는 방법을 이해할 수 없다.Flying-saucer/iText PDF 파일을 찾을 수 없습니다.
참고로이 flying-saucer/iText PDF in servlet not finding css file을 사용했습니다.
이 내가
내가 아스 커 사용한 것과 유사한 무언가를 구현 한 솔루션으로 renderer.setDocument(doc, "http://example.com/something/page.html");
을 사용할 수 없습니다 관련된 여러 CSS 파일이 있지만, 그것은 Caused by: java.nio.file.InvalidPathException: Illegal char <:> at index 4: http://localhost:8080/proj/resources/css/custom1.css
오류
을 반환하는 것 여기 내 코드는
StringBuilder bui = new StringBuilder();
bui.append("<html><head><style>");
bui.append(readFile(path+"/resources/css/custom1.css", Charsets.UTF_8));
bui.append(readFile(path+"/resources/css/custom2.css", Charsets.UTF_8));
bui.append(readFile(path+"/resources/css/custom3.css", Charsets.UTF_8));
bui.append("</style></head>");
bui.append("<body><div><table>");
bui.append(xhtml_file);
bui.append("</table></div></body></html>");
InputStream stream = new ByteArrayInputStream(bui.toString().getBytes(StandardCharsets.UTF_8));
Document doc = tidy.parseDOM(stream, null);
File outputFile = new File(directory+ "FILENAME" +".pdf");
os = new FileOutputStream(outputFile);
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(doc, null);
renderer.layout();
renderer.createPDF(os, false);
renderer.finishPDF();
내가 직접 주소를 바로 "http://localhost:8080/resources/css/custom1.css"를 입력하면 전달되는 경로는 "http://localhost:8080" 입니다 r, 그것은 css 파일을 보여줍니다. 나는 '경로'를 제거하려했지만 CSS를 얻지 못했습니다. 내가 도대체 뭘 잘못하고있는 겁니까?