当前位置: 首页 > 软件库 > 程序开发 > PDF工具包 >

AndroidPDF

Android 打开本地或网络 PDF 的库
授权协议 Apache
开发语言 Java
所属分类 程序开发、 PDF工具包
软件类型 开源软件
地区 国产
投 递 者 艾原
操作系统 Android
开源组织
适用人群 未知
 软件概览

1.基本思路:

  • 基于android-pdfview改造的Android打开本地或网络pdf的库

  • 打来网络pdf 思路整体还是来源与图片的加载。

  • android中加载网络图片的框架有很多个。如image-laoder, fresco、glide等,首先都是从内存中找图片,如果内存中没有,接着从本地找,本地没有在从网络下载。

  • android中加载pdf也是类似,首先从本地找pdf文件,如果本地存在该pdf文件,直接打开,如果本地不存在,将该pdf文件下载到本地在打开。

  • 下载文件用到了retrofit2的库,已经封装到android_pdf中了。

2.依赖android_pdf库方法

2.1 在项目的gradle中增加如下代码:

compile 'com.lidong.pdf:android_pdf:1.0.2'

2.2 一句代码就可以加载网络pdf。

  pdfView.fileFromLocalStorage(this,this,this,fileUrl,fileName);   //设置pdf文件地址

2.3对fileFromLocalStorage(this,this,this,fileUrl,fileName)的解析

/**

*  加载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)
  1. OnPageChangeListener onPageChangeListener :翻页回调 

  2. OnLoadCompleteListener onLoadCompleteListener:加载完成的回调 

  3. OnDrawListener:页面绘制的回调 

  4. String fileUrl : 文件的网络地址

  5. String fileName 文件名称

3.使用android_pdf库方法

3.1写一个布局文件

 

3.2在MainActivity中加载

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在我安装了Adobe Acrobat 9 pro的机器中打开得很好。但在另一台具有Adobe Acrobat 10.1.2版本的计算机中没有打开。 当我打开pdf时,它会显示错误消息 java.io.IOException:无法打开文件:/c:/program%20files%20(x86)/theatreaudi t/data/ae%20wording.pdf。错误消息:未

  • 我必须在我的应用程序中为打印PDF文件提供打印选项。我在这里列出了我的应用程序的要求: > 互联网将无法打印。 它应该在A4尺寸的纸张上打印PDF文档。 需要进行适当的导航。表示如果PDF打印成功,则需要显示消息。如果打印机不可用,则需要显示消息。 我做了R 1) Google Cloud Print-Google Cloud Print是一项Google服务,它允许网络云中任何设备上的任何支持云

  • 我希望在连接到wifi网络时,在运行我的应用程序的手机上获取用户的本地IPv4地址。使用以下代码: 我可以得到一些接近IPv4地址的信息,但与命令行中的IPv4地址相比,它并不完全相同。有更好的办法吗?我知道formatIpAddress已被弃用,但在我找到获取IPv4地址的方法之前,我暂时不太担心这个问题。 编辑: 我发现手机wifi设置中的ip地址是我在使用建议的解决方案获取ip地址时得到的。

  • 我尝试过不同的URI方案: 以下内容根本不起作用: null null