如何通过itext

时间:2015-09-25 20:03:11

标签: android email pdf itext pdfstamper

我刚刚开始使用我正在努力的应用程序的文本来进一步提升我的知识。然而,我无法弄清楚如何获得填充的pdf,然后使用意图通过电子邮件发送。我一直在谷歌搜索和研究,但我找不到任何东西。有谁知道如何去做?

在我的onCreate之前声明我的文件;

File file = new File(getExternalFilesDir(null),"pvgform.pdf");

这是我将代码添加到可填写的pdf文本

的代码的一部分
OutputStream output = null;
try {
    output = new FileOutputStream(file);
} catch (FileNotFoundException e) {
    e.printStackTrace();
}
try {
    reader = new PdfReader(getResources().openRawResource(R.raw.form));
} catch (IOException e) {
    e.printStackTrace();
}
try {
    PdfStamper stamper = new PdfStamper(reader, output);
    AcroFields acroFields = stamper.getAcroFields();
    acroFields.setField("fullname", editText.getText().toString());
    acroFields.setField("agedob", editText2.getText().toString());
    acroFields.setField("description", editText3.getText().toString() + editText4.getText().toString() + editText5.getText().toString());
    acroFields.setField("duration", editText6.getText().toString());
    acroFields.setField("brandname", editText8.getText().toString());
    acroFields.setField("genericname", editText9.getText().toString());
    stamper.setFormFlattening(true);
    stamper.close();
} catch (DocumentException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}
reader.close();

这是我对pdf表单的电子邮件意图的尝试:

Intent email = new Intent(Intent.ACTION_SEND);
email.putExtra(Intent.EXTRA_SUBJECT, "My form");
email.putExtra(Intent.EXTRA_TEXT, "Here is a form");
Log.d("file",file.getAbsolutePath());
Uri uri = Uri.fromFile(file);
email.putExtra(Intent.EXTRA_STREAM,uri);
email.setType("application/pdf");
email.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

当我运行此功能时,发送的电子邮件没有任何附件。

1 个答案:

答案 0 :(得分:0)

  

这是我将代码添加到可填写的pdf文本

的代码的一部分

您似乎没有将PDF写入文件。

  

这是我对pdf表单的电子邮件意图的尝试:

Uri

这在任何平台上都不是有效的Uri

将PDF写入文件,例如external storage。然后,使用Uri.fromFile()解析该文件,使用FileUri对象转换为相应的join p in db.Chats.Where(x => x.sentwhen > a.lastseen) on a.roomid equals p.roomid into j1