firstName, lastName, 전화 번호와 같은 일반 입력 필드가있는 간단한 등록 양식의 경우 JSF 2.0을 사용하는 xhtml 페이지에서 iText + flying saucer를 처음 사용하고 있습니다. 사용자가 모든 데이터를 입력하고 "NEXT"버튼을 클릭하면 사용자 데이터가있는이 XHTML 페이지를 pdf로 변환해야합니다.이 페이지의 소스 HTML을 페이지에 포함 된 모든 스타일로 정확하게 가져올 수 있습니까? pdf로 변환하십시오. 현재 나는 이와 같이 묶고 있습니다.동적으로 HTML을 사용하여 xhtml 페이지에서 pdf를 생성하는 방법
public void createPDF() {
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
HttpSession session = (HttpSession) externalContext.getSession(true);
String url = "http://localhost:8080/MyPROJECT/faces/page1.xhtml;JSESSIONID=" + session.getId();
try {
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(url);
renderer.layout();
HttpServletResponse response = (HttpServletResponse) externalContext.getResponse();
response.reset();
response.setContentType("application/pdf");
response.setHeader("Content-Disposition","C://user//first.pdf");
OutputStream browserStream = response.getOutputStream();
renderer.createPDF(browserStream);
browserStream.close();
session.invalidate();
} catch (Exception ex) {
ex.printStackTrace();
}
facesContext.responseComplete();
}
하지만이 예외가 발생합니다.
ERROR: 'The string "--" is not permitted within comments.'
org.xhtmlrenderer.util.XRRuntimeException: Can't load the XML resource (using TRaX transformer). org.xml.sax.SAXParseException: The string "--" is not permitted within comments.
이 URL은 NEXT 버튼의 클릭에 사용자 데이터 내 페이지를 얻을 수 및 PDF를 변환하거나 내가 도와 잘못 code.Please으로 노력하고 URL.Does 이상 사용하여 내 페이지를 얻을 수있는 올바른 방법입니다. 예가 감사합니다.
위와 같은 URL을 사용하면 빠른 답변을 주셔서 감사합니다.하지만 사용자 데이터가 포함 된 XHTML 페이지를 받게 되나요? PDF로 입력되는 HTMl 문서를 어떻게 인쇄 할 수 있습니까? 내 접근법이 정확하다고 생각하니? – mdp
여기 혼란 스럽네요. 위에서 언급 한 API 두 개가 flyingSaucer의 대안이거나 iText + FS와 함께 사용해야합니까? 그렇다면 Jsoup를 통합하는 방법에 대한 정보를 제공해 주시겠습니까?/iText + FS가있는 HTMLCleaner – mdp
나는 FS : ** HTML ** -> ** JSoup 또는 HtmlCleaner ** -> ** FlyingSaucer ** -> ** PDF **와 함께 사용합니다. Jsoup 또는 HtmlCleaner는 입력 HTML에서 많은 실수를 수정합니다. 그렇지 않으면 FS를 죽일 것입니다. 둘 다 HTML 엔티티를 벗어날 수 있습니다. 아마도 주석에서''--''로 문제를 해결할 수 있습니다. – ollo