Я использую iText для генерации PDF, и я создаю привязку, используя следующий код:
String newPath = "file:///";
newPath = newPath + completePath;
trial.setAnchor(newPath);
trial
объект имеет тип Chunk
а completePath
- путь к файлу, к которому я хочу привязать.
Когда я пытаюсь использовать относительный путь, ссылка не работает. Например, "C:\Doc\folder1\trial.xml"
отлично работает, но когда я пытаюсь использовать относительные пути, такие как "..\trial1.xml"
ссылка не создается, хотя как мой PDF-документ, так и XML файл находятся в той же папке с именем "folder1"
.
Если у вас есть такая ситуация:
C:\Doc\folder1\trial.xml
C:\Doc\folder1\my.pdf
И если вы создаете путь "..\trial1.xml"
в качестве ссылки в my.pdf
, то вы сообщаете PDF, что XML файл можно найти здесь:
C:\Doc\trial1.xml
Я вижу две ошибки:
trial.xml
и trial1.xml
иВозможно, даже возникнет третья ошибка, если вы конкатенируете относительный путь с помощью "file:///". Мы должны увидеть PDF, чтобы убедиться, что происходит.
Я написал пример с именем RelativeLink, который создает PDF файл с Chunk
который говорит "Click me". Если вы нажмете этот Chunk
, data.xml
файл XML data.xml
который находится в том же направлении, что и relative_link.pdf.
Chunk chunk = new Chunk("Click me");
chunk.setAnchor("./" + new File(XML).getName());
document.add(chunk);
Это не работает в контексте веб-плагина (по понятным причинам). Чтобы увидеть это в действии, вам необходимо загрузить PDF файл и открыть его в автономном средстве просмотра.