2016-02-04 8 views
2

Мое приложение создает файл Content.pdf, который ссылается на Server.pdf и Client.pdf. Это структура папок:Как создать ссылки на файл PDF с относительным пути к файлу и PDFsharp?

  • .. \ 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); 

Оба прекрасно работают на локальном диске, но мои вопросы:

  • Веб-ссылки не работают/открываются на сетевом диске
  • FileLinks закрыть Content.pdf и заменить его связанный файл в формате PDF

Вопросов:

Как я могу модифицирую FileLinks, чтобы открыть в новом (чтения PDF) экземпляра/окне?

  • Сохранение CTRL-Key при нажатии на FileLink является вариантом, но не хорошим решением.

Какой правильный синтаксис для относительных ссылок в формате PDF?

ответ

0

AddFileLink - правильный метод для файлов, сидящих бок о бок в папке.

Чтобы определить, будет ли открываться новое окно, потребуется небольшая модификация класса PDF-файла PDFdfkinknnotation. PDF поддерживает атрибут NewWindow, который в настоящее время не может быть установлен PDFsharp.

Получить исходный код для PDFsharp, найти "<</Type/Action/S/Launch/F<</Type/Filespec/F{0}>> >>" в PdfLinkAnnotation.cs и заменить его на "<</Type/Action/S/Launch/NewWindow true/F<</Type/Filespec/F{0}>> >>".

Отказ от ответственности: Я не тестировал предлагаемое изменение - я надеюсь, что он синтаксически правильный, и я надеюсь, что он делает то, что вы хотите.
Отказ от ответственности 2: Это изменение необходимо для PDFsharp 1.50 beta 3. У более поздних версий может быть поддержка этого флага.

+0

Я добавил PDFSharp в свое приложение WPF через диспетчер ссылок. ('packages \ PDFsharp-MigraDoc-WPF.1.32.2608.0') Нужно ли мне удалить пакет и добавить его вручную или есть другой вариант? – Frank