【发布时间】:2016-07-08 07:39:22
【问题描述】:
我的任务是创建(或寻找已经在工作的东西)一个具有 API 的集中式服务器,该 API 能够返回传递一些数据的 PDF 文件,以及模板的名称,它必须是强大的解决方案,企业就绪。目标如下:
- 针对不同公司事物的一系列模板。 (发票、订单、订单计划等)
- 一种从外部软件(网站、ERP 等)返回 PDF 的方法
- 可能是已经准备好的企业解决方案,但他们迫切需要定制解决方案。
- 可以是任何语言,但我们内部没有专门的 Java 程序员。我们是 PHP / .NET,我们中的一些人涉足,但学习曲线可能有点陡峭。
所以,我一直在阅读。我们认为可能的一种方法是安装 jasper 报告服务器,并在 Jaspersoft Studio 中创建模板,然后使用 API 返回 PDF 文件。一位同事代表这个选项,因为它基本上已经完成了,但是 1º 是 java 和 2º 我认为这就像用锤子敲碎坚果一样。
我们一直在玩弄的其他选项是使用 C# 和 iTextSharp 创建一个服务器,并创建我们自己的 API 来准确返回包含我们需要的数据的 PDF。这样做我们可以获得一些好处,例如使用我们已经制作的数据库连接器并从数据库中提取大部分数据,而不是必须传递大量数据,但因为它是裸露的,它并没有真正的模板系统。我们可以使用 XMLWorker 或 c# 类创建一些东西,但它并不像拖放那样“简单”。对于这种情况,我也一直在阅读有关 XFA 的信息,但 iText 网站上的文档具有误导性且不清楚。
我也一直在阅读其他一些替代方案,例如 PrinceXML、PDFBox、FOP 等,但概念将是和 iText 一样,我们必须自己做。
我的投票,即使更多的工作是走 iText 的路线并使用 HTML / CSS 作为模板,但我的同事声称模板应该可以每隔一周更改一次(我对此表示怀疑),并且很容易。 HTML / CSS 工作量太大。
所以真正的问题是,其他企业如何处理这个问题?我在搜索中遗漏了什么吗?有没有更简单的方法来实现这一点?
PS:我不知道 SO 是否是这个问题的正确位置,但我大部分时间都迷路了,冒着“太宽泛的问题”或“离题”标签的风险似乎还不错。
编辑:
- 输入应与相同的请求一起发送。如果我们决定使用 C# 路线,我们可以直接从 ERP 获取大约 70% 的数据,但无论如何,它应该接受带有一些数据(模板和该模板所需的数据,如发票数据或如果我们有权访问 ERP,则为发票 ID)。
- 输出应该是 PDF(对其他格式不感兴趣,只对 PDF 感兴趣)。
- 模板将仅由 IT 更新。 (主要是我们,开发团队)。
- 就性能而言,我不知道我们需要多少肌肉,但现在,没有任何增加,我们每天查看约 500/1000 个 PDF,主要在 10 到 10.30 和 12 到 13 小时打印。然后在一天剩下的时间里可能会增加 100 个。
- 当行星对齐并且是销售季节(一年两次)时,TOP 性能每天不应超过〜10000。这应该是我们未来几年的上限。
-
模板有一些要求:
- 有重复的块(例如发票行)。
- 将图像作为背景、水印和块。
- 必须是多语言(可翻译,使用相同的数据)。
- 有一些仅在条件下显示的块。
- 依赖于页面的块(PDF 页眉/页眉/页脚/PDF 页脚)
- 模板可能必须对一些数据进行计算,我认为我们永远不需要这个,但公司可能会要求这样做。李>
PDF 不需要存储,因为我们有一个文档管理系统,也许将来我们可以链接它们。
额外数据:现在我们正在使用“Fast-Reports v2 VCL”
【问题讨论】:
-
iText 网站上的文档具有误导性且不明确 - 这种没有参考的声明不太公平。
-
对不起,我没有解释自己,我不是说文档不清楚,我会编辑它,我的意思是我进入了developers.itextpdf.com,只找到了参考和示例,而不是文档本身,我无法真正评估产品是否符合我的需求,理解 XFA、模板功能或什么是或不是什么并不容易。我不得不从 itext 网站上读到它。我知道最明确的是我,以及我对文档的期望。
标签: c# pdf server pdf-generation enterprise