我正在努力将文件附加到我在运行时生成的PDF文件中。
我在MVC框架中使用C#ASP.net。我最初使用HTML视图从HTML视图创建PDF但我意识到,我还需要将文件附加到PDF。我转而使用iText,并设法使用iTextSharp for PDF - how add file attachments?处的解决方案将文件附加到PDF
我现在遇到的问题是,我似乎无法将这些附件作为PDF中的链接引用。
“iText in Action”一书建议我可以使用注释或文档级附件。我发现这本书很容易理解,或者代码很容易理解。在互联网上的文章方式似乎也没有这方面的帮助,但道歉是我错过了什么。
这是我第一次在这里提出问题,所以如果我做错了,我会道歉。
答案 0 :(得分:2)
我很抱歉你不喜欢我的书。
你读过第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)功能:
12.6.4.4嵌入式转到操作 嵌入式操作(PDF 1.6)类似于远程操作 但允许跳转到嵌入另一个PDF文件的PDF文件 (见7.11.4,“嵌入式文件流”)。 流”)。
如果您打算询问“我想将任何文件(例如Docx,jpg,...文件)附加到我的PDF并向PDF添加操作,点击链接后会打开这样的文件,”然后你问的是PDF规范中不支持的东西。
随意阅读ISO-32000-1。如果你不理解我的书,你将不得不额外努力阅读PDF标准......
答案 1 :(得分:0)
在ABCpdf菜单项下找到的ABCpdf Annotations示例项目显示了如何添加文件附件。它们使用标准的“Pin”格式链接图标。
由于此图标通常被理解,我建议您使用该图标而不是用通用链接替换它。
但是,如果您需要使用更通用的链接,请通过电子邮件与我们联系,我们认为我们有一些您可以使用的示例代码。
我在ABCpdf .NET软件组件上工作,所以我的回复可能包含基于ABCpdf的概念。这就是我所知道的。 :-)“