我正在使用Headless Chrome CDP方法来printToPDF打印出PDF文件。如果文档有很多页,那么如果我实际上打印出PDF文件,或者打印出另一个PDF文件,则随着页数的增加,页面质量会变差。
为什么会这样,我该如何解决?
我正在Win10上以Node.js v8.11.3在无头模式下使用Google Chrome 69.0。
例如,我们希望打印以下HTML内容,而无需任何额外的printToPDF设置。
<div class="lorem">
1) Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur aliquet sem sed neque faucibus dignissim. Sed congue sodales ex, vel bibendum dolor placerat vel. Curabitur ultricies luctus dui, a accumsan purus placerat a. Nullam ut lectus ultricies, mattis enim non, rutrum erat. Nulla sodales tellus in bibendum vehicula. Aenean aliquam tellus eu magna semper rutrum. Donec ultrices vestibulum varius. Suspendisse posuere arcu augue, at varius odio dignissim nec. Vestibulum nec orci faucibus, commodo ante vitae, porta mi. Nunc non efficitur mauris. Vestibulum quis sapien nisl. Duis quam odio, faucibus at posuere eget, egestas nec augue. Aliquam finibus felis felis, ut tincidunt erat gravida pretium.<br><br>
2) Ut nec consectetur neque. Ut ornare tristique libero in vehicula. Quisque eget finibus est. Phasellus id enim lacus. Integer vestibulum nisi nec leo lacinia fermentum. Mauris mattis posuere massa, in mattis ligula molestie sed. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Suspendisse imperdiet, urna eu tincidunt viverra, ipsum ligula placerat erat, at pulvinar nunc sapien et risus. Aenean pharetra pharetra libero ut euismod. Etiam sit amet tellus rutrum ante lobortis suscipit suscipit sit amet leo. Fusce id ipsum orci. Nulla suscipit malesuada massa. Vestibulum vitae vehicula diam.
</div>
如果我们使用打印机打印出PDF文件,则质量很好。下面的截图显示了结果:
现在在<div>
标签之后,#lorem <body>
之前添加以下<div>
:
<div style="height: 1999900vh; margin: 0; padding: 0; border: 0; display: block;"></div>
这使得#lorem <div>
之前的空白页为19999。现在使用'pageRanges': '20000-'
设置打印文件。如果我们打开PDF文件,看起来不错,但是当我们使用Adobe Reader(例如Foxit Reader PDF打印机)将其打印出来时,它看起来非常糟糕:
我尝试添加--disable-accelerated-2d-canvas
标志以提高质量,但这没有帮助。我也尝试过添加--use-system-default-printer
标志并使用Foxit打印出PDF文件,但是没有用。对我来说很重要的是,打印精确渲染的页面,而不管它们在实际布局中的位置。我也不明白为什么会这样。
我希望页面的质量相同,而不管它们在文档中的位置。
当我在Adobe Reader或Foxit Reader中打开PDF文件时,它看起来不错。当我用打印机或Foxit从Adobe Reader打印出另一个PDF文件时,质量很差。
欢迎任何想法来解决此问题。