Я работаю над средством просмотра PDF, начиная с примера, опубликованного Майклом Билом https://forge.autodesk.com/blog/fast-pdf-viewingmarkup-inside-forge-viewer. Он отлично работает с большим количеством документов разного типа.Моя проблема заключается в том, что при загрузке более 2-х моделей 2d, экспортируемых TEKLA в формате PDF, в первый раз это работает хорошо, но на консоли не отображается следующее сообщение:
font-engine.js:51 Failed to map font Arial
value @ font-engine.js:51
value @ font-engine.js:59
value @ LmvCanvasContext.js:594
paintChar @ pdf.js:11506
showText @ pdf.js:11635
executeOperatorList @ pdf.js:11037
(anonymous) @ pdf.js:9541
_next @ pdf.js:9537
(anonymous) @ pdf.js:9528
requestAnimationFrame (async)
_scheduleNext @ pdf.js:9527
_continue @ pdf.js:9520
operatorListChanged @ pdf.js:9510
_renderPageChunk @ pdf.js:8503
(anonymous) @ pdf.js:9026
_onComObjOnMessage @ pdf.js:12705
path2d.js:676 Uncaught (in promise) TypeError: Cannot read property 'triangulationFailed' of null
at d.fill (path2d.js:676)
at e.value (LmvCanvasContext.js:531)
at e.value (LmvCanvasContext.js:595)
at e.paintChar (pdf.js:11506)
at e.showText (pdf.js:11635)
at executeOperatorList (pdf.js:11037)
at pdf.js:9541
at new Promise (<anonymous>)
at t._next (pdf.js:9537)
at pdf.js:9528
Это фрагмент кода:
function initializeViewer(pdf) {
if (viewer) {
console.log('loading');
viewer.impl.unloadCurrentModel()
if (markup)
markup.hide();
viewer.loadModel(pdf, viewer);
return;
}
var options = {
env: "Local",
useConsolidation: true,
useADP: false,
}
Autodesk.Viewing.Initializer(options, () => {
viewer = new Autodesk.Viewing.Private.GuiViewer3D(document.getElementById('forgeViewer'));
viewer.setTheme("light-theme");
viewer.start();
if (!pdf) return;
viewer.loadExtension('Autodesk.PDF').then( () => {
viewer.loadModel(pdf, viewer);
viewer.loadExtension("Autodesk.Viewing.MarkupsCore")
viewer.loadExtension("Autodesk.Viewing.MarkupsGui")
});
});
Вы можете найти файл PDF здесь github
Есть идеи?