我有**.pdf**文件,有多种形式。我想打开我的.pdf 文件,填写表格并从 Android 开发中保存。
是否有适用于 Android 渲染的 API。我找到了 iText,但我只是设法创建新的 pdf,而不是填写表格。表示我创建的.pdf 文件将被填写。我需要在自己的.pdf 中填写表格。
感谢 Advance...any 帮助将不胜感激...
DynamicPDF 合并 Java允许你这样做。您可以获取现有 PDF 文档,填写表单字段值,然后输出新填充的 PDF。
关于在 Android 应用程序中设置 DynamicPDF for Java 并从中创建一个简单的 PDF,最近有一篇关于 dynamicpdf.com 的博客文章。
您可以轻松地将该示例更进一步,并使用它来完成表单填充的任务。以下(未经测试的)代码是使用 DynamicPDF Merger for Java 在 Android 设备上填充现有 PDF 所需的示例:
InputStream inputStream = this.getAssets().open("PDFToFill.pdf"); long avail = inputStream.available(); byte[] samplePDF = new byte[(int) avail]; inputStream.read(samplePDF , 0, (int) avail); inputStream.close(); PdfDocument objPDF = new PdfDocument(samplePDF); MergeDocument document = new MergeDocument(objPDF); document.getForm().getFields().getFormField("FormField1").setValue("My Text"); document.draw("[PhysicalPath]/FilledPDF.pdf");
当前 Android 平台(包括 Android P)上的原生 PDF 支持不会公开任何填充表单的控件。 3rd-party PDF SDK(如 PSPDFKit)填补此空白并允许程序化 PDF 表格填写:
List<FormField> formFields = document.getFormProvider().getFormFields(); for (FormField formField : formFields) { if (formField.getType() == FormType.TEXT) { TextFormElement textFormElement = (TextFormElement) formField.getFormElement(); textFormElement.setText("Test " + textFormElement.getName()); } else if (formField.getType() == FormType.CHECKBOX) { CheckBoxFormElement checkBoxFormElement = (CheckBoxFormElement)formField.getFormElement(); checkBoxFormElement.toggleSelection(); } }
(如果你点击上面的链接,还有一个 Kotlin PDF 表格填写 example.)
请注意,市场上的大多数 SDK 都专注于 PDF AcroForms,而不是 PDF 2.0 规范中弃用的 XFA 规范。
2 回答
DynamicPDF 合并 Java允许你这样做。您可以获取现有 PDF 文档,填写表单字段值,然后输出新填充的 PDF。
关于在 Android 应用程序中设置 DynamicPDF for Java 并从中创建一个简单的 PDF,最近有一篇关于 dynamicpdf.com 的博客文章。
您可以轻松地将该示例更进一步,并使用它来完成表单填充的任务。以下(未经测试的)代码是使用 DynamicPDF Merger for Java 在 Android 设备上填充现有 PDF 所需的示例:
当前 Android 平台(包括 Android P)上的原生 PDF 支持不会公开任何填充表单的控件。 3rd-party PDF SDK(如 PSPDFKit)填补此空白并允许程序化 PDF 表格填写:
(如果你点击上面的链接,还有一个 Kotlin PDF 表格填写 example.)
请注意,市场上的大多数 SDK 都专注于 PDF AcroForms,而不是 PDF 2.0 规范中弃用的 XFA 规范。