ViewerEditAll.cs
// 
// このコードは、DioDocs for PDF のサンプルの一部として提供されています。
// Copyright (c) GrapeCity inc. All rights reserved.
// 
using System;
using System.IO;
using System.Drawing;
using GrapeCity.Documents.Pdf;
using GrapeCity.Documents.Text;

namespace GcPdfWeb.Samples
{
    // このサンプルでは、GcPdfが動作しているサーバーからSupportAPIを介して提供される、
    // PDF ビューワのすべての編集機能を使用できます。他のほとんどのサンプルとは異なり、
    // このサンプルのビューワでは[ファイルを開く]ボタンが使用できるため、任意のPDFを
    // ビューワに読み込み、編集機能の詳細を確認することができます。

    // このセクションのサンプルでは、クライアント上のPDF ビューワが、サーバー上で
    // 動作するGcPdfに接続している場合に、PDF ビューワで使用できるPDFファイルの編集機能
    // (注釈やフォームフィールドの追加や編集、ページの回転など)を主に紹介しています。
    // 
    // ビューワの編集機能を有効にするためには、supportApiプロパティに、ビューワにて
    // 使用が想定される編集機能をサポートするAPIのすべてまたは一部を実装したサーバのURLを
    // 設定する必要があります。このGcPdfデモサイトでは、それらのAPIを提供しており、
    // このサンプルでPDF ビューワを開いた際に編集のデモを行うことができます。
    // このサンプルをダウンロードすると、サンプルPDFを生成する.NET Coreコンソール
    // アプリプロジェクトに加えて、必要なAPIを提供するASP.NET Coreプロジェクトも
    // ダウンロードしたzipに含まれています(ダウンロードしたzipのGcPdfViewerWeb
    // フォルダ内にあります)。具体的には、APIを実装し、特別なコントローラを介して
    // そのAPIを提供するプロジェクトが含まれています。実際にこのGcPdfのデモサイトで
    // 使用されているものと同じコントローラで、どのASP.NET Coreサイトでも
    // ビューワの編集機能を有効にすることができます。
    // 
    // 詳細については、サンプルからダウンロードしたzipにある以下のファイルをご参照ください。
    // - GcPdfViewerWeb\SupportApiDemo: ASP.NET Coreのサンプルwebサイトです。
    // - GcPdfViewerWeb\SupportApiDemo.sln: サンプルwebサイトを実行するためのソリューションです。
    // - GcPdfViewerWeb\SupportApi: 実装済みのSupportAPIです(どのサイトでもご使用いただけます)。
    // - GcPdfViewerWeb\SupportApi\Controllers\GcPdfViewerController.cs: SupportAPIのコントローラです。
    // 
    // このセクションのサンプルは、現時点ではC#でしかご利用いただけませんのでご注意ください。
    // 
    public class ViewerEditAll
    {
        public void CreatePDF(Stream stream)
        {
            var doc = new GcPdfDocument();
            var page = doc.NewPage();

            Common.Util.AddNote("このサンプルでは、PDF ビューワがsupportApiプロパティを介してGcPdfが動作しているサーバーに接続されている場合に、" +
                "PDF ビューワで使用できるすべての編集ツールを確認することができます。" +
                "[ファイルを開く]ボタン(上部のツールバーの最初のアイコン)を使用して、PDFをビューワに読み込みます。" +
                "(最大ファイルサイズには制限があり、制限を超えるとエラーが発生します。)" +
                "左側のサイドバーの下2つのボタンのうち、下から2番目のボタンにて、注釈の追加、編集、または削除ができる" +
                "注釈エディタを使用できます。" +
                "一番下のボタンにて、フォームフィールドの追加、編集、または削除ができるフォームエディタを使用できます。" +
                "使用中のエディタボタンをクリックすると、編集モードを終了せずにプロパティパネルの表示が切り替わります。",
                page);

            // PDF を保存します。
            doc.Save(stream);
        }

        // SupportApiDemoにてPDF ビューワの初期化に使用されます。
        public static GcPdfViewerSupportApiDemo.Models.PdfViewerOptions PdfViewerOptions
        {
            get => new GcPdfViewerSupportApiDemo.Models.PdfViewerOptions(
                GcPdfViewerSupportApiDemo.Models.PdfViewerOptions.Options.AllPanels,
                viewerTools: new string[] { "open", "save", "$navigation", "$split", "text-selection", "pan", "$zoom", "$fullscreen", "download", "print",
                    "rotate", "view-mode", "hide-annotations", "doc-properties", "about" });
        }
    }
}