广告
返回顶部
首页 > 资讯 > 后端开发 > Python >如何利用java实现生成PDF文件
  • 827
分享到

如何利用java实现生成PDF文件

java生成pdf文档java生成pdf文件表格java生成pdf 2022-11-13 18:11:34 827人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录1.pdf文件简介2.生成PDF2.1 基于freemarker框架实现html转PDF2.1.1 引入jar包依赖:2.1.2 创建html模板test_template:2.

1.PDF文件简介

PDF是可移植文档格式,是一种电子文件格式,具有许多其他电子文档格式无法相比的优点。PDF文件格式可以将文字、字型、格式、颜色及独立于设备和分辨率的图形图像等封装在一个文件中。该格式文件还可以包含超文本链接、声音和动态影像等电子信息,支持特长文件,集成度和安全可靠性都较高。在系统开发中通常用来生成比较正式的报告或者合同类的电子文档。

2.生成PDF

2.1 基于freemarker框架实现HTML转PDF

2.1.1 引入jar包依赖:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.20</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.itextpdf/html2pdf -->
<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>html2pdf</artifactId>
    <version>4.0.3</version>
</dependency>
<!-- Spring Boot 项目请添加此依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<!-- 非spring boot 项目请添加此依赖 -->
<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.30</version>
</dependency>

2.1.2 创建html模板test_template:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8"/>
    <title>Title</title>
    <style>
        body{font-family:SimSun;}
        .title{align-content: center;text-align: center;}
        .signature{float:right }
    </style>
</head>
<body>
<div>
    <h1 class="title">标题</h1>
    <h4 class="title">副标题</h4>
    <span>当前时间: ${date_time} </span>
    <div class="signature">日期:${date}</div>
</div>
</body>
</html>

2.1.3 获取HTML内容

当HTML模板存放在系统文件夹

String templateDirectory = "D:\\";  // 系统文件夹路径 如: D:\

当HTML模板存放在项目resources/templates目录

ClassLoader classLoader = PdfUtilTest.class.getClassLoader();
URL resource = classLoader.getResource("templates");
String templateDirectory = resource.toURI().getPath();

示例代码:

import com.itextpdf.html2pdf.ConverterProperties;
import com.itextpdf.html2pdf.HtmlConverter;
import com.itextpdf.layout.font.FontProvider;
import freemarker.template.Configuration;
import freemarker.template.Template;
import lombok.extern.slf4j.Slf4j;

import java.io.*;
import java.net.URL;
import java.time.LocalDateTime;
import java.time.fORMat.DateTimeFormatter;
import java.util.HashMap;
import java.util.Map;

@Slf4j
public class PdfUtilTest {
    
    private static String getTemplateContent(String templateDirectory, String templateName, Map<String, Object> paramMap) throws Exception {
        Configuration configuration = new Configuration(Configuration.DEFAULT_INCOMPATIBLE_IMPROVEMENTS);
        try {
            configuration.setDirectoryForTemplateLoading(new File(templateDirectory));
        } catch (Exception e) {
            System.out.println("-- exception --");
        }

        Writer out = new StringWriter();
        Template template = configuration.getTemplate(templateName,"UTF-8");
        template.process(paramMap, out);
        out.flush();
        out.close();
        return out.toString();
    }
    public static void main(String[] args) throws Exception {
        Map<String, Object> paramMap = new HashMap<>();
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        paramMap.put("date_time", dateTimeFormatter.format(LocalDateTime.now()));
        paramMap.put("date", dateTimeFormatter.format(LocalDateTime.now()).substring(0, 10));
        ClassLoader classLoader = PdfUtilTest.class.getClassLoader();
        URL resource = classLoader.getResource("templates");
        String templateDirectory  =resource.toURI().getPath();
        String templateContent = PdfUtilTest.getTemplateContent(templateDirectory, "test_template.html", paramMap);
        System.out.println(templateContent);
    }
}

2.1.4 生成PDF文档

