android框架揭秘pdf(Android框架揭秘的基本信息)
本文目录
Android框架揭秘的基本信息
作者:(韩)金泰延 宋亨周 朴知勋 李白 林起永
译者:武传海
出版社:人民邮电出版社
ISBN:9787115274762
出版日期:2012 年4月
开本:16开
页码:424
版次:1-1
android 解析pdf文件 有什么好的开源框架
PDF操作类库
iText
iText是一个非常著名的能够快速产生PDF文件的Java类库。支持文本,表格,图形的操作,可以方便的跟
Servlet
进行结合。
Java的PDF处理类库
PDFBox
PDFBox是Java实现的PDF文档协作类库,提供PDF文档的创建、处理以及文档内容提取功能,也包含了一些命令行实用工具。
主要特性包括:
从PDF提取文本
合并PDF文档
PDF
文档加密与解密
与Lucene搜索引擎的集成
填充PDF/XFDF表单数据
从文本文件创建PDF文档
Android框架揭秘的内容简介
《android框架揭秘》通过对android系统源代码的分析,主要介绍android框架的初始化过程及主要组件的工作原理。作者直接分析和整理了android框架的主要源代码,并详细讲解了理解框架工作原理所需的各种基础知识和构成实际android平台骨干的服务框架。其中的主要内容包括:通过启动程序了解android框架的概要,移植android以及如何开发适合各种机器的应用程序,分析android框架所需的基础知识,jni(java native inte***ce)与binder基础知识,zygote、service manager、service server等android核心组件,android服务框架的结构与理解,通过camera service、activity manager service等服务分析实际的android服务等。
《android框架揭秘》不仅可以供具备一定开发经验的android开发人员参考阅读,也可作为android开发初学者的android框架入门教材使用。
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.1’
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写一个布局文件
```
《?xml version="1.0" encoding="utf-8"?》
***隐藏网址***
***隐藏网址***
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.lidong.pdf.androidpdf.MainActivity"》
《com.lidong.pdf.PDFView
android:id="@+id/pdfView"
android:layout_width="match_parent"
android:layout_height="match_parent"
/》
《/RelativeLayout》
```
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 rx.android.schedulers.AndroidSchedulers;
import rx.functi***.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 );
***隐藏网址***
}
/**
* 获取打开网络的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环境下生成PDF文件
从本地选择图片生成pdf文件,由于Android本身并没有对pdf的支持,这里选择使用一个第三方的库来达成需求。
在众多Java语言编写的PDf库中,对Android有支持且有一定用户量的的有:iText、Qoppa qPDF工具包、PDFJet。
鉴于性能和开源,决定选择iText作为此次接入的PDF库。
***隐藏网址***
If you want to use iText on Android or the Google App Engine, you need to use iTextG. iTextG is almost identical to iText, except that it only uses classes that are white-listed by Google. All references to java.awt, javax.nio and other "forbidden" packages have been removed.(在Android上使用iText,需要使用iTextG。iTextG与iText基本相同,只是替换掉了java.awt,javax.nio等Android上不支持的包。)
***隐藏网址***
***隐藏网址***
***隐藏网址***
***隐藏网址***
更多文章:
kotlin命令参数(Kotlin中,理解T.()->Unit 、 ()->Unit与(T) -> Unit)
2026年4月16日 08:40
countif函数使用注意事项(excel中的countif函数怎么用)
2026年4月16日 08:20
android框架揭秘pdf(Android框架揭秘的基本信息)
2026年4月16日 07:00
java培训骗局揭秘(请问参加过java培训的那些培训是骗人的吗)
2026年4月16日 06:00
jqueryeasyui入门(jquery easyui需要引入什么文件)
2026年4月16日 05:40





