书签 分享 收藏 举报 版权申诉 / 16

类型Android开发笔记一百四十一读取PPT和PDF文件.docx

  • 文档编号:6400439
  • 上传时间:2023-01-06
  • 格式:DOCX
  • 页数:16
  • 大小:216.99KB

output.write(divEnd.getBytes());

isRight=false;

}

}

break;

//结束标签

caseXmlPullParser.END_TAG:

StringtagEnd=xmlParser.getName();

if(tagEnd.equalsIgnoreCase("tbl")){//输入表格结束标签

output.write(tableEnd.getBytes());

isTable=false;

}

if(tagEnd.equalsIgnoreCase("tr")){//输入表格行结束标签

output.write(rowEnd.getBytes());

}

if(tagEnd.equalsIgnoreCase("tc")){//输入表格列结束标签

output.write(columnEnd.getBytes());

}

if(tagEnd.equalsIgnoreCase("p")){//输入段落结束标签

,如果在表格中就无视

if(isTable==false){

if(isCenter==true){//输入居中结束标签

output.write(centerEnd.getBytes());

isCenter=false;

}

output.write(lineEnd.getBytes());

}

}

break;

default:

break;

}

event_type=xmlParser.next();//读取下一个标签

}

output.write(htmlEnd.getBytes());

output.close();

htmlArray.add(htmlPath);

}

}catch(Exceptione){

e.printStackTrace();

}

}

读取pdf文件

Vudroid方式读取

上面以html方式显示pptx文件,虽然能够读取图片与文字样式,但是与原始的幻灯片容相差还是比较大的,主要问题包括:

1、ppt中的图文不像word那样一般是上下排列,而是既有上下排列又有左右排列,还有根据相对位置的排列。

可是简单的html格式只能上下排列,难以适应其它方向的图文排版。

2、ppt通常自带幻灯片背景,也就是每个幻灯片都有的背景图片,可是slide*.xml文件中解析不到背景图片;况且由于背景图的存在,使得图片序号与幻灯片插图对应不上,造成幻灯片页面上的插图产生混乱。

3、每ppt的尺寸规格是固定的,与长度和高度的比例是不变的;但是一旦转为html格式,页面的长宽比例就乱套了,完全不是ppt原来的排版布局。

如果在java服务端,可以调用HSLFSlide类的draw方法,直接把每幻灯片原样画到临时的图像文件。

然而在手机端,无法调用draw方法,因为该方法用到了java的awt图像库,而Android并不提供该图像库,所以poi不能直接绘制ppt的原始页面。

既然直接显示原样的幻灯片难以实现,那么就得考虑其它的办法,一种思路是先在服务端把ppt文件转换为pdf文件,然后手机端再来读取pdf文件。

正好Android平台上拥有多种pdf的解析方案,其中之一是开源框架Vudroid,该框架允许读取pdf文件,并把pdf文件容以列表形式打印在屏幕上。

下面是使用Vudroid框架解析pdf文件的效果图:

若要在Android项目中集成Vudroid框架,可按照以下步骤处理:

1、在AndroidManifest.xml中添加SD卡的操作权限;

2、在libs目录下导入Vudroid的so库libvudroid.so;(使用ADT开发时)

3、在工程源码中导入org.vudroid.pdfdroid包下的所有源码;

下面是使用Vudroid框架解析pdf文件的代码:

[java]viewplaincopy

publicclassVudroidActivityextendsActivityimplements

OnClickListener,FileSelectCallbacks{

privatefinalstaticStringTAG="VudroidActivity";

privateFrameLayoutfr_content;

privateDecodeServicedecodeService;

Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_pdf_vudroid);

decodeService=newDecodeServiceBase(newPdfContext());

findViewById(R.id.btn_open).setOnClickListener(this);

fr_content=(FrameLayout)findViewById(R.id.fr_content);

}

Override

protectedvoidonDestroy(){

decodeService.recycle();

decodeService=null;

super.onDestroy();

}

Override

publicvoidonClick(Viewv){

if(v.getId()==R.id.btn_open){

FileSelectFragment.show(this,newString[]{"pdf"},null);

}

}

Override

publicvoidonConfirmSelect(StringabsolutePath,StringfileName,Mapmap_param){

Stringpath=String.format("%s/%s",absolutePath,fileName);

Log.d(TAG,"path="+path);

DocumentViewdocumentView=newDocumentView(this);

documentView.setLayoutParams(newViewGroup.LayoutParams(

ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT));

decodeService.setContentResolver(getContentResolver());

decodeService.setContainerView(documentView);

documentView.setDecodeService(decodeService);

decodeService.open(Uri.fromFile(newFile(path)));

fr_content.addView(documentView);

documentView.showDocume

配套讲稿:

如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

特殊限制:

部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

关 键  词:
Android 开发 笔记 一百 四十一 读取 PPT PDF 文件
提示  冰豆网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:Android开发笔记一百四十一读取PPT和PDF文件.docx
链接地址:https://www.bdocx.com/doc/6400439.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2008-2022 冰点文档网站版权所有

经营许可证编号:鄂ICP备2022015515号-1

收起
展开