TimeCat icon indicating copy to clipboard operation
TimeCat copied to clipboard

录制pdf在线阅读(基于canvas的vue-pdf)时报错

Open iamgaohui opened this issue 5 years ago • 7 comments

在canvas首次加载pdf时会报错导致回放时pdf不显示,经过debugger发现可能是因为第一次加载Pdf时节点较多导致的。如图

图片20200917162423

1600331408186

iamgaohui avatar Sep 17 '20 08:09 iamgaohui

@iamgaohui IndexedDB 采用的是结构化克隆算法,不支持 Function 存储。见这里

然后根据错误信息,应该是去 add 了一段 canvas 的代码,其实是 ctx.save 的源代码:

ctx.save = function ctxSave() {
  var old = this._transformMatrix;
  this._transformStack.push(old);
  this._transformMatrix = old.slice(0, 6);
 
  this._originalSave();
};

应该是这个原因导致的错误,我会尽快提一个 PR 修复 @oct16

cbbfcd avatar Sep 18 '20 07:09 cbbfcd

@cbbfcd thx

oct16 avatar Sep 18 '20 08:09 oct16

现在录制不报错,但是在回放时pdf显示框框。。应该是pdf字体的问题,有没有解决办法? IMG_5715 @oct16 @cbbfcd

iamgaohui avatar Sep 23 '20 06:09 iamgaohui

现在录制不报错,但是在回放时pdf显示框框。。应该是pdf字体的问题,有没有解决办法? IMG_5715 @oct16 @cbbfcd

我研究一下

cbbfcd avatar Sep 25 '20 02:09 cbbfcd

@iamgaohui 可以提供一个可复现的 online demo?,比如用 codesandbox

cbbfcd avatar Sep 25 '20 03:09 cbbfcd

@cbbfcd vue-pdf 基于 pdf.js 可以使用这个demo测试 https://mozilla.github.io/pdf.js/web/viewer.html 我看下来应该是 fillText 的特殊字体造成的

oct16 avatar Sep 25 '20 04:09 oct16

@cbbfcd vue-pdf 基于 pdf.js 可以使用这个demo测试 https://mozilla.github.io/pdf.js/web/viewer.html 我看下来应该是 fillText 的特殊字体造成的

好的,😂

cbbfcd avatar Sep 25 '20 06:09 cbbfcd