网站首页 > 技术文章 正文
序言
经常在一些报告业务场景,客户常常要求可以实现导出html、pdf、xmind格式的报告文件,生成pdf格式文件,网络上有很多开源的解决方案,但是生成html格式开源免费的解决方案很少,下面我给我大家介绍一下,如何解决这些问题
- iText,生成PDF文档,还支持将XML、Html文件转化为PDF文件;
- Apache PDFBox,生成、合并PDF文档;
- docx4j,生成docx、pptx、xlsx文档,支持转换为PDF格式。
这些框架都支持,这里不再详细介绍,具体用户可以在github上,进行查阅
html
可以用一些收费的框架,可以做到,比如Aspose,但是在这里介绍一个思路,去解决这个问题,大家肯定对导出excel表格很熟悉把,填充数据与表格,然后还可以设置标头样式与单元格样式,那么我们可以按照这个思路,进行开发一个简易版本的导出html文件。
- 代码逻辑
@Test
void listToHtmlTableTest() throws IOException {
List<String> headers = List.of("Name", "Age", "City");
List<List<String>> data = List.of(
List.of("gz", "25", "beijing"),
List.of("jelly", "30", "he ze")
);
//头样式
String headStyle = "border: 1px solid #000000;";
//表格样式
String bodyStyle="border: 1px solid #000000;";
//转成html标签
String htmlTable = HtmlTable.convertDataToHtml(headers, data,headStyle,bodyStyle);
//输出html文件
String fileName = "output.html";
try (BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(fileName))) {
bufferedWriter.write(htmlTable);
} catch (IOException e) {
e.printStackTrace();
}
}
public static String convertDataToHtml(List<String> headers, List<List<String>> data,String headStyle,String bodyStyle) {
StringBuilder html = new StringBuilder();
html.append("<table>");
// table headers
html.append("<thead><tr>");
for (String header : headers) {
html.append("<th style=\"").append(headStyle).append("\">").append(header).append("</th>");
}
html.append("</tr></thead>");
// table body
html.append("<tbody>");
for (List<String> row : data) {
html.append("<tr>");
for (String cell : row) {
html.append("<td style=\"").append(bodyStyle).append("\">").append(cell).append("</td>");
}
html.append("</tr>");
}
html.append("</tbody>");
html.append("</table>");
return html.toString();
}代码运行效果
- 代码运行效果
- 优化点
可配置样式
导出封装
支持图片
支持模板导出
xmind
开源sdk:https://github.com/xmindltd/xmind-sdk-js
需要前端实现,因为官方没有提供java版本sdk
每天不断更,精彩不停止,明天见,我是行者
记得留个关注、点赞、评论哟,让我们一起去看星辰大海,品味代码人生
猜你喜欢
- 2024-10-23 从腾讯T3-3大佬手上获得的Java架构进阶PDF文档,图文并茂,真香
- 2024-10-23 Java 给PDF文档设置有效时间 java pdfwriter
- 2024-10-23 Spire.PDF for Java 8.9.1 增强了 PDF 到 Excel 和 PDFA3A 的转换
- 2024-10-23 Java | 调用打印机打印PDF文件 java调用打印机打印pdf文件
- 2024-10-23 「更新指南」Aspose.PDF for Java v19.5全新上线 | 附下载
- 2024-10-23 Java添加条形码到PDF表格 条形码生成api
- 2024-10-23 Java pdf下载优化:Java图片压缩 java压缩pdf文件
- 2024-10-23 Spire.PDF for Java 8.10.1 增强了 PDF 到图片的转换
- 2024-10-23 iText7实现PDF电子签章 java pdf电子签章
- 2024-10-23 Spire.PDF for Java 5.5.0 增强了 PDF 到 Word 以及 PDF 到图片的转换功能
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)