Некоторого фон на этот вопрос можно найти в Check printing with Java/JSP и Create a "print-only" PDF with itextКак открыть PDF, созданный с помощью летающего блюдца/IText с диалогом печати
я смог успешно создать и открыть PDF с печатью диалог с использованием IText-2.0.8 и следующий код:
String outputFile = "firstdoc.pdf";
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(outputFile));
writer.setOpenAction(new PdfAction(PdfAction.PRINTDIALOG));
document.open();
document.add(new Paragraph("TEST"));
document.close();
Я также был в состоянии использовать летающее блюдце для создания PDF из XHTML, используя следующий код:
String inputFile = "firstdoc.xhtml";
String url = new File(inputFile).toURI().toURL().toString();
String outputFile = "firstdoc.pdf";
OutputStream os = new FileOutputStream(outputFile);
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(url);
renderer.layout();
renderer.createPDF(os);
os.close();
Однако, я не могу показаться, чтобы получить два работать вместе ...
Я хотел бы создать PDF с помощью летающего блюдца, как во 2-м блоке кода и Я хотел бы установить открытое действие этого PDF до PdfAction.PRINTDIALOG
.
Как я могу заставить эти два набора кода работать вместе так, чтобы созданный PDF-файл с летающими блюдца начинался с диалогового окна печати?
Большое спасибо, ваше сообщение помогло мне решить мою проблему. Однако нет необходимости создавать второй PDF-файл, если только вы хотите распечатать PDF-файл. Я сделал это ниже, чтобы избежать создания двух PDF-файлов: OutputStream os = new FileOutputStream (outputFile); ByteArrayOutputStream outputStreamForPrinter = new ByteArrayOutputStream(); PdfReader reader = новый PdfReader (os.toByteArray()); PdfStamper stamper = новый PdfStamper (считыватель, outputStreamForPrinter); –