使用PyRTF的生成RTF文件
来源:互联网 发布:js修改div属性 编辑:程序博客网 时间:2024/06/07 00:04
小试了一把PyRTF,动态生成RTF文件
PyRTF 是动态生成 RTF 文档的一个Python包。如果你需要动态生成使用MS Word查看的一些文档之类的东东,这个产品可能是你的选择。doc格式不公开,而且一般生成起来很慢,而且依赖一些com组件。
RTF 文件是一个公开的格式, PyRTF则是一个很小的纯Python的包。因此很多情况下,选择PyRTF也是一个不错的选择。
RTF的格式说明
英文的规范阅读好麻烦,先转载一个 中文的RTF格式介绍.
{\rtf1\ansi\ansicpg936\deflang1033\deflangfe2052 -- rtf 字符串的声明{\fonttbl -- 字体列表 {\f0\finl Comic Sans MS;} -- 字体列表中的第一项 {\f1\fmodern\fprq6\fcharset134\'cb\'ce\'cc\'e5} -- 字体列表中的第二项, -- “\’cb\’ce\’cc\’e5” 是对中文字符的特殊说明, -- 对于特殊的非英语字符串,如中文,日文等在rtf格式中 -- 的存储都是以ASCII的形式存放的}{\colortbl -- 颜色列表 ; -- 颜色列表的第一项会放一个Color.Empty的值 \red0\green0\blue255; -- 颜色列表的第二项 …}\viewkind4\uc1\pard\nowindctlpar\qj -- rtf 字符串主体的开始\cf1\highlight2\lang2052\f0\fs20 string -- “string”字符串使用颜色列表中的第二项, -- 高亮的背景色为颜色列表的第三项, -- 字体使用字体列表中的第一项字体,字号为10号字体(20/2=10)…}
PyRTF编程
下载PyRTF后,可以参考其中的example.py文件。主要问题是对中文的支持。下面是我的一个小例子:
doc = Document()ss = doc.StyleSheet# 在这里加入中文字体,\xcb\xce\xcc\xe5是“宋体”的中文内码ss.Fonts.append(Font("\\'cb\\'ce\\'cc\\'e5", 'modern', 134, 6))section = Section()doc.Sections.append(section)# 得到这个字体tps = TextPS(font=getattr(ss.Fonts, "\\'cb\\'ce\\'cc\\'e5") )# 设置颜色sps = ShadingPS(background=ss.Colours.Red)text = Text('中国', tps, sps)p = Paragraph()p.append(text)section.append(p)DR = Renderer()out = file('bb.rtf','w')DR.Write(doc, out)out.close()
存在的问题
最终我还是没有选择PyRTF,主要的原因是:
- 不能解析和控制RTF文件,也就是说,无法根据模板来制作RTF文件
- 表格不能设置背景颜色。相信以后PyRTF会提供这个功能的
我选择了什么?当然是使用OpenOffice的PyUNO进行开发 ;-)
转自:http://zoomq.qiniudn.com/ZQScrapBook/ZqFLOSS/data/20051227093533/index.html
- 使用PyRTF的生成RTF文件
- PyRTF模块生成rtf的一些常见用法
- rtf模板生成文件的好例子
- RTF的使用
- doxygen生成rtf/word使用小心得
- RTF文件
- 关于独立RTF文件合并的问题
- Java中存取Rtf文件的程序
- Java中存取Rtf文件的程序
- mfc显示带图文的rtf文件
- RTF与RTFD格式的文件
- itext使用rtf格式生成word,使用image为页眉
- RTF文件解析器
- ios创建rtf文件
- 如何修复RTF文件
- JAVA解析RTF 文件
- XML文件到RTF和PDF的转换
- XML文件到RTF和PDF的转换
- Format函数
- 使用$.getJSON实现跨域ajax请求示例代码
- 黑马程序员数据绑定
- JBoss jmx-console和web-console的安全设置
- 触摸消息的整体派发流程
- 使用PyRTF的生成RTF文件
- C#中如何将DataTable中的数据导出到Excel
- 如何学好C语言
- 整型与无符号整型 运算时值的转换
- jfeinstein10的SlidingMenu环境的部署
- Bootstrap Popover 隐藏的Javasript方法
- LVS测试
- JSP表格模板升级(1)-- 用Java反射动态指定方法和参数
- 程序效率篇