基于android-pdfview改造的Android打开本地或网络pdf的库
打来网络pdf 思路整体还是来源与图片的加载。
android中加载网络图片的框架有很多个。如image-laoder, fresco、glide等,首先都是从内存中找图片,如果内存中没有,接着从本地找,本地没有在从网络下载。
android中加载pdf也是类似,首先从本地找pdf文件,如果本地存在该pdf文件,直接打开,如果本地不存在,将该pdf文件下载到本地在打开。
下载文件用到了retrofit2的库,已经封装到android_pdf中了。
compile 'com.lidong.pdf:android_pdf:1.0.2'
pdfView.fileFromLocalStorage(this,this,this,fileUrl,fileName); //设置pdf文件地址
/**
* 加载pdf文件 * @param onPageChangeListener * @param onLoadCompleteListener * @param onDrawListener * @param fileUrl * @param fileName */ public void fileFromLocalStorage( final OnPageChangeListener onPageChangeListener, final OnLoadCompleteListener onLoadCompleteListener, final OnDrawListener onDrawListener, String fileUrl, final String fileName)
OnPageChangeListener onPageChangeListener :翻页回调
OnLoadCompleteListener onLoadCompleteListener:加载完成的回调
OnDrawListener:页面绘制的回调
String fileUrl : 文件的网络地址
String fileName 文件名称
import android.graphics.Canvas; import android.os.Environment; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.widget.Toast; import com.lidong.pdf.PDFView; import com.lidong.pdf.api.ApiManager; import com.lidong.pdf.listener.OnDrawListener; import com.lidong.pdf.listener.OnLoadCompleteListener; import com.lidong.pdf.listener.OnPageChangeListener; import com.lidong.pdf.util.FileUtils; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import okhttp3.ResponseBody; import rx.android.schedulers.AndroidSchedulers; import rx.functions.Action1; import rx.schedulers.Schedulers; public class MainActivity extends AppCompatActivity implements OnPageChangeListener ,OnLoadCompleteListener, OnDrawListener { private PDFView pdfView ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); pdfView = (PDFView) findViewById( R.id.pdfView ); displayFromFile1("http://file.chmsp.com.cn/colligate/file/00100000224821.pdf", "00100000224821.pdf"); } /** * 获取打开网络的pdf文件 * @param fileUrl * @param fileName */ private void displayFromFile1( String fileUrl ,String fileName) { pdfView.fileFromLocalStorage(this,this,this,fileUrl,fileName); //设置pdf文件地址 } /** * 翻页回调 * @param page * @param pageCount */ @Override public void onPageChanged(int page, int pageCount) { Toast.makeText( MainActivity.this , "page= " + page + " pageCount= " + pageCount , Toast.LENGTH_SHORT).show(); } /** * 加载完成回调 * @param nbPages 总共的页数 */ @Override public void loadComplete(int nbPages) { Toast.makeText( MainActivity.this , "加载完成" + nbPages , Toast.LENGTH_SHORT).show(); } @Override public void onLayerDrawn(Canvas canvas, float pageWidth, float pageHeight, int displayedPage) { // Toast.makeText( MainActivity.this , "pageWidth= " + pageWidth + " // pageHeight= " + pageHeight + " displayedPage=" + displayedPage , Toast.LENGTH_SHORT).show(); }
Android原生WebView不支持预览pdf文件,ios却可以,所以Android想要实现在线预览WebView要通过其他方法,有以下几种方法: 第一种方式: andorid原生自带的pdf管理库,主要提供两个类pdfRender和pdfDocument,有兴趣的可以自己去了解一下,缺点就是必须是API>=21(也就是5.0以上)的版本才能支持,局限性太大。 第二种方式: GitHub上的开源
我试着学习如何为我的Android应用程序生成PDF。 我遵循官方文档,但代码无法正常工作。 编译器发现我有一些编译错误,但我所做的只是复制/粘贴代码中的代码。 请看看代码,并告诉我,为什么(:Android PDF生成 PrintAttributes printAttributes = new PrintAttributes.Builder(). setMediaSize(PrintAttrib
Android PdfViewer 的使用方法网上有很多,在此不过多赘述,详细信息可查看官网,解决模糊前需要了解为什么pdf会显模糊后正常,、在andoid上为了正常显示,显示前会先生成缩略图,而为了迅速显示缩略图,一般会降低清晰度,明白了原理就好解决了,修改缩略图的默认清晰度就行了,不仅是AndroidPdfViewer,其它文件预览同样如此。 说了原理说一下解决
1.pdf转换base64 public static String encodeBase64File(String path) { File file = new File(path); byte[] buffer = new byte[(int) file.length()]; try { FileInputStr
Android PDF开发:android-pdfview Android平台自身没有直接可以阅读和处理pdf的方案,在github上面有一个第三方开源的pdf开发SDK,其主页地址是: https://github.com/JoanZapata/android-pdfview android-pdfview使用比较简单,关键的地方是PDFView,将PDFView作为像Android的Imag
android的app实现pdf阅读有多种方式 1通过本地的app,例如wps等软件打开相应的pdf的文件 这个方式很多 不细说 2本地下载服务器上的pdf文档,然后在阅读完成后删除。 这个属于本文的核心内容 在Android的app中实现pdf阅读,这也是无奈之举 用到一个jar和一个pdf阅读的类库 这个是下载的链接 http://download.csdn.net/download/itw
最近有一个需求,在不打开文档的情况下,为每个pdf生成一张缩略图,显示在界面上。那么怎么做呢? 相信大家对pdf进行开发时,都会用到一个框架:pdfview。 至于pdfview如何使用,我就不班门弄斧了,使用起来也非常简单,附上使用连接:http://www.mobile-open.com/2015/38396.html 接下来就是重点,怎么截图呢?关键代码如下: PdfContext pdfC
1. 简介 本章会讲四种可以在Android端使用的pdf框架,并介绍其优势和劣势。 (1)android-pdfview 第一个当然是github上面star 最多android-pdfview,它是基于谷歌的一款开源PDF浏览框架VuDroid封装的Android端框架, 支持缩略图,缩放,页面枚举,默认起始页。还有pdf加载监听,pdf页面滑动监听。 功能很强大,不过很可惜,功能有限,作者也
原标题:第一行代码:Android PDF 下载 《第一行代码》,真正地做到了——第一行代码,对Android入门者而言。 对于这本书,若要写短评的话,我借用《动物庄园》作者乔治•奥威尔对自己的书的评价,来“扮演”《第一行代码》作者郭霖,来评价《第一行代码》。 即: I do not wish to comment on the work; if it does not speak for its
本文向大家介绍Android 打开网络上pdf文件,包括了Android 打开网络上pdf文件的使用技巧和注意事项,需要的朋友参考一下 之前写过一篇Android打开本地pdf文件的文章,最后总结的时候说,后面一定要拓展库,让其也能打开网络的的pdf文件。今天终于可以兑现承诺了。frok一份代码https://github.com/JoanZapata/android-pdfview,源码地址:h
本文向大家介绍Android 打开本地pdf文件,包括了Android 打开本地pdf文件的使用技巧和注意事项,需要的朋友参考一下 Android 中打开pdf文件也是一种很常见的场景,但是上网找了好多资料,有用WebView加载的,但是要用vpn才能搞,最后发现一个库挺不错的,再次分享给大家 android-pdfview。下面主要说一下该库的使用方法。 1. 该库的下载地址 https://g
函数名称:打开网络地址 函数功能:调用系统浏览器,打开一个指定网址 函数方法 app.openURL(url) 参数 类型 必填 说明 ur string 是 需要打开的应用网址 函数用例 --打开 Luabox 官网 app.openURL("https://www.touchsprite.com/luabox") 注意事项 目前积木编程函数和触动精灵函数不通用,请仔细查看本手册,此手册中函数
问题内容: 如何从网址而不是从磁盘打开pdf 就像是 我想从网上打开几个文件,然后下载所有文件的合并文件。 问题答案: 我认为urllib2将为您提供所需的东西。
我必须在我的应用程序中为打印PDF文件提供打印选项。我在这里列出了我的应用程序的要求: > 互联网将无法打印。 它应该在A4尺寸的纸张上打印PDF文档。 需要进行适当的导航。表示如果PDF打印成功,则需要显示消息。如果打印机不可用,则需要显示消息。 我做了R 1) Google Cloud Print-Google Cloud Print是一项Google服务,它允许网络云中任何设备上的任何支持云
我正在通过使用 pdf在我安装了Adobe Acrobat 9 pro的机器中打开得很好。但在另一台具有Adobe Acrobat 10.1.2版本的计算机中没有打开。 当我打开pdf时,它会显示错误消息 java.io.IOException:无法打开文件:/c:/program%20files%20(x86)/theatreaudi t/data/ae%20wording.pdf。错误消息:未
我希望在连接到wifi网络时,在运行我的应用程序的手机上获取用户的本地IPv4地址。使用以下代码: 我可以得到一些接近IPv4地址的信息,但与命令行中的IPv4地址相比,它并不完全相同。有更好的办法吗?我知道formatIpAddress已被弃用,但在我找到获取IPv4地址的方法之前,我暂时不太担心这个问题。 编辑: 我发现手机wifi设置中的ip地址是我在使用建议的解决方案获取ip地址时得到的。
我尝试过不同的URI方案: 以下内容根本不起作用: null null