在我的Android应用程序中,如果我点击“生成PDF”按钮,然后在SD卡中创建pdf。如果我打开这个pdf,我可以复制文本,但我不会这样。我的意思是只读 用那个生成的pdf文件。
以下是代码,
public void createPDF()
{
Document doc = new Document();
try {
String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/droidText";
File dir = new File(path);
if(!dir.exists())
dir.mkdirs();
Log.d("PDFCreator", "PDF Path: " + path);
System.out.println("PDF Path: "+ path);
File file = new File(dir, "sample.pdf");
FileOutputStream fOut = new FileOutputStream(file);
PdfWriter.getInstance(doc, fOut);
//open the document
doc.open();
Paragraph p1 = new Paragraph("Hi! I am generating my first PDF using DroidText");
Font paraFont= new Font(Font.COURIER);
p1.setAlignment(Paragraph.ALIGN_CENTER);
p1.setFont(paraFont);
//add paragraph to document
doc.add(p1);
} catch (DocumentException de) {
Log.e("PDFCreator", "DocumentException:" + de);
} catch (IOException e) {
Log.e("PDFCreator", "ioException:" + e);
}
finally
{
doc.close();
}
}
答案 0 :(得分:0)
您无法阻止用户更改存储在外部存储上的数据,只要他们找到愿意为此提供帮助的应用程序 - 例如,随时可用的文件管理器应用程序。
只要安全模型保持不变,存储在应用程序私有存储区域中的数据就可以保护写入,也可以保护其他应用程序的写入和读取。
然而,某些应用程序不愿意尝试访问Intent指向的文件(如果它位于不同应用程序的专用存储区域中),即使已设置文件和目录权限位以使Android系统允许它们至。 (例如,至少某些版本的GMail拒绝附加不在外部存储上的文件,但如果文件是世界可读的,可以欺骗它们。)因此,将文件保存到内部存储器中并打开给定代码的文件
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setPluginsEnabled(true);
mWebView.loadUrl("https://docs.google.com/gview?embedded=true&url="+LinkToPDF);
setContentView(mWebView);