如何解决在现有的 pdf 旋转页面上写入文本
我正在使用 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();
解决方法
您想要添加显示在页面右上角的文本,即使页面旋转已应用于页面。
确保在考虑旋转的情况下获得页面大小,以便您的坐标计算对于旋转页面是正确的:
Rectangle pageSize = page.getPageSizeWithRotation();
例如,对于旋转 90 度的 A4 页面,这将返回 842x595 而不是 595x842。
然后在添加新内容时“忽略”页面旋转:
page.setIgnorePageRotationForContent(true);
这实际上对添加的文本应用了适当的反向旋转,从而取消了页面旋转,因此文本似乎没有旋转。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。