带有 openpdf 的 FlyingSaucer 无法正确呈现弹性框
FlyingSaucer with openpdf doesn't render flex box correctly
我想使用 latest FLyingSaucer
呈现 PDF 文档
build.gradle:
implementation 'org.xhtmlrenderer:flying-saucer-pdf-openpdf:9.1.22'
输入HTML个文档(差不多一个copy from W3 schools):
<!DOCTYPE html>
<html>
<head>
<style>
.flex-container {
display: flex;
background-color: DodgerBlue;
}
.flex-container > div {
background-color: #f1f1f1;
margin: 10px;
padding: 20px;
font-size: 30px;
}
</style>
</head>
<body>
<h1>Create a Flex Container</h1>
<div class="flex-container">
<div>1</div>
<div>2</div>
<div>3</div>
</div>
</body>
</html>
示例代码(作为JUnit测试):
class FlexTest {
@Test
void flexTest() throws FileNotFoundException, IOException {
final String htmlContent =
IOUtils.toString(new FileInputStream("input.html"), Charset.defaultCharset());
ITextRenderer renderer = new ITextRenderer();
renderer.setDocumentFromString(htmlContent);
renderer.layout();
renderer.createPDF(new FileOutputStream("output.pdf"));
}
}
它工作正常,除了 display: flex
没有正确呈现。看起来它呈现为常规 <div>
:
FlyingSaucer/openpdf是否支持弹性框?我没有找到任何说明它不是。
Flying-saucer 不支持 Flex,并且可能永远不会支持它。
飞碟支持的CSS限制为CSS 2.1 and most of CSS paged media。
我想使用 latest FLyingSaucer
呈现 PDF 文档build.gradle:
implementation 'org.xhtmlrenderer:flying-saucer-pdf-openpdf:9.1.22'
输入HTML个文档(差不多一个copy from W3 schools):
<!DOCTYPE html>
<html>
<head>
<style>
.flex-container {
display: flex;
background-color: DodgerBlue;
}
.flex-container > div {
background-color: #f1f1f1;
margin: 10px;
padding: 20px;
font-size: 30px;
}
</style>
</head>
<body>
<h1>Create a Flex Container</h1>
<div class="flex-container">
<div>1</div>
<div>2</div>
<div>3</div>
</div>
</body>
</html>
示例代码(作为JUnit测试):
class FlexTest {
@Test
void flexTest() throws FileNotFoundException, IOException {
final String htmlContent =
IOUtils.toString(new FileInputStream("input.html"), Charset.defaultCharset());
ITextRenderer renderer = new ITextRenderer();
renderer.setDocumentFromString(htmlContent);
renderer.layout();
renderer.createPDF(new FileOutputStream("output.pdf"));
}
}
它工作正常,除了 display: flex
没有正确呈现。看起来它呈现为常规 <div>
:
FlyingSaucer/openpdf是否支持弹性框?我没有找到任何说明它不是。
Flying-saucer 不支持 Flex,并且可能永远不会支持它。
飞碟支持的CSS限制为CSS 2.1 and most of CSS paged media。