【问题标题】:Invalid PDF structure using vue3-pdf使用 vue3-pdf 的 PDF 结构无效
【发布时间】:2021-11-24 10:08:59
【问题描述】:

几乎每个文件都返回此异常,只有一个对我有用 从控制台,它也返回:

警告:索引所有 PDF 对象。

Object { message: "Invalid PDF structure.", name: "InvalidPDFException", stack: "BaseExceptionClosure@webpack-internal:///./node_modules/pdfjs-dist-sig/es5/build/pdf.js:2222:29\n@webpack-internal:///./node_modules/pdfjs-dist-sig/es5/build/pdf.js:2225:2\n__w_pdfjs_require__@webpack-internal:///./node_modules/pdfjs-dist-sig/es5/build/pdf.js:47:30\n@webpack-internal:///./node_modules/pdfjs-dist-sig/es5/build/pdf.js:384:32\n__w_pdfjs_require__@webpack-internal:///./node_modules/pdfjs-dist-sig/es5/build/pdf.js:47:30\n@webpack-internal:///./node_modules/pdfjs-dist-sig/es5/build/pdf.js:317:41\n__w_pdfjs_require__@webpack-internal:///./node_modules/pdfjs-dist-sig/es5/build/pdf.js:47:30\n@webpack-internal:///./node_modules/pdfjs-dist-sig/es5/build/pdf.js:111:18\n@webpack-internal:///./node_modules/pdfjs-dist-sig/es5/build/pdf.js:114:10\nwebpackUniversalModuleDefinition@webpack-internal:///./node_modules/pdfjs-dist-sig/es5/build/pdf.js:25:20\n@webpack-internal:///./node_modules/pdfjs-dist-sig/es5/build/pdf.js:27:3\n@webpack-internal:///./node_modules/pdfjs-dist-sig/es5/build/pdf.js:26661:30\n./node_modules/pdfjs-dist-sig/es5/build/pdf.js@http://localhost:8080/view/js/chunk-vendors.js:2504:1\n__webpack_require__@http://localhost:8080/view/js/app.js:849:30\nfn@http://localhost:8080/view/js/app.js:151:20\n@webpack-internal:///./node_modules/pdfjs-dist-sig/es5/web/pdf_viewer.js:408:14\n__w_pdfjs_require__@webpack-internal:///./node_modules/pdfjs-dist-sig/es5/web/pdf_viewer.js:47:30\n@webpack-internal:///./node_modules/pdfjs-dist-sig/es5/web/pdf_viewer.js:258:36\n__w_pdfjs_require__@webpack-internal:///./node_modules/pdfjs-dist-sig/es5/web/pdf_viewer.js:47:30\n@webpack-internal:///./node_modules/pdfjs-dist-sig/es5/web/pdf_viewer.js:221:52\n__w_pdfjs_require__@webpack-internal:///./node_modules/pdfjs-dist-sig/es5/web/pdf_viewer.js:47:30\n@webpack-internal:///./node_modules/pdfjs-dist-sig/es5/web/pdf_viewer.js:111:18\n@webpack-internal:///./node_modules/pdfjs-dist-sig/es5/web/pdf_viewer.js:114:10\nwebpackUniversalModuleDefinition@webpack-internal:///./node_modules/pdfjs-dist-sig/es5/web/pdf_viewer.js:25:20\n@webpack-internal:///./node_modules/pdfjs-dist-sig/es5/web/pdf_viewer.js:27:3\n./node_modules/pdfjs-dist-sig/es5/web/pdf_viewer.js@http://localhost:8080/view/js/chunk-vendors.js:2515:1\n__webpack_require__@http://localhost:8080/view/js/app.js:849:30\nfn@http://localhost:8080/view/js/app.js:151:20\n@webpack-internal:///./node_modules/vue3-pdf/src/pdfjsWrapper.js:2:110\n./node_modules/vue3-pdf/src/pdfjsWrapper.js@http://localhost:8080/view/js/chunk-vendors.js:2725:1\n__webpack_require__@http://localhost:8080/view/js/app.js:849:30\nfn@http://localhost:8080/view/js/app.js:151:20\n@webpack-internal:///./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js?!./node_modules/vue3-pdf/src/vuePdfNoSss.vue?vue&type=script&lang=js:6:41\n./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js?!./node_modules/vue3-pdf/src/vuePdfNoSss.vue?vue&type=script&lang=js@http://localhost:8080/view/js/chunk-vendors.js:616:1\n__webpack_require__@http://localhost:8080/view/js/app.js:849:30\nfn@http://localhost:8080/view/js/app.js:151:20\n@webpack-internal:///./node_modules/vue3-pdf/src/vuePdfNoSss.vue?vue&type=script&lang=js:2:276\n./node_modules/vue3-pdf/src/vuePdfNoSss.vue?vue&type=script&lang=js@http://localhost:8080/view/js/chunk-vendors.js:2749:1\n__webpack_require__@http://localhost:8080/view/js/app.js:849:30\nfn@http://localhost:8080/view/js/app.js:151:20\n@webpack-internal:///./node_modules/vue3-pdf/src/vuePdfNoSss.vue:2:117\n./node_modules/vue3-pdf/src/vuePdfNoSss.vue@http://localhost:8080/view/js/chunk-vendors.js:2737:1\n__webpack_require__@http://localhost:8080/view/js/app.js:849:30\nfn@http://localhost:8080/view/js/app.js:151:20\n@webpack-internal:///./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js?!./src/views/Dashboard.vue?vue&type=script&lang=ts:25:86\n./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js?!./src/views/Dashboard.vue?vue&type=script&lang=ts@http://localhost:8080/view/js/app.js:986:1\n__webpack_require__@http://localhost:8080/view/js/app.js:849:30\nfn@http://localhost:8080/view/js/app.js:151:20\n@webpack-internal:///./src/views/Dashboard.vue?vue&type=script&lang=ts:2:406\n./src/views/Dashboard.vue?vue&type=script&lang=ts@http://localhost:8080/view/js/app.js:1466:1\n__webpack_require__@http://localhost:8080/view/js/app.js:849:30\nfn@http://localhost:8080/view/js/app.js:151:20\n@webpack-internal:///./src/views/Dashboard.vue:3:115\n./src/views/Dashboard.vue@http://localhost:8080/view/js/app.js:1454:1\n__webpack_require__@http://localhost:8080/view/js/app.js:849:30\nfn@http://localhost:8080/view/js/app.js:151:20\n@webpack-internal:///./src/router/index.ts:3:97\n./src/router/index.ts@http://localhost:8080/view/js/app.js:1430:1\n__webpack_require__@http://localhost:8080/view/js/app.js:849:30\nfn@http://localhost:8080/view/js/app.js:151:20\n@webpack-internal:///./src/main.ts:12:84\n./src/main.ts@http://localhost:8080/view/js/app.js:1406:1\n__webpack_require__@http://localhost:8080/view/js/app.js:849:30\nfn@http://localhost:8080/view/js/app.js:151:20\n1@http://localhost:8080/view/js/app.js:1551:18\n__webpack_require__@http://localhost:8080/view/js/app.js:849:30\ncheckDeferredModules@http://localhost:8080/view/js/app.js:46:23\n@http://localhost:8080/view/js/app.js:925:18\n@http://localhost:8080/view/js/app.js:928:10\n" }

