Veröffentlicht Fri, 12 Jun 2020 15:28:29 GMT von Sabino Civita
Hello guys,
I'm trying to write code for delete annotation wirh DW api. I looked in documentation but I was not able to find something to help me.
Do you have any idea of how to implement it?

Thanks & regards

Sabino
Veröffentlicht Wed, 17 Jun 2020 09:20:46 GMT von Sabino Civita
Anyone ??
Veröffentlicht Tue, 01 Dec 2020 11:10:04 GMT von Adriano González IT Solutions Architect
I've got the same question. Do you find any solution?
Thanks in advance
Veröffentlicht Mon, 30 Aug 2021 12:09:33 GMT von Charles McCollister

To delete an annotation on a layer, you can modify the example for adding annotations and include the Id (which is a GUID) of the annotation to be deleted.

        public static Annotation DeleteAnnotationOnPage(Page page, int layer, string annotationId)
        {
            Annotation deleteAnnotationEntry = new Annotation()
            {
                Layer = new List<Layer>()
                {
                    new Layer()
                    {
                        Id = layer,
                        Items = new List<EntryBase>()
                        {
                            new DeleteEntry()
                            {
                                Id = annotationId
                            }
                        }
                    }
                }
            };
            
            Annotation postDeleteAnnotation = page.PostToAnnotationRelationForAnnotation(deleteAnnotationEntry);
            return postDeleteAnnotation;
        }

The annotation is obtained from the EntryBase object, as here:

            Pages docSectionPages = docSection.PostToPagesBlockRelationForPages(qPagesBlock);
            List<Page> pageCollection = docSectionPages.Page;
            foreach (Page secPage in pageCollection)
                {
                    Annotation pageAnnotation = secPage.GetAnnotationFromAnnotationRelation();
                    List<Layer> annotationLayers = pageAnnotation.Layer;
                    DWpageNumLayers = annotationLayers.Count;

                    for (int jindex = 0; jindex < DWpageNumLayers; jindex++)
                    {
                        List<EntryBase> layerBaseEntries = annotationLayers[jindex].Items;

                        foreach (EntryBase layerBaseEntry in layerBaseEntries)
                        {
                            anyAnnotationId = layerBaseEntry.Id;
                            // layers are 1-based
                            DeleteAnnotationOnPage(secPage, jindex + 1, anyAnnotationId);
                        } 
                    }
                }
 

Sie müssen angemeldet sein um Beiträge in den Foren zu erstellen.