iText – 在创建PDF时旋转页面内容

我想制作一个包含横向页面的PDF。 虽然可以使用以下方法将页面大小设置为横向:

document.setPageSize(PageSize.LETTER.rotate()); 

这没有实现我想要的,因为我添加的任何内容仍然是左 – >右,而我希望它是底部 – >顶部。

IE这是我得到的:

right的景观”>

当我想要的是:

顶部”>

我已经能够通过在创建PDF并使用iText 旋转后打开PDF来实现所需的输出,但我想要一个解决方案,让我在添加内容后立即使用iText旋转它。

好问题。 如果我能够两次投票,我会的!

你可以用PdfPageEvent实现你想要的:

 public class RotateEvent extends PdfPageEventHelper { public void onStartPage(PdfWriter writer, Document document) { writer.addPageDictEntry(PdfName.ROTATE, PdfPage.SEASCAPE); } } 

您应该在定义RotateEvent后立即使用此RotateEvent

  PdfWriter writer = PdfWriter.getInstance(document, os); writer.setPageEvent(new RotateEvent()); 

请注意,我使用SEASCAPE来获取图像中显示的方向。 如果希望页面朝向另一个方向,也可以使用LANDSCAPE

一旦我开始编写第三版“iText in Action”,我就需要记住这个问题。 这是何时使用onStartPage()事件的一个很好的例子。