Самый простой способ - использовать AffineTransform
(из com.itextpdf.kernel.geom
):
PdfCanvas content = new PdfCanvas(pdfDoc.addNewPage());
PageSize pageSize = pdfDoc.getDefaultPageSize();
PdfFormXObject page = srcDoc.getPage(1).copyAsFormXObject(pdfDoc);
AffineTransform transform = AffineTransform.getRotateInstance(25 * Math.PI / 180, (pageSize.getLeft() + pageSize.getRight())/2, (pageSize.getBottom() + pageSize.getTop())/2);
content.concatMatrix(transform);
content.addXObject(page, 0, 0);
( RotatePageXObject test testAddPage25Degree
)
AffineTransform.getRotateInstance
задокументировано для
* Get an affine transformation representing a counter-clockwise rotation over the passed angle,
* using the passed point as the center of rotation
, поэтому мы передаем ему угол (преобразованный в радианы) и координаты центра страницы.
Применимо к этому источнику PDF создает этот результат:
![source](https://i.stack.imgur.com/KWzYw.png?s=256)
![result](https://i.stack.imgur.com/8QOAI.png?s=256)