从 url 显示 pdf

问题描述

一个项目(章节)列表有另一个列表(主题)。我想从文件的 url 中显示 pdfActivity 中的 pdf。 pdf没有显示。 看看下面的图片

void addData(){

    chapterList = new ArrayList<>();
    topicList = new ArrayList<>();

    //chapter 1
    topicList.add(new Topic("Topic 1","https://firebasestorage.googleapis.com/v0/b/three-26721.appspot.com/o/work.pdf?alt=media&token=4a8e70d4-c8c4-405b-a396-ae5adfca21f2"));
    topicList.add(new Topic("Topic 2","https://firebasestorage.googleapis.com/v0/b/three-26721.appspot.com/o/work.pdf?alt=media&token=4a8e70d4-c8c4-405b-a396-ae5adfca21f2"));
    topicList.add(new Topic("Topic 3","https://firebasestorage.googleapis.com/v0/b/three-26721.appspot.com/o/work.pdf?alt=media&token=4a8e70d4-c8c4-405b-a396-ae5adfca21f2"));
    topicList.add(new Topic("Topic 4","https://firebasestorage.googleapis.com/v0/b/three-26721.appspot.com/o/work.pdf?alt=media&token=4a8e70d4-c8c4-405b-a396-ae5adfca21f2"));
    chapterList.add(new Chapter("Chapter 1",topicList));

    //chapter 2
    topicList = new ArrayList<>();

    topicList.add(new Topic("Topic 11",""));
    topicList.add(new Topic("Topic 12",""));
    topicList.add(new Topic("Topic 13",""));
    topicList.add(new Topic("Topic 14",""));
    chapterList.add(new Chapter("Chapter 2",topicList));

    sendData();

}

void sendData(){
    customAdapter = new CustomAdapter(chapterList,MainActivity.this);
    expandableListView.setAdapter(customAdapter);

}

enter image description here

自定义适配器

@Override
public View getChildView(int groupPosition,int childPosition,boolean isLastChild,View view,ViewGroup parent) {
    view = LayoutInflater.from(context).inflate(R.layout.topic_item,parent,false);
    TextView topicName = (TextView)view.findViewById(R.id.topic);
    topicName.setText(chapterList.get(groupPosition).getTopicList().get(childPosition).getTopicName());

    CardView cardView = (CardView)view.findViewById(R.id.card);

    cardView.setonClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(context,PdfActivity.class);
            intent.putExtra("fileName",chapterList.get(groupPosition).getTopicList().get(childPosition).getFileName());
            context.startActivity(intent);
        }
    });
    return view;
}

@Override
public boolean isChildSelectable(int groupPosition,int childPosition) {
    return true;
}

这是 PDF 活动

String fileName;
Intent intent;
PDFView pdfView;
WebView webView;
private ProgressBar progressBar;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pdf);

    pdfView = findViewById(R.id.PdfView);
    webView = findViewById(R.id.webview);
    progressBar = findViewById(R.id.pb);
    progressBar.setVisibility(View.VISIBLE);

    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setdisplayZoomControls(true);
    webView.getSettings().setBuiltInZoomControls(true);
    webView.setWebChromeClient(new WebChromeClient());

    webView.setWebChromeClient(new WebChromeClient(){
        @Override
        public void onProgressChanged(WebView view,int newProgress) {
            super.onProgressChanged(view,newProgress);
            getSupportActionBar().setTitle("Loading...");
            if (newProgress ==100){
                progressBar.setVisibility(View.GONE);
                getSupportActionBar().setTitle(R.string.app_name);
            }
        }
    });


    intent= getIntent();
    fileName = intent.getStringExtra("fileName");
    //fileName = "https://firebasestorage.googleapis.com/v0/b/three-26721.appspot.com/o/work.pdf?alt=media&token=4a8e70d4-c8c4-405b-a396-ae5adfca21f2";

    //https://docs.google.com/viewerng/viewer?embedded=true&url=
    String url= "https://docs.google.com/gview?embedded=true&url="+fileName;

    webView.loadUrl(url);

}

enter image description here

解决方法

 public void ReadPdfFile(String actualfilepath) {
try {
String parsedText = "";
PdfReader reader = new PdfReader(actualfilepath);
int n = reader.getNumberOfPages();
for (int i = 0; i < n; i++) {
parsedText = parsedText + PdfTextExtractor.getTextFromPage(reader,i + 1).trim() + "\n"; //Extracting the content from the different pages
}
// System.out.println(parsedText);
Log.e("Parsed Text",parsedText);
// textView.setText(parsedText);
reader.close();
Dialog dialogg = new Dialog(DropBox.this);

dialogg.setContentView(R.layout.email_empty);
dialogg.setCanceledOnTouchOutside(false);
dialogg.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
TextView tv_scriptDelete = dialogg.findViewById(R.id.tv_path);
TextView tv_okay = dialogg.findViewById(R.id.tv_ok);
tv_scriptDelete.setText("Successfully imported file" + " " + new File(actualfilepath).getName());

tv_okay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialogg.dismiss();

}
});

dialogg.show();

String[] parts = new File(actualfilepath).getName().split("\\."); // escape .
String part1 = parts[0];
String part2 = parts[1];

Log.e("part1",part1);
} catch (Exception e) {
System.out.println(e);
}
}