Как я могу добавить аннотацию pdftron в текущее положение мыши

#javascript #vue.js #pdftron

Вопрос:

Я пишу программное обеспечение для чтения PDF-файлов с помощью pdftron. Я знаю, что docViewer.on('mouseLeftDown', e => {} это может привести к событию, но onClick , похоже, не может привести к событию мыши. Есть ли какое-нибудь хорошее решение? Спасибо.

       WebViewer(
        {
          path,
          initialDoc: "",
        },
        viewer.value
      ).then(function (instance) {
        const { Annotations, annotManager, docViewer } = instance;
        instance.contextMenuPopup.add({
          type: "actionButton",
          label: "MD",
          onClick: () => {
            const freeText = new Annotations.FreeTextAnnotation();
            freeText.PageNumber = docViewer.getCurrentPage();
            freeText.X=?;// I don't know how to set the freeText.X at the location of the mouse
            freeText.Y=?;
            freeText.Width = 150;
            freeText.Height = 50;
 

создать-аннотации-свободный текст

преобразование-между-местоположениями-мыши-и-координатами-окна

Ответ №1:

Я думаю, что одним из способов, которым вы могли бы это сделать, является прослушивание события contextmenu в документе iframe, а затем сохранение последнего события мыши оттуда, которое вы затем можете использовать при нажатии кнопки.

Например

 let lastContextMenuEvent;

instance.iframeWindow.document.addEventListener('contextmenu', (e) => {
  lastContextMenuEvent = e;
});

instance.contextMenuPopup.add({
  onClick: () => {
     // use lastContextMenuEvent here
  }
});