【问题标题】:It doesntn't show pdf file它不显示pdf文件
【发布时间】:2016-05-20 13:24:35
【问题描述】:

我使用了来自 github 的 pdf 视图示例并尝试运行。

https://github.com/JoanZapata/android-pdfview

下面是主类

package com.joanzapata;

import android.content.Intent;
import android.util.Log;
import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.Menu;
import com.googlecode.androidannotations.annotations.*;
import com.joanzapata.pdfview.PDFView;
import com.joanzapata.pdfview.listener.OnPageChangeListener;


import static java.lang.String.format;


public class PDFViewActivity extends SherlockActivity implements OnPageChangeListener {

    public static final String SAMPLE_FILE = "sample.pdf";

    public static final String ABOUT_FILE = "about.pdf";

    @ViewById
    PDFView pdfView;

    @NonConfigurationInstance
    String pdfName = SAMPLE_FILE;

    @NonConfigurationInstance
    Integer pageNumber = 1;

    @AfterViews
    void afterViews() {
        display(pdfName, false);
    }

    @OptionsItem
    public void about() {
        if (!displaying(ABOUT_FILE))
            display(ABOUT_FILE, true);
    }

    private void display(String assetFileName, boolean jumpToFirstPage) {
        if (jumpToFirstPage) pageNumber = 1;
        setTitle(pdfName = assetFileName);

        pdfView.fromAsset(assetFileName)
                .defaultPage(pageNumber)
                .onPageChange(this)
                .load();
    }

    @Override
    public void onPageChanged(int page, int pageCount) {
        pageNumber = page;
        setTitle(format("%s %s / %s", pdfName, page, pageCount));
    }

    @Override
    public void onBackPressed() {
        if (ABOUT_FILE.equals(pdfName)) {
            display(SAMPLE_FILE, true);
        } else {
            super.onBackPressed();
        }
    }

    private boolean displaying(String fileName) {
        return fileName.equals(pdfName);
    }
}

我已经将 actionbarsherlock 和 androidannotations-2.5-api jar 文件附加到项目中。这个运行没有任何错误,但它不显示 pdf 文件。

【问题讨论】:

    标签: android pdf


    【解决方案1】:

    您的资产文件夹中是否有一个名为“sample.pdf”的文件? Where do I place the 'assets' folder in Android Studio?

    您也可以尝试从 sd 卡读取文件:

        file = new File(path); // where "path" is a path to file on your sd card, example: /storage/sdcard0/yourFile.pdf
        filename = file.getName();
        setTitle(filename);
        pdfView  =(PDFView)findViewById(R.id.pdfView); 
        pdfView.fromFile(file).defaultPage(1).showMinimap(false).enableSwipe(true).swipeVertical(true).load();
        pdfView.setVerticalScrollBarEnabled(true);
    

    【讨论】:

      【解决方案2】:

      这会起作用:

      pdfView = (PDFView) findViewById(R.id.pdfView);
      pdfView.fromFile(new File(path)).defaultPage(pageNumber).onPageChange(this).load();
      

      【讨论】:

        猜你喜欢
        • 2015-03-30
        • 1970-01-01
        • 2015-08-17
        • 2021-10-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-26
        相关资源
        最近更新 更多