跟着JHipster学做项目(2) - 使用Swagger2生成API文档 (下)生成中文html5, PDF文件

PDFBox 导入外部字体 PDFBox 内置字体似乎仅支持外文。 如果有中文录入的需要,需要加载常用的字体库。 代码如下: // 加载某个我喜欢的字体库 PDFont font= PDType0Font.load(document, new File("C:\\Windows\\Fonts\\Dengl.ttf")); // 实际上还有PDType1Font,PDType3Font,一般ttf就用PDType0Font足以。至于其它的,可以知乎找找介绍一类。 // 实例化对象了之后,将它添加到PDPage的Resource中。 PD 阅读详情

上篇已经通过引入springfox-staticdocs成功生成了swagger的asciidoc文件,用浏览器来查看asciidoc文档需要安装插件,通常我们会进一步把asciidoc文件转化为html5, 或者PDF文档。

主要的功能由asciidoctor-maven-plugin插件完成:

<!-- Run the generated asciidoc through Asciidoctor to generate
                 other documentation types, such as PDFs or HTML5 -->
            <plugin>
                <groupId>org.asciidoctor</groupId>
                <artifactId>asciidoctor-maven-plugin</artifactId>
                <version>1.5.6</version>
                <!-- Include Asciidoctor PDF for pdf generation -->
                <dependencies>
                    <dependency>
                        <groupId>org.asciidoctor</groupId>
                        <artifactId>asciidoctorj-pdf</artifactId>
                        <version>1.5.0-alpha.16</version>
                    </dependency>
                    <dependency>
                        <groupId>org.jruby</groupId>
                        <artifactId>jruby-complete</artifactId>
                        <version>1.7.21</version>
                    </dependency>
                </dependencies>
                <!-- Configure generic document generation settings -->
                <configuration>
                    <sourceDirectory>${asciidoctor.input.directory}</sourceDirectory>
                    <sourceDocumentName>index.adoc</sourceDocumentName>
                    <attributes>
                        <doctype>book</doctype>
                        <toc>left</toc>
                        <toclevels>3</toclevels>
                        <numbered></numbered>
                        <hardbreaks></hardbreaks>
                        <sectlinks></sectlinks>
                        <sectanchors></sectanchors>
                        <generated>${generated.asciidoc.directory}</generated>
                    </attributes>
                </configuration>
                <!-- Since each execution can only handle one backend, run
                     separate executions for each desired output type -->
                <executions>
                    <execution>
                        <id>output-html</id>
                        <phase>test</phase>
                        <goals>
                            <goal>process-asciidoc</goal>
                        </goals>
                        <configuration>
                            <backend>html5</backend>
                            <outputDirectory>${asciidoctor.html.output.directory}</outputDirectory>
                        </configuration>
                    </execution>

                    <execution>
                        <id>output-pdf</id>
                        <phase>test</phase>
                        <goals>
                            <goal>process-asciidoc</goal>
                        </goals>
                        <configuration>
                            <backend>pdf</backend>
                            <outputDirectory>${asciidoctor.pdf.output.directory}</outputDirectory>
                        </configuration>
                    </execution>

                </executions>
            </plugin>

其中asciidoctorj-pdf, jruby-complete用于PDF文档生成,如果仅生成html5不需要引入这两个包。

<phase>test</phase>,这个配置只需要用maven执行test任务就可以生成文档。

另外一个重点在于生成中文文档,默认的asciidoctorj-pdf包中不包含中文字符集,所以会以日文字符生成缺字的文档。

在asciidoctorj-pdf-1.5.0-alpha.15.jar\gems\asciidoctor-pdf-1.5.0.alpha.15\data\fonts这个路径下加入中文字符集,例如:

Deng.ttf,Dengb.ttf, Dengl.ttf,在这里可以下载字符集。

在asciidoctor-pdf-1.5.0.alpha.15\data\themes路径下,编辑default-theme.yml文件

将字符集指向加入的中文字符集:

 normal: Deng.ttf
      bold: Dengb.ttf
      italic: Dengl.ttf
      bold_italic: Dengl.ttf

