0

携帯電話に「adobe.pdf」という名前の PDF ファイルがあることを確認できます。/storage/emulated/0/Documents/adobe.pdf

URLリンクからpdfをダウンロードし、ドキュメントに保存しました。以下、ダウンロードして保存した方法です。これは、同じアプリ内の別のアクティビティです。


    public  void DownloadBooks(String url,String title){

        DownloadManager.Request request=new DownloadManager.Request(Uri.parse(url));
        String tempTitle=title.trim();
        request.setTitle(tempTitle);
        if(Build.VERSION.SDK_INT>= Build.VERSION_CODES.HONEYCOMB){
            request.allowScanningByMediaScanner();
            request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
        }
        request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOCUMENTS,tempTitle+".pdf");
        DownloadManager downloadManager=(DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE);
        request.setMimeType("application/pdf");
        request.allowScanningByMediaScanner();
        request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE | DownloadManager.Request.NETWORK_WIFI);
        downloadManager.enqueue(request);
    }
DownloadBooks("a link"," adobe");

ダウンロードが完了すると、pdf adobe.pdfが保存され /storage/emulated/0/Documents/ 、このダウンロードした PDF を表示したいと考えています。

ライブラリを使用して PDF を表示していますが、表示されません。これが私のコードです

package com.shivansh.firebasedemo;



public class DownloadedPDFViewerActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener, OnLoadCompleteListener {
    PDFView pdfView;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_downloaded_p_d_f);

        
        pdfView =findViewById(R.id.pdfView);
        File root = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);
        File file = new File(root,"adobe.pdf");
        Log.i("5656",file.toString());
        pdfView.fromFile(file).
        enableSwipe(true)
        .defaultPage(0)
        .swipeHorizontal(false)

        .onLoad(this)
        .load();

    }
    
    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

    }

    @Override
    public void onPageSelected(int position) {

    }

    @Override
    public void onPageScrollStateChanged(int state) {

    }

    @Override
    public void loadComplete(int nbPages) {
    }
}

上記のログステートメントが出力されます

2021-05-06 03:13:31.734 9470-9470/com.shivansh.firebasedemo I/5656: /storage/emulated/0/Documents/adobe.pdf

これは、デバイス上のファイルの正しい場所を見つけたことを示しています。

携帯電話からの PDF パスのスクリーンショット

さて、このpdfをアクティビティでレンダリングするにはどうすればよいですか?

4

0 に答える 0