- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我安装了 this库从我的应用程序中的 url 查看 pdf 但是当我单击文件打开它时出现以下错误:
我尝试查看 ContentResolver 但没有成功
这是logcat:
07-26 15:35:45.638 8725-8725/com.focuson.iapp.firstapp E/PDFView: load pdf error
java.io.FileNotFoundException: No content provider: http://pub.mylaravel.eu/assets/user_files/3/file_no_1.pdf
at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1093)
at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:944)
at android.content.ContentResolver.openFileDescriptor(ContentResolver.java:797)
at android.content.ContentResolver.openFileDescriptor(ContentResolver.java:751)
at com.github.barteksc.pdfviewer.DecodingAsyncTask.getSeekableFileDescriptor(DecodingAsyncTask.java:82)
at com.github.barteksc.pdfviewer.DecodingAsyncTask.doInBackground(DecodingAsyncTask.java:61)
at com.github.barteksc.pdfviewer.DecodingAsyncTask.doInBackground(DecodingAsyncTask.java:30)
at android.os.AsyncTask$2.call(AsyncTask.java:295)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
我的 Activity 是:
public class pdfActivity extends AppCompatActivity {
PDFView pdfView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pdf);
pdfView= (PDFView) findViewById(R.id.pdfView);
String url=getIntent().getStringExtra("url");
Log.i("URI-URL",String.valueOf(Uri.parse(url)) );
pdfView.fromUri(Uri.parse(url))
.enableSwipe(true)
.enableDoubletap(true)
.swipeVertical(false)
.defaultPage(1)
.showMinimap(false)
.onLoad(new OnLoadCompleteListener() {
@Override
public void loadComplete(int nbPages) {
}
})
.onPageChange(new OnPageChangeListener() {
@Override
public void onPageChanged(int page, int pageCount) {
}
})
.enableAnnotationRendering(false)
.password(null)
.load();}}
我的 xml 是:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.focuson.iapp.firstapp.page_types.Login.pdfActivity">
<com.github.barteksc.pdfviewer.PDFView
android:id="@+id/pdfView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>
最佳答案
似乎这个库无法从互联网上下载文件。将文件下载到临时目录并打开它:
if (ActivityCompat.checkSelfPermission(WebViewActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED
&& ActivityCompat.checkSelfPermission(WebViewActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(WebViewActivity.this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE);
} else {
downloadFile();
}
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE:
downloadFile();
break;
}
}
private void downloadFile() {
progressBar.setVisibility(View.VISIBLE);
DownloadFileTask task = new DownloadFileTask(
WebViewActivity.this,
mURL,
"/download/pdf_file.pdf");
task.startTask();
}
@Override
public void onFileDownloaded() {
progressBar.setVisibility(View.GONE);
File file = new File(Environment.getExternalStorageDirectory()
.getAbsolutePath()
+ "/download/pdf_file.pdf");
if (file.exists()) {
pdfView.fromFile(file)
//.pages(0, 2, 1, 3, 3, 3) // all pages are displayed by default
.enableSwipe(true)
.swipeHorizontal(true)
.enableDoubletap(true)
.defaultPage(0)
.enableAnnotationRendering(true)
.password(null)
.scrollHandle(null)
.onLoad(new OnLoadCompleteListener() {
@Override
public void loadComplete(int nbPages) {
pdfView.setMinZoom(1f);
pdfView.setMidZoom(5f);
pdfView.setMaxZoom(10f);
pdfView.zoomTo(2f);
pdfView.scrollTo(100,0);
pdfView.moveTo(0f,0f);
}
})
.load();
}
}
public class DownloadFileTask {
public static final String TAG = "DownloadFileTask";
private BaseActivity context;
private GetTask contentTask;
private String url;
private String fileName;
public DownloadFileTask(BaseActivity context, String url, String fileName) {
this.context = context;
this.url = url;
this.fileName = fileName;
}
public void startTask() {
doRequest();
}
private void doRequest() {
contentTask = new GetTask();
contentTask.execute();
}
private class GetTask extends AsyncTask<String, Integer, String> {
@Override
protected String doInBackground(String... arg0) {
int count;
try {
Log.d(TAG, "url = " + url);
URL _url = new URL(url);
URLConnection conection = _url.openConnection();
conection.connect();
InputStream input = new BufferedInputStream(_url.openStream(),
8192);
OutputStream output = new FileOutputStream(
Environment.getExternalStorageDirectory() + fileName);
byte data[] = new byte[1024];
while ((count = input.read(data)) != -1) {
output.write(data, 0, count);
}
output.flush();
output.close();
input.close();
} catch (Exception e) {
Log.e("Error: ", e.getMessage());
}
return null;
}
protected void onPostExecute(String data) {
context.onFileDownloaded();
}
}
关于安卓 PdfViewer-FileNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38590437/
我有一个文件要从 Assets 加载并在应用程序中显示 pdf。我在 Assets 文件夹中显示了文件“one.pdf”。 我的依赖项是: compile 'com.github.bartek
我安装了 this库从我的应用程序中的 url 查看 pdf 但是当我单击文件打开它时出现以下错误: 我尝试查看 ContentResolver 但没有成功 这是logcat: 07-26 15:35
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 4 年前。
我想为移动设备开发 pdf 电子书应用程序。 ionic 框架是否有 pdf 查看器组件。我喜欢 mozilla pdf.js。我需要 ionic 项目示例。 最佳答案 您是否尝试过角度模块ng-pd
我有一个查看 pdf 的应用程序,问题是 pdf 超出屏幕,如果我缩小 pdf,则没有聚焦。 我正在使用这个 SO 答案中的代码。 Read PDF Using PDFViewer 有任何想法吗? 谢
我已成功将 pdf 文件作为 longblob 保存到我的数据库 (MySQL) 并使用了以下代码: opf.Filter = "PDF FILES |*.pdf" If opf.ShowDi
我在 VS2008 中的 C# 项目的 winForm 中使用了 Debenu PDFViewer。我想将附件保存在磁盘上。附件已保存,但该方法的返回值为 0(表示失败)。保存的文件用Adobe Re
我正在查看许多帖子,寻找一种在我的 Android 应用程序中实现此示例的方法。 http://apv.googlecode.com/files/apv-0.3.3dev01.tar.gz 我在某处读
我从 ERP 后端流式传输 PDF 文件并将其显示在 sap.m.PDFViewer 控件中。我已将 showDownloadButton 属性值设置为“false”。下载按钮已在弹出页脚中消失。 不
嗨,我有一个奇怪的问题。我有一个 Android 应用程序,其中包含与 apk bundle 在一起的 PDF 文件。在 UI 上,我显示文件的表格列表,用户可以单击并使用他们选择的查看器加载 pdf
我想使用 PDFViewer.jar 读取存储在 Assets 文件夹中的 pdf 文件, 我尝试过这种方式,但收到错误消息,不幸的是它停止了。 谁能帮我实现一下。 public class Main
我的文档目录中有本地 pdf 文件。我的代码使用 WKWebview 或 PDFViewer 调用每一个进行显示,但它仅在 iPhone XR 模拟器上显示,而不在任何其他模拟器设备上显示。 任何早于
我正在使用 Kendo DropDwonList 开发一个 MVC 元素。 问题如下图所示。 Kendo DropDownList 元素隐藏在 PDFViewer 后面。这只发生在 safari 浏览
我正在制作一个应用程序,让用户可以上传 PDF 文件,然后将它们保存到 Firebase。现在我想在我的应用程序中显示它们,我不想让用户下载文件,但我希望它直接显示在应用程序中。 这是我保存文件的方式
ScrollBar 和 import com.github.barteksc.pdfviewer.ScrollBar; 不起作用 此外,当我在设备上运行然后点击我想查看的 pdf 时,应用程序崩溃了。
在这里,我从原始文件夹打开 Pdf,并使用 PDfViewer 的 Jar,但问题是..查看 Pdf..我想以大尺寸打开,而它以小尺寸打开..uripdf = "android.resource://
我已经开始学习 Swift 和 iOS 编程,并且编写了一个小应用程序,由一个 navigationController、一个 FirstViewController 和一个 SecondViewCo
我是一名优秀的程序员,十分优秀!