开源库 openhtmltopdf 将 html 转 为 pdf 页面优化、美化的不得不知道的经验

html-css06

开源库 openhtmltopdf 将 html 转 为 pdf 页面优化、美化的不得不知道的经验,第1张

在我们项目中会使用freemark 生成 html,然后用 html 转 pdf。那么美化是必不可少的程序。

可以在style中设置如下属性修改页面大小。可以通过size 设置任意大小的page(不能是百分比),也可以设置标准的页面大小,如 a4, a5, a3, b3, b4, letter, legal,ledger

理论上来说,可以在一个文档中设置不同的页面尺寸。但这个解析器仅仅取第一页的page 的宽度作为 html 中body 的宽度,所以实际上,宽度只能设置一个,高度可以是设置多个。

可以在 @page 属性中设置的当前页的页边距,内边距、背景颜色等。和一般的 html 设置类似。

不过当我这里设置所有边框都为0 时候发现生成的pdf 仍然有边界。其实那是 body 的边距。可以通过下面的方法设置

和页面大小设置相似,这样所有的边距都就没了。这是一个需要注意的地方

这里就不多说了,看我另一篇文章即可。 分页优化

<html>

<head>

<title>你们都</title>

<style>

body{background:url(http://img1.xcarimg.com/b171/s5313/20130625144159802565.jpg) no-repeat center centermargin:0px auto}

.parent { width:980pxheight:50pxmargin:0 autotext-align:center}

.children {display:inline-blockwidth:33%%height:100%%}

*+ html .children { display:inlinezoom:1}

* html .children { display:inlinezoom:1}

</style>

</head>

<script language=\JavaScript\ src=\?getxml=\>

</script>

<BODY onload = \sender(0)\>

<body>

<center>

<h2>当前温度检测</h2>

<div align= center>

<div class=\parent\>

<div class=\children\>温度 : </div>

<div id=\tempId\ class=\children\>00</div>

<div class=\children\>℃</div>

</div>

<br>

<font size= 20 color=blue>

</font>

<form>

<input name=B1 type=submit value=开启>

<input name=B2 type=submit value=关闭>

</form>

</center>

</body>

</html>

文字通过font-familyfont-sizefont-weightcolor等可以美化

按钮要想美化 就给按钮做个背景图片就可以了

希望能帮助你

checkbox那个框的样子是不会变大的,但触发区域可以通过你设置width height样式变大。对那个框样子不满意的话,可以将它透明度设为0,下面放一个样式中意的div,这样能够做到看上去是在点击那个div。

如果我的回答没能帮助您,请继续追问。