搜索引擎优化pdf(PDFKit搜索安装使用创建PDFKit文档非常简单的实例是可读的节点流 )

优采云 发布时间: 2022-01-23 22:02

  搜索引擎优化pdf(PDFKit搜索安装使用创建PDFKit文档非常简单的实例是可读的节点流

)

  介绍

  PDFKit 是一个用于 Node 和浏览器的 PDF 文档生成库,可以轻松创建复杂的多页可打印文档。API 收录可链接性,包括低级功能以及高级功能的抽象。PDFKit API 的设计很简单,因此生成复杂的文档通常只需几个函数调用即可。最直接的好处就是节省了服务端资源,让生成工作在本地完成!

  

  如何得到它?

  最近因为限制很多,不方便直接放链接,截图也不够用。可以直接在 Github 上搜索

  

  安装和使用

  npm install pdfkit

  创建 PDFKit 文档非常简单。只需引用 pdfkit 的 JavaScript 源文件中的模块并创建 PDFDocument 类的实例

  const PDFDocument = require('pdfkit');

const doc = new PDFDocument;

  PDFDocument 实例是可读的节点流。它们不会自动保存在任何地方,但您可以调用 pipe 方法将 PDF 文档的输出发送到正在写入的另一个可写节点流。完成文档后,调用 end 方法完成它。以下是如何通过管道传输文件或 HTTP 响应的示例。

  doc.pipe(fs.createWriteStream('/path/to/file.pdf')); // 写pdf

doc.pipe(res); // HTTP响应

// 添加内容

doc.end();

  在浏览器中使用 PDFKit 与在 Node 中使用它完全相同,除非您要将输出通过管道传输到浏览器支持的目标,例如 Blob。Blob 可用于生成 URL,以允许生成的 PDF 通过 iframe 直接显示在浏览器中,或者它们可用于将 PDF 上传到服务器,或在用户的浏览器中触发下载。

  // 引入依赖

const PDFDocument = require('pdfkit');

const blobStream = require('blob-stream');

// 同样的创建方式

const doc = new PDFDocument;

//传输文档到Blob

const stream = doc.pipe(blobStream());

//像以往一样将内容添加到文档

// 最终得到Blob

doc.end();

stream.on('finish', function() {

// 得到一个可以随心所欲的Blob

const blob = stream.toBlob('application/pdf');

//或获取blob URL以在浏览器中显示

const url = stream.toBlobURL('application/pdf');

iframe.src = url;

});

  在这个地方,除非你设置了autoFirstPage: false,否则PDFkit会自动给你添加第一页,后面的页面需要你自己添加

  doc.addPage()

//事件*敏*感*词*

doc.on('pageAdded', () => doc.text("Page Title"));

  您还可以为页面设置一些选项,例如其大小和方向以及边距等。

  // 所有页面添加50边距

doc.addPage({

margin: 50});

// 在每一侧添加不同的边距

doc.addPage({

margins: {

top: 50,

bottom: 50,

left: 72,

right: 72

}

});

  bufferPages: true// 配置

//调用

doc.switchToPage(pageNumber)

<p>// 创建一个文档,bufferPages设置为true

let i;

let end;

const doc = new PDFDocument({

bufferPages: true});

// 添加一些内容

doc.addPage();

// ...

doc.addPage();

//查看缓冲页面的范围

const range = doc.bufferedPageRange(); // => { start: 0, count: 2 }

for (i = range.start, end = range.start + range.count, range.start

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线