在android中的查看器中打开受密码保护的PDF文件

时间:2013-03-09 09:08:29

标签: android pdf

我正在开发一个pdf阅读器,因为android没有任何原生pdf 观众所以我必须使用第三方pdf查看器。 在这种情况下,我选择了Adobe pdf viewer for android。 我可以打开存储在我设备的SD卡中的pdf文件。 现在我想从我的应用程序中打开受密码保护的pdf文件。 如果用户想手动打开受密码保护的pdf文件,请使用 打开时必须提供密码。 但我想从我的应用程序中打开那些密码pdf文件而不用 任何密码提示。 应用程序提供密码,[apps知道密码],没有 任何密码提示,pdf将打开。

目前如果我想打开任何受密码保护的pdf文件 应用程序然后出现密码提示,需要密码 打开它。

我正在使用此代码从SDCARD中存储的pdf文件中打开pdf。

====

File pdfFile = new File(fileLocation); 
if (pdfFile.exists()) 
{ 
    Uri pdfFilepathUri = Uri.fromFile(pdfFile); 
    Intent intent = new Intent(Intent.ACTION_VIEW);    

    intent.setDataAndType(pdfFilepathUri, "application/pdf");      
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    try 
    { 
        startActivity(intent);
    } 
    catch (ActivityNotFoundException e) 
    { 
        Toast.makeText(this,"No Application Available to View PDF : "+fileLocation,Toast.LENGTH_LONG).show(); 
    } 
} 
 else 
Toast.makeText(this,"File cannot found : "+fileLocation,Toast.LENGTH_SHORT).show(); 

====

任何人都可以帮助我如何提供密码 应用程序,以便它可以自动打开pdf文件 提示任何密码窗口。 ?

3 个答案:

答案 0 :(得分:1)

  

如果用户想要手动打开受密码保护的pdf文件,则必须在打开时提供密码。但我想从我的应用程序打开那些密码pdf文件,没有任何密码提示。

欢迎您联系各种PDF查看应用程序的作者,看看他们是否支持通过Intent额外内容传递PDF密码。记录的ACTION_VIEW协议中肯定没有任何内容可以支持这种情况。

答案 1 :(得分:0)

简而言之,你不能。我知道那里没有PDF阅读器支持 ,但是即使有,您也不能依赖安装了该特定阅读器的用户-因此无法获得此支持普遍工作。

但是,您可以使用handles all the heavy lifting of the PDF rendering库在应用程序中构建自己的基本PDF视图,然后使用该视图打开PDF来解决此问题。一些此类库,例如链接的AndroidPdfViewer库,可让您指定密码,例如:

pdfView.fromFile(file)
    .password("password123")
    .load();

这将使您能够提供一种通用的解决方案,以显示受密码保护的PDF文件,并且还具有额外的安全优势,即不会在上下文之间泄漏密码。

答案 2 :(得分:0)

<块引用>

如果 PDF 在 SD 卡中:

private void displayPDF() {
    
     dir = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/Data/1.pdf/");
         
            pdfView.fromFile(dir)
                    .password("12345678")
                    .load();
}