pdfmake生成pdf文件

1 篇文章 0 订阅
1 篇文章 0 订阅

源码下载

github地址
gitee镜像地址
确定下载那个版本的,我下载的是0.1分支的。

git clone -b 0.1 https://gitee.com/mirrors/pdfmake/

代码结构

  1. 使用gulp进行构建。
  2. dev-playground是一个网站,运行起来可以看到pdfmake的一些配置示例。
  3. src源码
  4. examples是示例代码,node端用。(一般这种库,会考虑node和浏览器两种运行环境的问题)
  5. build 项目构建输出文件。
  6. 然后就是各种工具的配置文件和项目说明文件

浏览器端使用

好像没有给浏览器端写示例。

定位到项目路径下
npm install
npm run build 

build文件夹下的

pdfmake.js
pdfmake.js.map
pdfmake.min.js
pdfmake.min.js.map
vfs_fonts.js  --pdfmake在浏览器上使用base64码存储字体文件。

我们新建一个html页面,引入pdfmake.js和vfs_fonts.js

<script>
	function down() {
			var dd = {
			content: [
				'title',
				{
					text:"文本",
					fontSize:16
				}
			],
			defaultStyle: {
				font: 'simfang'
			}
		};
		pdfMake.fonts = {
			simfang: {
				normal: 'simfang.ttf',
				italics: 'simfang.ttf',
				bolditalics: 'simfang.ttf',
				bold: 'simhei.ttf'
			}
		};
		pdfMake.createPdf(dd).download();
	}
</script>

字体问题

pdfmake默认只提供了Roboto字体。我们需要中文字体时,需要自己生成字体文件。

  1. 下载字体的ttf等文件,看需要提供normal/bold/italics/bolditalics版本的。
  2. 将文件放到examples/fonts文件夹下
  3. 命令行中运行gulp buildFonts命令,可以看到build下的vfs_fonts.js文件变化了。
  4. 需要将我们的字体命名,然后添加到pdfMake的fonts属性中。见上面的js代码。
  5. 在定义pdf数据配置文件时,使用defaultStyle设置默认字体。见上面的js代码。

配置问题

运行dev-playground,在localhost:1234地址,就可以看到一些示例。还可以动态修改。

cd dev-playground
npm install
cd ..
npm run playground

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用express生成PDF文件的方法有很多种,以下是其中一种常见的方法: 1. 首先,确保你的项目中已经安装了express和相关的依赖。你可以使用npm或者yarn进行安装。 2. 在你的Express应用程序中,你可以使用一个用于生成PDF的库,比如`pdfmake`。你可以在项目中安装它: ``` npm install pdfmake ``` 3. 在你的Express路由中,你需要引入`pdfmake`并使用它来生成PDF文件。下面是一个简单的示例: ```javascript const express = require('express'); const router = express.Router(); const pdfMake = require('pdfmake'); router.get('/generate-pdf', (req, res) => { // 创建一个文档对象 const docDefinition = { content: [ 'Hello, World!' ] }; // 使用pdfMake生成PDF文件 const pdfDoc = pdfMake.createPdf(docDefinition); pdfDoc.getBase64((data) => { res.writeHead(200, { 'Content-Type': 'application/pdf', 'Content-Disposition': 'attachment;filename="filename.pdf"' }); const buff = Buffer.from(data.toString('utf-8'), 'base64'); res.end(buff); }); }); module.exports = router; ``` 以上示例中,我们创建了一个简单的文档对象,其中包含一行文本:"Hello, World!"。然后,我们使用`pdfmake`的`createPdf`方法生成PDF文件,并将其转换为Base64格式。最后,我们将Base64数据作为响应返回给客户端,客户端可以通过下载链接获取到生成PDF文件。 4. 在你的Express应用程序中,确保将上述路由添加到合适的位置,并启动你的应用程序。 现在,当你访问`/generate-pdf`路由时,Express应用程序将生成一个包含"Hello, World!"文本的PDF文件,并将其作为下载返回给客户端。你可以根据自己的需求修改文档对象和生成PDF的方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值