Flying Saucer很强大支持CSS样式,可以直接将html转换成PDF,而且免费跨平台。
下面我来说一下生成PDF页码
开始我以为生成页码会和Itext一样在程序中实现,但是不遂人愿,程序实现是不对的。后来我查了英文说明网站(因为英语不咋的实在懒得看)
http://today.java.net/pub/a/today/2007/06/26/generating-pdfs-with-flying-saucer-and-itext.html#page-specific-features
找到了显示页码的方法是在CSS操作
@page {
size: 4.18in 6.88in;
margin: 0.25in;
-fs-flow-top: "header";
-fs-flow-bottom: "footer";
-fs-flow-left: "left";
-fs-flow-right: "right";
border: thin solid black;
padding: 1em;
}
#header {
font: bold serif;
position: absolute; top: 0; left: 0;
-fs-move-to-flow: "header";
}
#footer {
font-size: 90%; font-style: italic;
position: absolute; top: 0; left: 0;
-fs-move-to-flow: "footer";
}
#pagenumber:before {
content: counter(page);
}
#pagecount:before {
content: counter(pages);
}
还有一段HTML里面代码
<div id="header" style="">Alice's Adventures in Wonderland</div>
<div id="footer" style=""> Page <span id="pagenumber"/> of <span id="pagecount"/> </div>
这样就可以显示了,但是仅能显示一页,把“Page <span id="pagenumber"/> of <span id="pagecount"/>”放到第二页时就显示第二页,没办法不给力啊,页数不能控制。
峰回路转我有找到另一个CSS样式
@page {
size: 4.18in 6.88in;
margin: 0.25in;
border: thin solid black;
padding: 1em;
@bottom-center{
content:"@xxoo有限公司 版权所有";
font-family: SimSun;
font-size: 9px;
color:red;
};
@top-center { content: element(header) };
@bottom-right{
content:"page " counter(page) " of " counter(pages);
font-family: SimSun;
font-size: 9px;
color:red;
};
}
div#myheader {
display: block;
position: running(header);
}
其实第一种方案是过时的写法,第二种才是现在的写法。
转自
http://topic.csdn.net/u/20111012/11/0e65faba-de91-4104-9aa1-eb7cd9c97ce2.html
我稍微改了一下
@page {
margin: 0.25in;
padding: 1em;
@bottom-center{
content:"@OOXX 版权所有";
font-family: SimSun;
font-size: 9px;
color:red;
};
@top-center { content: element(header) };
@bottom-right{
content:"第" counter(page) "页 共 " counter(pages) "页";
font-family: SimSun;
font-size: 9px;
color:#000;
};
}
div#myheader {
display: block;
position: running(header);
}
#pagenumber:before {
content: counter(page);
}
#pagecount:before {
content: counter(pages);
}
生成的例子
- 大小: 5.7 KB
- 大小: 5.9 KB
分享到:
相关推荐
在IT行业中,生成PDF文档是常见的需求,特别是在报表...结合SpringBoot的自动化和Freemarker的模板能力,可以构建出高效、可维护的PDF生成系统。然而,要注意兼容性和性能优化,以确保在各种场景下都能得到满意的结果。
本实例将深入探讨如何利用Flying Saucer生成PDF,并解决其中遇到的中文显示问题。 首先,Flying Saucer基于IText库,IText是一款强大的PDF处理工具,它提供了丰富的API用于创建、修改和处理PDF文档。Flying Saucer...
本文将详细探讨`flying-saucer-pdf`如何解决图片问题以及中文显示问题。 首先,让我们关注一下图片问题。在HTML到PDF的转换过程中,图片的处理是个常见挑战。`flying-saucer-pdf` 支持多种图片格式,如JPEG、PNG、...
二、FlyingSaucer PDF生成 FlyingSaucer是一个基于IText的PDF生成工具,可以将HTML文档转换为PDF文档。在本方案中,FlyingSaucer用于将生成的HTML模板转换为PDF文档。FlyingSaucer支持中文字符的正确显示,且可以...
3. 运行Junit测试类 TestPdfGenerator.testGenerate()即可生成,pdf生成路径见日志. 4. 如果没有maven环境,需要手动下载以下依赖包: commons-pool-1.5.1.jar flying-saucer-core-9.0.3.jar flying-saucer-pdf-...
Flying Saucer生成pdf文档jar包 ,已做修改,支持中文 换行,但是 table标签换行 请改用CSS 样式:style="table-layout:fixed; word-break:break-strict;
`Flyingsaucer`的核心组件是`ITextRenderer`,它基于iText库来实现PDF生成。以下是如何使用`Flyingsaucer`将包含中文的HTML转换为PDF的步骤: 1. **添加依赖**:首先,你需要在项目中引入`Flyingsaucer`和`iText`的...
- flying-saucer-pdf-x.x.x.jar:Flying Saucer的PDF生成模块 引入这些库后,你可以通过以下步骤生成PDF: 1. 创建一个`ITextRenderer`实例,这是Flying Saucer的渲染器。 2. 设置渲染器的输出目的地,通常是`...
在`flying-saucer`中,iText作为底层库用于实际的PDF生成,处理页面布局、文本流、图像插入等任务。版本2.1.7虽然较旧,但依然稳定且功能完善。 使用这些库进行HTML到PDF的转换通常涉及以下步骤: - 创建一个`...
在与flying saucer结合使用时,iText通常用来完成最后的PDF生成步骤,将flying saucer处理后的页面流转换为完整的PDF文档。 【freemarker】是一个模板引擎,常用于生成HTML、XML或其他文本格式的文档。开发者可以...
将这个新jar包集成到你的项目中,可以确保在使用Flying Saucer将网页转换为PDF时,中文内容能够正确显示。 总的来说,解决"Flying Saucer的中文不显示问题"是一个涉及字符编码配置和字体资源管理的过程。通过修改...
- **PDF文件生成**: FlyingSaucer支持将文档输出为PDF格式。 - **字体控制**: 用户可以根据需要添加自定义字体或指定特定编码下的字体。 - **页面尺寸设置**: 可以自由控制生成PDF文档的页面大小。 - **页边距调整**...
flying-saucer-coreR-9.0.7 中修改Breaker类,解决PDF中文没有对齐问题。
基于iText 和 flying saucer结合freemark java 生成 pdf
3. **配置设置**: 可以设置PDF生成的参数,例如页面大小、边距、字体等。 4. **渲染**: 使用`ITextRenderer`类实例化一个渲染器,然后调用`setDocument`方法加载HTML源,再调用`render`方法生成PDF。 5. **保存PDF...
flying-saucer-pdf-itext5-9.0.3.jar
5. **自定义设置**:ITextRenderer类提供了许多方法来调整PDF生成的参数,如页面大小、字体、图像质量等。可以根据需要进行配置。 6. **处理图像和资源**:确保HTML文件中引用的所有图像和其他资源都能在转换过程中...
Flying-Saucer通过html生成pdf。。。项目中已经附带了jar包,放到项目中就可以运行了。亲测了,解决了中文不显示或者样式的问题,感觉蛮实用的。网上找了很久和下载其他资源用了好多积分,如果有需要的就下载吧!!...
总的来说,iText+Flying Saucer生成PDF文档时遇到的中文不显示和不自动换行问题,可以通过调整字体设置、优化CSS布局和正确使用PageBreaker类来解决。在实际开发中,要充分理解这两个库的工作原理,结合实际需求进行...