2015-09-25 4 views
0

Я только начал использовать текст для приложения, над которым я работаю, для дальнейшего изучения моего андроида. Однако я не могу понять, как получить заполненный pdf-файл, а затем отправить его по электронной почте, используя намерение. Я всюду искал поиски и поиски, но ничего не могу найти. Кто-нибудь знает, как это сделать?Как отправить PDF-файл, созданный с помощью itext

Объявление моего файла перед моим 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); 

когда Я запускаю это, нет прикрепления к электронному письму, которое будет отправлено.

ответ

0

Это часть моего кода, чтобы добавить информацию в нефтеналивной Текст PDF

Вы, кажется, не будет писать PDF в файл.

и это моя попытка электронного умысла для формы PDF:

Uri uri=Uri.parse("file://"+ "form.pdf"); 

Это не является допустимым Uri на любой платформе.

Напишите свой PDF файл, например, по адресу external storage. Затем используйте Uri, который разрешает этот файл, используя Uri.fromFile() для преобразования вашего объекта File в соответствующий Uri.

+0

не открывает шаблон и добавляет текст ввода пользователя, добавляя его к заполняемому тексту? Кроме того, я редактировал мой uri. это лучше? – Aria

+0

@Aria: «не открывает шаблон и добавляет текст ввода пользователя, добавляя его к заполняемому тексту?» - да, но только в памяти. «Кроме того, я отредактировал мой uri. это лучше?» - во-первых, я не вижу никакого кода, в котором вы сохраняете PDF-файл в этом файле. Во-вторых, используйте 'new File (getFilesDir()," form.pdf ")', чтобы более безопасно построить этот путь. В-третьих, что 'Uri' будет бесполезным, поскольку сторонние приложения электронной почты не могут читать из внутреннего хранилища вашего приложения. Вы можете сохранить файл в 'getFilesDir()', но тогда вам нужно будет использовать 'FileProvider', чтобы обслуживать файл таким образом, чтобы сторонние приложения могли получить к нему доступ. – CommonsWare

+0

, не могли бы вы рассказать мне, что добавить в мой код? Мне жаль, что я новичок с текстом, поэтому я не знаю, что еще попробовать – Aria