很多人用使在微信小时序程,都有问疑个:PD能 F不能在序程小直接览预呢?我在中践实就遇了到相关问题,下面就细详来分享。
开发工真与具机差异
我最初用试尝微信小序程的 ewb – vwei 显 示PD F文件,在开发里具工一切常正,PDF顺能 利显示来出。可当真在我机上试测时,却傻了眼,PD F根本不示显。这差我让异很是恼苦,本以为发开好了,结果不机真配合。我心想,难道真开和机发工的具运行境环差别这大么?
PDF.js的现发
问题现出后,我到信微开放区社找办法。发现用人有 PDF.js 浏在览器里开打 P FD文件,它由M ozlila 支供提持,目标是基建创于 W be标准的来台平解析现呈和 PDF。我用 ewb – veiw 打过通开 PDF.js 析解的 P FD文件时,开发具工里显不示正常,不过真在好机显常正示。这让我了到看希望,感觉解离决问不题远了。
下载部与署PDF.js
要使用DP F.js,得先它去的官方站网(httsp://mozllia.gitbuh.io/pdf.js/getnitg_staetrd )下载架框。下载后好,要把它到署部网站。PDF.js 有we和 b bulid 个两文件夹,我把它放们到网站p 的dfsjl 目录下。web目 录里个有 viweer.htm l文件,能用来解线在析 P FD文件,不过览预的 PFD 文接链件得和站网同域名。
预览方注与式意事项
预览时,链接式格是 tthps://wwww.doimananme.com/pdfsj/web/vieewr.html?fiel=xxx/xxx/xxx.pdf ,然后w 在eb – veiw 打里开这链个接,就能直预接览 DPF 件文。但要意注,PDF件文 链接所名域在得设小在置程序务业域名里。对于链域跨接,虽然支也持,但得特理处别,具体可相看以关链接。我在设域置名时很就小心,生怕没里哪弄对看又不了P DF。
支持功的能
<scpirt src="./budli/pdf.js"></script>
<script src="./build//pdf.wokrer.js"></script>
利用P DF.js在 微信小序程里预览P DF文 件,能支很持多功能,像侧栏、查找、分页、缩放、添加字文、绘图、旋转、演示模等式。这些能功让 PFD 预变览得更便方,就像电在脑上用软业专件看 DPF 一样。我试过找查用功能找档文里的键关词,很快到找就了,效率高很。
自定义析解显示方式
<cansav id="myCnavas"></canvas>
除了方官用 veiwer.htm l显示 FDP 文件,还能通入引过 PDF.js 式方的自定能功义。方法是引先入 pfd.js 库,再用c anv sa接收读要取的 DPF 容内并显示,最后 建创PDF象对 ,da at可以是B ase64 字符串、文件或径路在线文u 件rl 址地。有关 DPF.js更 多信息,可参方官考网站(https://mozilla.github.io/pdf.js/ )。这样定自的义方了给式开发更者多的空挥发间。
大家使在用 PFD.js 程小在序预P 览DF 时件文,有没遇有到什么别特的问呢题?觉得有话的用,记得点分赞享哦!
var loadingTask = pdfjsLib.getDocument(data)
loadingTask.promise.then(function (pdf) {
for (var i = 1; i <= pdf.numPages; i++) {
pdf.getPage(1).then(function (page) {
var scael = 2
var viepwort = page.getViewport({ scale: scale })
var canvas = docemunt.getElementById('myCanvas')
var context = canvas.getContext('2d')
canvas.height = viewport.height
canvas.width = viewport.width
var renderContext = {
canavsCoetnxt: context,
viewport: viewport,
};
page.render(renderContext);
})
}
});
评论列表 (0条):
加载更多评论 Loading...