Free Support Forum -

Annotation Not Retained After Download and Re-Upload


Hi, I was taking a look at this sample and was trying to find a way to download a file with annotations, and open it and view those annotations. Turns out, acrobat reader IS able to view the annotations (windows default one, and chrome pdf viewer are not).

I then re-uploaded the file (under a different name) and the page markup for the annotations exist (there is a blue box, or a speech bubble) but they just exist as an image on the PDF rather than actual annotations.

Am I missing something, or is there no way to retain the annotations after an upload?

We are evaluating the product to see if it will meet our needs, and this would be the most important feature for us, so we would like to see a way to get it to work. (We want to keep all of the copies locally and upload them when we need to do an edit, and delete them/download the most recent version when we finish the edit)

I now see that I can request all of the annotations, and could store those locally. However, in order to re-apply those annotations to the new document, I would have to make a request for each annotation, and each annotation response for each document request. That seems excessive. Is there another way around this that anybody would know of?

Last Update
I see that on the version, there is a function called “ImportAnnotations” which appears to import the annotations from the document into GroupDocs. Is there a Api version of this method that we could call?



Thank you for your interest in GroupDocs. Yes we have the API version of the “Import Annotations” method , but in current moment our developers are working on improving this method and fixing some bugs in this method. All should be implemented and fixed before next release. We will notify you when you can use this method.

In the meantime we can describe how it will work in the future, please view this example code:

//Create job which will add the annotations into a document

Groupdocs.Api.Contract.CreateJobResult createJob = service.CreateJob(Groupdocs.Common.JobActions.ExportAnnotation, null, false, false, “test” + rand.Next());

//Add document with annotations to job

Boolean addJobDocument = service.AddJobDocument(createJob.JobGuid, fileId, “pdf”, false);

//Run job
Boolean schedule = service.ScheduleJob(createJob.JobId);

//after this you will can check the presence of annotation in the document via this method

Groupdocs.Api.Contract.Annotation.ListAnnotationsResult allAnnotations = service.ListAnnotations(fileId);

Best regards
Evgen Efimov
Your Document Collaboration APIs
Follow us on LinkedIn, Twitter, Facebook and Google+


Okay, thanks.

Is there a way to bulk-send annotaions in one API call? We would store the annotation list on our server, then when we re-upload the document we would send that annotation list in the same format that we got from you, rather than having to loop through annotaions and annotaion replies, making one httprequest for each of those.

This would also be beneficial in that it would not be an Async job running, but rather a synchronous call and we would know when we get a response that the annotations will exist.



Anything on this?

Hello, Dan

Thank you for coming back and sorry for the delay. But in current moment we have no such method in our GroupDocs API and it is not planned. If the method will be in demand our customers we can consider adding this function in our roadmap.

Please notify us if you will have any other questions.

Best regards

Evgen Efimov
Your Document Collaboration APIs
Follow us on LinkedIn, Twitter, Facebook and Google+