将文件附加到PDF

我正在努力将文件附加到我在运行时生成的PDF。

我在MVC框架中使用C#ASP.net。 我最初使用HTML视图从HTML视图创建PDF,但后来我意识到,我还需要将文件附加到PDF。 我转而使用iText,我已经设法使用iTextSharp for PDF的解决方案将文件附加到PDF – 如何添加文件附件?

我现在遇到的问题是我似乎无法将这些附件作为PDF中的链接引用。

“iText in Action”一书建议我可以使用注释或文档级附件。 我发现这本书很容易理解,或者代码很容易理解。 在互联网上的文章方式似乎也几乎没有帮助,但道歉是我错过了什么。

这是我第一次在这里提出问题,所以如果我做错了,我会道歉。

对不起,你不喜欢我的书。

你读过第16章了吗? 您希望将文件嵌入为文档级附件,如下所示:

PdfFileSpecification fs = PdfFileSpecification.FileEmbedded(writer, ... ); fs.AddDescription("specificname", false); writer.AddFileAttachment(fs); 

在文档中,您要创建一个链接,以打开使用关键字“specificname”描述的PDF文档。 这是通过一个动作完成的:

 PdfTargetDictionary target = new PdfTargetDictionary(true); target.EmbeddedFileName = "specificname"; PdfDestination dest = new PdfDestination(PdfDestination.FIT); dest.AddFirst(new PdfNumber(1)); PdfAction action = PdfAction.GotoEmbedded(null, target, dest, true); 

您可以将此操作用于注释,块等…例如:

 Chunk chunk = new Chunk(" (see info)"); chunk.SetAction(action); 

认为这适用于任何附件是一种常见的误解。 但是,ISO-32000-1非常清楚GotoE(mbedded)function:

12.6.4.4嵌入式定位操作嵌入式定向操作(PDF 1.6)类似于远程定位操作,但允许跳转到嵌入另一个PDF文件的PDF文件(参见7.11.4,嵌入式文件流“)。流”)。

如果您打算询问“我想将任何文件(例如Docx,jpg,…文件)附加到我的PDF并向PDF添加操作,点击链接后会打开这样的文件”,那么您就是询问PDF规范中不支持的内容。

随意阅读ISO-32000-1。 如果你不理解我的书,你将不得不额外努力阅读PDF标准……

在ABCpdf菜单项下找到的ABCpdf Annotations示例项目显示了如何添加文件附件。 它们使用标准的“Pin”格式链接图标。

因为这个图标通常被理解,所以我建议您使用该图标而不是用通用链接替换它。

但是,如果您需要使用更通用的链接,请通过电子邮件与我们联系,我认为我们有一些您可以使用的示例代码。

我在ABCpdf .NET软件组件上工作,所以我的回复可能包含基于ABCpdf的概念。 这就是我所知道的。 :-)”