`
sealbird
  • 浏览: 570622 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

借助 unoconv 批量转 xls 到 pdf文件

    博客分类:
  • Flex
阅读更多
文章分类:Web前端 
因为公司的一些业务需求,我需要批量的将所有的xls文件转化为pdf文件,如果一个个的点击,借助于adobe,那么无疑会需要很长的时间;相信这样子的业务需要肯定有市场的,这也意味着肯定存在这样子的软件。 

       网上搜索了很多软件,竟然发现这样子的软件多数为收费软件,或者存在免费软件,但是批量转的文件数量受到限制,而且转的效果并不是十分理想。 

        想到openoffice可以直接导出为pdf文件的功能,我想一定可以通过openoffice批量的将excel转为pdf。在网上搜索发现,debian系列的liunx源里面存在一个名叫unoconv的包,可以批量的将exce转为pdf,关键是转的速度很快,而且质量很高!好的,就用这款软件来实现吧。 

        由于公司封锁了多数文件的下载,我试验反复没有成功,让同事帮忙下载的文件,安装好以后也没有效果(我使用的是fedora,并且unoconv有rpm的包),就在我一筹莫展的时候,我发现原来下载的文件是不正确的(名字都可以看出来)。 

         从新下载几百k的小rpm包,成功安装。 
新建excel文件,保存为a.xls, 
在终端运行 unconv -f pdf a.xls 
几秒钟后,转化成功。 

     如果有中文文件是不是可以完美的转为pdf?!带着疑问,我重新测试,good!如果多个文件的效率呢?不断的粘帖,等到了一百个文件左右的时候,重新运行,如此的高效,perfect! 

      至此,我已经完成了自己的一大心愿。 

      所以,如果你在为快速的转任何office文档,txt文档到pdf而发愁的话,那么,我推荐你使用linux(主要是debian系列和redhat系列的linux)和openoffice完美的解决这所有的问题。 

       另外,我发现unoconv是用python实现的,这也意味着两个跨平台的工具(openoffice和python)结合在一起,必然也可以产生跨平台的的windows版,只是我现在水平较弱,还没有实现,期待高手给出windows版的解决方案。




批转换,带目录树
参考链接 http://bbs.chinaunix.net/archiver/?tid-1378949.html


引用
wenyunqiu 发表于 2009-02-25 16:36

请教:如何批量将Doc文件转换为Pdf文件?
要转换一个doc文件为PDF格式,只需在命令中执行:

$ unoconv -f pdf myDoc.doc
即会生成一个名为myDoc.pdf的pdf文件。

现在我需要将一个目录树下面所有的doc文件转化为pdf的文件副本    保留原文件     然后保持文件目录结构不变  
程序怎样写最高效最美观(文件很多很多)
waker 发表于 2009-02-25 16:39

看看基础12篇中的find和xargs
我是DBA 发表于 2009-02-25 16:41

for i in `ls`
do
unoconv -f pdf $i
done
haimming 发表于 2009-02-25 16:46

find ./ -name "*.doc" -exec unoconv -f pdf {} \;
liaosnet 发表于 2009-02-25 16:48

:em17: :em17:
for i in * 
do
    unoconv -f pdf ${i}.doc
done

kwokcn 发表于 2009-02-25 16:51

引用
原帖由 haimming 于 2009-2-25 16:46 发表
find ./ -name "*.doc" -exec unoconv -f pdf {} \;

LZ提到了是目录树,这个应该是正解。
haimming 发表于 2009-02-25 16:51

回复 #5 liaosnet 的帖子
dx,忘了目录结构了:mrgreen: :mrgreen:
ywlscpl 发表于 2009-02-25 16:53

for i in `ls *.doc`
do
    unoconv -f pdf $i
done
ywlscpl 发表于 2009-02-25 16:54

恩,多层目录的话得用find
liaosnet 发表于 2009-02-25 16:58

引用
原帖由 haimming 于 2009-2-25 16:51 发表
dx,忘了目录结构了:mrgreen: :mrgreen:

额...那就得用find了..

find . -type f -name "*.doc" | xargs unoconv -f pdf
飞鸿无痕 发表于 2009-02-25 21:52

回复 #10 liaosnet 的帖子
严重同意!!!!!!!!!
dashan79 发表于 2009-02-26 10:32

unoconv  linux不带的,需要下载一个吧。?
liaosnet 发表于 2009-02-26 10:49

引用
原帖由 dashan79 于 2009-2-26 10:32 发表
unoconv  linux不带的,需要下载一个吧。?


:em17: :em17: 自己装的~
wtuter 发表于 2009-02-26 14:39

回复 #13 liaosnet 的帖子
我的也没有,那个版本的linux有自带的吗?
wenyunqiu 发表于 2010-04-09 14:36

debian是源包安装的 
红帽似乎得下载安装    我只试过debian上的     批量转换文档格式确实很快很方便
709101040516 发表于 2010-04-09 14:52

linux 下安装包谁能提供一下呢。这样就省得用windows的了。
wenyunqiu 发表于 2010-04-09 14:56

http://dag.wieers.com/rpm/packages/unoconv/
这是redhat的     这命令依赖openoffice      在红帽上我转化不成功      其它哪位试出来共享一下方法
wgyzhechao 发表于 2010-04-09 14:57

find ./ -type f -exec unoconv -f pdf {} \;
yigenjin 发表于 2010-04-09 15:20

引用
for i in `ls`
do
unoconv -f pdf $i
done
我是DBA 发表于 2009-02-25 16:41



我同意5楼的做法。

你知道你这个`ls`的后果么?

后果就是很多文件名中存在空格的文件将不能正确地被处理。


页: [1]
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics