vue2.0移动端使用pdfjs-dist预览文件,在ios文件内容多显示不全(>50页) 内容少可以正常显示,在安卓端无问题都可以正常显示
想要的效果:pdf文件预览内容正常显示
使用的pdfjs-dist@2.2.228,具体代码如下:
<canvas v-for="page in pdfPages" :key="page" :id="'pdf-canvas' + page" />import * as PDFJS from 'pdfjs-dist'import pdfjsWorjer from 'pdfjs-dist/build/pdf.worker.entry'PDFJS.GlobalWorkerOptions.workerSrc = pdfjsWorjerloadFile (url) { let loadingTask = PDFJS.getDocument({ url: url, withCredentials: true // 携带凭证 }) loadingTask.promise.then(pdf => { this.pdfDoc = pdf this.pdfPages = pdf.numPages this.$nextTick(() => { this.renderPage(1) }) }).catch(err => { console.log(err, 'loadingTask err') })},renderPage (num) { const that = this this.pdfDoc.getPage(num).then(page => { let canvas = document.getElementById('pdf-canvas' + num) let ctx = canvas.getContext('2d') let dpr = window.devicePixelRatio || 1 let ratio = dpr // screen.availWidth 屏幕可用宽度 let viewport = page.getViewport({scale: screen.availWidth / page.getViewport({scale: this.pdfScale}).width}) canvas.width = viewport.width * ratio canvas.height = viewport.height * ratio canvas.style.width = viewport.width + 'px' canvas.style.height = viewport.height + 'px' that.pdfWidth = viewport.width + 'px' canvas.style.height = viewport.height + 'px' ctx.setTransform(ratio, 0, 0, ratio, 0, 0) // 将 PDF 页面渲染到 canvas 上下文中 let renderContext = { canvasContext: ctx, viewport: viewport } page.render(renderContext) if (this.pdfPages > num) { this.renderPage(num + 1) } })}
显示不全能不能看看截图
对于你的问题,看起来你在使用pdfjs-dist
库在Vue2.0中预览PDF文件。你在iOS设备上遇到的问题是,当PDF文件页数较多(>50页)时,文件内容显示不全。而在安卓设备和页数较少的PDF文件上,显示正常。
这个问题可能是由于iOS设备上的内存管理或者渲染性能导致的。当处理大量页面时,可能会超出设备的内存限制,导致渲染失败或显示不全。
以下是一些可能的解决方案:
pdfjs-dist
库是否有更新版本,新版本可能已经修复了与iOS设备相关的问题。在代码层面,你可以尝试修改renderPage
函数,使其支持分块渲染或虚拟滚动。例如,你可以添加一个参数来指定要渲染的页面范围,而不是一次性渲染所有页面。
请注意,这些解决方案可能需要一些实验和调整,以找到最适合你的应用的解决方案。
iframe显示一个pdf文件,浏览器弄成移动设备调试就不显示了 这样是可以显示的 这样就显示不了了 代码
在vue3中使用vue-pdf-embed,不显示内容 使用vue3-pdfjs都可以获取到页数,内容却不显示
问题内容: 我正在升级应用程序以使用iOS 13中定义的新模式,但是该应用程序的关键部分已停止工作。我一直在使用a 来覆盖屏幕上的当前内容并向用户显示新信息,但是在我正在使用的当前Beta(iOS + XCode beta 3)中,该窗口会出现,但随后会立即消失。 这是我正在使用的代码,现在无法使用: 我已经尝试了很多方法,包括使用来展示新的东西,但是却找不到任何实际的文档或示例。 我的尝试之一(
我的团队面临着在Ios设备上运行测试的问题,他们运行速度非常慢,每个设备大约需要19分钟,在一些Ios为13的设备上,应用程序没有打开。在IOS 13上安装了应用程序,但未安装WDA,且应用程序未打开。 在本地,我们有Xcode 11.1、node 11.6.0、appium 1.17.1,所有这些都可以在本地环境中快速、良好地工作。仅供参考,Android的完美运行需要7分钟,设备场才能运行整个
问题内容: 我在更新面板中有一个Ajax异步文件上传控件。我的上传效果很好,但是上传完成后,我需要查看上传的图片。但这不起作用是我所做的 AspCode: 问题答案: 您可以使用事件显示图像。 有关如何显示预览的详细信息,请看以下示例:具有AsyncFileUpload控件的ASP.NET中的AJAX文件上传
我正在尝试使用Swift在我的iOS应用程序中显示pdf。我从服务器得到的响应是pdf数据,它看起来如下所示: %PDF-1.4%ôiá1 0 obj 我检查了iOS PDF阅读器和PDFKit,但主要问题是我不明白如何处理应用程序中的响应。 有什么想法吗?谢谢!