我幾乎在那裏(我認爲)能夠使用servlet呈現PDF而不先保存它。我已經能夠成功設置它了,但是我一直試圖使用打印對話框在客戶端的瀏覽器中打開PDF。iText /飛碟使用OutputStream的PDFStamper
我已經能夠到我的PDF有以下發送到客戶端成功:
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文件,但我需要能夠讀取OutputStream的內容作爲一個字節數組輸入PdfReader(我認爲):
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();
不知道如何與一個OutputStream,而不是實際的文件做到這一點...
我還創建了一個iText的聊天室,如果你想發佈有:http://chat.stackoverflow.com/rooms/8945/itext
我一直在尋找使用ByteArrayOutputStream,但我無法弄清楚如何使用'resp.getOutputStream()'並將其轉換爲ByteArrayOutputStream。你是否熟悉如何去做? – 2012-03-16 13:39:49
我想這樣做,但飛碟正在使用OutputStream進行所有渲染。我想我真的很想看看如何在渲染器之後使用OutputStream。createPDF(os);'並將其轉換爲PdfReader可以讀取它的格式(byte [],InputStream或URL)。我已經閱讀了將OutputStream轉換爲InputStream,但我對如何實際實現它感到困惑。你介意加入我聊天http://chat.stackoverflow.com/rooms/8945/itext嗎? – 2012-03-16 14:18:05
嘿,我找不到類PdfReader,他們把它放在哪裏? – William 2012-12-19 19:19:05