首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有openpdf的FlyingSaucer不能正确渲染flex box

带有openpdf的FlyingSaucer不能正确渲染flex box
EN

Stack Overflow用户
提问于 2021-11-08 11:46:30
回答 1查看 257关注 0票数 1

我想使用latest FLyingSaucer呈现PDF文档。

代码语言:javascript
复制
build.gradle:

implementation 'org.xhtmlrenderer:flying-saucer-pdf-openpdf:9.1.22'

输入超文本标记语言文档(几乎是一个copy from W3 schools):

代码语言:javascript
复制
<!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测试):

代码语言:javascript
复制
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是否支持flex box?我没有发现任何说明它不是。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-08 15:34:33

飞碟不支持Flex,而且可能永远不会支持它。

飞碟支持的CSS仅限于CSS 2.1和大部分CSS paged media

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69882965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档