Android显示PDF文件

最近由于项目需要,大致了解了一下关于如何在Android端显示PDF文件的内容,因此在这里进行一下小小的总结,方便今后开发。我目前了解到并成功实现的有三种开源框架分别是:Android PdfViewer、MUpdf以及iText,

- Android PdfViewer

-MUpdf

- iText


其中Android PdfViewer、MUpdf是显示PDF文件中所有文件,而iText则主要是方便用于解析PDF文件中的文本信息,这里主要介绍的是解析与写入PDF文本信息第三方开源框架iText的使用方法:

jar包及源码在文末:

直接将jar包拷入工程目录即可
Android显示PDF文件之iText_第1张图片

添加完成后就可以直接使用了,下面直接给代码。

/**     * 读取Pdf文件的内容     * @param path :文件地址     */    public String readPdfContent(String path){        String content = "";        File file = new File(path);        if (file.exists()){            try {                PdfReader pr = new PdfReader(path);                int page = pr.getNumberOfPages();                for(int i = 1 ;i1;i++){                    //遍历页码,读取Pdf文件内容                    content += PdfTextExtractor.getTextFromPage(pr, i);                }            } catch (IOException e) {                e.printStackTrace();            }        }else {            Toast.makeText(MainActivity.this,"文件不存在!",Toast.LENGTH_SHORT).show();        }        return content;    }
/**     * 写入PDF内容     */    public void writePdfContent(final String path, final String content){        //因为是耗时操作所以要在子线程中进行        new Thread(){            @Override            public void run() {                super.run();                Document doc = new Document();//创建一个document对象                FileOutputStream fos;                try {                    fos = new FileOutputStream(new File(path)); //pdf_address为Pdf文件保存到sd卡的路径                    PdfWriter.getInstance(doc, fos);                    doc.open();                    doc.setPageCount(1);                    doc.add(new Paragraph(content, setChineseFont())); //result为保存的字符串 ,setChineseFont()为pdf字体                    // 一定要记得关闭document对象                    doc.close();                    fos.flush();                    fos.close();                    handler.sendEmptyMessage(123);//操作完毕后进行提醒                } catch (FileNotFoundException e1) {                    e1.printStackTrace();                } catch (DocumentException e) {                    e.printStackTrace();                } catch (IOException e) {                    e.printStackTrace();                }            }        }.start();    }
/**     * 设置PDF字体(较为耗时)     */    public Font setChineseFont() {        BaseFont bf = null;        Font fontChinese = null;        try {            // STSong-Light : Adobe的字体            // UniGB-UCS2-H : pdf 字体            bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",                    BaseFont.NOT_EMBEDDED);            fontChinese = new Font(bf, 12, Font.NORMAL);        } catch (DocumentException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }        return fontChinese;    }

记得添加权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

如果系统是Android6.0版本以上的话不要忘了获取动态权限,附带获取动态权限代码:

参考文章:http://blog.csdn.net/xuwenneng/article/details/52995392

这里是我自己的源码下载地址:

http://download.csdn.net/detail/buddy_ling/9913920

更多相关文章

  1. Android中解析doc、docx、xls、xlsx格式文件
  2. Android中除了利用VideoView、Mediaplayer播放视频文件外,还可以
  3. Android 布局文件属性讲解
  4. Android - AutoCompleteTextView (输入框动态匹配内容)
  5. (Android)JavaSocket编程,文件上传到服务器,客户端Android,服务器端J2
  6. 读取local.properties文件
  7. 开始Android,Android studio 中部分文件目录的含义与作用
  8. Android的编译时遇到 gcc: error trying to exec 'cc1plus': exe

随机推荐

  1. 用命令行编译APK(英文版)
  2. Android(安卓)Studio 3.5.1 在项目的buil
  3. android intent 传递各种结构数据
  4. 【转】android好文章或博客地址收藏
  5. Android(安卓)图片阴影处理分析!
  6. Android(安卓)- Eclipse 基础修改
  7. Android(安卓)notification点击跳转到Act
  8. Android中attrs.xml文件的使用详解
  9. Android(安卓)小说阅读护眼模式
  10. Android读写文件