【实用技能】使用 TX Text Control 创建带有嵌入式附件的 PDF 文档

news/2024/11/23 20:28:26/

TX Text Control .NET Server for ASP.NET(下载试用最新版)是一款Web应用程序的文档处理控件,包括用于 ASP.NET、ASP.NET Core 和 Angular 的文档编辑和查看的客户端包。目前TX Text Control .NET Server for ASP.NET 支持 .NET 5、.NET 6 和 .NET 4.8 在 Visual Studio 2019 和 2022 中创建 ASP.NET 应用程序。

企业依靠 PDF 文档进行高效沟通、协作和交易。尽管 PDF 长期以来因其可移植性和一致的格式而成为首选格式,但它们提供的不仅仅是静态的文本和图像页面。PDF 文件最强大的功能之一是能够嵌入附件 - 直接存储在文档中的外部文件。

想象一下,您收到一份附有分析原始数据的财务报告、一份附有支持性法律文件的签署合同,或一份包含 CAD 文件和视频教程的技术手册——所有这些都包含在一个有凝聚力的文件中。

“PDF 附件将文档转换为动态容器,将所有必要的资源整合到一个可共享的包中。”

TX Text Control 提供了强大的 PDF 库,可用于从模板和 JSON 等数据创建动态文档。但 SDK 还提供了重要的强大附加功能,例如将附加文件作为附件嵌入 PDF 文档。以下屏幕截图显示了 Acrobat Reader 中带有嵌入文件的 NDA PDF 文档。该文档将原始 NDA 嵌入为 MS Word DOCX 文档和 Excel 电子表格。

有了附件,PDF 就变成了一个单一的、统一的容器,可以容纳所有相关材料,无需同时处理多个文件或发送多封电子邮件。通过将支持文档(如电子表格、合同或多媒体文件)打包成一个 PDF 文件,用户可以快速访问所需的所有内容,而无需搜索文件夹或收件箱。PDF 应该始终是当前数据的当前视图,使用当前数据动态创建,并针对特定受众或读者进行个性化设置。这样,用户就可以在一个容器中获得所需的所有信息,并且可以在任何设备或平台上打开。

关键业务用例

将文件作为附件嵌入 PDF 文档可为各行各业带来巨大好处。以下是来自我们客户项目的实际业务用例,这些用例证明了此功能的价值:

  • 法律与合规:通过将支持文档附加到合同、协议和法律文件中,确保包含所有相关信息并可访问。PDF 包含主要合同,附加文件包含支持文档(例如扫描的协议、客户信函或法院命令)。
  • 金融服务:金融机构使用 PDF 附件进行审计和报告。财务报表嵌入源数据,例如 Excel 电子表格、详细收入模型或财务对账数据。
  • 医疗保健:医院和研究机构会将支持文档附加到 PDF 格式的患者或研究报告中。临床研究报告包括嵌入式实验室结果、影像文件(X 光片、CT 扫描)或医生对监管提交的评论。

使用 PDF/A-3b 存档文档

在归档文档时,整个概念变得很有趣,因为可以创建 ISO 标准 PDF/A-3b,该标准允许附件成为文档的一部分。当需要 PDF/A 时,此标准使文档容器与受支持的附件一起合法归档。

TX Text Control 支持创建此 ISO 标准,并可用于以编程方式创建带有附件的文档。要了解如何使用 TX Text Control 将文本文件附加到 PDF 文档,请参阅以下示例代码:

	// create a non-UI ServerTextControl instance
using (TXTextControl.ServerTextControl tx = new TXTextControl.ServerTextControl()) {tx.Create();// set dummy contenttx.Text = "PDF Document Content";// read the content of the attachmentstring sAttachment = System.IO.File.ReadAllText("attachment.txt");// create the attachementTXTextControl.EmbeddedFile attachment =new TXTextControl.EmbeddedFile("attachment.txt",sAttachment,null) {Description = "My Text File",Relationship = "Unspecified",MIMEType = "application/txt",CreationDate = DateTime.Now,};// attached the embedded filetx.DocumentSettings.EmbeddedFiles =new TXTextControl.EmbeddedFile[] { attachment };// save as PDF/Atx.Save("document.pdf", TXTextControl.StreamType.AdobePDFA);
}

