maven - maven-pdf-plugin:如何定义文档根以使用相对引用
问题描述
我正在使用 maven-pdf-plugin 从 Markdown 文档生成 PDF 文件。我有降价文件/src/site/markdown
以及包含的图像文件。我有一个pdf.xml
文件在/src/site
.
当我运行时mvn pdf:pdf
,我得到一个在/target/pdf
. PDF 文件从 markdown 文件格式化,但不包括图像。输出有错误,表明它最有可能因为警告而找不到图像:
[警告] 没有指定文档根目录,本地链接将无法正确解析!
我搜索了在 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
. 要包含的图像文件位于同一目录中。
这是一个图像如何包含在降价文件中的示例:
![Domain Model](domain-model-placeholder.png)
编辑以添加进一步调查的结果
我可以生成带有渲染图像的 PDF 的两种方法是将图像文件放在顶级项目根目录中,或者将 markdown 文件中的图像规范更改为相对于项目根目录目录。前者是一个糟糕的解决方案。后者可能是一种临时解决方法,但会破坏我们使用降价文件的其他方式。
解决方案
无法更改 maven-pdf-plugin 中图像的相对位置。它从站点上下文生成 PDF 文件。要使图像可用于 PDF,它们应该可用于站点。根据文档,图像应该在resources
目录中。
+- src/
+- markdown/
| +- docs.md
|
+- resources/
| +- images/
| +- domain-model-placeholder.png
|
+- site.xml
图片将在降价中提供,带有以下标签:
![Domain Model](images/domain-model-placeholder.png)
PDF 内容将与图像一起生成。但是在 BitBucket 或 Github 的存储库视图中找不到图像,其中文档根被用作相对参考。我通过将图像复制到降价目录来修复它。
+- src/
+- markdown/
| +- images/
| | +- domain-model-placeholder.png
| |
| +- docs.md
|
+- resources/
| +- images/
| +- domain-model-placeholder.png
|
+- site.xml
它是图像的重复,但是通过这种方法,它们在 pdf 生成和存储库视图中都可用。
推荐阅读
- python - 通过云功能运行时在 Firestore 中出现问题
- r - 将 .Rmd 文件转换为 .pdf 文件的最佳方法
- typescript - 如何开玩笑地模拟函数声明?我在模拟声明为函数声明的函数时遇到 Typescript 错误
- c# - 如何获取用户的组名是使用 Microsoft Graph API 的成员?
- wxpython - Ubuntu 18.04的Python 3.6的虚拟环境无法安装wxPython 4.1.0
- jquery - 使用 jQuery 向 Spring Boot 发送 PUT AJAX 请求时不允许出现错误 405 方法?
- java - 我正在使用这个 cron "0 0 9 * * ?" 每天早上 9 点调度任务的表达式,
- android - 查看通过列表视图中的复选框选择了哪些项目
- python - 我试图将表单数据放在我的 show.html 页面中。但它不起作用。我正在使用 flask_sqlalchemy。我是烧瓶中的初学者
- java - jooq 3.13 资源泄漏