使用 pdfbox 翻转 PDF

Flip PDF with pdfbox

一段时间以来,我一直在想办法弄清楚如何翻转 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 得到它吗?

谢谢!!

对于 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();
}