Good Luck,

Cheers!

Java技术变现新路径:基于JVM生态的工程化赚钱模型 Java作为一门成熟语言,其核心价值已从语法特性升维为JVM生态所承载的稳定性、向后兼容性与企业级信任背书。在等保合规、遗留系统现代化和垂直领域工具链等刚性需求驱动下,Java凭借字节码增强、Java Agent、ClassLoader热加载等原生能力,成为构建合规即服务(Compliance-as-a-Service)、遗留系统缝合层及微型SaaS的关键技术底座。它不追求性能极限,而以‘可审计、可验证、零改造集成’满足法务签字、运维背书与终端用户习惯三重决策节点。本文聚焦Java在2025年中小企业技术变 阅读详情

相关推荐

等线字体用于PDF生成

在asciidoctorj-pdf-1.5.0-alpha.15.jar\gems\asciidoctor-pdf-1.5.0.alpha.15\data\fonts这个路径下加入中文字符集,例如: Deng.ttf,Dengb.ttf, Dengl.ttf,在这里可以下载字符集。

跟着JHipster学做项目(3) - Maven的使用技巧(下)去掉因lifecycle引起的红叉

当我们在项目中引入swagger或者asciidoc等插件时,通常定义在generate-sources阶段执行,当使用eclipse时,pom.xml就会出现一个红叉,以swagger2markup-maven-project-template项目为例,克隆这个项目在本地,将项目引入到eclipse, 这个问题虽然不影响项目的编译以及运行,但是这个红叉不仅会引起视觉的不适,也实际会影响我们...

java_augur的专栏 548

Docker打包制作rocketmq镜像

Docker打包制作rocketmq镜像(Dockerfile方式),并运行启动。 这里提供所有需要的文件,包括字体 ,lib,openoffice安装包。 提供dockerfile,build镜像脚本。

【文本处理与分类】使用cnews新闻数据集进行文本分类(包含分词、词云、文本关键词提取等)

使用cnews新闻数据集进行文本分类(包含分词,数据清洗、词云、文本关键词提取等内容)

QHCV的博客 4313

windows字体Fonts

windows字体Fonts

SAP物料分类账实战:从配置到月结的关键步骤(基于S/4HANA1909)

本文详细解析了在SAP S/4HANA 1909系统中,物料分类账从基础配置到月结操作的全流程。作为成本核算的核心,物料分类账通过多级价格确定实现实际成本核算,关键步骤包括激活物料分类账、配置自动过账科目(OBYC)、运行CKMLCP进行差异分摊与结算。文章旨在帮助财务与成本会计人员确保成本差异的准确归集与分摊,顺利完成月结。

weixin_28314575的博客 193

Maven org.eclipse.m2e:lifecycle-mapping:1.0.0: Plugin 未找到报错解决

Maven org.eclipse.m2e:lifecycle-mapping:1.0.0: Plugin 未找到报错解决

weixin_51623642的博客 2561

【Labview与SQL Server互联(labview可以引用数据库)】

Labview与SQL Server互联

Magize的博客 3585

Avro

1.创建maven工程2.导入依赖&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache....

tansuoliming的博客 673

【软路由】旁路由使用配置教程

【软路由】旁路由使用配置教程简介旁路由好处旁路由配置步骤1、修改管理地址网段 简介 我们都知道,软路由一般有两种使用方式,一种是作为承担DHCP分配的主路由,而另一种就是作为不承担DHCP分配功能的旁路由使用。今天就来介绍如何将软路由配置成为旁路由。 旁路由好处 旁路由最大的好处就是它不承担DHCP分配任务,这意味着它的对网络的影响极小。即使突然故障也不会导致整个网络瘫痪。更别提软路由的配置复杂,用户可能还经常修改上面的网络配置,一旦出错就是整个网络瘫痪,如果家中还有其他人使用网络,影响实在是不好。 建议有

博客 4万+

Android AI Agent集成实战:架构设计与自动化技能开发

