對不起,你不喜歡我的書。
你讀過第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標準...
可能重複[iTextSharp for PDF - 如何添加文件附件?](http://stackoverflow.com/questions/3007218/itextsharp-for-pdf-how-add-file-attachments) – Bobrovsky