You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PDF.js Viewer添加注释后获取PDF的Base64或二进制数据

获取PDF.js Viewer中包含所有注释的PDF数据(Base64/二进制)

你可以通过以下步骤获取包含所有注释的PDF二进制数据,再转成Base64:

  • 先拿到当前加载的PDF文档实例,用你已能访问的PDFViewerApplication获取:

    const pdfDoc = PDFViewerApplication.pdfDocument;
    
  • 调用文档的save方法,生成包含所有注释和修改的二进制数据(Uint8Array格式):

    const pdfBytes = await pdfDoc.save({
      updateMetadata: false, // 可选,不需要更新元数据就设为false
    });
    
  • 将Uint8Array转换成Base64格式:

    // 先转成Blob,再用FileReader读取为Base64
    const blob = new Blob([pdfBytes], { type: 'application/pdf' });
    const reader = new FileReader();
    reader.onload = function() {
      const base64Pdf = reader.result.split(',')[1]; // 移除data URI前缀,仅保留Base64部分
      // 此处即可获取带所有注释的PDF的Base64字符串
      console.log(base64Pdf);
    };
    reader.readAsDataURL(blob);
    

注意事项

  • 务必在PDF完全加载后执行代码,比如监听PDFViewerApplication.eventBus.on('documentloaded', ...)事件,避免因未加载完成拿不到pdfDocument实例。
  • 若为跨域iframe嵌入,要保证主页面与iframe域名一致,或配置了正确的跨域权限,否则会触发访问限制。

内容的提问来源于stack exchange,提问作者John333

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 11:05:19