• home > webfront > browser > Puppeteer >

    puppeteer生成pdf文件分页如何优化:css page-break

    Author:zhoulujun Date:

    用puppeteer将html文件转成pdf,生成文件分页不尽人意,甚至但直接从一行文本中间分开,如何优化呢?很多时候,我希望分页有我自己的控制,...

    用puppeteer将html文件转成pdf,生成文件分页不尽人意,甚至但直接从一行文本中间分开,如何优化呢?

    很多时候,我希望分页有我自己的控制,比如标题2,都作为页首。  

    之前我想到的是利用js取计算内容,自动插入hr 这种笨办法。而忽略了CSS本身就支持这个

    强制分页:让指定元素单独成页

     想要打印的时候手工分页,css 提供了page-break属性供开发设置,具体参看:

    https://developer.mozilla.org/en-US/docs/Web/CSS/page

    https://css-tricks.com/almanac/properties/p/page-break/

    使用 CSS 的 page-break-before 或 page-break-after 属性强制分页:

    /* 在某个元素前强制分页 */
    .force-page-break-before {
      page-break-before: always;
    }
    
    /* 在某个元素后强制分页 */
    .force-page-break-after {
      page-break-after: always;
    }
    
    /* 禁止元素内部分页(如表格不跨页) */
    .no-break-inside {
      page-break-inside: avoid;
    }

    示例 HTML:

    <div class="content">第一页内容</div>
    
    <!-- 在此处强制分页 -->
    <div class="force-page-break-before">
      这个内容会从新的一页开始
    </div>





    参考文章:

    https://stackoverflow.com/questions/1664049/can-i-force-a-page-break-in-html-printing

    https://cnodejs.org/topic/5b38c621ac8bc1e124114525



    转载本站文章《puppeteer生成pdf文件分页如何优化:css page-break》,
    请注明出处:https://www.zhoulujun.cn/html/webfront/browser/Puppeteer/9491.html