【问题标题】:Remove appearance of TextField in droidText : Android删除 droidText 中 TextField 的外观:Android
【发布时间】:2012-09-18 08:35:25
【问题描述】:

我正在尝试使用 droidText 库创建 PDF。在那里,我想在页面中间放置一些文本内容,但左对齐。我无法使用Paragraph 类和setAlignment() 方法。所以我决定使用TextField 类。下面是我用过的代码,

Document document = new Document(PageSize.A4);

try {

    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(android.os.Environment.getExternalStorageDirectory() + java.io.File.separator + "TextFields.pdf"));

    document.open();

    TextField tf = new TextField(writer, new Rectangle(100, 300, 200, 350), "Content");
    tf.setText("This is the content of text field");
    tf.setAlignment(Element.ALIGN_CENTER);
    tf.setOptions(TextField.MULTILINE | TextField.REQUIRED);

    PdfFormField field = tf.getTextField();
    writer.addAnnotation(field);

} catch (DocumentException de) {
    System.err.println(de.getMessage());
} catch (IOException ioe) {
    System.err.println(ioe.getMessage());
}

document.close();

代码运行完美,但我得到的输出 PDF 文件有这个 TextField,当我单击 TextField 时,它可以编辑并且还可以更改字体外观。我不希望它出现在我的最终 PDF 中。如何删除该属性?如果不可能,有没有其他方法可以使用 Android 中的 droidText 库在 PDF 文件中放置一些文本?

【问题讨论】:

    标签: android pdf-generation textfield android-droidtext


    【解决方案1】:
    1. 您正在使用完全不受支持的软件库。请参阅http://lowagie.com/iText2 iText Software 提供了最新 iText 版本的官方 Android 端口。它不需要 Apache Harmony,它使用 SpongyCastle 而不是 BouncyCastle 来解决冲突 BC 版本的问题。见http://lowagie.com/iText2
    2. 您似乎想添加水印。在这种情况下,您实际上并不需要 TextField。 TextField 对象用于创建交互式表单(您指出这不是您想要的)。在页面中间添加短语的最简单方法是使用ColumnText.showTextAligned()。有关详细信息,请参阅“iText in Action - Second Edition”中chapter 3 的示例。

    【讨论】:

    • 我会接受这个答案有两个原因。首先给出答案的人是我使用过的图书馆(iText)的所有者。所以他比任何人都更了解库的特性 :-) 其次,我找到了另一种方法来解决我的问题,而不是使用 droidText。那就是使用Android Pdf Writer 中给出的类。无论如何,我还必须编写自己的文本换行逻辑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-07
    • 1970-01-01
    相关资源
    最近更新 更多