2014-09-02 70 views
0

在,如果我點擊「生成PDF」按鈕,然後PDF是在SD卡中建立。如果我打開這個PDF我的Android應用程序,我可以複製文本的android創建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

我沒有尚未測試,請告訴我,如果這個工程:) – 2014-09-02 07:30:29

+0

你使用Apache POI? – 2014-09-02 09:07:34

+0

我使用droidText 0.2罐子 – Harshad07 2014-09-02 09:10:19

回答

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);