在线预览office和pdf(Android,web端都可用)

背景

实现方案有好多。在这里给出一个完整的解决机制。当然了,这只是其中的一种,还有不完善的地方,有待改进。
基本思路::使用pdf.js实现在线预览pdf功能。将office(doc,execel),txt,png,jpeg等常见的格式在web端进行转换。
起初使用apose这个包,在Linux下中文字体显示为空格。这个网上有好多解决方案。但是由于内网环境,无法下载fc-list命令,放弃使用这个包。改成使用XDocService.jar这个包,简单看一下源码克制这个转换是放在xdoc服务器上进行的解析。如果条件允许,建议自己搭建一套解析系统,最好操作系统使用Windows。由于资源紧张,所以目前的方案使用的xdoc服务器进行的解析。能够将office(doc,execel),txt,png,jpeg等常见的格式转化为pdf,这个转化的功能还是很强大的。(帮xdoc做了一波广告)。不过话说回来,xdoc解析txt文件是会自带广告,这个怎么去掉,通过分析源码,修改pipe函数,过滤掉相关的广告字段就ok了。

常用的解决办法

主要内容来自于这个链接:https://www.jianshu.com/p/2f39de746900
pdf在线预览的方式还是比较多的,比如iframe,a标签,jquery.media.js插件,pdfjs,pfdObject等。对于每个方式的使用在文章中都有涉及,不在赘述。
word在线预览:如果文件所在的服务器能通过公网进行访问,最好使用下面这种方式

<iframe src='https://view.officeapps.live.com/op/view.aspx?src=http://storage.xuetangx.com/public_assets/xuetangx/PDF/1.xls' width='100%' height='100%' frameborder='1'>
            </iframe>

xdoc这个在线预览word没有实现,有兴趣的可以自己探索一下。Google也提供了word解析的接口,在中国,强大的墙的存在,只能放弃。

完整解决方案

将通用格式转化为pdf,然后实现pdf的在线预览。pdf在线预览通过提供服务的方式实现。
如下所示:


   <iframe id = "myframe" src="http://10.24.19.86:8080/integrain-web/pdfjs/web/viewer.html" frameborder="0" width="100%" height="100%" >
                        <p>您的浏览器不支持  iframe 标签。</p>
                    </iframe>
              var  srcPdf = "http://10.24.19.86:8080/integrain-web/pdfjs/web/viewer.html?file="+ret;
              cmApi.router.loadContent('mobile/html/cyxshls/zlaq/zlaq_fj.html');
               $$("#myframe").attr('src',srcPdf);

将pdfJs放在服务器上,解析工作通过服务器来进行。
文件要和pdfJs在同一个服务器上。如果不在服务器上所造的目录,目前没有探索出可行的访问pdf文件的方案。
常用格式(word,execel)转化为pdf,使用的xdoc包,核心代码如下:(就一行核心的代码,真心简单)

package  com.test.pdf;
import java.io.File;
import java.io.IOException;
 
import com.hg.xdoc.XDocService;
 
/**
 * XDocService调用示例
 * @author xdoc
 */
public class Test {
	/**
	 * main
	 * @param args
	 */
	public static void main(String[] args) {
		XDocService service = new XDocService();
		try {
			service.to("F:\\coderTest\\drag.doc", new File("f:/coderTest/drag.pdf"));
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

至于XDocService和整个解决方案过段时间会把源码上传上去。
如果急用的话,qq邮箱联系我2250911301@qq.com

资料已经上传:https://download.csdn.net/download/helloworlddm/11565898

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

helloworddm

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值