如何在itext 7中设置页面的旋转角度

如何在itext 7中设置页面的旋转角度,itext,itext7,Itext,Itext7,如何以指定角度(例如25度)旋转页面 PdfCanvas content=newpdfcanvas(pdfDoc.addNewPage()); 对于(int i=1;i最简单的方法是使用AffineTransform(来自com.itextpdf.kernel.geom): PdfCanvas content=newpdfcanvas(pdfDoc.addNewPage()); PageSize PageSize=pdfDoc.getDefaultPageSize(); PdfFormXObje

如何以指定角度(例如25度)旋转页面

PdfCanvas content=newpdfcanvas(pdfDoc.addNewPage());

对于(int i=1;i最简单的方法是使用
AffineTransform
(来自
com.itextpdf.kernel.geom
):

PdfCanvas content=newpdfcanvas(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);
内容。concatMatrix(转换);
addXObject(第0页,第0页);
(测试
testAddPage25度

AffineTransform.getRotateInstance
记录为

*获取仿射变换,表示在经过的角度上逆时针旋转,
*使用经过的点作为旋转中心
所以我们给它输入角度(转换成弧度)和页面中心的坐标

应用于此源PDF将创建以下结果:


我可以为tilt定义pagesize吗?(pagesize+pagesizeTilt)?以便内容适合当前区域。您可以使用
pdfDoc.addNewPage()
使用文档的默认页面大小创建新页面。有一个重载
addNewPage
,它接受一个
PageSize
参数。使用该重载并指定一个页面大小,该页面大小在所有方向上都适当放大,而不仅仅是右上方。
PdfCanvas content = new PdfCanvas(pdfDoc.addNewPage());
 for (int i =1 ; i <= srcDoc.getNumberOfPages(); i++) {
 PdfFormXObject page = srcDoc.getPage(i).copyAsFormXObject(pdfDoc);
content.add(page...);

}