如何在flexpaper注释文档查看器中保存注释标记?
感谢。
答案 0 :(得分:0)
FlexPaper提供了一个名为getMarkList的JavaScript函数:
marksArray = JSON.stringify($FlexPaper('documentViewer').getMarkList());
您可以使用addMarks再次应用注释:
var initialMarks = JSON.parse(marksArray);
$FlexPaper('documentViewer').addMarks(initialMarks);
这适用于HTML5版本,但我怀疑它也适用于Flash和HTML版本。
答案 1 :(得分:0)
好的,所以我想我发现Flexpaper中的一个错误会阻止它变得有用(错误在Flash版本中,没有测试过HTML版本)。如果有人真的让这个在Flash上工作,请告诉我!
基本上,addMark()
正在执行不必要的坐标转换,这使得无法将其放回到您在同一位置提取的标记(这似乎只是注释的情况,图纸似乎不有这个问题)。
以下是如何重现:
转到http://devaldi.com/annotations/UK_Investment_Fund.php?ro=flash,html并打开Chrome JS控制台。输入以下命令:
>> note = $FlexPaper('documentViewer').getMarkList()[2]
Object {width: 200, pageIndex: 1, height: 180, note: "The annotations plug-in allows both highlighting a…created↵↵Notes can be resized, moved and deleted.", id: "3AFE17A3-4977-3ECA-C468-70F2C40B81E8"…}
>> // Now try to add back in the same annotation
>> $FlexPaper('documentViewer').addMark(note)
>> // Notice that on the screen the note is in the wrong spot
>> // (not the same spot as the original one). Lets check the positioning
>> added_note = $FlexPaper('documentViewer').getMarkList()[6]
>> added_note.positionX
356.718192627824
>> note.positionX
-5.945303210463702
答案 2 :(得分:0)
只要您将'displayFormat'设置为'html'作为对象创建的一部分,位置的规范化/非规范化应该可以正常工作。标准化过程基本上调整X / Y /宽度/高度,以使文档被认为是高度为1000。如果文档的高度与flash或html不同,则在显示注释时,查看器会调整位置。当然,它也会考虑文档宽度/高度的比例作为此过程的一部分。
一切顺利 关于FlexPaper团队的Erik