处理移动端pdf展示问题

npm install pdfjs-dist --save  //安装
<canvas v-for="page in pdfList" :id="'the-canvas'+page" :key="page"></canvas>
<script>
import PDFJS from "pdfjs-dist";
import pdfjsLib from "pdfjs-dist";
export default {
data(){
return {
pdfDoc: null,
pdfList: 0
}
},
mounted() {
this.initThePDFJSLIB();
let url = ''
console.log(url);
this.loadFile(url);
},
methods: {
// 初始化pdfjs
initThePDFJSLIB() {
pdfjsLib.GlobalWorkerOptions.workerSrc = "pdfjs-dist/build/pdf.worker.js";
},
_renderPage(num) {
this.pdfDoc.getPage(num).then(page => {
let canvas = document.getElementById("the-canvas" + num);
let ctx = canvas.getContext("2d");
let dpr = window.devicePixelRatio || 1;
let bsr =
ctx.webkitBackingStorePixelRatio ||
ctx.mozBackingStorePixelRatio ||
ctx.msBackingStorePixelRatio ||
ctx.oBackingStorePixelRatio ||
ctx.backingStorePixelRatio ||
1;
let ratio = dpr / bsr;
let viewport = page.getViewport(
screen.availWidth / page.getViewport(1).width
);
canvas.width = viewport.width * ratio;
canvas.height = viewport.height * ratio;
canvas.style.width = viewport.width + "px";
canvas.style.height = viewport.height + "px";
ctx.setTransform(ratio, 0, 0, ratio, 0, 0);
let renderContext = {
canvasContext: ctx,
viewport: viewport
};
page.render(renderContext);
if (this.pdfList > num) {
this._renderPage(num + 1);
}
});
},
loadFile(base64Str) {
PDFJS.getDocument({data:  ///data对象可以换成url
  atob(base64Str),
  cMapUrl: 'https://cdn.jsdelivr.net/npm/pdfjs-dist@2.0.943/cmaps/',
  cMapPacked: true
  }).then(pdf => {
  this.pdfDoc = pdf;
  this.pdfList = this.pdfDoc.numPages;
  this.$nextTick(() => {
  this._renderPage(1);
  });
});
}
},
components: {
}
};
</script>
<style lang="scss" scoped>
canvas {
display: block;
border-bottom: 1px solid black;
}
</style>
但最后因为电子签章问题还是换成图片的base64了(电子签章可以处理出来但样式乱了)
在build的pdf.worker.js中注释下就行了
if (data.fieldType === 'Sig') {
data.fieldValue = null;

//_this2.setFlags(_util.AnnotationFlag.HIDDEN);
}

转载于:https://www.cnblogs.com/hr-cmbc/p/11341422.html

### 回答1: Unity PDF Renderer是Unity引擎中的一个插件,可以在Unity中加载和渲染PDF文件。通过这个插件,开发者可以方便地将PDF文件集成到应用程序中,以方便用户进行查看和交互。 Unity PDF Renderer的功能非常强大。它支持多种PDF文件格式,包括加密和压缩的PDF。同时,它还支持PDF文本搜索和高亮显示等功能。开发者可以使用Unity PDF Renderer将PDF文件中的各种元素(如文本、图片、链接等)渲染出来,并将其添加到应用程序的UI界面中。 此外,Unity PDF Renderer还可以与其他Unity插件和工具进行整合,比如UI工具、物理引擎等。这样,开发者便可以在Unity中实现更加复杂和多样化的PDF文件渲染效果。 总之,Unity PDF Renderer是一个非常实用的Unity插件,可以为开发者提供快速、方便、高效的PDF文件渲染解决方案。它不仅能够提升应用程序的用户体验,还能够为用户带来更加丰富、多样化的PDF阅读和交互体验。 ### 回答2: Unity PDF Renderer是Unity的一个功能模块,它是一个基于开源框架的PDF阅读器插件。该插件可以让用户在Unity引擎中轻松渲染PDF文件。与其他PDF阅读器不同,Unity PDF Renderer使用了Unity引擎的3D图形渲染能力,可以将PDF文档中的内容呈现在3D场景中,用户可以通过旋转和缩放来查看和交互式地浏览PDF文件。 Unity PDF Renderer还提供了许多其他有用的功能,例如支持多个页面的处理、支持文本框和图像的渲染、支持搜索和高亮关键词等。这些功能可以使用户更方便地浏览和管理大型PDF文件。 Unity PDF Renderer的另一个优点是可以轻松地集成到项目中。用户只需要将插件导入Unity引擎中,并使用提供的API进行操作即可。这一过程非常容易,即使是没有太多编程经验的用户也能快速上手。 总之,Unity PDF Renderer是一款功能强大、易于使用、易于集成的PDF阅读器插件,它为Unity用户提供了方便的PDF文件浏览体验。 ### 回答3: Unity PDF Renderer是一款基于Unity开发平台的PDF文档渲染器。该渲染器可以将PDF文档中的内容以图形方式呈现出来,例如文本、图像、表格等。Unity PDF Renderer不但支持在PC端,也可以在移动端使用,这使得Unity PDF Renderer成为了一个非常有用的工具。 该软件的优点在于它不仅可以快速地显示PDF文档,而且还支持对文档进行操作,例如缩放、放大、旋转等。Unity PDF Renderer可以帮助用户更好地展示和分析PDF文档内容,对于很多需要清晰展示和呈现PDF文档的用户来说,它实在是一个非常有用的工具。 总的来说,Unity PDF Renderer是一款功能强大、易于使用的PDF文档渲染器,它可以帮助用户更好地展示和分析PDF文档内容,是各类企业和组织中不可或缺的一个工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值