나는 그것을 저장하지 않고 서블릿으로 PDF를 렌더링 할 수 있다는 것에 거의 다 왔다고 생각한다. 성공적으로 설정할 수 있었지만 처음에는 인쇄 대화 상자를 사용하여 클라이언트의 브라우저에서 PDF를 열려고했습니다. 나는 그것의 개방에 인쇄 대화 상자를 넣어하는 방법을 모르겠어요iText/flying-saucer OutputStream을 사용하는 PdfStamper
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.parse(new StringBufferInputStream(buf.toString()));
OutputStream os = resp.getOutputStream();
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(doc, null);
renderer.layout();
renderer.createPDF(os);
os.close();
그러나 :
나는 다음과 같은 성공적으로 클라이언트에 내 PDF를 보낼 수있었습니다. 은 내가 물리적 PDF 파일이 코드를 사용했습니다,하지만 난에 PdfReader에 입력 바이트 배열 (내가 생각하는)으로의 OutputStream의 내용을 읽을 수 있어야합니다 :
PdfReader reader = new PdfReader("a_physical_file.pdf");
PdfStamper stamper = new PdfStamper(reader, os);
stamper.setPageAction(PdfWriter.PAGE_OPEN, new PdfAction(PdfAction.PRINTDIALOG), 1);
stamper.close();
http://chat.stackoverflow.com/rooms/8945/itext
ByteArrayOutputStream을 사용하여 찾고 있었지만'resp.getOutputStream()'을 가져 와서 ByteArrayOutputStream으로 변환하는 방법을 알아 내는데 어려움을 겪고 있습니다. 당신은 그 일을하는 법을 잘 알고 있습니까? –
그런 식으로하고 싶습니다만, 플라잉 받침 접시는 모두 렌더링을 위해 OutputStream을 사용하고 있습니다. 나는 렌더러 후에 OutputStream을 어떻게 가져갈 수 있는지보고 싶다.createPDF (os);'를 읽고 PdfReader가 읽을 수있는 형식 (byte [], InputStream 또는 URL)으로 변환하십시오. OutputStream을 InputStream으로 변환하는 것에 대해 읽었지만 실제로 구현하는 방법에 대해서는 혼란스러워합니다. 나 채팅에 http://chat.stackoverflow.com/rooms/8945/itext에 가입 하시겠습니까? –
이봐, 나는 PdfReader 클래스를 찾을 수 없다. – William