示例代码:

    
    public static boolean html2Pdf(String content, String outPath) {
        try {
            ConverterProperties converterProperties = new ConverterProperties();
            converterProperties.setCharset("UTF-8");
            FontProvider fontProvider = new FontProvider();
            fontProvider.addSystemFonts();
            converterProperties.setFontProvider(fontProvider);
            HtmlConverter.convertToPdf(content, new FileOutputStream(outPath), converterProperties);
        } catch (Exception e) {
            log.error("生成模板内容失败,{}",e);
            return false;
        }
        return true;
    }
    
    public static byte[] html2Pdf(String content) {
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();;
        try {
            ConverterProperties converterProperties = new ConverterProperties();
            converterProperties.setCharset("UTF-8");
            FontProvider fontProvider = new FontProvider();
            fontProvider.addSystemFonts();
            converterProperties.setFontProvider(fontProvider);
            HtmlConverter.convertToPdf(content,outputStream,converterProperties);
        } catch (Exception e) {
            log.error("生成 PDF 失败,{}",e);
        }
        return outputStream.toByteArray();
    }
	public static void main(String[] args) throws Exception {
	    Map<String, Object> paramMap = new HashMap<>();
	    DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
	    paramMap.put("date_time", dateTimeFormatter.format(LocalDateTime.now()));
	    paramMap.put("date", dateTimeFormatter.format(LocalDateTime.now()).substring(0, 10));
	    String outPath = "D:\\A.pdf";
	    String templateDirectory = "D:\\";
	    String templateContent = PdfUtilTest.getTemplateContent(templateDirectory, "test_template.html", paramMap);
	    PdfUtilTest.html2Pdf(templateContent, outPath);
	    
	}

总结

到此这篇关于如何利用java实现生成PDF文件的文章就介绍到这了,更多相关java生成PDF文件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 如何利用java实现生成PDF文件