AI Agent(人工智能代理)是一种能够感知环境、自主规划并执行任务以达成目标的软件实体。其核心原理在于结合大语言模型的推理能力与工具调用(Tool Calling)技术,使应用从被动响应转向主动服务。在移动开发领域,这项技术的价值在于为应用注入“智能大脑”,实现跨应用自动化与个性化交互,从而显著提升用户体验和操作效率。具体到Android平台,其应用场景广泛,例如自动填写表单、智能聊天辅助、个性化工作流优化等。本文聚焦于Android AI Agent的工程化落地,深入探讨了如何利用Accessibil

weixin_42636895的博客 661

记录踩过的坑-Eclipse&Maven

目录 1. Servers各种操作 2.调试web程序时,要把Eclipse中的jre改成jdk 3.Eclipse代码自动对齐 4.Maven项目Update Project后JRE System Library自动变回1.5解决办法 5.eclipse怎么修改重命名类 6.自动添加main方法 7.eclipse中几行代码整体向左向右缩进快捷键 8.rest...

天边一坨浮云 722

Alist/Openlist 的 WebDAV 老是连不上?别再乱试了,这才是标准答案!(1Panel如何使用Alist/Openlist作为备份账号)

😫服务器硬盘告急,想用 Alist/Openlist 的 WebDAV 备份却屡屡失败?别慌!本文带你揭秘正确的连接地址和权限配置,手把手教你搞定 1Panel 备份设置,让你的网盘秒变备份仓库!

XiaoqiangClub的博客 5577

Lifecycle详解

先奉上lifecycle官方文档地址:https://developer.android.com/topic/libraries/architecture/lifecycle 为什么要使用lifecycle? 现状:普通组件在使用过程中通常需要依赖于系统组件(Activity/Fragment/LifecycleService)的生命周期,导致系统组件的生命周期回调方法过于臃肿。例如通常在onCreate()中对组件进行初始化,在onPause()中停止组件,在onDestroy()中对组件进行资源回收

u013773608的博客 3269

Roboguide与TIA V16通讯

Roboguide与TIA V16通讯

haier123888的博客 2674

