【问题标题】:Create PDF in android with read-only permission在具有只读权限的android中创建PDF
【发布时间】:2014-09-02 07:17:58
【问题描述】:

在我的 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();
     }

}    

【问题讨论】:

  • 我还没有测试,请告诉我这是否有效:)
  • 你在使用 apache poi 吗?
  • 我正在使用 droidText 0.2 jar

标签: android pdf pdf-generation android-droidtext


【解决方案1】:

您无法阻止用户更改存储在外部存储设备上的数据,前提是他们找到愿意提供帮助的应用程序 - 例如现成的文件管理器应用程序。

只要安全模型保持不变,存储在应用程序私有存储区域中的数据就可以防止写入,或防止其他应用程序写入和读取。

但是,如果 Intent 指向的文件位于不同应用程序的私有存储区域中,则某些应用程序不愿意尝试访问该文件,即使已设置文件和目录权限位以便 Android 系统允许它们至。 (例如,至少某些版本的 GMail 拒绝附加不在外部存储中的文件,尽管如果文件是全球可读的,它们可能会被欺骗这样做。)

所以将文件保存到内部存储中并通过给定的代码打开文件

mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setPluginsEnabled(true);
mWebView.loadUrl("https://docs.google.com/gview?embedded=true&url="+LinkToPDF);
setContentView(mWebView); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    • 1970-01-01
    • 2016-10-25
    相关资源
    最近更新 更多