gpt4 book ai didi

android - 如何使用 pdfviewer 在 Android Studio 中显示来自 Firebase 的 PDF

转载 作者:行者123 更新时间:2023-11-29 16:43:54 32 4
gpt4 key购买 nike

我正在制作一个应用程序,让用户可以上传 PDF 文件,然后将它们保存到 Firebase。现在我想在我的应用程序中显示它们,我不想让用户下载文件,但我希望它直接显示在应用程序中。

这是我保存文件的方式:

private void uploadFile() {
progressBar.setVisibility(View.VISIBLE);

StorageReference sRef = mStorageReference.child(Constants.STORAGE_PATH_COURSES + System.currentTimeMillis() + ".pdf");
sRef.putFile(filepath)
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@SuppressWarnings("VisibleForTests")
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
progressBar.setVisibility(View.GONE);
textViewStatus.setText("File Uploaded Successfully");

Course upload = new Course(editTextFilename.getText().toString(), taskSnapshot.getDownloadUrl().toString());
mDatabaseReference.child(mDatabaseReference.push().getKey()).setValue(upload);
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
Toast.makeText(getApplicationContext(), exception.getMessage(), Toast.LENGTH_LONG).show();
}
})
.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
@SuppressWarnings("VisibleForTests")
@Override
public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
double progress = (100.0 * taskSnapshot.getBytesTransferred()) / taskSnapshot.getTotalByteCount();
textViewStatus.setText((int) progress + "% Uploading...");
}
});

}

我搜索了各种可能性并尝试了一些,但我无法使它们起作用。

我尝试使用它,但它什么也没显示。 https://github.com/barteksc/AndroidPdfViewer

 pdfView=(PDFView) findViewById(R.id.pdfView);

Bundle bundle = getIntent().getExtras();
if (bundle != null) {
url = getIntent().getStringExtra("url");
}
uri=Uri.parse(url);
pdfView.fromUri(uri).load();

如果我从 Assets 文件夹加载 pdf,它运行良好。

我也尝试过 WebView :

    WebView webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("http://drive.google.com/viewerng/viewer?embedded=true&url=" + url)

我是 Android 的新手,我确信我做错了什么……如果有人能帮助我,我将不胜感激。谢谢!

最佳答案

我终于成功使用了 PDFViewer。这是我的代码:

    protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_course);

pdfView=(PDFView) findViewById(R.id.pdfView);

Bundle bundle = getIntent().getExtras();
if (bundle != null) {
url = getIntent().getStringExtra("url");
}
new RetrievePDFStream().execute(url);
}


class RetrievePDFStream extends AsyncTask<String,Void,InputStream>{
@Override
protected InputStream doInBackground(String... strings) {
InputStream inputStream=null;

try{

URL urlx=new URL(strings[0]);
HttpURLConnection urlConnection=(HttpURLConnection) urlx.openConnection();
if(urlConnection.getResponseCode()==200){
inputStream=new BufferedInputStream(urlConnection.getInputStream());

}
}catch (IOException e){
return null;
}
return inputStream;

}

@Override
protected void onPostExecute(InputStream inputStream) {
pdfView.fromStream(inputStream).load();
}
}

这真的很有帮助: https://www.youtube.com/watch?v=-Ld1IoOF_uk

关于android - 如何使用 pdfviewer 在 Android Studio 中显示来自 Firebase 的 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49382087/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com