在flexpaper注释文档查看器中保存注释标记

时间:2013-03-15 07:19:44

标签: annotations save flexpaper

如何在flexpaper注释文档查看器中保存注释标记?

感谢。

3 个答案:

答案 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