我获取文件的函数:

  const getFile = async () => {
      console.log(currentDocNum);
      console.log(kpiShow.value);
      const responseFile = await rest.getFile(docsList[currentDocNum]);
      const downloadUrl = window.URL.createObjectURL(new Blob([responseFile.result]));
      const blob = new Blob([responseFile.result], { type: "application/pdf" });

      const temp = URL.createObjectURL(blob);
      const pdfSource = pdf.createLoadingTask(temp);
      console.log(temp);
      objectUrl.value = downloadUrl;
      
      pdfSource.promise.then((pdfTemp: any) => {
        numberPages.value = pdfTemp.numPages;
      });
      if (currentDocNum < docsNumber) currentDocNum++;
    };

const getFile = async (file: string): Promise<RestResponse<any>> => {
  return getRequest("/view/files?fileName="+file )
}

const getRequest = (requestString: string) =>
  viewAPI
    .get(requestString)
    .then((result) => ({ ok: true, result: result.data }))
    .catch((error) => Promise.resolve({ ok: false, error: error }))

和 div

  <div class="row" v-if="!kpiShow" >
    <pdf :src="objectUrl" :page="1" ></pdf>
</div>

【问题讨论】:

    标签: javascript node.js vue.js webpack


    【解决方案1】:

    应该是的

    const getRequest = (requestString: string) =>
      viewAPI
        .get(requestString,{responseType:"blob"})
        .then((result) => ({ ok: true, result: result.data }))
        .catch((error) => Promise.resolve({ ok: false, error: error }))
    

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2021-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-05
    • 2010-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多