附件由Embedded File 对象表示。在构造函数中,您可以添加文件名、数据和其他元数据。此外,还提供附件的 MIME 类型(在本例中为application/text)、文本描述、关系以及附件的创建日期。

关系是一个可选字符串,用于描述嵌入文件与其所包含文档之间的关系。它可以是预定义值。或者,它应遵循第二类名称的规则(ISO 32000-1,附件 E)。预定义值为Source、Data、Alternative、Supplement或Unspecified。

结论

PDF 附件是一项强大的功能,可以提高 PDF 文档的实用性和价值。通过将附加文件直接嵌入 PDF,用户可以将所有相关材料整合到一个可共享的包中。在法律、金融和医疗保健等行业中,文档通常需要支持材料来提供背景或证据,此功能尤其有价值。


http://www.ppmy.cn/news/1549362.html

相关文章

低代码开发平台搭建思考与实战

什么是低代码开发平台? 低代码开发平台是一种平台软件,人们能通过它提供的图形化配置功能,快速配置出满足各种特定业务需求的功能软件。 具有以下特点: 提供可视化界面进行程序开发0代码或少量代码快速生成应用 什么是低代码产…

刷题-1122

1. 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。 例如,当输入5时,应该输出的三角形为: 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 import sys def generate_snake_matrix(n):matrix [[0]*n for _ in range(n)]curent_num 1…

KVM虚拟机拷贝与迁移

在使用虚拟的过程中,经常需要快速复制虚拟机以构建集群环境,不同的虚拟机管理软件有不同的管理方法,KVM(Kernel-based Virtual Machine)是一种比较流行的开源虚拟机,使用KVM复制虚拟机的过程可以分为几个步骤。这里假设你已经有了一个运行中的虚拟机,并且想要创建它的多…

【大数据技术基础 | 实验十二】Hive实验:Hive分区

文章目录 一、实验目的二、实验要求三、实验原理四、实验环境五、实验步骤(一)启动Hadoop集群(二)用命令进入Hive客户端(三)通过HQL语句进行实验 六、实验结果七、实验心得 一、实验目的 掌握Hive分区的用…

QT 实现仿制 网络调试器(未实现连接唯一性) QT5.12.3环境 C++实现

网络调试助手&#xff1a; 提前准备&#xff1a;在编写代码前&#xff0c;要在.pro工程文件中&#xff0c;添加network模块。 服务端&#xff1a; 代码&#xff1a; widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QtWidgets> #inclu…

cocos creator 3.8 一些简单的操作技巧,材质的创建 1

这是一个飞机的3D模型与贴图 导入到cocos中&#xff0c;法线模型文件中已经包含了mesh、material、prefab&#xff0c;也就是模型、材质与预制。界面上创建一个空节点Plane&#xff0c;将模型直接拖入到Plane下。新建材质如图下 Effect属性选择builtin-unlit&#xff0c;不需…

谈谈Mysql的常见基础问题

一.为什么Mysql选择B树作为索引&#xff1f; 索引(Index)是帮助MySQL高效获取数据的数据结构&#xff1b; 但是索引的数据结构有多种&#xff0c;如MySQL的InnoDB存储引擎支持B树索引还有哈希索引(可以理解为简单的HashMap)。 而针对关系型的数据&#xff0c;如果选用哈希索引…

【C++】几个基本容器的模拟实现(string,vector,list,stack,queue,priority_queue)

目录 一.string 二.vector 三.list 四.stack 五.queue 六.priority_queue 一.string #pragma oncenamespace hebre {class string{public:typedef char* iterator;typedef const char* const_iterator;//Member functionsstring():_str(new char[1]{\0}),_size(0),_capac…