Java 为什么文件转换为PDF时格式会改变?
我想将HTML页面转换为pdf。为此,我使用了flying-discer-pdf-itext5。添加了flying-discer-pdf-itext5和flying-discer核心依赖项,但当生成pdf文件时,其格式会发生更改,一些CSS不会应用于pdf文件。 我的代码如下:Java 为什么文件转换为PDF时格式会改变?,java,itext,flying-saucer,Java,Itext,Flying Saucer,我想将HTML页面转换为pdf。为此,我使用了flying-discer-pdf-itext5。添加了flying-discer-pdf-itext5和flying-discer核心依赖项,但当生成pdf文件时,其格式会发生更改,一些CSS不会应用于pdf文件。 我的代码如下: String xHtml = convertToXhtml(htmlContent); ITextRenderer renderer = new ITextRenderer();
String xHtml = convertToXhtml(htmlContent);
ITextRenderer renderer = new ITextRenderer();
renderer.setDocumentFromString(xHtml);
renderer.setScaleToFit(true);
renderer.layout();
final File pdfFile = new File("fileName.pdf");
OutputStream outputStream = new FileOutputStream(pdfFile);
renderer.createPDF(outputStream);
outputStream.close();
要将Html转换为XHTML,我编写以下代码:
Tidy tidy = new Tidy();
tidy.setInputEncoding(UTF-8);
tidy.setOutputEncoding(UTF-8);
tidy.setXHTML(true);
ByteArrayInputStream inputStream = new
ByteArrayInputStream(htmlContent.getBytes(UTF-8));
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
tidy.parseDOM(inputStream, outputStream);
pom.xml是:
<dependency>
<groupId>org.xhtmlrenderer</groupId>
<artifactId>flying-saucer-core</artifactId>
<version>9.1.6</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.xhtmlrenderer</groupId>
<artifactId>flying-saucer-pdf-itext5</artifactId>
<version>9.1.6</version>
<scope>compile</scope>
</dependency>
org.xhtmlender
飞碟核心
9.1.6
编译
org.xhtmlender
飞碟-pdf-itext5
9.1.6
编译
您需要更加具体:请说明您正在做什么,并说明未应用的CSS类型。一般来说,我不希望iText
能够完美地表示所有CSS。添加飞碟标签是有意义的,对吗?您还可以提供PDF(或一些示例)来说明该行为吗?