本文链接: https://www.lsjlt.com/news/169296.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何利用java实现生成PDF文件
    目录1.PDF文件简介2.生成PDF2.1 基于freemarker框架实现HTML转PDF2.1.1 引入jar包依赖:2.1.2 创建html模板test_template:2....
    99+
    2022-11-13
    java生成pdf文档 java生成pdf文件表格 java生成pdf
  • JAVA如何生成pdf文件
    这篇“JAVA如何生成pdf文件”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JAVA如何生成pdf文件”文章吧。一、简介P...
    99+
    2023-07-04
  • C#如何利用PdfSharp生成Pdf文件
    这篇文章给大家分享的是有关C#如何利用PdfSharp生成Pdf文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。PdfSharp一款开源的用于创建,操作PDF文档的.Net类库。PdfSharp下载在本例中,主...
    99+
    2023-06-14
  • 如何在Java中利用iTextPDF生成一个PDF文件
    这篇文章主要介绍了如何在Java中利用iTextPDF生成一个PDF文件,编程网小编觉得不错,现在分享给大家,也给大家做个参考,一起跟随编程网小编来看看吧!Java可以用来干什么Java主要应用于:1. web开发;2. Android开发...
    99+
    2023-06-06
  • 【Java】使用iText生成PDF文件
    iText介绍   iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。   项目要使用iT...
    99+
    2023-09-11
    java pdf python
  • JAVA生成pdf文件的实操指南
    目录一、简介二、实操三、原理解析1.是什么?1.1.关键技术2.怎么做?为什么?3.参考总结 一、简介 PDF文件格式可以将文字、字型、格式、颜色及独立于设备和分辨率的图形...
    99+
    2022-11-13
    java生成pdf文件 java生成pdf文件表格 java生成pdf并打印
  • JAVA生成pdf文件的实操教程
    目录一、简介二、实操三、原理解析1.是什么?1.1.关键技术2.怎么做?为什么?3.参考总结 一、简介 PDF文件格式可以将文字、字型、格式、颜色及独立于设备和分辨率的图形...
    99+
    2022-11-16
    java生成pdf文件 自己实现JAVA生成PDF文件 java实现pdf
  • C# 利用PdfSharp生成Pdf文件的示例
    目录PdfSharp下载 涉及知识点 文档示例图 核心代码 PdfSharp一款开源的用于创建,操作PDF文档的.Net类库,本文以一个简单的小例子,简述如何通过PdfSharp进行...
    99+
    2022-11-12
  • 【教程】如何使用Java生成PDF文档?
    在如今数字化时代,越来越多的人使用PDF文档进行信息传递和共享。而使用Java生成PDF文档也成为了一个非常重要的技能,因为Java作为一种通用的编程语言,可以在不同的操作系统和平台上运行。下面,我们将为您介绍如何使用Java生成PDF文档...
    99+
    2023-09-02
    java servlet jvm
  • Java中如何生成带有二维码的PDF文件?
    在现代社会,二维码已经成为了非常普遍的一种信息传递方式。而PDF文件也是一种非常常见的文档格式。那么,如何在Java中生成带有二维码的PDF文件呢?本文将为大家介绍一种基于iText库的方法。 iText是一个开源的Java PDF库,它...
    99+
    2023-06-24
    文件 二维码 shell
  • 利用exe4j生成java的exe文件
    使用集成开发工具IDEA生成jar文件 1. File—>Project Structure 2. Artifacts—>加号—>JAR—>From mod...
    99+
    2022-11-12
  • 从Java应用程序动态生成PDF文件(转)
    从Java应用程序动态生成PDF文件(转)[@more@]如果应用程序需要动态生成 PDF 文档,则需要 iText 库。开放源码的 iText 库使 PDF 文档的创建能够在瞬间完成。本文介绍了 iText 并提供了使用它从 Java ...
    99+
    2023-06-03
  • php利用tcpdf生成签名盖章的pdf文件并支持中文
    下载tcpdf github 代码: ...
    99+
    2023-09-29
    pdf php
  • 手把手教你使用Java实现在线生成pdf文档
    目录一、介绍二、案例实现2.1添加 iText 依赖包2.2简单实现2.3复杂实现2.4变量替换方式三、总结一、介绍 在实际的业务开发的时候,研发人员往往会碰到很多这样的一些场景,需...
    99+
    2022-11-13
  • Python利用PyMuPDF实现PDF文件处理
    目录1、PyMuPDF简介介绍功能2、安装关于命名fitz的说明3、使用方法导入库,查看版本打开文档Document的方法和属性获取元数据获取目标大纲页面(Page)PDF操作1、P...
    99+
    2022-11-11
  • Python如何实现PDF扫描件生成DOCX或EXCEL功能
    这篇文章将为大家详细讲解有关Python如何实现PDF扫描件生成DOCX或EXCEL功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.问题描述应项目需求需要获取PDF扫描文件的内容,但寻遍整个网络能达...
    99+
    2023-06-29
  • C++利用GPAC实现生成MP4文件的示例代码
    目录一、MP4Writer类二、写h264流数据为mp4文件步骤三、写h265流数据为mp4文件步骤四、利用命令行生成mp4文件GPAC主要针对学生和内容创作者,代表了一个跨平台的多...
    99+
    2023-02-06
    C++ GPAC生成MP4文件 C++生成MP4文件 C++ GPAC MP4
  • Python如何提取PDF指定内容并生成新文件
    小编给大家分享一下Python如何提取PDF指定内容并生成新文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!01需求描述数据是一份有286页的上市公司公开年报P...
    99+
    2023-06-15
  • Java如何实现读取txt文件内容并生成Word文档
    目录导入Jar包1. Maven仓库下载导入2. 手动导入读取txt生成Word注意事项本文将以Java程序代码为例介绍如何读取txt文件中的内容,生成Word文档。在编辑代码前,可...
    99+
    2022-11-12
  • 如何实现core文件自动生成配置文件
    这篇文章主要介绍如何实现core文件自动生成配置文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体执行步骤如下:1.编辑环境配置文件,让shell启动时自动设置ulimitvi /etc/profile...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作