java - 显示 PDF,允许用户对其进行签名,然后将签名的文档发送到数据库

标签 java android pdf

我正在尝试弄清楚如何允许用户签署将使用 Android 中的 PdfRenderer 类呈现的 pdf。基本上它会显示一个需要签名和注明日期然后提交的表格。我可以使用 PdfRenderer 类处理显示 pdf,但我没有看到一种合适的方法来允许用户对渲染的 pdf 进行签名和日期,然后将签名的 pdf 保存到数据库。有没有办法在不使用第三方的情况下做到这一点?如果没有,是否有免费的第三方产品?

最佳答案

嗯,我真的希望有一些不使用任何第三方库的解决方案。 但是,我有类似的签署 Pdf 的要求(即在我的情况下注释 pdf),其中我使用 iText 。其授权为AGPL软件

您可以通过将 jar 或以下内容添加到 build.gradle 文件来将 itext 添加到您的 Android 项目:-

dependencies {
    compile 'com.itextpdf:itextg:5.5.11' //Or the latest variant 
}

Java 代码将是:-

Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream("ThisIsYourPdfFile.pdf"));
document.open();
Image img = Image.getInstance("GetTheSignatureInAnImageFormat.png");
document.add(new Paragraph("Sample 1: This is where you can add text stuff say you want to add date"));
document.add(img);
document.close();

如果您感到困惑,请查看导入

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Image;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;

现在,进入问题的最后一部分。将它们保存在数据库中。 现在您的 Pdf 只是一个文件。这只不过是一堆字节。因此,您可以使用 nio 将文件读入字节,如下所示或

来自Java7

import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.Files;

Path pdfPath = Paths.get("/path/to/file.pdf");
byte[] pdf = Files.readAllBytes(pdfPath);

您可以进行简单的搜索,将文件转换为字节数组以保存在数据库中。方法有很多。

您可以将其作为 Blob 对象写入 SQLite。

希望这有帮助。

关于java - 显示 PDF,允许用户对其进行签名,然后将签名的文档发送到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43192586/

相关文章:

java - Eclipse Gradle项目设置伪造错误通知

android - 错误 : Failed to resolve: com. google.android.support :wearable:2. 0.0

android - ActionBarSherlock › 如何在 SherlockActionbar + RoboGuice 上实现 TabNavigation?

xcode - NSImages 到 PDF 并在 Swift 中合并它们

html - 如何在 pdfmake 中创建表格页脚

java - 如何修复 java.lang.NoClassDefFoundError?

Java:gradle-wrapper.jar 什么时候改变?

android - 无法使用 google photos 上传图片

java - 将(服务器端)一组 PDF 文档合并到 JAVA 中的一个大 PDF 文档的最简单方法是什么

java - 将数据从一项 Activity 发送到另一项 Activity