我的应用程序中的resource/raw/color_chart_ciao.pdf
中有一个PDF文件。我想在我的应用程序中显示该文件。我已为此编写代码:
File file = new File("http://www.adobe.com/devnet/acrobat/pdfs/pdf_open_parameters.pdf");
System.out.println("FIle Path is" + file);
if (file.exists()) {
System.out.println("FIle Path is" + file);
Uri path = Uri.fromFile(file);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(path, "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
try {
startActivity(intent);
System.out.println("pdf show");
}
catch (ActivityNotFoundException e) {
Toast.makeText(CiaoView.this,
"No Application Available to View PDF",
Toast.LENGTH_SHORT).show();
}
}
但是当我运行我的应用程序时,我无法在应用程序上看到PDF。 我对应用程序开发更新。所以请帮助解决这个问题。
答案 0 :(得分:0)
如果您在设备/模拟器中安装了任何默认PDF阅读器,则只能通过意图打开 PDF ,但您的应用程序将不是独立应用程序。如果您想让您的应用程序独立,那么您必须在应用程序中实现 PDF 阅读器。 PDF 上有开源项目,您可以阅读以下内容。
以下是 PDF 的几个链接:
答案 1 :(得分:0)
在您的活动中复制以下代码。从任何地方调用函数CopyReadAssets(" File_name.pdf")。将File_name.pdf文件放在assets文件夹中。它会起作用!快乐的编码! :)
private void CopyReadAssets(String pdfname)
{
AssetManager assetManager = getAssets();
InputStream in = null;
OutputStream out = null;
File file = new File(getFilesDir(), pdfname);
try
{
in = assetManager.open(pdfname);
out = openFileOutput(file.getName(), Context.MODE_WORLD_READABLE);
copyFile(in, out);
in.close();
in = null;
out.flush();
out.close();
out = null;
} catch (Exception e)
{
Toast.makeText(getApplicationContext(), "Pdf Viewer not installed", Toast.LENGTH_SHORT).show();
}
try
{
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(
Uri.parse("file://" + getFilesDir() + "/"+pdfname),
"application/pdf");
startActivity(intent);
}catch (Exception e) {
// TODO: handle exception
Toast.makeText(getApplicationContext(), "Pdf Viewer not installed" ,Toast.LENGTH_SHORT).show();
}
}