将文件附加到PDF

本文关键字:PDF 文件 | 更新日期: 2023-09-27 18:14:42

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

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

我现在的问题是,我似乎不能引用这些附件作为PDF中的链接。

《ittext in Action》一书建议我可以使用注释或文档级附件。我觉得这本书不容易理解,代码也不容易理解。在这方面似乎也没有什么帮助,在互联网上的文章,但抱歉的是,我错过了任何东西。

这是我第一次在这里提问,如果我做错了,我很抱歉。

将文件附加到PDF

很抱歉你不喜欢我的书。

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

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 chunk = new Chunk(" (see info)");
chunk.SetAction(action);
这是一个常见的误解,认为这将适用于任何附件。然而,ISO-32000-1对GotoE(嵌入式)功能非常明确:

12.6.4.4嵌入式Go-To Actions嵌入式go-to操作(PDF 1.6)类似于远程go-to操作但允许在嵌入到另一个PDF文件中的PDF文件之间跳转(参见7.11.4,"嵌入式文件流")。流")。

如果你想问"我想附加任何文件(如Docx, jpg,…文件)到我的PDF,并在PDF中添加一个操作,在点击链接时打开这样的文件,那么你要求的是PDF规范中不支持的事情。

请随意阅读ISO-32000-1。如果你看不懂我的书,你必须额外努力去阅读PDF标准…

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

因为这个图标很容易理解,所以我建议你使用这个图标,而不是用一个通用的链接来代替它。

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

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