Я почти нахожусь (я думаю) о возможности визуализации PDF-файла с помощью сервлета, не сохраняя его в первую очередь. Я смог успешно настроить его, но я застрял в попытке сделать PDF открытым в браузере клиента с помощью диалогового окна печати.iText/flying-saucer PdfStamper с использованием OutputStream
Я был в состоянии послать свой 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. Вы знакомы с тем, как это сделать? –
Я хотел бы сделать это таким образом, но летающая тарелка использует OutputStream для всего его рендеринга. Наверное, я действительно смотрю, как я могу взять этот OutputStream после 'renderer.createPDF (os); 'и преобразовать его в формат, который PdfReader может прочитать (byte [], InputStream или URL из того, что я вижу). Я прочитал о преобразовании OutputStream в InputStream, но я смущен тем, как его реализовать. Не могли бы вы присоединиться ко мне в чате по адресу http://chat.stackoverflow.com/rooms/8945/itext? –
Эй, я не могу найти класс PdfReader, где они выразились? – William