Vue で pdf.js を使用して PDF ファイル ストリームのオンライン プレビューを実装する

Vue で pdf.js を使用して PDF ファイル フローのオンライン プレビューを実装する手順は次のとおりです。

1.pdf.jsをインストールする

npm install pdfjs-dist

2. pdf.jsの導入

使用する必要があるコンポーネントで、次のコードを使用して pdf.js を導入します。

import pdfjsLib from 'pdfjs-dist'

3. PDF ファイルストリームをロードする

pdf.jsgetDocument()メソッドを使用して PDF ファイル ストリームを読み込みます。ファイル ストリームを Blob オブジェクトとしてこのメ​​ソッドに渡すことができます。たとえば、axios を使用してサーバーから PDF ファイル ストリームを取得できます。

axios.get('/api/pdf', {
    
     responseType: 'blob' })
  .then(response => {
    
    
    const blob = new Blob([response.data], {
    
     type: 'application/pdf' })
    this.loadPdf(blob)
  })

loadPdf()メソッドでは、getDocument()次のメソッドを使用して PDF ファイルを読み込みます。

loadPdf(blob) {
    
    
  pdfjsLib.getDocument({
    
     data: blob }).then(pdf => {
    
    
    this.pdf = pdf
    this.renderPdf()
  })
}

この時点で、pdf ファイルは pdf オブジェクトに読み込まれています。

4.PDFをレンダリングする

pdf.js のレンダラーを使用して PDF ファイルをレンダリングします。getViewport()メソッドを使用して、PDF ページの表示サイズを取得できます。

このメソッドではrenderPdf()、PDF ファイルの各ページを反復処理し、Renderer を使用してレンダリングします。

renderPdf() {
    
    
  this.pdf.getPage(1).then(page => {
    
    
    const canvas = document.createElement('canvas')
    const context = canvas.getContext('2d')
    const viewport = page.getViewport({
    
     scale: 1 })
    canvas.height = viewport.height
    canvas.width = viewport.width
    page.render({
    
     canvasContext: context, viewport })
    this.pdfUrl = canvas.toDataURL('image/jpeg')
  })
}

この時点で、PDF ファイルは画像にレンダリングされました。オンライン プレビューを実現するには、画像の URL を img タグの src 属性にバインドします。

<img v-if="pdfUrl" :src="pdfUrl">

上記は、Vue で pdf.js を使用して PDF ファイル フローをオンラインでプレビューする詳細な手順です。

おすすめ

転載: blog.csdn.net/qq_45585640/article/details/132730840