我正在尝试弄清楚如何允许用户签署将使用 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/