第一步:调整配置文件
配置文件说明:
conf.xml为配置字体文件与对应路径的文件, simsun.ttc为宋体字体集文件, simsun.xml为宋体的描述文件
pdf.xml为定义生成的pdf的内容与主要元数据的配置, 如果没有该文件则将整站生成,可以省略该配置文件
pdf-config.xml 为改变默认 fop的pdf文件内容与字体定义的样式文件,需要将其中的字体安装需要修改为宋体以及其他支持中文的字体
其配置文件的存放目录结构如下:
smp-site |-pom.xml |-conf.xml |-simsun.xml |-simsun.ttc |-src |-site |-pdf.xml |-site.xml |-resources |-pdf-config.xml |-images
第二步:替换代码
将hacked.rar中对应的代码替换掉 maven库中的
org\apache\maven\doxia\doxia-module-fo\1.3\doxia-module-fo-1.3.jar 中的对应类,即FoUtils, 其目的
修改doxia-moudle-fo-1.3.jar中的 org.apache.maven.doxia.module.fo.FoUtils 中的
private static FOUserAgent getDefaultUserAgent(File fo, String resourceDir)
{
FOUserAgent foUserAgent = FOP_FACTORY .newFOUserAgent();
foUserAgent.setBaseURL( getBaseURL(fo, resourceDir));
return foUserAgent;
}
为
private static FOUserAgent getDefaultUserAgent(File fo, String resourceDir)
{
String conf=System.getProperty("fop.conf"); // 通过 -Dfop.conf 来获取当前指定的配置文件
if(conf != null)
FOP_FACTORY.setUserConfig(new java.io.File(conf));
FOUserAgent foUserAgent = FOP_FACTORY .newFOUserAgent();
foUserAgent.setBaseURL( getBaseURL(fo, resourceDir));
return foUserAgent;
}
并且需要该doxia-moudle-fo-1.3.pom,增加对fop本身及其相关依赖包的 依赖定义(因为其通过自定义的配置文件来设置fop则需要对文件进行解析与处理,所以会依赖fop及其相关依赖包)
最后一步:
生成文档的命令通过
mvn clean site -Dfop.conf="conf.xml" pdf:pdf 进行执行
相关推荐
通过配置 `maven-site-plugin` 和 `maven-project-info-reports-plugin`,可以在 Maven 站点中生成 PDF。 ```xml <groupId>org.apache.maven.plugins <artifactId>maven-site-plugin <version>3.9.1 ...
1. **站点生命周期**:在 Maven 中,生成项目站点属于 `site` 生命周期的一部分。这个生命周期包含了几个主要阶段,如 `pre-site`、`site` 和 `post-site`,用于准备、生成和部署站点。通过执行 `mvn site` 命令,...
此外,书中的内容还会涵盖Maven的依赖管理和解决冲突的方法,如使用 exclusion 标签排除不想要的依赖,以及使用scope属性控制依赖的范围。读者还将了解到Maven仓库的概念,包括本地仓库、远程仓库和中央仓库,以及...
Maven权威指南中文版 Maven是一种基于项目对象模型(POM)的项目管理和构建工具,旨在提供一种通用的、跨语言的、跨平台的项目管理方式。 Maven的主要特点是约定优于配置(Convention Over Configuration),它提供...
除了基本功能,本指南还将涉及Maven的高级特性,如聚合项目、多模块项目、源码生成、报告生成、站点发布等。这些特性使得Maven在大型复杂项目中的应用更加得心应手。 另外,指南还会涵盖Maven的持续集成实践,如与...
使用Swagger2Markup、asciidoctor-maven-plugin和asciidoctorj-pdf插件能生成pdf格式的文档,但是对于中文支持太差了,很多中文字符是空白。这个jar包可以解决这个问题。 在pom.xml中加入 <groupId>org....
本文将详细讲解如何使用Java生成包含中文字符的PDF文档,并解决中文乱码问题,主要涉及的库是iText库及其针对亚洲语言的支持包。 首先,iText是一个开源的Java库,用于创建和修改PDF文档。在这里我们使用的是iText ...
- Maven 能够自动生成各种工程文档,包括构建报告、测试报告等。 - 这些文档有助于团队成员更好地理解和维护项目。 4. **支持最佳的开发实践**: - Maven 设计时充分考虑了软件工程的最佳实践,如依赖管理、生命...
本文将详细解释这个问题的原因,并提供解决方案。 首先,我们要理解这个错误提示的根本原因。当Idea在尝试导入Maven项目时,它会读取`pom.xml`文件来构建项目的依赖树。如果在执行此过程时,IDE找不到合适的Java...
maven-site-plugin-3.3.jar
Maven是一种构建工具,一种项目管理工具,一种用来运行构建任务的抽象容器。对于那些成熟的,希望用一致的方式来管理和构建大量相互依赖的模块和类库,并且使用了 数千第三方组件的项目来说,Maven已经证明了它是一...
- **站点生成和报告**: 自动生成项目的文档和报告。 **4.1 定制项目** - **定义项目**: 明确项目的业务需求和技术选型。 - **添加依赖**: 在POM文件中声明外部库。 - **编写单元测试**: 使用JUnit等框架编写测试...
总的来说,Maven作为Java项目管理的一个重要工具,它提供了全面的解决方案,包括项目构建、依赖管理和项目信息管理。它的强大功能和易用性使其成为Java开发者不可或缺的伙伴,尤其是在处理大型或复杂的项目时。通过...
除了基本的构建和依赖管理,Maven 还提供了用于创建项目骨架的 Archetype 插件、用于代码质量检查的 PMD 和 Checkstyle 插件、用于文档生成的 Maven Site 插件等众多功能强大的插件。通过这些插件,Maven 能够支持从...
在本场景中,我们关注的是"Maven代码生成"插件,特别是"MyBatis Generator"。 MyBatis Generator(MBG)是一个强大的工具,用于自动生成MyBatis的SQL映射文件,DAO接口和实现,以及实体类。通过这个插件,开发者...