Free Support Forum -

Creating DB records before a document is loaded

We are evaluating the Annotations for .NET product and here is what we want to do:

1. Create an external process that will create annotations. We will have the coordinates of the annotations in our process that we can “map” to the coordinates that Annotations is using.

2. Create the required records in the DB so that Annotations will display all the annotations that we have created. The reason for this is that we want the users to be able to add/delete any annotations in the viewer.

Potential Issues:

1. It appears that the JSON file maps the filename (really a folder in the AppData directory) to the annotation id in the DB.

2. Since we would like to perform some sort of automated cleanup of the folders (since this is not native in Annotations for .NET??) this would potentially create orphaned data in the JSON file - so we would have to delete items from the JSON file as well.

3. What happens when a user tries to open a document with the same name as one that was already annotated? It would appear that the original file is opened because of the JSON data relating the folders to DB Id’s.

4. How can we automate the creation of annotations if the file has to be opened in the Viewer first (in order to create the images and corresponding JSON/DB records)?

We are working on an incredibly, and somewhat, unrealistic timeline (but aren’t we all in our industry) so I am trying to figure out what all the pitfalls are before we purchase a Developer OEM license.

Using the Cloud version is not an option because the files cannot leave the local networks.

We have a ton of automated processing that must occur before the user is presented the documents in the Viewer so opening it there first is also not an option.


Thank you for your interest in GroupDocs.Annotation. First of all please investigate our documentation for how to use the Annotation library with the SQL server.

1. Yes, current version of the Annotation library stores the file name and session id in the json file and you will need to automate cleaning of it as well. But in same time our Product team work on the new generation of the Annotation which will not use such approach.

2. Yes, you are right.

3. When several collaborators open the same document they will see all annotation which made on the curremt moment and will see new annotations and comments in a real time when another user add them.

4. To automate annotations management we have such methods CreateAnnotation, DeleteAnnotation and AddAnnotationReply in the IAnnotationService. For example here is how you can create an instance of the IAnnotationService:
var svc = ObjectFactory.GetInstance();

If you will have more questions please feel free to contact us.

Best regards.

  1. 1. I know this question has been asked before in the forums but no real answer has been given but when is the new version going to be released? How radically different is this new version going to be? It would not be very prudent to invest time/money integrating a version that is not going to be supported - especially if the new version would require a complete rewrite of the surrounding architecture to support it.
  2. Ok
  3. Sorry, I don't think I was clear on this one. What happens in this scenario: User A opens up a file to annotate called 1.pdf (let's say it's a 17 page PDF) and User B opens up a file to annotate ALSO called 1.pdf (a different file of the same name consisting a 125 page PDF). What about the scenario: User A opens a file called 1.pdf (a 17 page PDF) and then opens a file 1.pdf (a different file of the same name consisting of a 125 page PDF). In my testing it would appear that the second 1.pdf can never be opened because the Annotation for .NET keeps going oo the original one.
  4. There is no documentation for the AnnotationService ( Is there somewhere that has documentation and examples of hwo to create/delete an annotation?


Thank you for coming back. The release of the next generation Annotation library will be from day to day. The next generation library has nothing with the current one - it absolutely rebuilded from scratch and will provide much more features and flexibility. Since that I recommend you to wait for the release and start to use the new library from the beginning instead of migration.

When we will release a new library we also will release a documentation and examples for it and will notify you here.

Please stay tuned and best regards.