我有一个由公司提出的约3000种产品的关系数据库(PostgreSQL 8.4)。该数据库用于显示公司网站上的产品(在python 2.6应用程序上运行)。 我的最终目标是构建PDF文件以打印产品目录的纸质版本,我想知道用于此目的的技术。 对于每个新目录,每年必须重复一次操作,因此我希望自动化目录生成但仍然具有一定的灵活性,因为我不会永远留在公司,并且没有技术人员可以取代我(小公司,小预算)。
理想情况下,我想在文本编辑器(例如OpenOffice)中动态生成3000个产品的结构化内容,原因如下:
Soutions首先看了:
因此,如果您对此类工作有所了解,那么我将非常乐意获得有关正确技术的一些提示。非常感谢你。
答案 0 :(得分:1)
LaTeX允许将内容与样式分开,因为它是一种标记语言(如果你来自它,感觉非常像HTML和CSS)。
http://en.wikipedia.org/wiki/Markup_language#TeX
http://en.wikibooks.org/wiki/LaTeX/Modular_Documents#Getting_LaTeX_to_process_multiple_files
这样,您可以将所有格式选项放在基本文件中,然后输入或包含包含工作实际内容的文件。这意味着你的工作过程的重要部分,即写作,在很大程度上与格式选择分开(这是LaTeX对于严肃写作非常有用的主要原因之一!)因此,你将只处理文本和非常基本的诸如\ section,\ emph等命令。您的文档将整洁,更容易使用..
命令\input{filename}
和\include{filename}
插入文本文件(使用或不使用LaTex命令)。
对于更多自定义,您需要自己的宏来读取内容文件并相应地设置它们的样式。
有关定义宏的一些资源(由于我现在的声誉,我无法提供链接的超链接):
en.wikibooks.org/wiki/LaTeX/Macros
en.wikibooks.org/wiki/LaTeX/Creating_Packages
lstinputlisting
包读取源代码并以“样式方式”输出。
\lstinputlisting[caption=My caption]{sourcefile.lang}
答案 1 :(得分:1)
ODF格式非常复杂,但有些库已经存在以帮助生成文件,Python中有一些可用:odfpy,lpod,JODreports,Apache odf toolkit ,... 他们似乎做了这个工作!
Simliar question但是对于Java
答案 2 :(得分:0)
您要找的是database publishing。这可以通过批处理格式化程序(例如TeX或XSL-FO)来完成,或者 - 如果您不需要100%自动化 - 可以使用InDesign和Quark等DTP程序的插件。
答案 3 :(得分:0)
是的,正如Martin Schroeder所指出的那样是关于数据库发布。最近类似的specific question是关于使用pod工具生成LibreOffice ODT文件。
pod 方法使用Python。 Python语句位于ODF模板文件中。您可以将该方法与任何脚本语言一起使用。
LibreOffice Writer也有'flat XML'文件格式。数据库发布批处理过程需要使用从数据库生成的XML代码替换某些占位符。 这可以通过解释器来完成,该解释器遍历您的“平面XML”文件并查找某些关键字或命令然后执行它们。
<强>优势强> 这种方法的优点是普通用户只需使用LibreOffice就可以改变报告。批处理程序解释的插入命令可以轻松放置在正确的位置。这些命令可能具有DSL的形式。