Я искал много статей здесь об этом. Я нашел некоторые, но ни один, который работает должным образом для того, что мне нужно. Итак, давайте углубимся в это. Я создаю файл в ITextPDF, который мне нужно распечатать после этого. И содержимое файла является Dynami c. Таким образом, PDF иногда разделяет содержимое на страницы, и когда я его печатаю, разрыв между страницами отображается с большим пространством на бумаге (мне нужно печатать на термопринтере на одной странице). Итак, я провел несколько дней, пытаясь найти какие-либо решения, но пока не могу найти его. Для печати я использую PDFBox, который отлично работает. сейчас нужно правильно выровнять PDF.
Это две страницы PDF. Нужно сделать его единым, помня, что это динамически c, оно может быть намного длиннее.
Пример кода того, как я его создаю:
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(pdfDirectoryPath +
"temp.pdf"));
writer.setStrictImageSequence(true);
document.open();
Font bold = FontFactory.getFont(FontFactory.HELVETICA_BOLD, 20, BaseColor.BLACK);
Chunk nomeFantasiaChunk = new Chunk(nomeFantasia, bold );
Paragraph paragrafoNomeFantasia = new Paragraph(nomeFantasiaChunk);
paragrafoNomeFantasia.setAlignment(Element.ALIGN_CENTER);
document.add(paragrafoNomeFantasia);
document.close();
Пример кода того, как я печатаю это (работает нормально, используя PDFBox):
private void printPDF(PrintService print, String fileName) {
try {
PDDocument document = PDDocument.load(new FileInputStream(Constants.pdf + fileName));
PrinterJob job = PrinterJob.getPrinterJob();
job.setPageable(new PDFPageable(document));
// define custom paper
Paper paper = new Paper();
paper.setSize(225, 396); // 1/72 inch
paper.setImageableArea(0, 0, paper.getWidth(), paper.getHeight()); // no margins
// custom page format
PageFormat pageFormat = new PageFormat();
pageFormat.setPaper(paper);
// override the page format
Book book = new Book();
// append all pages
book.append(new PDFPrintable(document), pageFormat, document.getNumberOfPages());
job.setPageable(book);
job.setPrintService(print);
job.print();
} catch (Exception e) {
e.printStackTrace();
}
}
Все нормально, просто нужно динамически установить этот PDF на одну страницу. Я нашел несколько статей, которые подошли немного ближе, но никогда не нашли подходящего решения.
Вот эта, например: Создание нового одностраничного PDF-документа из одной страницы многостраничного PDF-документа
Этот код работает, но я не могу понять, как разместить контент на одной странице, в итоге получается копия оригинального документа.
Если вы можете мне помочь Я благодарю тебя