при создании pdf из XHTML с помощью Flying Saucer/iText, хотите пейзаж на всех страницах (я использую this method) , но получаю дополнительную пустую страницу на начальных и конечных страницах, любые идеи ?Получение дополнительной пустой страницы в формате PDF в Flying Saucer/iText
ответ
Если вы хотите lanscape на каждой странице, не используйте селектор в правиле @page
.
Просто используйте:
@page {size: landscape;}
Он будет применяться на весь документ, а не добавлять пустые страницы в документе.
спасибо @obourgain –
Если вы хотите использовать альтернативные портретные/альбомные макеты в одном документе (т.е. первая страница - портретная, а остальная часть - пейзажная), вам нужно указать фактическую ширину и высоту для каждого правила @page
, который также имеет селектор, иначе Flying Saucer создаст дополнительную белую страницу (согласно bug).
То, что работало для меня:
CSS:
@page {
size: a4 portrait;
}
@page land { size: a4 landscape;}
.landscapePage { page:land; height: 21cm; width: 28.6cm}
HTML:
<div>
Portrait content here
</div>
<span class="pageBreak"/>
<div class="landscapePage">
landscape content page 1
<span class="pageBreak"/>
landscape content page 2
</div>
Для создания PDF из файла .vm я столкнулся с той же проблемой. В моем случае удаление: ширина: 100%; высота: 100%; от тега body {} помог избавиться от дополнительной страницы. Надеюсь, это может быть полезно и для кого-то другого.
public class HeaderFooterPageEvent extends PdfPageEventHelper {
private PdfTemplate t;
private Image total;
@Override
public void onOpenDocument(PdfWriter writer, Document document) {
super.onOpenDocument(writer, document);
System.out.println("On Open");
t = writer.getDirectContent().createTemplate(30, 16);
try {
total = Image.getInstance(t);
// total.setRole(new PdfName("Artifact"));
} catch (DocumentException de) {
throw new ExceptionConverter(de);
}
}
@Override
public void onEndPage(PdfWriter writer, Document document) {
// addHeader(writer);
addFooter(writer);
}
private void addFooter(PdfWriter writer){
System.out.println("addFooter Called***************");
PdfPTable footer = new PdfPTable(3);
try {
// set defaults
footer.setWidths(new int[]{24, 2, 1});
footer.setTotalWidth(527);
footer.setLockedWidth(true);
footer.getDefaultCell().setFixedHeight(40);
footer.getDefaultCell().setBorder(Rectangle.TOP);
footer.getDefaultCell().setBorderColor(Color.LIGHT_GRAY);
// add copyright
footer.addCell(new Phrase("", new Font(Font.HELVETICA, 12, Font.BOLD)));
footer.getDefaultCell().setHorizontalAlignment(Element.ALIGN_RIGHT);
footer.addCell(new Phrase(String.format("Page %d of", writer.getPageNumber()), new Font(Font.HELVETICA, 8)));
PdfPCell totalPageCount = new PdfPCell(total);
totalPageCount.setBorder(Rectangle.TOP);
totalPageCount.setBorderColor(Color.LIGHT_GRAY);
System.out.println("TOTAL PageCount: "+totalPageCount);
footer.addCell(totalPageCount);
// write page
PdfContentByte canvas = writer.getDirectContent();
canvas.beginText();
footer.writeSelectedRows(0,-1, 34, 50, canvas);
canvas.endText();
} catch(DocumentException de) {
throw new ExceptionConverter(de);
}
}
@Override
public void onCloseDocument(PdfWriter writer, Document document) {
System.out.println("On Close");
int totalLength = String.valueOf(writer.getPageNumber()).length();
int totalWidth = totalLength * 5;
ColumnText.showTextAligned(t, Element.ALIGN_RIGHT,
new Phrase(String.valueOf(writer.getPageNumber()-1), new Font(Font.HELVETICA, 8)),
totalWidth, 6, 0);
}
- 1. Получение дополнительной пустой строки
- 2. Экспорт веб-страницы в формате PDF
- 3. ApacheFOP - пустой вывод в формате PDF?
- 4. Birt Report - Получение дополнительной страницы
- 5. Получение ответа в формате PDF в браузере
- 6. Прокрутка страницы в формате PDF в UIWebView
- 7. Печать страницы в формате PDF в PHP
- 8. Загрузите файл в формате pdf без дополнительной загрузки
- 9. sails.js - Получение пустой страницы
- 10. Показать в PDF-формате
- 11. Установка заголовка для страницы в формате pdf
- 12. Как изменить размер страницы PDF в PDF-формате?
- 13. Как избежать пустой страницы в конце отчета pdf в BIRT?
- 14. Получение дополнительной информации в деятельностиForResult
- 15. Получение пустой страницы в Android WebViewClient
- 16. iOS: Как получить «метку номера страницы» страницы в формате pdf?
- 17. PDF в структурированном формате
- 18. Получение пустой страницы вместо страницы ошибки 401
- 19. Python получить ответ в формате pdf со страницы
- 20. Flying Saucer PDF не отображается цвет
- 21. Как создать контурное дерево в формате PDF, сгенерированное из HTML с помощью Flying saucer Itext JAVA?
- 22. Получение счета в формате PDF в QuickBooks API V3
- 23. Загрузка в формате pdf
- 24. Javascript в формате PDF?
- 25. Формат в формате PDF
- 26. Безопасность в формате PDF
- 27. Время в формате PDF
- 28. XSL в формате PDF
- 29. Подписи в формате PDF?
- 30. сохранить HTML страницы в формате PDF в PHP
Показать код (как файл XHTML, так и код обработки). –