我想在我的pdfMake
应用中使用Angular 4
所以我尝试this,但由于我使用webpack
,webpack
给了我这个错误:
Could not find a declaration file for module 'pdfmake/build/pdfmake'
所以,我将脚本添加到我的vendor.ts
列表
import 'pdfmake/build/pdfmake';
import 'pdfmake/build/vfs_fonts';
将我的ProvidePlugin
更改为以下内容:
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
'window.jQuery': 'jquery',
Popper: ['popper.js', 'default'],
pdfMake: 'pdfmake'
}),
并在我想要使用pdfMake
//imports
declare var pdfMake: any;
declare var pdfFonts: any;
@Component....
export class MyComponent {
constructor () {
pdfMake.vfs = pdfFonts.pdfMake.vfs;
var dd = { content: 'your pdf dataaaaaaaa' };
pdfMake.createPdf(dd).download();
}
}
这给了我ReferenceError: pdfFonts is not defined
错误,但如果我在构造函数和声明中注释掉第一行,我会收到此错误:
ERROR Error: File 'Roboto-Regular.ttf' not found in virtual file system
这是pdfMake
错误。
我的问题是如何从vfs_fonts
文件声明字体以便我可以使用它们?
答案 0 :(得分:1)
我最终制作了一个看起来像这样的PrinterService:
<?php if($_SERVER['PHP_SELF']=='/index.php' || $_SERVER['PHP_SELF']=='/our-menu.php'){ ?> class="hidden" <?php } ?>
我有一个函数返回一个带有预定义页眉和页脚的预定义对象,页码等。所以你不必在任何需要的地方输出文档定义。
答案 1 :(得分:0)
我已经测试过,这对我有用。
npm install pdfmake --save
import * as pdfMake from 'pdfmake/build/pdfmake';
import * as pdfFonts from 'pdfmake/build/vfs_fonts';
constructor() { pdfMake.vfs = pdfFonts.pdfMake.vfs; }
const dd = { content: 'your pdf data' };
pdfMake.createPdf(dd).open();