Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用相对文件路径和PDFsharp创建PDF文件链接?_C#_Pdf_Hyperlink_Relative Path_Pdfsharp - Fatal编程技术网

C# 如何使用相对文件路径和PDFsharp创建PDF文件链接?

C# 如何使用相对文件路径和PDFsharp创建PDF文件链接?,c#,pdf,hyperlink,relative-path,pdfsharp,C#,Pdf,Hyperlink,Relative Path,Pdfsharp,我的应用程序创建一个Content.pdf文件,该文件链接到Server.pdf和Client.pdf。这是文件夹结构: ..\MyApp\resources\Content.pdf ..\MyApp\resources\Server\Server.pdf ..\MyApp\resources\Client\Client.pdf 此外,文件夹和文件会被刻录到CD/DVD或备份到网络驱动器上,这会导致我使用相对文件路径。我使用以下代码创建Content.pdf: 相对网络链接: var rel

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

  • ..\MyApp\resources\Content.pdf
  • ..\MyApp\resources\Server\Server.pdf
  • ..\MyApp\resources\Client\Client.pdf
此外,文件夹和文件会被刻录到CD/DVD或备份到网络驱动器上,这会导致我使用相对文件路径。我使用以下代码创建Content.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);
两者在本地驱动器上都可以正常工作,但我的问题是:

  • 网络链接无法在网络驱动器上工作/打开
  • FileLinks关闭Content.pdf并将其替换为链接的pdf文件
问题:

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

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

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

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

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

获取PDFsharp的源代码,在PDFsharp.cs中找到
,并将其替换为

免责声明:我没有测试提议的更改-我希望它在语法上是正确的,并且我希望它能满足您的需要。

免责声明2:PDFsharp 1.50 beta 3需要此更改。更高版本可能支持该标志。

我通过引用管理器将PDFSharp添加到我的WPF应用程序中。(
packages\PDFsharp MigraDoc WPF.1.32.2608.0
)我必须删除该包并手动添加它,还是有其他选项?