我正在寻找一种解决方案来动态生成 pdf 并满足 Web 请求。我有几个问题:
- 如果我从网络获取输入、填充 LaTeX 源、生成 pdf 并返回 pdf 链接,那么使用 LaTeX 是否是一个好的解决方案?
由于此类请求的数量可能高达每天 10K,我担心负载、并发性和可扩展性问题。因此,
- 有人知道 TeX 编译器和 pdf 生成器的限制/边界吗?或者有人能建议我使用哪个吗?
附言。我选择 LaTeX 的原因是,生成的文档有很多规则,例如格式、部分对齐、边距、浮动等……
答案1
是的,你可以这样做。但是,请记住,这不是一项简单的任务。我首先尝试指出一些一般事实:
你不是第一个这么做的人,其他人包括:
- arXiv.org
- 许多期刊允许作者以 TeX 格式提交文章,并在服务器上排版
- writeLaTeX、shareLaTeX 和类似服务
- 我使用它进行 PHP 和 MySQL 驱动的数据可视化(分数图表和分数表、会议日程表等)
特别是上面的最后一个例子表明人们无需任何 LaTeX 知识就可以使用它(我制作了这个系统,其他合作者不知道 LaTeX 是什么)。
那么,请原谅我,但我认为应该指出可能存在的问题和需要解决的事情:
每天 10000 份文件的数量确实非常多!如果编译每份文件需要 8 秒,那么就是 80000 秒,也就是一整天!而且每份文件 8 秒完全有可能。为此,您需要一个非常好的硬件。从我的角度来看:内存很多,这样整个 LaTeX 发行版都可以预先缓存,或者安装在混合驱动器上,当然 LaTeX 发行版位于 SSD 部分。
如果数据不是“从 LaTeX 内部”填充的,您必须巧妙而清晰地处理输入转换,我的意思是:特殊字符、正确的格式等。它比乍一看要困难一些。
最大的问题是,如果您没有正确解决某些情况,并且在 LaTeX 编译期间出现错误消息,用户就必须等到您来看看发生了什么。
您需要在 Web 服务器环境中正确访问服务。我的意思是,如果使用 PHP,您只能使用 调用 LaTeX
exec()
,而许多系统管理员对此并不赞同,因为这样做存在风险。您当然应该在您的(我想是 UNIX)服务器上为这些内容创建一个单独的用户帐户。