'''' This code is part of Document Solutions for PDF .NET demos.'' Copyright (c) MESCIUS inc. All rights reserved.''ImportsSystem.IOImportsSystem.DrawingImportsGrapeCity.Documents.PdfImportsGrapeCity.Documents.Pdf.Annotations '' Shows how to add an ink annotation to a PDF document,'' and how to render its content using the InkAnnotation.Paths property.PublicClassInkAnnotPathsFunctionCreatePDF(ByVal stream AsStream) AsIntegerDim doc = NewGcPdfDocument()Dim page = doc.NewPage()'' User name for the annotation's author:Dim user1 = "Jaime Smith" Dim rc = Util.AddNote("This sample creates an ink annotation and shows how to use the InkAnnotation.Paths property " +"to render the annotation's content. The content is specified by discrete points that should be " +"connected when a PDF viewer renders them. The points can be connected either by straight or " +"curved lines depending on the viewer implementation.", page) Dim inkAnnot = NewInkAnnotation() With { .UserName = user1, .Rect = NewRectangleF(rc.Left, rc.Bottom + 20, 72 * 5, 72 * 2), .LineWidth = 2, .Color = Color.DarkBlue, .Contents = "This is an ink annotation drawn via InkAnnotation.Paths." }Dim x0 = 80, x = 80, y = rc.Bottom + 24, h = 18, dx = 2, dy = 4, dx2 = 4, w = 10, xoff = 15 '' Scribble 'ink annotation' text: '' iDim paths As List(OfPointF()) = New List(OfPointF()) paths.Add({NewPointF(x + w / 2, y), NewPointF(x + w / 2, y + h), NewPointF(x + w, y + h * 0.7F)}) paths.Add({NewPointF(x + w / 2 - dx, y - h / 3 + dy), NewPointF(x + w / 2 + dx, y - h / 3)})'' n x += xoff paths.Add({NewPointF(x, y), NewPointF(x, y + h), NewPointF(x, y + h - dy), NewPointF(x + w * 0.7F, y),NewPointF(x + w - dx / 2, y + h * 0.6F), NewPointF(x + w, y + h), NewPointF(x + w + dx2, y + h * 0.7F)})'' k x += xoff paths.Add({NewPointF(x, y - h / 3), NewPointF(x, y + h)}) paths.Add({NewPointF(x + w, y), NewPointF(x + dx, y + h / 2 - dy), NewPointF(x, y + h / 2),NewPointF(x + dx2, y + h / 2 + dy), NewPointF(x + w, y + h), NewPointF(x + w + dx2, y + h * 0.7F)}) '' a x += xoff * 2 paths.Add({NewPointF(x + w, y + dy), NewPointF(x + w / 2, y), NewPointF(x, y + h / 2), NewPointF(x + w / 2, y + h),NewPointF(x + w, y + dy), NewPointF(x + w, y), NewPointF(x + w, y + h), NewPointF(x + w + dx2, y + h * 0.7F)})'' n x += xoff paths.Add({NewPointF(x, y), NewPointF(x, y + h), NewPointF(x, y + h - dy), NewPointF(x + w * 0.7F, y),NewPointF(x + w - dx / 2, y + h * 0.6F), NewPointF(x + w, y + h), NewPointF(x + w + dx2, y + h * 0.7F)})'' n x += xoff paths.Add({NewPointF(x, y), NewPointF(x, y + h), NewPointF(x, y + h - dy), NewPointF(x + w * 0.7F, y),NewPointF(x + w - dx / 2, y + h * 0.6F), NewPointF(x + w, y + h), NewPointF(x + w + dx2, y + h * 0.7F)})'' o x += xoff paths.Add({NewPointF(x + w / 2, y), NewPointF(x + w / 2 - dx, y), NewPointF(x, y + h / 2), NewPointF(x + w / 2, y + h),NewPointF(x + w, y + h / 2), NewPointF(x + w / 2 + dx, y), NewPointF(x + w / 2, y)})'' t x += xoff paths.Add({NewPointF(x + w / 2, y - h / 3), NewPointF(x + w / 2, y + h), NewPointF(x + w, y + h * 0.7F)}) paths.Add({NewPointF(x, y), NewPointF(x + w, y)})'' a x += xoff paths.Add({NewPointF(x + w, y + dy), NewPointF(x + w / 2, y), NewPointF(x, y + h / 2), NewPointF(x + w / 2, y + h),NewPointF(x + w, y + dy), NewPointF(x + w, y), NewPointF(x + w, y + h), NewPointF(x + w + dx2, y + h * 0.7F)})'' t x += xoff paths.Add({NewPointF(x + w / 2, y - h / 3), NewPointF(x + w / 2, y + h), NewPointF(x + w, y + h * 0.7F)}) paths.Add({NewPointF(x, y), NewPointF(x + w, y)})'' i x += xoff paths.Add({NewPointF(x + w / 2, y), NewPointF(x + w / 2, y + h), NewPointF(x + w, y + h * 0.7F)}) paths.Add({NewPointF(x + w / 2 - dx, y - h / 3 + dy), NewPointF(x + w / 2 + dx, y - h / 3)})'' o x += xoff paths.Add({NewPointF(x + w / 2, y), NewPointF(x + w / 2 - dx, y), NewPointF(x, y + h / 2),NewPointF(x + w / 2, y + h), NewPointF(x + w, y + h / 2), NewPointF(x + w / 2 + dx, y), NewPointF(x + w / 2, y)})'' n x += xoff paths.Add({NewPointF(x, y), NewPointF(x, y + h), NewPointF(x, y + h - dy), NewPointF(x + w * 0.7F, y),NewPointF(x + w - dx / 2, y + h * 0.6F), NewPointF(x + w, y + h), NewPointF(x + w + dx2, y + h * 0.7F),NewPointF(x + w * 3, y + h * 0.4F), NewPointF(x + w + dx2, y + h + dy * 2), NewPointF(x0, y + h + dy)}) inkAnnot.Paths = paths page.Annotations.Add(inkAnnot) '' Done: doc.Save(stream)Return doc.Pages.CountEndFunctionEndClass