我的应用程序创建一个Content.pdf文件,该文件链接到Server.pdf和Client.pdf。这是文件夹结构:


.. \ MyApp \ Ressources \ Content.pdf
.. \ MyApp \ Ressources \ Server \ Server.pdf
.. \ MyApp \ Ressources \ Client \ Client.pdf


此外,文件夹和文件会被刻录在CD / DVD上,或者会在网络驱动器上备份-这导致我使用相对的文件路径。我使用以下代码创建Content.pdf:

相对WebLink:

var relativeFileLinkPath =  "./" + Directory.GetParent(doc.Uri.LocalPath).Name + "/"+ doc.OutputFileName;
page.AddWebLink(pdfrect, relativeFileLinkPath);


相对FileLink:

var relativeFileLinkPath =  "./" + Directory.GetParent(doc.Uri.LocalPath).Name + "/"+ doc.OutputFileName;
page.AddFileLink(pdfrect, relativeFileLinkPath);


两者都可以在本地驱动器上正常工作,但是我的问题是:


WebLink在网络驱动器上不起作用/无法打开
FileLinks关闭Content.pdf并将其替换为链接的pdf文件


问题:

如何修改FileLink以在新的(PDF阅读器)实例/窗口中打开?


单击FileLink时按住CTRL键是一个选项,但不是一个好的解决方案。


相对PDF网站链接的正确语法是什么?

最佳答案

AddFileLink是将文件并排放置在文件夹中的正确方法。

若要控制是否打开新窗口,将需要对PDFsharp的PdfLinkAnnotation类进行一些小的修改。 PDF支持PDFsharp当前无法设置的NewWindow属性。

获取PDFsharp的源,在PdfLinkAnnotation.cs中找到"<</Type/Action/S/Launch/F<</Type/Filespec/F{0}>> >>"并将其替换为"<</Type/Action/S/Launch/NewWindow true/F<</Type/Filespec/F{0}>> >>"

免责声明:我没有测试建议的更改-我希望它在语法上是正确的,并且希望它可以完成您想要的操作。
免责声明2:PDFsharp 1.50 beta 3需要进行此更改。更高版本可能支持该标志。

关于c# - 如何创建具有相对文件路径和PDFsharp的PDF文件链接?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35195688/

10-11 22:11
查看更多