【问题标题】:PDFBox 2 - How do I remove borders from form fields before flattening?PDFBox 2 - 如何在展平之前从表单域中删除边框?
【发布时间】:2017-11-07 19:32:25
【问题描述】:

我正在使用 PDF 文档作为模板,其中包含一个表单,在我将值放入表单后,我想在展平表单之前删除字段边框。边框在编辑时很有用,但在“渲染”表单时它们很糟糕。我无法将边框的颜色更改为背景颜色,因为它不统一。

【问题讨论】:

    标签: java pdfbox pdf-form


    【解决方案1】:
    PDAnnotationWidget widget = textBox.getWidgets().get(0); // only the first widget for simplicity
    PDAppearanceCharacteristicsDictionary appearanceCharacteristics = widget.getAppearanceCharacteristics();
    if (appearanceCharacteristics == null)
    {
         // if it doesn't exist, create it
         appearanceCharacteristics = new PDAppearanceCharacteristicsDictionary(new COSDictionary());
    }
    appearanceCharacteristics.setBorderColour(new PDColor(new float[]{}, PDDeviceRGB.INSTANCE)); // empty array = invisible color
    widget.setAppearanceCharacteristics(fieldAppearance);
    acroForm.refreshAppearances(); // alternatively, set the value of the field
    

    【讨论】:

    • 不,它似乎不起作用,边框仍然存在。
    • 请链接到您的 Pdf 并告知该字段的名称。我在源代码下载中的 CreateSimpleForm 示例生成的 PDF 上测试了我的代码。还要告诉你如何到达所有领域(那里有一个陷阱,使用acroform.getFields()而不阅读javadoc)。
    • @Bruno 如果此代码不起作用,则边框可能不是实际字段的一部分,而是页面内容中的一个矩形,并且仅定位为使该矩形看起来是字段边框。要删除这样的“边界”,需要专门为您的 pdf 量身定制的代码。
    • 这里是文件:java code(压缩)和pdf
    • 这就像 mkl 写的。页面内容流中有一个额外的矩形。
    猜你喜欢
    • 2013-01-05
    • 2016-07-08
    • 2018-04-29
    • 1970-01-01
    • 1970-01-01
    • 2014-12-09
    • 2013-01-05
    • 1970-01-01
    相关资源
    最近更新 更多