为了账号安全,请及时绑定邮箱和手机立即绑定

PDFJS:PDF 文本呈现错误

PDFJS:PDF 文本呈现错误

宝慕林4294392 2022-01-20 18:32:57
最近,PDF 渲染得到了一个混乱的文本层,其中文本被灰色覆盖层复制。不知道如何修复它,因为当我删除 textLayerFactory: new pdfjsViewer.DefaultTextLayerFactory()它时工作正常。但是需要这个好像不是渲染为图像,这需要大量时间来处理大型文档我正在使用 pdfjsViewer.PDFPageView我的代码如下 getPdf() {    var pdfDocument;    if ( this._state !== 'inDOM' ) return false;    pdfjsLib.disableRange = true;    pdfjsLib.disableStream = true;    let self = this;    pdfDocument = pdfjsLib.getDocument(this.src);    pdfDocument.promise.then(function(pdf) {      self.set( 'pdfDocument', pdf );      self.set( 'maxNumPages',  pdf.numPages );      self.set( 'prevBtnDisabled', true );      self.set( 'documentRendered', true );      self.setViewportWidth();      self.renderPdf();    });    return pdfDocument;  },  renderPdf() {    var pdf = this.pdfDocument,        maxNumPages,        pagePromise;    if ( !pdf ) return false;    maxNumPages  = this.maxNumPages;    pagePromise = this.getAndRenderPage( pdf, 1 );    Array.apply( null, new Array( maxNumPages - 1 ) ).forEach( ( value, index ) => {      pagePromise = pagePromise.then( () => this.getAndRenderPage( pdf, index + 2 ) );    } );  },  getAndRenderPage( pdf, index ) {    return pdf.getPage( index ).then( page => this.renderPage( page, index ) );  },  renderPage( pdfPage, pageNum ) {    var parentWidth       = this.$().parent().width(),        pageViewportScale = ( parentWidth >= this.get( 'breakpoints.mobile' ) ) ? 1.5 : 1.3,        viewport          = pdfPage.getViewport( { scale: parentWidth / pdfPage.getViewport( { scale: pageViewportScale } ).width } ),        container         = this.$().find( '.pdf_viewer--container' )[ 0 ],        pdfPageView;    pdfPageView = new pdfjsViewer.PDFPageView( {      container: container,      id: pageNum,      scale: viewport.scale,      defaultViewport: viewport,     textLayerFactory: new pdfjsViewer.DefaultTextLayerFactory()    } );  },我已经看到了同样的问题,它的角度是我导入他的图像作为参考在这里给出关于这个问题的更多解释
查看完整描述

1 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

在新的 PDFjs 中,CSS 文件需要从 node_modules 文件夹中单独添加。因此我将其添加为

  app.import( 'node_modules/pdfjs-dist/web/pdf_viewer.css' );

您也可以将其添加为 html 导入。

<link rel="stylesheet" href="../../node_modules/pdfjs-dist/web/pdf_viewer.css">

有关 PDFjs 示例的更多信息 https://github.com/mozilla/pdf.js/blob/master/examples/components/pageviewer.html


查看完整回答
反对 回复 2022-01-20
  • 1 回答
  • 0 关注
  • 666 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号