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

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

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

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

1)页首

 header: function() {
return [ {
image: 'sampleImage.jpg',
width: 60,
right: 20,
absolutePosition: {x: 3, y: 3},
alignment: 'left',
style:'myImage'
},
{
canvas: [
{ type: 'line', x1: 20, y1: 35, x2: 595-20, y2: 35, lineWidth: 0.5 }
] } ];
}

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

salesforce 替代默认生成pdf页面方式的更多相关文章

  1. 自动把动态的jsp页面(或静态html)生成PDF文档,并且上传至服务器

    置顶2017年11月06日 14:41:04 阅读数:2311 这几天,任务中有一个难点是把一个打印页面自动给生成PDF文档,并且上传至服务器,然而公司框架只有手动上传文档,打印时可以保存为PDF在本 ...

  2. Javascript 将 HTML 页面生成 PDF 并下载

    最近碰到个需求,需要把当前页面生成 pdf,并下载.弄了几天,自己整理整理,记录下来,我觉得应该会有人需要 :) html2canvas 简介 我们可以直接在浏览器端使用html2canvas,对整个 ...

  3. js将 HTML 页面生成 PDF 并下载

    最近碰到个需求,需要把当前页面生成 pdf,并下载.弄了几天,自己整理整理,记录下来,我觉得应该会有人需要 :) 先来科普两个插件: html2Canvas 简介 我们可以直接在浏览器端使用html2 ...

  4. .net生成PDF文件的几种方式

    以下为在.net mvc中,生成pdf的几种方式,资料都是在做项目时网上找的 1.使用Microsoft.Office.Interop.Word.dll将word转换为PDF dll可以单独下载,一般 ...

  5. 抓取Js动态生成数据且以滚动页面方式分页的网页

    代码也可以从我的开源项目HtmlExtractor中获取. 当我们在进行数据抓取的时候,如果目标网站是以Js的方式动态生成数据且以滚动页面的方式进行分页,那么我们该如何抓取呢? 如类似今日头条这样的网 ...

  6. 页面导出生成pdf,使用wkhtmltopdf第三方工具

    把页面导出生成pdf,这里用到第三方的工具,使用方法中文文档没有找到,网上也没找到网友详细的神作.没有深入研究,所以也不赘述了,当然最基本的使用大多数也够用了,详细参数的官网也没介绍,大家使用的时候, ...

  7. jspdf生成pdf并在页面展示

    jspdf调用ouput即可 https://blog.csdn.net/dragonzoebai/article/details/18243823 获取页面生成pdf:jspdf+html2canv ...

  8. 使用JSP页面生成PDF报表

    转自:http://developer.51cto.com/art/200907/134261.htm 1.iText简介 iText是一个开放源码的Java类库,可以用来方便地生成PDF文件.大家通 ...

  9. 织梦DedeCMS信息发布员发布文章默认自动审核更新并生成HTML页面

    织梦DedeCMS信息发布员发布文章默认自动审核更新并生成HTML页面 一直以为DEDECMS的信息发布员在后台发布文章后,非要管理员审核才能显示,今天一哥们问我这个问题.问:“能不能直接发布,并自动 ...

随机推荐

  1. react系列从零开始-react介绍

    react算是目前最火的js MVC框架了,写一个react系列的博客,顺便回忆一下react的基础知识,新入门前端的小白,可以持续关注,我会从零开始教大家用react开发一个完整的项目,也会涉及到w ...

  2. 如何用webpack实现自动化的前端构建工作流

    什么是自动化的前端构建流? 1. 自动补全css私有前缀,自动转化less\sass为css,自动转化es6\vue\jsx语法为js,自动打包小图片为base64以减少http请求,自动给js,cs ...

  3. babel如此简单

    凡是看到这个标题点进来的同学,相信对babel都有了一定的了解.babel使用起来很简单,简单到都没有必要写一篇文章去介绍,直接看看官方文档就可以.所以我也在怀疑到底该不该写这篇文章.想来想去还是决定 ...

  4. JavaScript 的 作用域

    在看了几本书之后的一些理解和自己的想法.   作用域,变量的作用范围   在ES6之前 变量的声明   只有var可以声明变量属于某个作用域,并且,也只有全局作用域和函数作用域. (没有var声明的变 ...

  5. hdu 2612 多终点BFS

    Find a way Problem Description Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at ...

  6. Spring Boot 系列(一)快速入门

    简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置 ...

  7. 以Random Forests和AdaBoost为例介绍下bagging和boosting方法

    我们学过决策树.朴素贝叶斯.SVM.K近邻等分类器算法,他们各有优缺点:自然的,我们可以将这些分类器组合起来成为一个性能更好的分类器,这种组合结果被称为 集成方法 (ensemble method)或 ...

  8. 关于table表格td里内容是数字而且太长不换行的问题

    <p>table{table-layout:fixed}</p><p>table td{word-wrap:break-word}</p><p&g ...

  9. ant在持续集成的应用

    一.Ant概述 Ant是一个Apache基金会下的跨平台的构建工具,它是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具. 在本文中,我主要让介绍Ant的命令.构建文件.最后部分以一个实 ...

  10. 机器学习 —— 基础整理(四)特征提取之线性方法:主成分分析PCA、独立成分分析ICA、线性判别分析LDA

    本文简单整理了以下内容: (一)维数灾难 (二)特征提取--线性方法 1. 主成分分析PCA 2. 独立成分分析ICA 3. 线性判别分析LDA (一)维数灾难(Curse of dimensiona ...