我想制作一个横向页面的 PDF。虽然可以使用以下方法将页面大小设置为横向:
document.setPageSize(PageSize.LETTER.rotate());
这没有达到我想要的效果,因为我添加的任何内容仍然是从左到右,而我希望它是从下到上。
也就是说,这就是我得到的:
我已经能够通过创建 PDF 后打开它并使用 iText 旋转它来实现所需的输出,但我想要一个解决方案,让我在添加内容后立即使用 iText 旋转它。
PdfPageEvent
实现您想要的:
public class RotateEvent extends PdfPageEventHelper {
public void onStartPage(PdfWriter writer, Document document) {
writer.addPageDictEntry(PdfName.ROTATE, PdfPage.SEASCAPE);
}
}
您应该在定义 writer 后立即使用此 RotateEvent
:
PdfWriter writer = PdfWriter.getInstance(document, os);
writer.setPageEvent(new RotateEvent());
请注意,我使用 SEASCAPE
来获取图像中显示的方向。如果您希望页面朝向另一个方向,您也可以使用
LANDSCAPE
。一旦我开始写第三版“iText in Action”,我就需要记住这个问题。这是何时使用
onStartPage()
事件的一个很好的示例。