Итак, используя этот пример веб-сайта (содержащего 2D-чертеж): https://wallabyway.github.io/offline-pdf-markup/
Я создаю некоторую разметку, используя кнопку «>», и перемещаю / увеличиваю камеру, чтобы создать новый вид..
Затем в консоли разработчика Chrome я набираю следующее, чтобы зафиксировать состояние просмотра:
_vsdata = NOP_VIEWER.getState();
, а затем записать строку вывода _markupdata в отдельную строку.с помощью текстового редактора:
markup = NOP_VIEWER.getExtension("Autodesk.Viewing.MarkupsCore");
_markupdata = markup.generateData();
Затем я закрываю браузер, снова открываю образец веб-страницы, снова открываю консоль разработчика и набираю ...
_vsdata = {"seedURN":"pdfs/qcad1.pdf","objectSet":[{"id":[],"isolated":["0"],"allLayers":true,"hidden":[],"idType":"lmv"}],"viewport":{"name":"","eye":[715.1987553432215,1157.394913771758,952.2144059810873],"target":[715.1987553432215,1157.395865986087,0.00007739370581180048],"up":[0,0.9999999999995001,0.0000010000000005565904],"worldUpVector":[0,0,1],"pivotPoint":[2516.6435313443767,530.4773949133468,0],"distanceToOrbit":952.2137790630921,"aspectRatio":1.9121887287024901,"projection":"orthographic","isOrthographic":true,"orthographicHeight":952.2143285878576},"renderOptions":{"environment":"Simple Grey","ambientOcclusion":{"enabled":false,"radius":12,"intensity":1},"toneMap":{"method":0,"exposure":0,"lightMultiplier":0},"appearance":{"ghostHidden":true,"ambientShadow":true,"antiAliasing":false,"progressiveDisplay":true,"swapBlackAndWhite":false,"displayLines":true,"displayPoints":false}}}
_markupdata = `<svg xmlns="http://www.w3.org/2000/svg" version="1.1" baseProfile="full" layer-order-id="markups-svg" style="position:absolute; left:0; top:0; transform:scale(1,-1); -ms-transform:scale(1,-1); -webkit-transform:scale(1,-1); -moz-transform:scale(1,-1); -o-transform:scale(1,-1); transformOrigin:0, 0; -ms-transformOrigin:0, 0; -webkit-transformOrigin:0, 0; -moz-transformOrigin:0, 0; -o-transformOrigin:0, 0; " width="1459" height="763" viewBox="93.25242169278158 715.903268001178 735.2677612304688 384.51632690468136" pointer-events="painted" cursor="crosshair"><metadata><markup_document xmlns="http://www.w3.org/1999/xhtml" data-model-version="4"></markup_document></metadata><g cursor="inherit" pointer-events="stroke"><metadata><markup_element xmlns="http://www.w3.org/1999/xhtml" stroke-width="2.621231979030199" stroke-color="#ff0000" stroke-opacity="1" fill-color="#ff0000" fill-opacity="0" type="rectangle" position="710.4914295972688 1042.3945255173116" size="277.6138818125107 167.36150603104852" rotation="0"></markup_element></metadata><path id="markup" d="M -137.49632491674026 -82.37013702600916 l 274.9926498334805 0 l 0 164.74027405201832 l -274.9926498334805 0 z" stroke-width="2.621231979030199" stroke="rgba(255,0,0,1)" fill="none" transform="translate( 710.4914295972688 , 1042.3945255173116 ) rotate( 0 )"/></g><g cursor="inherit" pointer-events="stroke"><metadata><markup_element xmlns="http://www.w3.org/1999/xhtml" stroke-width="2.621231979030199" stroke-color="#00ff00" stroke-opacity="1" fill-color="#ff0000" fill-opacity="0" type="rectangle" position="605.2689024399756 809.3865951844264" size="223.75523371235658 167.81643100820293" rotation="0"></markup_element></metadata><path id="markup" d="M -110.5670008666632 -82.59759951458636 l 221.1340017333264 0 l 0 165.19519902917273 l -221.1340017333264 0 z" stroke-width="2.621231979030199" stroke="rgba(0,255,0,1)" fill="none" transform="translate( 605.2689024399756 , 809.3865951844264 ) rotate( 0 )"/></g></svg>`
Теперь я восстанавливаю свое состояние просмотра:
NOP_VIEWER.restoreState(_vsdata);
Теперь я восстанавливаю свою разметку:
markup = NOP_VIEWER.getExtension("Autodesk.Viewing.MarkupsCore");
markup.enterEditMode(); markup.leaveEditMode();
markup.loadMarkups(_markupdata, 'aaa')
В конце вы должны получить ту же камеруПозиция просмотра и та же разметка (с цветами разметки), что и изначально создаваемая, как на этом скриншоте.
Примечание: два красных и зеленых цвета разметки и увеличенное / перемещенное положение камеры.
Это работает для вас?