В экземпляре PSPDFKIT.addEventListener («аннотации.создание») отсутствует тип аннотации

#javascript #json #pspdfkit

Вопрос:

Я борюсь с pspdfkit для правильного создания и отображения аннотаций. Я хотел бы создать свою аннотацию следующим образом:

  instance.addEventListener("annotations.create", createdAnnotations => {
              const annotation = createdAnnotations
              const serializedObject = toSerializableObject(annotation)
              const annotationsJson = JSON.stringify(serializedObject)
              console.log("clean", JSON.parse(annotationsJson))
              dispatch(createPdfNote(annotationsJson, documentID))
                .then(
                  err => {
                    if (!err) {
                      setSnackContent({
                        severity: "success",
                        message: "Annotation successfully created",
                      })
                    }
                  })
            })
 

Но при создании аннотации отсутствует тип аннотации.

Как я мог бы получить его и использовать toSerializeObject для создания JSON, который я могу воссоздать после?

Это JSON, который экземпляр.addEventListener создал для меня:

 action: null
​​additionalActions: null
​​backgroundColor: null
​​blendMode: "normal"
​​boundingBox: Object { left: 308, top: 118, width: 82, … }
​​createdAt: "2021-06-28T07:58:36.255Z"
​​creatorName: null
​​customData: null
​​hidden: false
​​id: "01F98T156YNAP5N28MAKKQJ2Y4"
​​isCommentThreadRoot: false
​​isDrawnNaturally: false
​​isSignature: false
​​lineWidth: 5
​​lines: Array [ (12) […] ]
​​name: "01F98T156YNAP5N28MAKKQJ2Y4"
​​noPrint: false
​​noRotate: false
​​noView: false
​​noZoom: false
​​note: null
​​opacity: 1
​​pageIndex: 0
​​pdfObjectId: null
​​strokeColor: Object { r: 34, g: 147, b: 251 }
​updatedAt: "2021-06-28T07:58:37.181Z"
 

К сожалению, я должен пройти pspdfkit функция toSerializeObject, fromSerializeObject , чтобы иметь возможность создавать и получите заметок, но они дают мне ошибку unsupported type , когда я их создаю, и unsupported type change когда я пытаюсь воссоздать их, используя JSON.разбор / в JSON.преобразовать в строки, не делать трюк, и он не позволит мне использовать instance.create для визуализации, созданные аннотации к DOM, когда пользователь закрыл просмотр и повторно открыв его снова.

Ответ №1:

Итак, документация-это мусор, не буду врать… Метод на самом деле является функцией, полученный массив является объектом и т. Д. и т. Д.

Ответ на вопрос, как получить то, что я искал, таков:

             instance.addEventListener("annotations.create", createdNote => {
              const note = createdNote.get(0)
              const serializedObjectNote = toSerializableObject(note)
              const noteJson = JSON.stringify(serializedObjectNote)
              if (!isLoadingNotes.current) {
                dispatch(createPdfNote(noteJson, documentID))
                  .then(
                    err => {
                      if (!err) {
                        setSnackContent({
                          severity: "success",
                          message: "Annotation successfully created",
                        })
                      }
                    })
              }
            })