ViewerLinkOpenMail.cs
- //
- // This code is part of Document Solutions for PDF demos.
- // Copyright (c) MESCIUS inc. All rights reserved.
- //
- using System.IO;
- using GrapeCity.Documents.Pdf;
- using GrapeCity.Documents.Text;
- using System.Drawing;
- using GrapeCity.Documents.Pdf.Annotations;
- using GrapeCity.Documents.Pdf.Actions;
-
- namespace DsPdfWeb.Demos
- {
- // This sample demonstrates how to create a link annotation which will open Mail program.
- // It loads an example pdf with sample link annotation added. You can use the annotation editing features of GcPdfViewer
- // to inspect or edit existing link annotation, or add new ones.
-
- // This and other samples in this section demonstrate the features of GcPdfViewer
- // (a JavaScript PDF viewer control included with DsPdf), mainly the ability
- // to change PDF files (add or edit annotations and AcroForm fields, rotate pages etc.)
- // when the JS viewer on the client is supported by DsPdf running on the server.
- //
- // To enable the editing features of the viewer, its supportApi property must be set
- // to a URL on the server that implements all or some of the edit supporting APIs
- // that are known to/expected by the viewer. This DsPdf demo site provides those APIs,
- // which makes it possible to demonstrate the editing when you open the PDF viewer
- // in this sample. When you download this sample, in addition to the .NET Core
- // console app project that generates the sample PDF, an ASP.NET Core project is
- // also included in the download zip (located in the GcPdfViewerWeb sub-folder of the
- // downloaded zip), which also provides the necessary APIs. In particular, it includes
- // a project that implements the APIs and provides them via a special controller.
- // It is actually the same controller that is used by this DsPdf demo site, and which
- // can be used in any ASP.NET Core site to enable the viewer editing features.
- //
- // Look at the following files in the sample download zip for more info:
- // - GcPdfViewerWeb\SupportApiDemo: the sample ASP.NET Core web site.
- // - GcPdfViewerWeb\SupportApiDemo.sln: solution to build/run the sample web site.
- // - GcPdfViewerWeb\SupportApi: support API implementation (can be used in any site).
- // - GcPdfViewerWeb\SupportApi\Controllers\GcPdfViewerController.cs: support API controller.
- //
- // Please note that this and other samples in this section are only available in C# at this time.
- //
- public class ViewerLinkOpenMail
- {
- public void CreatePDF(Stream stream)
- {
- var doc = new GcPdfDocument();
- var page = doc.NewPage();
- var g = page.Graphics;
-
- // Draw some text that will represent the link:
- var tf = new TextFormat() { Font = StandardFonts.Times, FontSize = 14 };
- var tl = g.CreateTextLayout();
- tl.MarginAll = 72;
- tl.Append("Feel free to email us at example@example.com", tf);
- tl.PerformLayout(true);
- g.DrawTextLayout(tl, PointF.Empty);
-
- // Add a link with mailto URI:
- page.Annotations.Add(new LinkAnnotation(tl.ContentRectangle, new ActionURI("mailto:example@example.com")));
-
- // Done:
- doc.Save(stream);
-
- }
-
- // Used by SupportApiDemo to initialize GcPdfViewer.
- public static GcPdfViewerSupportApiDemo.Models.PdfViewerOptions PdfViewerOptions
- {
- get => new GcPdfViewerSupportApiDemo.Models.PdfViewerOptions(
- GcPdfViewerSupportApiDemo.Models.PdfViewerOptions.Options.AnnotationEditorPanel,
- viewerTools: new string[] { "save", "$navigation", "$split", "text-selection", "pan", "$zoom", "$fullscreen", "download", "print", "rotate", "view-mode", "hide-annotations", "doc-properties", "about" },
- annotationEditorTools: new string[] { "edit-select", "$split", "edit-link", "$split", "edit-undo", "edit-redo", "save" });
- }
- }
- }
-