这篇博客文章使您解决了这些困难问题。
要学习此博客文章,您需要您的基本nodejs知识?
您还需要对Ali的节点框架鸡蛋有所了解?
此外,博客中还有更多内容,因此您需要耐心等待,不要跳过中间的任何内容。
一开始,我收到了用节点生成PDF的需求。我迅速检查了一些信息,然后决定使用Puppeteer。这件事有什么好处?
简单地说,这很简单,学习曲线是平滑的,难度并不困难。您可以从官方文档开始。这是文档地址
英语不好的儿童鞋,这里有中文地址
让我先放一个简单的演示,这是生成PDF代码的最简单官员
然后在终端运行
看起来很简单,对吗?
但是,需求总是很复杂。当停靠需要和需求的实施时,您需要一点毅力和一些汗水。让我列出以下问题。
我们根据上面的文件结构创建文件,然后在相应的文件中填写以下内容。
该项目采用了一个鸡蛋框架,该鸡蛋框架提供了许多API和配置。API方法之一是该方法返回渲染的数据结构,即HTML页面。
我们可以通过获取渲染数据的页面结构来生成PDF,以生成PDF
您可以在 /公共目录中生成pdf.pdf。
然后,我们打开此PDF文件以查看以下问题
解决:
简单的链接找不到CSS文件,您可以使用解决方案,可以传递链接路径(URL),也可以传递CSS内容(内容),并且还可以传递CSS路径(路径)(路径)(路径)(路径)
下图是参数的描述:
这是因为Puppeteer基于Chrome的无头浏览器,并且浏览器在打印时保存墨水,默认情况下,背景图和背景颜色不会导出。
解决:
解决:
将图片放在静态资源服务器上,然后直接使用绝对地址。即使您不将其放在静态资源服务器上,您只需要放置图片服务器,例如
以上问题在此问题中搜索。尽管解决并不难,但将它们放在一起是更麻烦的。然后我想,为什么我不拥有HTML,然后将HTML给Puppeteer?因为它是一个纯HTML文件,而不是Renderview返回的字符串,以上三个问题自然解决了。顺便一提
解决:
更改content.js内容以下代码:
再次运行,然后检查pdf.pdf,并发现下面还有一个问题
这个问题非常关键,问题有很多问题。如果您有兴趣,可以单击地址查看。解决方案有两个主要解决方案。
这可以解决无标题的封面封面,但也带来了其他问题。这可能意味着除了封面外,另一页上的另一页是计算出的错误,如图:: fig:gig:
我也遇到了这个问题。查看问题中是否有解决方案,所以我果断地采用了第二种类型
如果要合并PDF,则不能直接生成PDF,但是必须形成PDF数据并以缓冲区的形式临时存储它。
那么,如何生成封面和内容的PDF的缓冲区?
此方法,如果路径参数是在选项中传输的,则将生成PDF文件。
好吧,现在问题如何将两个缓冲区合并为缓冲区?
此处的合并阶段也有两个合并解决方案
以下代码是将cover_buffer和content_buffer组合到文件中,然后生成PDF。问题是生成的PDF文件。单击目录跳转。
首先,您需要安装此软件包
然后在create.js中使用
以下代码是生成cover_buffer和content_buffer通过合并到文件中生成PDF。问题是Node-PDFTK对于MacOS存在问题。
首先,您需要安装此软件包
然后在create.js中使用
可以在create.js中选择组合缓冲区的上述两个解决方案,然后运行pdf.pdf。如果您有任何疑问,请阅读此博客或在评论中的评论中与我联系。
最后,添加一些CSS如何操作分页姿势:
最后为小朋友赞美它:)
作者:阳光同学