news 2026/10/22 6:49:18

钉钉中预览打印PDF问题(无法使用blob地址)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
钉钉中预览打印PDF问题(无法使用blob地址)

使用pdfjs-dist预览文件

依赖

npminstallpdfjs-dist@2.14.305

组件

<template><divid="pageContainer"><divid="viewer"></div></div></template><script>import'pdfjs-dist/web/pdf_viewer.css';import*aspdfjsLibfrom'pdfjs-dist';import*aspdfjsViewerfrom'pdfjs-dist/web/pdf_viewer';import'pdfjs-dist/build/pdf.worker.entry';import*aspdfjsSandboxfrom'pdfjs-dist/build/pdf.sandbox.js';pdfjsLib.GlobalWorkerOptions.workerSrc=window.pdfjsWorker;exportdefault{name:'PdfViewer',props:{pdfBlob:{type:Blob,required:true}},components:{},methods:{blobToArrayBuffer(blob){returnnewPromise((resolve,reject)=>{constreader=newFileReader();reader.onload=()=>resolve(reader.result);reader.onerror=reject;reader.readAsArrayBuffer(blob);});}},asyncmounted(){if(!pdfjsLib.getDocument||!pdfjsViewer.PDFViewer){alert('Please build the pdfjs-dist library using\n `gulp dist-install`');}constCMAP_URL='./cmaps/';constCMAP_PACKED=true;constENABLE_XFA=true;constSEARCH_FOR='';constSANDBOX_BUNDLE_SRC=pdfjsSandbox;constcontainer=document.getElementById('pageContainer');consteventBus=newpdfjsViewer.EventBus();constpdfLinkService=newpdfjsViewer.PDFLinkService({eventBus});constpdfFindController=newpdfjsViewer.PDFFindController({eventBus,linkService:pdfLinkService});constpdfScriptingManager=newpdfjsViewer.PDFScriptingManager({eventBus,sandboxBundleSrc:SANDBOX_BUNDLE_SRC});constpdfViewer=newpdfjsViewer.PDFViewer({container,eventBus,linkService:pdfLinkService,findController:pdfFindController,scriptingManager:pdfScriptingManager,enableScripting:true});pdfLinkService.setViewer(pdfViewer);pdfScriptingManager.setViewer(pdfViewer);eventBus.on('pagesinit',function(){pdfViewer.currentScaleValue='1.5';if(SEARCH_FOR){eventBus.dispatch('find',{type:'',query:SEARCH_FOR});}});constarrayBuffer=awaitthis.blobToArrayBuffer(this.pdfBlob);constloadingTask=pdfjsLib.getDocument({data:arrayBuffer,cMapUrl:CMAP_URL,cMapPacked:CMAP_PACKED,enableXfa:ENABLE_XFA});constpdfDocument=awaitloadingTask.promise;pdfViewer.setDocument(pdfDocument);pdfLinkService.setDocument(pdfDocument,null);}};</script><style>#pageContainer{position:absolute;overflow:hidden;width:100%;text-align:center;}#pageContainer .page{display:inline-block;position:relative;overflow:hidden;box-sizing:border-box;margin-bottom:2px;}#pageContainer #viewer .page{width:auto!important;}#pageContainer #viewer .page .canvasWrapper{width:auto!important;}#pageContainer #viewer .page .textLayer{width:auto!important;}#pageContainer #viewer .page .annotationLayer{width:auto!important;}</style>

打印

npminstallvue-print-nb@1.7.5
<template><divid="printDiv"><divv-if="fileType === 'application/pdf'"><PdfViewer:pdfBlob="previewUrl"/></div><divstyle="text-align:center;"v-else><img:src="previewUrl"/></div></div><a-buttontype="primary"v-print="printMe">打印</a-button></template><script>importPdfViewerfrom'./PdfViewer.vue';importPrintfrom'vue-print-nb';import*asddfrom'dingtalk-jsapi';exportdefault{name:'Preview',// 预览components:{PdfViewer},directives:{Print},data(){return{previewUrl:'',printMe:{// 打印区域id:'printDiv',// 是否有打印预览preview:false},fileType:''};}}</script>
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/22 6:48:08

自己挖的坑自己填--开发问题记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/22 6:47:53

Oracle百亿数据清理方案-数据泵dmp

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/22 6:47:26

【Tensorflow实战系列】Tensorflow 1.14.1 c++接口配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/22 6:46:20

PJ85718DM+ATmega644PA工业温度采集系统设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华