uniapp [全端兼容] - 实现大文件上传分片/切片+本地选择文件上传超大文件,大文件切片上传+断点续传+上传进度条+失败自动重传,支持单个/批量上传图片、视频、文档各种文件(App、小程序、H5

uniapp 分片 断点续传 大文件上传。uniapp大文件切片上传,uniapp实现大文件上传 分片上传 进度条,分片上传附件,实现大文件上传,实现分片大文件上传,Uniapp实现大文件上传 分片上传 进度条,uniapp文件分片上传,uniapp如何上传很大的文件,在选择文件后,按指定大小将文件切割成独立的文件片,并逐片上传,uniapp 微信小程序上传大文件如何切片,uniapp APP实现大文件分片上传、断点续传、秒传,解决大文件上传问题,大文件上传如何做断点续传,uniapp上传视频,Uniapp

🏆 前端领域优质创作者 1万+

Maven 生命周期和插件详解

Maven 生命周期及其阶段 Maven 基于生命周期的核心概念。有三个内置的生命周期: clean:负责清理项目; default:负责构建项目; site:负责建立项目站点。 每个生命周期都包含一些阶段(phase),用户与 Maven 最直接的交互方式就是调用这些生命周期的阶段。 clean 生命周期及其阶段 clean 生命周期包含以下阶段: pre-clean:在清理之前完成一些所需的工作; clean:删除之前构建出的所有文件; post-clean:在清理之后完成一些所需的工作。 de

rosy_dawn的博客 2353

某招标公告网和vcaptcha验证码识别逆向

本文分析了某验证码系统的加密流程及破解思路。首先通过反混淆技术定位到加密函数,拆解了包含指纹函数、环境参数等组成的加密字符串。研究发现验证码生成涉及canvas指纹、环境检测等反爬机制,可通过模拟浏览器环境绕过。验证过程需要解密图片顺序,通过work2.js计算还原图片位置,再结合滑动轨迹、时间等参数生成验证请求。文章仅提供技术研究思路,强调需遵守法律法规,严禁非法破解信息系统。完整流程包括环境模拟、加密参数还原、图片处理和轨迹生成等步骤,成功率较高。

码王吴彦祖的博客 577

idea access数据库连接_图文并茂 教你在IDEA中如何一键生成代码,提高开发效率!...

一、准备工作1. 插件安装在IDEA中安装(EasyCode)插件、(Lombok)插件。2. 创建一个springboot项目如果不会创建的话可以翻看我前面写过的文章。初识 Springboot创建完成后的目录结构:3. 准备数据库表表结构:CREATE TABLE `user` ( `id` int(11) NOT NULL, `username` varchar(255) DEFAU...

weixin_39831991的博客 1561

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

关于maven插件,lifecycle-mapping org.codehaus.gmaven等插件在pom文件中报错解决方案

最近在研究tigase即时通讯组件,在官网下载下来的tigase-server源码中pom会报错,该报错信息我花了二天时间才解决,其实知道方法了 很快就能搞定的 只要在pom文件的&lt;bulid&gt;节点中加入如下代码 &lt;pluginManagement&gt; &lt;plugins&gt; &lt;!--This plugin's configuration...

憧憬未来,珍惜现在,回味过去。 6760

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

linux安装中文字体方法

1. 首先获得一套“微软雅黑”字体库(Google一下一大把),包含两个文件msyh.ttf(普通)、msyhbd.ttf(加粗); 2. 在/usr/share/fonts目录下建立一个子目录,例如win,命令如下:     # mkdir /usr/share/fonts/win 3. 将msyh.ttf和msyhbd.ttf复制到该目录下,例如这两个文件放在/root/Desktop下

u010943460的专栏 1万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

PIL库 : 居中对齐写入文本(英文 / 中文)

英文 文本 的居中对齐 from PIL import Image, ImageDraw W, H = (600,360) msg_english = ''' SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL SECRE

蚂蚁小兵 3692

关于前面maven的配置补充

这个lifecycle-mapping-metadata.xml文件在相关的目录中是不存在的,这是工作区的配置,如果在项目pom.xml中如果不做声明的话,在使用maven插件时会报各种错误。1、在eclipse中,点击window-->Preferences中,找到Maven-->LifecycleMappings选项,如下图所示。

2403_87142815的博客 795

IntelliJ IDEA常用插件一览,让效率成为一种习惯

专注于Java领域优质技术号,欢迎关注梁桂钊、陈同学、张帆、刁政欣(研习小组)| 作者一、官方工具IntelliJ IDEA 默认安装并提供了非常多的工具,比如 Git Integration、Maven Integration、Markdown support、SSH Remote Run 等。其中有很多好用,但是不为人知的工具。1. REST client在日常开发过程中,我们或多或少都涉及到...

weixin_33712881的博客 1434

idea lifecycle-mapping插件无法引入_体积虽小,功能不少!SSM/SpringBoot代码生成器新增idea插件支持,安装到idea可直接使用!...

前言  开发代码生成器到现在,取得了一些关注,我感到十分荣幸,最近有不少朋友反应说代码生成器如果能安装到idea中就好了,那样用起来将会十分方便,既然这样,只有满足各位! 之前没有开发过idea插件,所以今天找了个demo看了一下,发现跟安卓很像,因为之前有过一点安卓开发的经验,所以很快便完成了,让我们一起看一下吧!顺便讲一下开发idea插件相关的入门知识,因为我发现这类的教...

weixin_39816260的博客 454

maven生命周期

Lifecycle 一个标准的构建Lifecycle包含了如下的phase: validate: 用于验证项目的有效性和其项目所需要的内容是否具备 initialize:初始化操作,比如创建一些构建所需要的目录等。 generate-sources:用于生成一些源代码,这些源代码在compile phase中需要使用到 process-sources:对源代码进行一些操作,例如过滤一些源代码...

我3的博客 227
上一篇: 跟着JHipster学做项目 (13) 控制Vue前端在完成加载数据后展现页面
下一篇: 使用eclipse导入DataSphereStudio项目小白教程
java_augur
博客等级 码龄22年 67粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值