用pdfbox翻转PDF

时间:2018-07-12 07:34:26

标签: java pdf pdfbox flip

一段时间以来,我一直在试图找出如何翻转pdf的方法,但是还没有弄清楚。 我只发现了如何使用Graphics2D翻转图像:

// Flip the image vertically
AffineTransform tx = AffineTransform.getScaleInstance(1, -1);
tx.translate(0, -image.getHeight(null));
AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
image = op.filter(image, null);

能否请您帮助我使用PDFbox?

谢谢!

1 个答案:

答案 0 :(得分:1)

使用PDFBox 2. *,您需要将其添加到页面内容流的前面。 (可选)保存和恢复图形状态,对于进一步修改很有用。 (全部基于此answer

PDPage page = doc.getPage(0);
try (PDPageContentStream cs = new PDPageContentStream(doc, page, PDPageContentStream.AppendMode.PREPEND, true))
{
    cs.saveGraphicsState();
    cs.transform(Matrix.getScaleInstance(1, -1));
    cs.transform(Matrix.getTranslateInstance(0, -page.getCropBox().getHeight()));
    cs.saveGraphicsState();
}
try (PDPageContentStream cs = new PDPageContentStream(doc, page, PDPageContentStream.AppendMode.APPEND, true))
{
    cs.restoreGraphicsState();
    cs.restoreGraphicsState();
}