pdfmake引入
pdfMake.fonts = {
Roboto: {
normal: 'Roboto-Regular.ttf',
bold: 'Roboto-Regular.ttf',
italics: 'Roboto-Regular.ttf',
bolditalics: 'Roboto-Regular.ttf',
},
fangzhen: {
normal: 'fzhei-jt.TTF',
bold: 'fzhei-jt.TTF',
italics: 'fzhei-jt.TTF',
bolditalics: 'fzhei-jt.TTF',
},
};
整体样式
getDocDefinition(data, list) {
const logoBase64Data = this.logoFunction();
// 列表
const rows = [];
rows.push([
{ text: '订单编号', bold: true, color: 'black' },
{ text: '订单总金额', alignment: 'right', bold: true, color: 'black' },
{ text: '关联商品', alignment: 'right', bold: true, color: 'black' },
{ text: '数量', alignment: 'right', bold: true, color: 'black' },
{ text: '交易时间', alignment: 'right', bold: true, color: 'black' },
]);
list.forEach(res => {
rows.push([
{ text: res.OrderNumber, alignment: 'right' },
{ text: '¥' + res.AmountOfConsumption, alignment: 'right' },
{ text: res.SolutionName, alignment: 'right' },
{ text: res.Quantity, alignment: 'right' },
{ text: res.TransactionHour, alignment: 'right' }
]);
});
// 汇总
const sumD = data.AmountsStaticstics.TotalQuantity;
// 总额
const sumBill = [];
data.AmountsStaticstics.PayableAmounts.forEach(res => {
sumBill.push(
res.Symbol + res.Amounts
);
});
const str = sumBill.join(',');
return {
pageSize: 'A4',
pageOrientation: 'landscape',
pageMargins: [40, 140, 40, 100],
header: {
margin: [40, 20],
columns: [
{
image: logoBase64Data,
alignment: 'left',
marginTop: 10,
},
[
{ text: 'AggreSmart账单', bold: true, fontSize: 28, alignment: 'right' },
{ text: '账单打印时间: ' + this.datePipe.transform(data.PrintTime, 'yyyy-MM-dd'), alignment: 'right' },
{ text: '账单编号:' + data.BillingNumber, alignment: 'right' },
{ text: '¥' + str, bold: true, fontSize: 16, marginTop: 5, alignment: 'right' }
]
],
},
content: [
{
style: 'headInfo',
table: {
headerRows: 1,
widths: ['*', '*', '*'],
body: [
[
{ text: '接受方:', style: 'tableHeader' },
{ text: '付款方:', style: 'tableHeader' },
{ text: '联系人:', style: 'tableHeader' }
],
[data.CompanyName, data.Payer.ChnCompanyName, data.Payer.Email],
]
},
layout: 'noBorders'
},
{
marginBottom: 30,
table: {
headerRows: 1,
widths: ['*', '*'],
height: 50,
body: [
[
{ text: '账单统计', style: 'listHeader', border: [false, false, true, false] },
{ text: '', style: 'listHeader', border: [false, false, true, false] }
],
[{
table: {
widths: [200, 'auto'],
body: [
['方案提供商:', { text: data.ProviderInfo.SolutionProvider, alignment: 'right' }],
['实体负责人:', { text: data.ProviderInfo.EntityCharger, alignment: 'right' }],
['等级:', { text: data.ProviderInfo.Level, alignment: 'right' }],
['业务负责人:', { text: data.ProviderInfo.BusinessCharger, alignment: 'right' }],
[' 地址:', { text: data.ProviderInfo.Address, alignment: 'right' }],
]
},
layout: 'noBorders',
border: [false, false, true, false]
}, {
table: {
widths: ['*', '*'],
body: [
['账单周期:', { text: data.Period, alignment: 'right' }],
['账单金额:', { text: '¥' + str, alignment: 'right' }],
['订单总数:', { text: data.OrderQuantity, alignment: 'right' }],
['产品总数:', { text: data.SolutionTotal, alignment: 'right' }],
['销售额:', { text: '¥' + str, alignment: 'right' }],
],
},
layout: 'noBorders',
}],
]
},
layout: {
fillColor: '#f2f2f2',
defaultBorder: false,
vLineColor: '#fff',
}
},
{
table: {
widths: ['*'],
headerRows: 1,
height: 50,
body: [
[{ text: '账单明细', style: 'listHeader', border: [false, false, true, false] }],
]
},
layout: {
fillColor: '#f2f2f2',
defaultBorder: false,
vLineColor: '#fff',
}
},
{
table: {
widths: ['*', '*', 200, '*', '*'],
body: rows
},
layout: {
fillColor: '#f2f2f2',
defaultBorder: true,
vLineColor: '#fff',
hLineColor: '#fff',
padding: 0
},
},
{
margin: [40, 20],
columns: [
{
},
[
{ text: '订单总金额:' + '¥' + str, alignment: 'right' },
{ text: '汇总:' + sumD + '单', alignment: 'right' },
]
],
},
],
footer: (currentPage, pageCount) => ({
marginTop: 50,
columns: [
{},
{ fontSize: 8, width: 520, text: '', alignment: 'center' },
{ fontSize: 8, text: `Page ${currentPage} of ${pageCount}`, alignment: 'center', width: 120 }
],
style: 'footer'
}),
styles: {
header: {
fontSize: 18,
alignment: 'right',
},
footer: {
fontSize: 8,
color: '#333',
alignment: 'center',
},
headInfo: {
marginBottom: 20
},
tableHeader: {
color: 'black',
fontSize: 12,
bold: true
},
listHeader: {
fillColor: '#dae9ff',
color: '#333',
fontSize: 12,
bold: true,
},
},
defaultStyle: {
fontSize: 10,
font: 'fangzhen',
fontSmooth: 'auto',
color: '#333',
columnGap: 20,
},
};
}
base64图片
logoFunction() {
return `data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA
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
RV/R5MsLq+uAuf3RB9FmlDo4ni9cy8
Blg8AAYAk6TLX1UtyHqMbY+yexpqK5zIm/Fn+4VkL6tLle8s5pEWM4ZZkNJQVkgxo6gqhvdUPg1kr65cfmlyE60f1Zq+Sr
8SRFj+e3OHG7w40Y/+pTsAgYJhFT2dDD/1yumtJLACpzE62BYCuEEYPMuL
+iUWYO6EAY22ZH/xb9jRhfa0bb53yIeT1ofiz7eBN7YAhgdlqTN+tP8pzj
Bu5RbvSs3re8XTncrrqW2+qHsZCPH489GyWjemtducLDLgz2jfj/MrGrZUf
RP+22avnAjz9ZzFnc8StFc+crjl90+2eXaB+7jlNqTh+Djgje+zpScEcMS8gfjnUGcLgwrCxCN3M00rMimm6o64TT+5049l9zXA3+6
DL0aEkN8zPptBK9dlHb5XZBUPNeGCyFQumFCHXoNzENL6TZm8IT+/1YM1ONz470SG7eg62maEPBuB982Pw1g6wRKCONkKqMUkCdNoAzzGtk
XJ1zqb182oVE+s0VRx8Q/WgkIYfAyCfSBys1u2qIKEXbHYnmcreF+1aEPjlDa9XxnT01rLq2xnjL6Y9NM7vE7dWnnHBV9rjzPCDswLUQ1cesLF
QcCGT+GKw5CqOWDACemIHQhg/JAcPTi6S/ytJg19+7VCLDOZtX7bC1xmEJV+PAgMJvzLnl4n+2VCZ9V7HL5p8WLlDxDN7m3HU
3SULxobl6eRXBNdqIfn88L2lANTRhg
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
knVktV
e/RsG/jdx9XhIoxnZ9Noi2mdkVVYNIN6ZobEAweGHXY+T/zSK7c4/caAbpL1BbXfSJRRv9PSh6HJ0S6tTDTBsrvoAAyN9eqxwxta7aypIQ
JyVkjhk0hkKPFi6fM90MP6HBE+GPieXCNTRD3hbB9j4UTBe/j2gsytjvVRUZRY1MY2qzBZOs+GiocpdMntP5J2v2mRPqZcOtcDXEZSl0
VaTMq+uKKh97/wFTKsB02hA9oruhnagqRPWUVbMvXE8Ku6chnGjFMkcE9L
5lNiBVS/uwIaaPfhybz1g1qGwxAIdOaz0h29RumUjhiqMc0jFBU+5n3lQkQWUrdz53+D4UVw3PtHliMUls9mdvc09j8SHNLKWOT9kDJd13+Q9
g/XZ7E5St8U9v3mN6KqcpXRakYOF7OBjrwMOLHO7HI+n04aSutby5dMZF94BEBPuMAlXNW5zxNuxp2wqrZs62trg6p2DdFwzHxI
cfblKxveeCtSaCaNhuGwaeAaglvllKexcQbfgmMFmzJtYiHkTi3BuGiqzH
tTikPXL5Cn1NqXMCUqw5uuRo0sdArjHvCM3dRTUcoqdiGcXRRAVW7yQ6lp
hLMnHzVeMxsJbp2DmJUlTYadcUG9XEM9s24c1r+3Gh3/6Uj4gc4ZYkGPUnR5wkysnqbcoZZDZ+LJkNq5M5cpZXF41jXEhJ8iZJAjST8ARDzKvwNnt0EhtwZCGC5B+Co
ayuInXCQK/k37TakJMkuQbNAZaCkzIIfyQfuMhCJwx8reOs2jkn0pc87iWc
SEkIeC+tP5TLF36tbjj0f6K7FU3CGA98opTPHHGEARnyoPDp1o5Og0
5r0dYRdZ9A6XQeydqNiNQxxqioAYNE+aDobKvIIDyJo7jqaPP7/ibOhNQx4IRNIejvH5vqFnWLz88xYpcQyJ1ZyrKAu7OIJ7a7cG6
Wg92UjACLcNgS3ohgJWAOr6OIDC0dvrRdbJV9iKbcdloVNwxFbNvSD
9uWXy7r73/OVb8fgdcH30JqbkTlhFFMBl1CBEI+1u6gy74udnwNMs3V4lr53yqpFmb3UnqnKSmw0rayFKdUAGCOdGnfK
I2E7AHWepaaTPsuOiq6JYkK/isf6CO62B4Ve0NHMLjAE/4tMkmqMlY
pDWS74qEVPbRFtm5oj/88j6RUuaIsk74hCecd5qCEfROmaOApj2q9H5+R2/qRO0QuH1BCS0nmoFmL2bdcwFe+Z/bZOOY/hT3ySZseq0W//X73
SCPMGMf0UpT9tMdHukUcgyrkGtcJa6dczLld3EVbPaqO
oAlTU6YTlv9rNsk5tqK+4rd1vt538/+Mvs8GBom/uExxTTOGq
ijox2+rPZCSWCVLGykH3ue9BfUieJ33zzGIt/KFGQw0/LHo+1
YX0vWW01obw/AnEf8cvKUOen2kw6oqW1BI6Ctww/v9mMovnQU6l5bDAJ7fwqFhHjuWBA//emLaNn3FUxFadIr3rHDoNvJ
c0xrTUOMTx5/YnbakS6xdKlg+3jQ2RIAMSC6HH3mI7bZnWQdlrYKtz/r1ftbDnad21Wh2Fov66DuBjdZnQVJavkopYzNFNS0n8nPgYL3Ub6r
YTajzC8vmGrD2Ez5ZVDaHQmLtx7D+k8bZdPQQrJSU5AyJ93FUgJq4q1
JXN3o6QTq22AcYsE915yHnzx6GcYOL0y3y1j9946048kdIn5/uB
WdTIfC3buh+/wopByFQkMSsNHNrKXoKIa3Wa7x/8Sn7icf534UzorszpkC8aPER35ThTPGGWtPBZbishXlYKE0T8EsT4r
hvcaayjqlrZ42UEcHEEvurtfNl1ravud7409gtFH03RZyJP3uzVMTmP0SRx0Zi4Q4Liwlx4ciPDCpCLac5MHulU6c0ucU/O9OoCOAoaW5tG/7
ZdySrN++QE1gDnEOT0Mb0NKFEeNLMPeGcXjwpkk4f6Ti6DVf65pkAlv2NqGGHEMCE
ooKD
cizmND1/mcIHjoKlpsC1N1J+Tg3GzZIeea1TevnpCWBVboOar3sU+C
0gzp+yEOf2H5b1/t//VuhteMqMEGWmMo2w3GgZl4f2v3BSDACAdeO
zJOjcN43KfNNnoxsb33Vhp9/UIf3yHsqkuAuX6+RgZatkgjU9Jzu8ofQSql2ghImThmGhbdOxvxbJsOSq9zBJX6M7b
5wji9iJb6WE5
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
T9TFarLOQzXXARhiC0c3ji90gCOFdAEVx2vm
EaWUmpRKdBvCqigjiNh0fwtl7FW7wLW4X0IgZAg89x98d2Zg3o7OJwBb2
hL/Y+mkhOBWlQKZI0CKqgTkDL//udGaQNdD7P2zkfQ5S9JynenD+qXGRP
WH3NMeClrK6g2pFKgFwVUUPexJUrvfs7k1XofYe1di+H1T5C9QeL5bsWg
ZmsFFnIedUz5q7oDVQqcbgqooFZIYev9m+9Ah28xa++cCUo1Q3y3nJIzK
U9dB45VgiBtOOqY8oXCbtRqKgX6TQEV1GmSsPD+p6/QdHgrEdZ3y54hhuunQxhWDN7RRX/uY4xVSxrvmpOLLkzpmJ9m92p1lQIpKaCCOiWJElcoeGjLSG1
r58PM579Ed8UFBs3goq9CXt8LJysnvZphk+pnKgWyQgEV1Fkho9qISoGzhwIqqM+etVBHolIgKxRQQZ0VMqqNqBQ4eyiggvrsWQt1JCoFskIBFdRZIaPaiE
qBs4cCKqjPnrVQR6JSICsUUEGdFTKqjagUOHsooIL67FkLdSQqBbJC
ARXUWSGj2ohKgbOHAlFQT2VygDa1qBRQKfBtpwDnfBjjnN8OYJ+cTVQtKgVUCnybKUB5Kob9f3CqmBwsXT/JAAAAAElFTkSuQmCC`;
}