maven-pdf-plugin: как определить корень документа для использования относительных ссылок
Я использую maven-pdf-plugin для создания PDF-файла из документа уценки. У меня есть файл уценки в /src/site/markdown
наряду с включенными файлами изображений. у меня есть pdf.xml
файл в /src/site
,
Когда я бегу mvn pdf:pdf
Я получаю файл PDF, сгенерированный в /target/pdf
, Файл PDF отлично отформатирован из файла уценки, но не включает изображения. Вывод содержит ошибки, указывающие на то, что он не может найти изображения наиболее вероятно из-за предупреждения:
[предупреждение] Корень документа не указан, локальные ссылки не будут разрешены правильно!
Я искал все, что могу найти в maven-pdf-plugin, и не нашел ссылок на то, как установить этот неуловимый корень документа. Я хотел бы сохранить файлы изображений в том же каталоге и использовать относительные ссылки в файле уценки, т.е. в этом случае ссылка - это просто имя файла.
Буду признателен за любую помощь или указатели, где найти то, что мне нужно сделать.
РЕДАКТИРОВАТЬ, чтобы добавить pdf.xml
Вот содержимое /src/site/pdf.xml
<document outputName="DesignDoc">
<meta>
<title>Design Documentation</title>
<author>Team A</author>
</meta>
<toc name="Table of Contents">
<item name="Design Documentation" ref="DesignDoc.md"/>
</toc>
<cover>
<coverTitle>${project.name}</coverTitle>
<coverSubTitle>v. ${project.version}</coverSubTitle>
<coverType>Design Documentation</coverType>
<projectName>${project.name}</projectName>
</cover>
</document>
Файл уценки находится в /src/site/markdown
, Файлы изображений, которые будут включены, находятся в том же каталоге.
Это пример того, как изображение включено в файл уценки:

РЕДАКТИРОВАТЬ, чтобы добавить результаты дальнейшего исследования
Два способа, которыми я могу создать PDF-файл с визуализированными изображениями, - это либо поместить файлы изображений в корень проекта верхнего уровня, либо изменить спецификацию изображения в файле уценки на относительную к корневому каталогу проекта. Первое - паршивое решение. Последнее может быть временным обходным путем, но может нарушить другой способ, которым мы используем файл уценки.
1 ответ
Невозможно изменить относительное расположение изображений в maven-pdf-plugin. Он генерирует PDF-файл из контекста сайта. Чтобы изображения были доступны в формате PDF, они должны быть доступны на сайте. Согласно документации изображения должны быть в
resources
каталог.
+- src/
+- markdown/
| +- docs.md
|
+- resources/
| +- images/
| +- domain-model-placeholder.png
|
+- site.xml
Изображение будет доступно в уценке со следующим тегом:

PDF-контент будет создан с изображениями. Но изображения не будут найдены в представлении репозитория в BitBucket или Github, где корень документа используется в качестве относительной ссылки. Я исправил это, скопировав изображения в каталог уценки.
+- src/
+- markdown/
| +- images/
| | +- domain-model-placeholder.png
| |
| +- docs.md
|
+- resources/
| +- images/
| +- domain-model-placeholder.png
|
+- site.xml
Это дублирование изображений, но при таком подходе они доступны как в формате pdf, так и в виде репозитория.