gpt4 book ai didi

rotation - 在itext中使用中心旋转文本

转载 作者:行者123 更新时间:2023-12-01 15:30:21 31 4
gpt4 key购买 nike

我正在转换使用在线编辑器创建的文档。我需要能够使用它的中心点而不是 (0,0) 来旋转文本。

由于图像使用中心旋转,我认为这会起作用,但事实并非如此。任何人都知道如何使用 itext 中的中心点旋转文本?

float fw = bf.getWidthPoint(text, textSize);
float fh = bf.getAscentPoint(text, textSize) - bf.getDescentPoint(text, textSize);
PdfTemplate template = content.createTemplate(fw, fh);

Rectangle r = new Rectangle(0,0,fw, fw);
r.setBackgroundColor(BaseColor.YELLOW);
template.rectangle(r);

template.setFontAndSize(bf, 12);
template.beginText();
template.moveText(0, 0);
template.showText(text);
template.endText();

Image tmpImage = Image.getInstance(template);
tmpImage.setAbsolutePosition(Utilities.millimetersToPoints(x), Utilities.millimetersToPoints(pageHeight-(y+Utilities.pointsToMillimeters(fh))));
tmpImage.setRotationDegrees(0);
document.add(tmpImage);

最佳答案

为什么要使用 beginText()moveText()showText()endText() ?这些方法将由能够流利使用 PDF 语法的开发人员使用。其他开发人员应避免使用那些低级方法,因为它们必然会出错。

例如:您在文本对象外使用 setFontAndSize() 方法。该方法在图形状态下是禁止的,只能在文本状态下使用。尽管 Adob​​e Reader 可能会容忍它,但 Acrobat 在进行语法检查时会报错。

建议不流利使用 PDF 语法的开发人员使用 TextMethods 中演示的便捷方法例子。看看text_methods.pdf .文本“Away again Center”可能是您所需要的。

不过,还有一种更简单的方法可以实现您的目标。只需使用 ColumnText 类中提供的静态 showTextAligned() 方法。这样你甚至不需要使用 beginText()setFontAndSize()endText():

ColumnText.showTextAligned(template,
Element.ALIGN_CENTER, new Phrase(text), x, y, rotation);

ColumnText 中使用 showTextAligned() 方法还有一个好处,即您可以使用包含不同字体的 block 的短语。

关于rotation - 在itext中使用中心旋转文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17998306/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com