You are looking for a Launch action. I'm the author of the book about iText, and I usually don't talk about this functionality because it's considered being a security hazard (which you point out in your comment: the user really has to trust the PDF).
In iText 7 you'd create a launch action like this (the code can be easily converted to C#):
PdfDocument pdfDoc = new PdfDocument(new PdfWriter(dest)); Document doc = new Document(pdfDoc); PdfFileSpec spec = PdfFileSpec.createExternalFileSpec(pdfDoc, "test.txt", true); PdfAction action = PdfAction.createLaunch(spec); Paragraph p = new Paragraph(new Link("Click to open test.txt", action)); doc.add(p); doc.close();
As you see, we’ve created a
PdfFileSpec instance to add an external resource (any file/program you wish) and add it directly to the
Click this link if you want to see how to answer this question in iText 5.