2017-04-07 73 views
1

我試圖創建具有離子3所以我用一個this PDF生成和進口使用PDF生成錯誤,可我保存這個PDF

NPM安裝pdfmake

import { Component } from '@angular/core'; 
import { NavController } from 'ionic-angular'; 
import * as pdfmake from 'pdfmake/build/pdfmake'; 

@Component({ 
    selector: 'page-home', 
    templateUrl: 'home.html' 
}) 
export class HomePage { 

    constructor(public navCtrl: NavController) { } 

    pdf(){ 
    console.log("pdf", pdfmake) 
    var dd = { content: 'This is an sample PDF printed with pdfMake' }; 
    pdfmake.createPdf(dd); 

    } 

} 

執行此之後,我得到這個錯誤 Error: File 'Roboto-Regular.ttf' not found in virtual file system不知道如何解決這個問題可以有一個人幫我解決這個問題,並用科爾多瓦文件

這個保存到我的設備存儲

回答

0

PdfMake使用字體作爲數據。它將tff文件轉換爲js,然後將其轉換回字體。

所以你只是缺少一個文件

<script src='build/vfs_fonts.js'> 

可以要麼添加到索引HTML(壞的壞人壞事)

或者你可以在你的TS文件導入一下,看看是否pdfmake撿起來向上。

import 'pdfmake/build/vfs_fonts'; 

如果不是,您可能需要通過配置進行分配。 你可以閱讀更多一點到這裏:https://github.com/bpampuch/pdfmake/wiki/Custom-Fonts---client-side

+0

謝謝它的工作,而是一個新的窗口打開並顯示的PDF文件,但它不會持續它關閉即時 –

+0

按照自己的GitHub的API很長一段時間。它說你可以在創建後打開下載或打印。如果你想要的話,你可以用getDataUrl來獲得pdf網址,然後把它放到一個pdf插件中,或者只是使用download()函數。你只調用createPdf?@ Yokesh – misha130