打印样式:如何确保图像不跨越分页符

在编写打印样式表时,有没有办法确保图像总是只在一个页面上,而不是跨越多个页面。 图像比页面小得多,但是基于文档stream,它们最终在页面的底部并被分割。 我看到的行为的一个例子如下:

Page 1 | | | (text text text) | | (text text text) | | ________________ | | | Top of image | | |____________________| ------page break------ ____________________ Page 2 | | Rest of image | | | |________________| | | … | 

我想要什么

 Page 1 | | | (text text text) | | (text text text) | | | | | |____________________| ------page break------ ____________________ Page 2 | ________________ | | | Full image | | | | | | | |________________| | | … | 

所有那些时候我在LaTeX上喋喋不休,在这里我要求相同的function…可以这样做吗? 我不一定关心它在所有的浏览器中工作,因为这通常只是我写的一次性文档被转换成PDF。

我能想到的唯一方法是使用一个(或更多)以下css规则:

 img { page-break-before: auto; /* 'always,' 'avoid,' 'left,' 'inherit,' or 'right' */ page-break-after: auto; /* 'always,' 'avoid,' 'left,' 'inherit,' or 'right' */ page-break-inside: avoid; /* or 'auto' */ } 

我只记得这些声明只适用于块级元素(所以你还必须在你的图像上定义display: block;或者使用某种包装容器,并将规则应用到该块上(无论是在段落中,div,span,list等)。

这里有一些有用的讨论:“ 什么是最有用的media="print"具体的,跨浏览器兼容的CSS属性?

参考文献:

  • page-break-after
  • page-break-before
  • page-break-inside