// This code is part of GrapeCity Documents for PDF samples.
// Copyright (c) GrapeCity, Inc. All rights reserved.
// This sample demonstrates AcroForm editing features of GcPdfViewer with support API
// provided by the server running GcPdf.
// This and other samples in this section demonstrate the features of GcPdfViewer
// to change PDF files (add or edit annotations and AcroForm fields, rotate pages etc.)
// when the JS viewer on the client is supported by GcPdf 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 GcPdf 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 GcPdf 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 ViewerEditForms
public void CreatePDF(Stream stream)
GcPdfDocument doc = new GcPdfDocument();
using (var fs = new FileStream(Path.Combine("Resources", "PDFs", "OffisiteFieldTripPermissionSlip.pdf"), FileMode.Open, FileAccess.Read))
// Used by SupportApiDemo to initialize GcPdfViewer.
public static GcPdfViewerSupportApiDemo.Models.PdfViewerOptions PdfViewerOptions
get => new GcPdfViewerSupportApiDemo.Models.PdfViewerOptions(