如何创建具有相对文件路径和PDFsharp的PDF文件链接

本文关键字:文件 路径 PDFsharp 链接 PDF 相对 何创建 创建 | 更新日期: 2023-09-27 18:33:07

My App 创建一个链接到 Server.pdf 和 Client.pdf 的内容.pdf文件。这是文件夹结构:

  • ..''MyApp''Ressources''Content.pdf
  • ..''MyApp''Ressources''Server''Server.pdf
  • ..''MyApp''Ressources''Client''Client.pdf

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

相对网页链接:

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

相对文件链接:

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

两者都在本地驱动器上运行良好,但我的问题是:

    网络
  • 链接在网络驱动器上不起作用/打开
  • 文件链接关闭内容.pdf并将其替换为链接的 pdf 文件

问题:

如何修改文件链接以在新的(PDF阅读器(实例/窗口中打开?

  • 单击文件链接时按住 CTRL 键是一种选择,但不是一个很好的解决方案。

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

如何创建具有相对文件路径和PDFsharp的PDF文件链接

AddFileLink是并排位于文件夹中的文件的正确方法。

为了控制是否打开一个新窗口,需要对PDFsharp的PdfLinkAnnotation类进行少量修改。PDF 支持 PDFsharp 当前无法设置的 NewWindow 属性。

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

免责声明:我没有测试提议的更改 - 我希望它在语法上是正确的,我希望它能满足您的需求。
免责声明2:PDFsharp 1.50 beta 3需要此更改。更高版本可能支持该标志。