用低代价的服务器过程将文档处理自动化
2009-05-13 01:07:53来源:未知 阅读 ()
首先是最简单的
首先,对于快速的人可读性、粗略的字数统计等而言,用字符串扫描.DOC文档通常是足够了。像
stringssomething.doc|wc-w
这样的命令返回的字数统计值通常误差在10%以内。
对这样粗糙的方法进行改进会非常困难。问题的核心在于.DOC作为一种格式,在这些年里已经进行了很大的更改。难于跟踪。
相关的.RTF有几个优势:它用ASCII进行编码,几乎具有人工可读性,并且它不太可能被病毒传染。而且,这些年里它已经显得稳定多了;1997年的阅读器多半能理解今年编写的.RTF,反之也是。在我所管理的一些网络上,我进行了流量限制:把.DOC排除在外,而赞成使用.RTF,以预防恶意代码。原则上说,这剥夺了用户使用某些字处理特性的权利,而这些特性只能从.DOC获得。实际情况是,我从未遇到过一个这样的用户:他(或她)真正使用了一种用.RTF无法达到的效果。
下面的参考资料一节,列出了几个轻量级Word阅读器:wvWare、catdoc等。这些通常能快速简便地进行安装和使用。大多数UNIX桌面用户现在都知道,UNIX上的OpenOffice完全可以用来替代WindowsWord的常见用途,而且非常擅长读和写.DOC文档。OpenOffice公开了可编制脚本的接口,这使得它可以用Java、C++、Python、OpenOffice.orgBasic、StarScript、CORBA或OLEAutomation对文档内容进行编程。OpenOffice还集成了使用这种技术的宏录制。本质上需要商业许可证的产品StarOffice(TM)也是如此。
事实上,尽管StarOffice在形式上与OpenOffice是有区别的,本专栏文章完全着重于描述后者,因为根据后者的网站,“StarOffice软件的未来版本,从6.0开始,将使用OpenOffice.org源代码、API(应用程序编程接口)、文件格式和参考实现进行构建”(请参阅参考资料)。在今后的OpenOffice实现中,“UNO(通用网络对象,UniversalNetworkObject)是个基于接口的组件模型”。
可是,OpenOffice是处理Word文档相当“笨重的”方式。它至少需要图形用户界面(GUI)服务,通常还需要相当细致的安装和多个编程的过程。面向XML的“格式化对象”(FO)与它非常相像:尽管功能很强大,但是它在开始工作之前需要进行许多工作。如果您不想进行这些我常常碰到的简单操作-生成固定格式的.RTF发票、“擦掉”收入状况周报表、用特定于阅读器的信息定制Web下载等等这类的事-那么您应该研究.RTF库的直接语言绑定。其中最好的是RobertRothenburg的PerlAPI。
RTF::Document
对于最简单的.RTF生成过程来说,进行简单的剪贴就够了。您可以用shell脚本,用参数表示象图1这样的生成。
清单1.invoice.sh的源代码(部分)
#!/bin/sh
AMOUNT="1234.56"
DATE="06October2002"
NUMBER="9999/3333"
PO="6543"
FORM="{\rtf1\ansi\deff0\deftab720{\fonttbl...
\par\pard\plain\f3\fs20
\par\pard\qr\plain\f2\fs24\cf0$DATE
\par\pard\plain\f2\fs24\cf0Phaseit,Inc.
\par#$NUMBER
\par
\parPleasepay\$$AMOUNTto
...
为了使编程更加结构化、可伸缩和可维护,请使用Perl的RTF模块。这些模块使得有可能编写出像清单2中所示的代码。
清单2.invoice.pl的源代码(部分)
useRTF::Document;
$rtf=newRTF::Document({
doc_page_width=>'8.5in',
doc_page_height=>'11in'
});
$fCourier=$rtf->add_font("Courier",
{family=>monospace,pitch=>fixed,
alternates=>["CourierNew","AmericanTypewriter"]
}
);
$fTimes=$rtf->add_font("TimesNewRoman",
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 一次云服务器安装达梦数据库后无法远程访问问题处理 2020-05-24
- Linux 下三种提高工作效率的文件处理技巧 2020-05-23
- 万字长文!一次性弄懂 Nginx 处理 HTTP 请求的 11 个阶段 2020-05-21
- 自动化运维工具Ansible之LNMP实践环境部署 2020-05-11
- 关于Nginx处理HTTP请求的11个阶段流程 2020-05-07
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash