首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

转换html到PDF使用iText -传递外部CSS作为字符串?

转换HTML到PDF可以使用iText库,它是一个功能强大的Java PDF库。要传递外部CSS作为字符串,可以使用iText的CSSResolver和StyleAttrCSSResolver类来实现。

首先,需要创建一个CSSResolver对象来解析CSS样式表。然后,可以使用CSSResolver的addCss方法将外部CSS作为字符串传递给解析器。接下来,创建一个StyleAttrCSSResolver对象,并将CSSResolver对象作为参数传递给它。这样,StyleAttrCSSResolver将会使用解析后的CSS样式。

下面是一个示例代码:

代码语言:java
复制
import com.itextpdf.html2pdf.ConverterProperties;
import com.itextpdf.html2pdf.HtmlConverter;
import com.itextpdf.styledxmlparser.css.resolve.CssResolver;
import com.itextpdf.styledxmlparser.css.resolve.CssResolverContext;
import com.itextpdf.styledxmlparser.css.resolve.CssResolverConfiguration;
import com.itextpdf.styledxmlparser.css.resolve.CssStyleSheet;
import com.itextpdf.styledxmlparser.css.resolve.CssStyleSheetFactory;
import com.itextpdf.styledxmlparser.css.resolve.IStylesheetResolver;
import com.itextpdf.styledxmlparser.css.resolve.StyleAttrCSSResolver;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;

public class HtmlToPdfConverter {
    public static void main(String[] args) throws IOException {
        String html = "<html><head><link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\"></head><body><h1>Hello, World!</h1></body></html>";
        String css = ".h1 { color: red; }";

        // 创建CSS解析器
        CssResolver cssResolver = new CssResolverConfiguration().createCssResolver(null);
        CssStyleSheet cssStyleSheet = CssStyleSheetFactory.parse(new ByteArrayInputStream(css.getBytes(StandardCharsets.UTF_8)));
        cssResolver.addCss(cssStyleSheet);

        // 创建StyleAttrCSSResolver
        StyleAttrCSSResolver styleAttrCSSResolver = new StyleAttrCSSResolver(cssResolver);

        // 创建转换器属性
        ConverterProperties converterProperties = new ConverterProperties();
        converterProperties.setCssResolver(styleAttrCSSResolver);

        // 将HTML转换为PDF
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        HtmlConverter.convertToPdf(new ByteArrayInputStream(html.getBytes(StandardCharsets.UTF_8)), outputStream, converterProperties);

        // 保存PDF文件
        // ...

        // 关闭流
        outputStream.close();
    }
}

在上面的示例代码中,我们首先创建了一个CSSResolver对象,并将外部CSS作为字符串传递给它。然后,创建了一个StyleAttrCSSResolver对象,并将CSSResolver对象作为参数传递给它。接下来,创建了一个ConverterProperties对象,并将StyleAttrCSSResolver对象设置为其CSS解析器。最后,使用HtmlConverter将HTML转换为PDF。

请注意,这只是一个简单的示例代码,实际使用时可能需要根据具体需求进行适当的调整。另外,iText库还提供了许多其他功能和选项,可以根据需要进行进一步的研究和使用。

腾讯云相关产品中,可以使用腾讯云的云函数(SCF)来部署和运行这个转换HTML到PDF的功能。具体可以参考腾讯云云函数的文档:腾讯云云函数

希望以上信息对您有所帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PDF技术 -Java实现HtmlPDF文件

itext有时并不能满足需求,不能兼容html的样式,且从html页面导出的图片pdf中也并不好处理。...原理: 使用ITextHTML文件转化为PDF文件 优点: 速度快,支持中文(要求HTML使用unicode编码)、开源 缺点: 纠错能力差, 对CSS样式支持不是很好。...:3660 CSS样式丢失: JAVA 将图片转换pdf文件 - CSDN博客.html 消耗时间:7609 样式同样丢失问题 itext htmlpdf布局问题_百度搜索.html 消耗时间...PD4ML(样式有问题) PD4ML是纯Java的类库,使用HTMLCSS作为页面布局和内容定义格式来生成PDF文档的强大工具,可以简化最终用户生成PDF的工作。...参考网站:http://www.pd4ml.com 优点: 支持中文、对html代码不严格、速度较快 支持的HTML标签、CSS属性较全,转换失真比较小,可以使用HTML+CSS实现精确的布局控制。

12.3K30

URL如何转换pdf

转换Html效率 速度快 未测 速度慢。...能忽略一些html语法或资源是否存在问题。 速度快。部分CSS样式不支持。 转换Html效果 存在样式失真问题。对html语法有一定要求 存在样式失真问题。对html语法有较高要求。...失真情况较小,大部分网页能按Chome浏览器显示的页面转换 部分CSS样式有问题。...未测 优点 不需安装软件、转换速度快 不需安装软件、转换速度快 生成PDF质量高 不需要安装软件、转换速度快 缺点 对html标签严格,少一个结束标签就会报错;服务器需要安装字体 对html标签严格,少一个结束标签就会报错...,并且同样存在一些常见的样式失真问题,直接排除; 2.剩下的就是在IText和FlyingSaucer的实现方案中做选择,对比之下,选择IText作为我们的最终实现方案 方案一: IText方式 【相关依赖

16710

我的Web开发实战总结(二)

写在前面 这篇是继我的Web开发实战总结(一)的第二篇文章,在此篇里,我主要总结一下如何把Web页面上的报表或列表数据转换pdf文件下载到本地。其中涉及的知识我也会提出来供大家交流学习。...所以我建议大家使用第二种利用iTextHTML 转为 PDF,我也是用的第二种思路实现的。...2.利用iTextHTML 转为 PDF 这个思路就是我此篇要重点要讲的,将html转成PDF,首先html有图片,还有各种数据,那么怎么将图片和各种数据填充到html里面呢?...利用iTextHTML 转为 PDF 1.准备好生成pdf所需的jar包 CORE 包:主要是itext相关的一些核心itext.jar XML 包:xmlworker是一个基于iText的xml生成...pdf工具 freemarker包:将模板转换html的jar包(此jar包也能将模板转换成excel,word等) 这里我将它们打包免费分享出来,下载地址:itext生成pdf所需的jar包 2.创建

1.7K10

java(iText)工具包生成PDF

支持文本,表格,图形的操作,可以方便的跟 Servlet 进行结合 iText的更新变化很大,早期版本在PDF样式上可能会有瑕疵,所有我使用的最新的5.5.6包 1.添加Maven依赖 itext...先创建html,然后转换pdf,demo如下: package iText; import java.io.ByteArrayInputStream; import java.io.FileOutputStream...XmlWorker,XmlWorker也是iText官方的,目前和iText版本一起更新,可以讲XHTML转换pdf,支持大部分样式和标签,是大部分哦,不是全部。...目前我们就用的这个方式,写好html文档,使用时动态替换html中的标记位,然后生成pdf。...写一个html模版很简单,需要对htmlcss熟练,调生成的样式部分比较麻烦(比如文字多了会切掉,不切会影响整体样式,表格线有粗有细,xmlworker不支持全部css等),一般A4纸都是厘米单位的,

9.9K23

itext7史上最全实战总结

干货 itext7语义本身和前端css很像,所以有点前端基础还是比较容易掌握的 1.4.1....Html段落转Pdf段落 我们可能遇到把一段Html文本转换itext7的段落放进来,此时需要用到它的htmlToPdf模块,该模块对应POM html2pdf 3.0.0 至于使用,设置好配置属性,使用也很简单,通常我们需要支持中文...也就是说只要你的html内容是包裹的,你直接把元素转成itext7的Div然后adddocument就可以实现html内容的添加了,当然你也可以用instanceof判断不同内容不同处理...如下是我的处理例子供参考,我把输入html内容样式进行了一定修改后转成itext7组件,这里特别提心,html转过来的itext7组件可能会不支持部分样式的修改,所以需要在html中进行css样式的添加

6.6K31

为何选择iText?java PDF开源库选择与iText发展历史

JFreeReport生成的报表可以分页预览、打印或者保存为多种格式的文件包括pdf、Excel、html等。...FOP 912 FOP是由James Tauber发起的一个开源项目,原先的版本是利用xsl-fo将xml文件转换pdf文件。...但最新的版本它可以将xml文件转换pdf,mif,pcl,txt等多种格式以及直接输出到打印机,并且支持使用SVG描述图形 gnujpdf 782 gnujpdf是一个java类包(gnu.jpdf....-1b标准 使用标准Java打印API打印PDF文档 另存为图片文件,如PNG、JPEG 使用内嵌字体和图片从头创建PDF 电子签名PDF文件 iText: PDFBox里面的特性iText都有 iText...与Servlet结合很好(我这种java web开发者的福音) 自动化的文档处理,例如从XML,HTML,web表单,CSS或者数据库转换PDF 文档更加安全 丰富的插件,各个插件对于一个开源项目,可以访问

5.8K30

Java高效开发12个精品库

Guava 包括内存缓存、不可变集合、函数类型、图形库和可用于 I/O、散列、并发、原语、字符串处理、反射等等的API实用程序。 05....XStream 当涉及将对象序列化XML中时,这时常用XStream库, 开发人员通过XStream库可以轻松地将对象序列化为XML并返回。...06. iText iText是用于在Java中创建和操作PDF件的Java开源库。 ? 最近的iText版本改头换面,加入许多新功能。基本Java中创建和操作PDF件的各种操作都能完成 07....它允许解析来自任何URL或文件的HTML,清理和操纵HTML元素和属性,以检索用户提交的数据并过滤掉XSS攻击属性,使用jsoup还可以完成更多功能。 09....Joda-Time是一个Java库,作为Java中日期和时间类的一个很好的替代品。

1.3K40

Python中的pdfkit入门

配置选项pdfkit还提供了一些配置选项,以便更好地控制生成的PDF文件。你可以通过创建一个配置字典,并将其作为参数传递转换函数来设置这些选项。...应用场景pdfkit具有广泛的应用场景,以下是一些常见的使用示例:将网页转换PDF:你可以通过指定URL或HTML字符串,将网页转换为高质量的PDF文件。...你可以通过创建一个配置字典,并将其作为参数传递转换函数来设置这些选项。...下面是pdfkit的一些缺点:外部依赖:pdfkit依赖于Wkhtmltopdf工具将HTML转换PDF。因此,在使用pdfkit之前,你需要在系统中安装这个工具。...与pdfkit不同,WeasyPrint是纯Python实现的,因此不需要外部依赖。同时,它支持更高级的CSS布局和样式处理。

48230

AI文档智能助理都是如何处理pdf的?

它包括文本提取器、图片转换器、HTML转换器等工具,大部分工具都是开源的。 地址:http://www.xpdfreader.com/ 5. mupdf 一个轻量级的 PDF、XPS 和电子书阅读器。...您可以使用移动查看器注释 PDF 文档和填写表格(此功能即将在桌面查看器上推出)。命令行工具允许您注释、编辑和将文档转换为其他格式,如 HTML、SVG、PDF 和 CBZ。...其中使用的技术术语包括SDK、PDF、文档引擎和编程能力。 iText 5官网[2],已停止维护。iText5仓库地址[3] iText 7官网[4] 。...+ Jsoup格式化Html + itext生成pdf (实现最方便,效果最差,跨平台)•jdoctopdf - Dead as of 2016-02-11 Uses Apache POI to read...•docx2pdf[25] 这段文本介绍了如何使用Microsoft Word直接在Windows或macOS上将docx文件转换pdf格式。

78320

rayin使用与学习

一、背景 基于html生成pdf使用场景比较多,我在的上家公司做电子合同需求的时候,是我这边完成的,当时是基于itext生成PDF的。...电子合同作为一个电签中必不可少的一部分,如何高效实现html生成pdf,是我们必须要解决的问题。如果使用电子合同,此时必然需要对接相关的电子合同厂家,比如E签宝、法大大、上上签、电子牵等。...起初我打算使用基于itext直接生成。我之前做过电子合同的需求,知道itext对于样式的兼容不是很好。因此本次,我这边使用rayin来进行pdf生成,主要开源的这个项目很好的满足了我的需求。...这里,html完成了向PDF的过渡,最终FileUtils.writeByteArrayToFile(new File(outputFile), generatePdfStreamByHtmlStr(...当然除此之外,还有很多开源项目是基于html生成pdf的,比如经典的itext,openpdf、openhtmltopdf、jasper、x-easypdf等。

24620

教你两招,轻松搞定html页面导出为pdf文件

所以最终我们拿到的PDF文件并不是真正意义上的PDF文件,而是一张图片。这也导致我们无法编辑PDF文件。而且质量也一般。 最后我们来看一看iText ?...itext7好像是最新版本,这种方式适合于维护PDF模板然后动态添加内容,有需要的小伙伴可以了解一下。...也可能是我的使用方式不当。欢迎小伙伴指正。而且itext7更多用于需要去维护PDF模板的场景,并不适合我本次的需求。所以我最终使用html2canvas+jsPDF的方式来实现。...,我们需要将我们导出的页面的路径拼接后作为参数传递进来。...由于本文设计的代码比较多,我会打包上传到csdn,大家可以自行下载 ? 大家在微信公众号后台回复 "html2pdf" 即可获取下载地址

3.1K30

PDF转Word完全指南:3大方法满足各种场景!

传统PC端软件PDF转Word本方法就是下载一个PDF软件桌面,并安装。安装之后就可以离线使用了。...目前在线的PDF处理有免费和收费两种,收费的一般开放一个小额的试用,比如1兆大小,10页等,然后引导收费。免费的一般没有太多限制。...3.复杂表格和混合编排的PDF看完了纯文本和表格,我们来看下更复杂点的例子具体转换效果对比可以查看上一篇文章适用人群和场景:在线PDF转换Word需要在线使用,一般是对数据安全没有非常强的诉求,同时非高频的...通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。...iText的安装非常方便,下载iText.jar文件后,只需要在系统的CLASSPATH中加入iText.jar的路径,在程序中就可以使用iText类库了。

4.3K40

五分钟实现pdf分页

事情起源于前几天需要把个人资料的pdf文档一页一页的拆出来,好传到相关的网站上。直接截图word再转pdf比较麻烦,所以想用工具直接转换。结果找了几个pdf阅读器,这类操作都需要会员或收费。...作为一名程序员,这么简单的操作还要收费显然是一种羞耻(当然我是不会承认主要是因为qiong的),几分钟就可以代码解决的问题为啥要花钱呢?废话不多说,开搞。...通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。...iText的安装非常方便,下载iText.jar文件后,只需要在系统的CLASSPATH中加入iText.jar的路径,在程序中就可以使用iText类库了。...这里使用的是itextpdf,代码如下: /** * 导出pdf文档中的部分页新的pdf文件 * @param filePath 文件路径 * @param newFile 写入目标文件路径

1.8K20

数据提取PDF SDK的对比推荐

PDF 已迅速成为跨各种平台共享和分发文档的首选格式,它作为一种数据来源,常见于公司的各种报告和报表中。...iText:一家由开源项目起家的公司,早期提供免费的 PDF Java 库,近期被 Apryse 收购。其产品 pdf2Data 能轻松识别和提取文档中的数据并保存为结构化、可复用的格式。...多种语言的识别格式转换,支持将数据提取保存为JSON、Excel、CSV、XML 等格式,并支持PDF 与多种格式互转如 Office、HTML、PNG、TXT等 优势:支持全平台快速集成,无编程语言限制...ByteScout - PDF Extractor SDK关键功能点:支持自动提取表格、文本和其他数据支持 PDF 转换为 JSON、XML、CSV、Excel、HTML等格式支持批量处理 PDF 报告...PDF 注释提取没有提及移动设备兼容性4. iText - pdf2Data关键功能点:支持从 PDF 文档中提取文本、图像和其他内容使用模版简化提取所需内容 优势:快速且对用户友好能简单快速集成现有工作流程中适用于任何具有可预测结构的文档

39110
领券