我正在开发一个使用iText 7 (7.1.14)的应用程序,以便在现有PDF的右上角编写文本。我有一个旋转页面的问题,例如90,270。我尝试将AffineTransform.getRotateInstance应用于画布,但没有结果。
PdfFont bf = PdfFontFactory.createFont(FontConstants.HELVETICA);
float stringWidth = bf.getWidth(stringa,fontSize);
PdfCanvas canvas=new PdfCanvas(page, true);
float centeredPosition = pageSize.getWidth() - (pageSize.getWidth()/30);
float yCoord = (pageSize.getHeight()-fontSize-5);
float xCoord = centeredPosition-stringWidth;
canvas.beginText().setFontAndSize(bf, fontSize)
.moveText(xCoord, yCoord)
.showText(stringa)
.setTextRenderingMode(pageN)
.endText();发布于 2021-04-18 16:32:32
您希望添加显示在页面右上角的文本,即使在对页面应用了页面旋转之后也是如此。
确保在考虑旋转的情况下获得页面大小,以便旋转后的页面的坐标计算正确:
Rectangle pageSize = page.getPageSizeWithRotation();例如,对于旋转90度的A4页面,它返回842x595而不是595x842。
然后在添加新内容时“忽略”页面旋转:
page.setIgnorePageRotationForContent(true);这实际上对添加的文本应用了适当的反向旋转,从而取消了页面旋转,因此文本看起来不会旋转。
https://stackoverflow.com/questions/67145351
复制相似问题