首页 > 其他分享 >四月十八日

四月十八日

时间:2023-04-19 21:35:16浏览次数:26  
标签:resourcesDir new renderer import pdf 四月 十八日 xhtmlrenderer

最近再弄如何使用javaweb将html页面转换为pdf

html转为pdf有两种方法:

  1. xhtmlrenderer
  2. itext

1.使用xhtmlrenderer

依赖

<dependency>
    <groupId>org.xhtmlrenderer</groupId>
    <artifactId>flying-saucer-pdf</artifactId>
    <version>9.1.18</version>
</dependency>

java代码

import com.lowagie.text.pdf.BaseFont;
import org.xhtmlrenderer.pdf.ITextFontResolver;
import org.xhtmlrenderer.pdf.ITextRenderer;
​
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
​
public class HtmlToPdf {
​
    private static final String resourcesDir = System.getProperty("user.dir") + "/src/main/resources";
​
    public void htmlToPdf() throws Exception {
        String path = resourcesDir + "/template/template.html";
        String destPath = resourcesDir + "/template/template.pdf";
        ITextRenderer renderer = new ITextRenderer();
        OutputStream os = new FileOutputStream(destPath);
        renderer.setDocument(new File(path));
        ITextFontResolver resolver = renderer.getFontResolver();
        //添加字体,解决中文不显示的问题
        resolver.addFont(resourcesDir + "/font/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
        renderer.layout();
        renderer.createPDF(os);
        os.close();
    }
​
    public static void main(String[] args) throws Exception {
        new HtmlToPdf().htmlToPdf();
    }
​
}

注意事项

  1. 在html中需要在body中定义font-family,定义的字体需要跟代码中使用的字体完全一致。
  2. 不要在项目中引入itext相关的包,可能会导致中文不显示。

标签:resourcesDir,new,renderer,import,pdf,四月,十八日,xhtmlrenderer
From: https://www.cnblogs.com/mine-my/p/17334695.html

相关文章

  • 四月十九日
    2.使用itext依赖<dependency><groupId>com.itextpdf</groupId><artifactId>html2pdf</artifactId><version>3.0.3</version></dependency>java代码importcom.itextpdf.html2pdf.ConverterProperties;impo......
  • 四月十九日
    提示词自动补全#有些小伙伴喜欢在输入中文的时候,自动补全英文这个适合绘画的时候,你知道自己想要什么样的效果,也知道自己想要哪些提示词这就需要提示词自动补全插件解决,Boorutagautocompletion 这个插件就是用来实现提示词自动补全的功能插件地址:https://github.com/Domini......
  • 四月学习之LVS shell脚本配置DR模型
    1、DS脚本配置#!/usr/bin/bashVIP=172.16.1.100RS1=172.16.1.5RS2=172.16.1.6PORT=80SCHEDULER=rrDEV=eth1:1case$1instart)#配置虚拟IP地址VIP cat>/etc/sysconfig/network-scripts/ifcfg-${DEV}<<-EOF TYPE=Ethernet BOOTPROTO=none DEFROUTE=y......
  • 四月学习之LVS DR模型详解
    一、概述通过修改请求报文的目标MAC地址,然后根据算法挑选出合适的RS节点,进行转发。(请求进入DSServer时做MAC地址替换,后端返回数据报文时无需经过DSServer节点,直接返回给客户端即可)1、DR基础图解2、DR底层实现1、路由器如何找到VIP以及MAC地址呢路由器通过ARP广播获取VMAC,然后......
  • 阅读笔记四月第一篇
    一个理想的设计的特征这一章我主要了解了一个理想设计的特征,书中是这样说的: 一个理想的设计的特征是怎样的呢? 他们有一些共同的特征,这里罗列里一些,虽然都是一个一个的点,但你可以以此针对你做出的设计一一对照一下。1)最小的复杂度:你的设计得很容易看懂,很清晰明了,而不是自作......
  • 四月十三日
    因为完成项目需要用到数据库两列内容相加,所以总结一下常用的sql语句1.查看现有数据库SHOWDATABASES;2.新建数据库CREATEDATABASE<数据库名>;3.选择数据库USE<数据库名>;4.从.sql文件引入SQL语句SOURCE<.sql文件路径>;5.删除数据库DROPDATABASE<数......
  • 四月学习之LVS基本概述
    一、LVS基本概述1、什么是LVSLVS的英文全称是linuxvirtualserver,即linux虚拟服务器,其实它是一种cluster集群技术,主要用于负载均衡,将用户请求均匀的调度到不同的服务器上执行注意:LVS是基于四层IP:PROT的负载均衡2、为何需要LVS1、解决七层端口数不够问题,实现百万连接2、解......
  • 四月八日
    今天只完成了一些前端页面,具体如下<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><linkrel="stylesheet"href="css/css.css"><html><%@pagelanguage="java"contentType="text/html;charse......
  • 四月六日和四月七日
    这两天在构思王建民老师上课给我提出的要求。就是加入参赛人员、参赛人数、队名、学生选题、在线评价、在线评分、总分、名次、教师总结、评分员总结、一句话就是说把星期一上课的内容用计算机表示出来,完成人工的各种操作。我的想法是建一个表、表中有队名、参赛人员、参赛人数、......
  • 三月十八日结对
    合作对象:李佳岳今日所完成代码:select函数、检验输入的站点在几号线的函数checkstation、带参数的select函数、站名输出函数substationpackagedao;importjava.sql.Conne......