Я пытаюсь создать PDF. Я получаю эту ошибку "E / PDFCreator: ioException: java .io.FileNotFoundException: /document/959/myNotesPdf.pdf (Нет такого файла или каталога)". Таким образом, он создает PDF-файл размером 0 байт.
Как указать правильный путь при создании файла?
Я добавил разрешения.
<uses-permission android:name="android.permission.WRITE_SETTINGS." />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Я взял Преимущество этой ссылки и написал код.
Как написать файл, используя Intent.ACTION_CREATE_DOCUMENT
{ ссылка }
Мои коды:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fileName = "myNotesPdf.pdf";
textViewPath = findViewById(R.id.txtPath);
buttonGetPath = findViewById(R.id.btnGetPath);
buttonGetPath.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
myFileIntent = new Intent(Intent.ACTION_CREATE_DOCUMENT);
myFileIntent.addCategory(Intent.CATEGORY_OPENABLE);
myFileIntent.setType("application/pdf");
myFileIntent.putExtra(Intent.EXTRA_TITLE,fileName);
startActivityForResult(myFileIntent,WRITE_REQUEST_CODE);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
if (resultCode == RESULT_OK && requestCode == WRITE_REQUEST_CODE) {
String path1 = data.getData().getPath();
textViewPath.setText(path1);
//FileOutputStream fOut = (FileOutputStream) getContentResolver().openOutputStream(data.getData());
Document doc = new Document();
try {
String path = data.getData().getPath();
File file = new File(path,fileName);
FileOutputStream fOut = new FileOutputStream(file);
PdfWriter.getInstance(doc, fOut);
//open the document
doc.open();
Paragraph p1 = new Paragraph("sdasdasdas");
Font paraFont = new Font();
p1.setAlignment(Paragraph.ALIGN_CENTER);
p1.setFont(paraFont);
//add paragraph to document
doc.add(p1);
fOut.flush();
fOut.close();
} catch (DocumentException de) {
Log.e("PDFCreatorDoc", "DocumentException:" + de);
} catch (IOException e) {
Log.e("PDFCreator", "ioException:" + e);
}
finally {
doc.close();
}
}
// super.onActivityResult(requestCode, resultCode, data);
}}