Использование относительного пути для метода привязки с использованием iText для генерации PDF

1

Я использую iText для генерации PDF, и я создаю привязку, используя следующий код:

String newPath = "file:///";
newPath = newPath + completePath;
trial.setAnchor(newPath);

trial объект имеет тип Chunk а completePath - путь к файлу, к которому я хочу привязать.

Когда я пытаюсь использовать относительный путь, ссылка не работает. Например, "C:\Doc\folder1\trial.xml" отлично работает, но когда я пытаюсь использовать относительные пути, такие как "..\trial1.xml" ссылка не создается, хотя как мой PDF-документ, так и XML файл находятся в той же папке с именем "folder1".

Теги:
itext
pdf-generation

1 ответ

1
Лучший ответ

Если у вас есть такая ситуация:

C:\Doc\folder1\trial.xml
C:\Doc\folder1\my.pdf

И если вы создаете путь "..\trial1.xml" в качестве ссылки в my.pdf, то вы сообщаете PDF, что XML файл можно найти здесь:

C:\Doc\trial1.xml

Я вижу две ошибки:

  1. существует разница между trial.xml и trial1.xml и
  2. вы указываете на неправильный каталог.

Возможно, даже возникнет третья ошибка, если вы конкатенируете относительный путь с помощью "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 файл и открыть его в автономном средстве просмотра.

  • 0
    Спасибо Бруно, это сработало. Настоящая проблема заключалась в каталоге, на который я указывал, который решил ваш кусок кода.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню