使用pdfmake创建PDF只是将pdf写在pdf上

时间:2016-08-03 06:45:52

标签: angularjs pdf pdfmake

我正在尝试使用angular创建的视图创建一个pdf。问题是pdf看起来像这样:

enter image description here

是否无法计算出角度标记?

   var docDefinition = { content: printHtml };
   pdfMake.createPdf(docDefinition).download('optionalName.pdf');

2 个答案:

答案 0 :(得分:0)

Pdfmake正在正常工作,它将所有原始html打印到pdf。 你希望它以html格式打印,但是pdfmake不能像这样工作,通过给出html代码你不能生成格式化的pdf文件,你必须创建一个包含文档定义的javascript对象,这个文档定义包含你的内容和样式。

您可以关注this link获取基本示例,并在pdfmake的github页面上查看一些更复杂的示例here

祝你好运

答案 1 :(得分:0)

// use npm package and initialise the pdfMake.
const pdfMake = require('pdfmake/build/pdfmake.js')
const pdfFonts = require('pdfmake/build/vfs_fonts.js')
pdfMake.vfs = pdfFonts.pdfMake.vfs


function showPDF() {
const statHeader = { text: data in header not the Header 
header,bold: true}
const content = preparePDF(yourHTML)
const statFooter = 'data in footer not Footer footer, To add a 
footer check the pdfMake documentation for footer.'
const name = ''

const docDefinition = {
        // Add page count
        footer: function (currentPage, pageCount) {
          return {
            margin: 10,
            columns: [{ text: currentPage.toString() + ' of ' + 
pageCount, alignment: 'center' }]
          }
        },
        header: { text: name, style: 'gameName' },
        content: [
          statHeader,
          content,
          statFooter
        ],
        styles: {
          gameName: {
                        fontSize: 16,
            bold: true,
            alignment: 'left',
            margin: [40, 20, 0, 80]
         }
        }
    }
 // creates pdf formated file with give name. 
 pdfMake.createPdf(docDefinition).download(`${name}.pdf`)
}

Wrap it in a function like
const htmlToPDF = require('html-to-pdfmake')
function preparePDF (yourHTML) {
let htmltoPDFData = []
const html = <div>yourHTML</div>
htmltoPDFData = htmlToPDF(html)
return htmltoPDFData
}