【问题标题】:How to (horizontally) align text of PDTextField in PDFBox?如何(水平)对齐 PDFBox 中 PDTextField 的文本?
【发布时间】:2023-03-18 03:37:01
【问题描述】:

我有一个程序可以在 PDF 文件中创建文本字段,以便将其用作表单。我想让我在我创建的 TextFields 中写的文本居中。这怎么可能?我的代码目前如下所示:

PDTextField textBox = new PDTextField(acroForm);
textBox.setPartialName("Field " + j + " " + i);
defaultAppearanceString = "/Helv 8 Tf 0 g"; //Textsize: 8
textBox.setDefaultAppearance(defaultAppearanceString);
acroForm.getFields().add(textBox);

PDAnnotationWidget widget = textBox.getWidgets().get(0);
PDRectangle rect = new PDRectangle(inputField.getX(), inputField.getY(), inputField.getWidth(), inputField.getHeight());
widget.setRectangle(rect);
widget.setPage(page);
widget.setPrinted(true);
page.getAnnotations().add(widget);

我想到了一个简单的函数来对齐这样的文本:

textBox.setAlignment(Alignment.CENTER);

但我没找到。

【问题讨论】:

    标签: java pdf textbox pdfbox text-alignment


    【解决方案1】:

    使用 Q 标志:

    textBox.setQ(PDTextField.QUADDING_CENTERED);
    

    其他可能的值是 QUADDING_RIGHT 和 QUADDING_LEFT(这是默认值)。

    【讨论】:

    • 谢谢,不过我不得不使用textBox.setQ(1);,因为PDVariableText.QUADDING_CENTERED 不可见。
    • 难道你没有使用最新版本?这已在 issues.apache.org/jira/browse/PDFBOX-3925 中修复。
    • 啊,是的,我还在用 2.0.7 而不是 2.0.8
    猜你喜欢
    • 1970-01-01
    • 2019-02-04
    • 2013-08-14
    • 2018-06-02
    • 1970-01-01
    • 2014-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多