创建 PDF 时旋转页面内容

问题描述 投票:0回答:1

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

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

这没有达到我想要的效果,因为我添加的任何内容仍然是从左到右,而我希望它是从下到上。

也就是说,这就是我得到的:

landscape with content left->右”/></p>
<p>当我想要的是:</p>
<p><img src=

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

java pdf itext
1个回答
8
投票
您可以通过

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()

 事件的一个很好的示例。

© www.soinside.com 2019 - 2024. All rights reserved.