我们的医疗仪器会生成患者数据和图像。医院希望收到包含患者详细信息和图像的 PDF 文档,格式非常特殊 - A4 页面、特定位置的条形码、特定页边距等。
我不想在代码中逐行从空白 Canvas 组装此 PDF,因为如果我这样做,我将不得不编写数千行代码,而且当我们有不同的客户需要不同的格式时那我们就需要把这几千行代码重新改写一遍。而且,如果客户想要对格式进行小的更改,我们需要发布新版本。
我想以“邮件合并”的方式进行:我创建了一个报告模板,一个包含条形码、页眉和页脚以及所有其他静态内容的准备就绪的文档。模板中有用于患者详细信息和图像的特殊占位符,例如“[@PatinetFirstName@]”、“[@PatientLastName@]”、“[@PatientPreviousVisitsTable@]”,...然后,对于每个患者,我的代码将复制此模板,找到那些特殊的占位符,并用真实数据或图像替换它们。这样,如果不同的客户需要不同的格式,我需要做的就是编辑这个模板,我的代码保持不变。
这意味着我需要能够使用这个库在现有 PDF 中进行搜索和替换,在任何地方插入段落、表格和图像,并能够指定段落和表格的格式以及大小和图像的分辨率。
我该怎么做?我的意思是,是否有允许我执行此操作的 C# API?
最佳答案
我建议您查看 Html Renderer for PDFSharp (NuGet) .您可以使用它将 Html 转换为 PDF。
这意味着您可以将模板(包括 @ 占位符)保留在数据库中,并使用值动态填充 Html 模板并将其转换为 PDF。如果以后需要更改格式,只需更改 Html 模板即可。
至于搜索和替换,如果您在转换为 PDF 之前存储了 Html 标记,则可以在 Html 标记中进行搜索和替换,然后从新的 Html 标记重新生成 PDF。
生成 PDF 以发送给客户。但是处理所有其他系统处理的原始 Html。
关于C# PDF 库来操作 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39096232/