salesforce 替代默认生成pdf页面方式

salesforce默认的pdf页面只能设置Arial Unicode MS字体,而该字体默认的中文是日本字符,目前看来没办法设置成标准的中文字符,导致一些字看起来是不对的。如下图:(将确骨写)

这样显然是不合适的,所以考虑替代VF的标准的方式。

1. 页面加载的时候使用window.print();直接打印页面,但这种方式很难加页码页首页尾。

2. 使用pdfmake js包来生成pdf, 基本可以满足需求。

    1)页首

 1 header: function() { 
 2         return [
 3 
 4             {
 5                 image: 'sampleImage.jpg',
 6                 width: 60,
 7                 right: 20,
 8                 absolutePosition: {x: 3, y: 3},
 9                 alignment: 'left',
10                 style:'myImage'
11             },
12             { 
13                 canvas: [
14                     { type: 'line', x1: 20, y1: 35, x2: 595-20, y2: 35, lineWidth: 0.5 }
15                 ] 
16 
17             }
18 
19         ];
20     }

      2)页尾

footer: function(pagenumber, pagecount) {
        return [
            { 
                canvas: [
                    { type: 'line', x1: 20, y1: 0, x2: 595-20, y2: 0, lineWidth: 0.5 }
                ] 

            },{
            //margin: [40, 0],
            text: pagenumber + ' of ' + pagecount,
            alignment : 'center',
            margin:[5,10,5,10]
        },
        {
            text: 'text 1',
            absolutePosition: {x:450, y:10}
        }];
    }

       3)正文

content: [
    { text: '标题', fontSize: 20, bold: false, alignment: 'center', style: ['lineSpacing', 'headingColor'] },  
    { text: '编号:xxxxxxxxx', fontSize: 13, bold: false, alignment: 'right',margin : [ 0,40,0,40 ], style: ['lineSpacing', 'headingColor'] },
    { text: '甲方:123', fontSize: 13, bold: false, alignment: 'left', margin : [ 0,0,0,0 ], style: ['lineSpacing', 'headingColor'] },    
    { text: '乙方:456', fontSize: 13, bold: false, alignment: 'left', margin : [ 0,0,0,20 ],style: ['lineSpacing', 'headingColor'] },    
        { 
            text: '副标题', 
            style: 'header', 
            alignment: 'center' 
        },
        { 
            text: [
                '\u200B\u200B\u200B\u200B\u200B\u200B\u200B《权力的游戏》第七季第5集“东海望”中,琼恩雪诺终于摸到了龙,这也预示着预言正在一步步成真,雪诺在驯龙高手的路上愈发走远,除了持续高能的剧情,剧外《权力的游戏》第七季的收视率也继续勇攀高峰,第五集创造了剧集开播七季以来最高的纪录。\n'
                
                ],
            style: 'header', 
            bold: false 
        },

    '一、场地与服务',
    {
      // for numbered lists set the ol key
      ol: [
        '《权力的游戏》第七季第5集“东海望”中,琼恩雪诺终于摸到了龙,这也预示着预言正在一步步成真,雪诺在驯龙高手的路上愈发走远,除了持续高能的剧情,剧外《权力的游戏》第七季的收视率也继续勇攀高峰,第五集创造了剧集开播七季以来最高的纪录。',
        '《权力的游戏》第七季第5集“东海望”中,琼恩雪诺终于摸到了龙,这也预示着预言正在一步步成真,雪诺在驯龙高手的路上愈发走远,除了持续高能的剧情,剧外《权力的游戏》第七季的收视率也继续勇攀高峰,第五集创造了剧集开播七季以来最高的纪录。'
      ],
      margin : [ 20,0,0,0 ]
    }
    ,
    {
      table: {
        headerRows: 1,
        widths: [ '*', 'auto', 100, '*' ],

        body: [
          [ 'First', 'Second', 'Third', 'The last one' ],
          [ 'Value 1', 'Value 2', 'Value 3', 'Value 4' ],
          [ { text: 'Bold value', bold: true }, 'Val 2', 'Val 3', 'Val 4' ]
        ]
      }
    }
    ]

    4)水印

watermark: {text: '仅供参考', color: 'blue', opacity: 0.3, bold: true, italics: false}

 

可以在 http://pdfmake.org/playground.html 页面上进行测试。

如有需要相关资源,请发邮件联系我: chenxi365@qq.com

posted @ 2017-08-16 13:50  OscarChen  阅读(740)  评论(0)    收藏  举报