这是一个示例,展示了如何使用 Java 和 iText 库来做到这一点。通过最小的更改,代码也应该可以与 C# 和 iTextSharp 一起使用,提供示例 @neo 无法在他的回答中短时间内提供。
该示例获取第一页source.pdf
并将其插入到target.pdf
所有 30° 的倍数中,即 2*pi/12,但由于该角度在代码中明确给出,您可以旋转任意角度。
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("target.pdf"));
document.open();
PdfReader origPdfReader = new PdfReader("source.pdf");
PdfImportedPage importedPage = writer.getImportedPage(origPdfReader, 1);
PdfContentByte canvas = writer.getDirectContent();
for (int i = 0; i < 12; i++)
{
AffineTransform transform = AffineTransform.getRotateInstance(Math.PI * i / 6.0,
importedPage.getWidth() / 2, importedPage.getHeight() / 2);
canvas.addTemplate(importedPage, transform);
document.newPage();
}
document.close();
根据您的用例,您可能不仅想要旋转(如您所要求的那样),而且还希望将其缩小以适合页面。在这种情况下,只需transform.scale(scaleX, scaleY)
在使用transform
.