#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",
})
}
})
}
})