Я делаю приложение для Android, в котором я должен делать отчеты в формате PDF.Данные для этих отчетов поступают из базы данных SQLite.Страницы PDF создаются правильно, но у меня проблема с их отображением.PDF не отображается.Я хочу, чтобы страница PDF отображалась сама собой после ее создания.Вот код создания отчетов в формате PDF:
public void savePDF(){
Document mDoc = new Document();
fileName = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss", Locale.getDefault()).format(System.currentTimeMillis());
filePath = Environment.getExternalStorageDirectory() + "/Project Manager/" + "Project Report/" ;
try{
File dir = new File(filePath);
if (!dir.exists())
dir.mkdirs();
file = new File(dir, nameforR + "_" +fileName+".pdf");
FileOutputStream fOut = new FileOutputStream(file);
PdfWriter.getInstance(mDoc,fOut);
mDoc.open();
mDoc.addTitle("Project Manager");
mDoc.addSubject("Project Report");
mDoc.addKeywords("Projects");
mDoc.addAuthor("Fahad");
mDoc.addCreator("Fahad");
Paragraph preface = new Paragraph();
Paragraph repTitle = new Paragraph("Project Manager", catFont);
repTitle.setAlignment(Element.ALIGN_CENTER);
preface.add(repTitle);
Paragraph repTitlepowered = new Paragraph("PDF Reports", smallBold);
repTitlepowered.setAlignment(Element.ALIGN_CENTER);
preface.add(repTitlepowered);
Paragraph emptyL = new Paragraph("\n");
preface.add(emptyL);
Paragraph reportTitle = new Paragraph(nameforR, subFont);
reportTitle.setAlignment(Element.ALIGN_CENTER);
preface.add(reportTitle);
mDoc.add(preface);
Paragraph emptyLine = new Paragraph("\n");
mDoc.add(emptyLine);
PdfPTable table = new PdfPTable(3);
table.setWidthPercentage(70);
table.setSpacingAfter(10);}
mDoc.add(Chunk.NEWLINE);
mDoc.add(tableDeductions);
mDoc.close();
showPDf();
}
Код для отображения отчетов:
private void showPDF(){
AssetManager assetManager = getAssets();
InputStream in = null;
OutputStream out = null;
File file = new File(getFilesDir() ,fileName + ".pdf");
try
{
in = assetManager.open(fileName + ".pdf");
out = this.openFileOutput(file.getName(), Context.MODE_WORLD_READABLE);
copyFile(in, out);
in.close();
in = null;
out.flush();
out.close();
out = null;
}
catch (Exception e)
{
Log.e("tag", e.getMessage());
}
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(intent);
}
private void copyFile(InputStream in, OutputStream out) throws IOException
{
byte[] buffer = new byte[1024];
int read;
while ((read = in.read(buffer)) != -1)
{
out.write(buffer, 0, read);
}
}