VintaSoft Imaging .NET SDK 14.0: Документация для Веб разработчика
В этом разделе
    Добавление веб редактора PDF документа в приложение ASP.NET MVC5
    В этом разделе
    В этом руководстве показано, как создать пустое ASP.NET веб-приложение в Visual Studio .NET 2019 и добавить редактор PDF документа в приложение ASP.NET MVC5.

    Вот шаги, которые необходимо выполнить:
    1. Создайте пустое ASP.NET MVC 5 приложение.

      Откройте Visual Studio .NET 2019, создайте новый проект типа "ASP.NET Web Application" и настройте его для использования .NET Framework 4.7.2:

      Выберите шаблон "Empty" для ASP.NET приложения и настройте проект для использования MVC и Web API:

    2. На стороне сервера: Добавьте ссылки на .NET-сборки Vintasoft в ASP.NET MVC 5 приложение.

      Добавьте ссылки на сборки Vintasoft.Shared.dll, Vintasoft.Imaging.dll, Vintasoft.Imaging.Pdf.dll, Vintasoft.Shared.Web.dll, Vintasoft.Imaging.Web.Services.dll, Vintasoft.Imaging.Pdf.Web.Services.dll, Vintasoft.Imaging.Web.Api2Controllers.dll и Vintasoft.Imaging.Pdf.Web.Api2Controllers.dll из "\VintaSoft Imaging .NET 14.0\Bin\DotNet4\AnyCPU\" в приложении ASP.NET MVC5.



    3. Серверная сторона: Укажите движок рисования, который должен использоваться VintaSoft Imaging .NET SDK для рисования 2D-графики.

      ASP.NET MVC5 приложение должно использовать библиотеку System.Drawing в качестве графического движка, поскольку ASP.NET MVC5 приложение может использоваться только в Windows.

      Вот шаги, которые необходимо выполнить для использования движка System.Drawing:
      • Добавьте ссылку на .NET-сборку Vintasoft.Imaging.Gdi.dll.
      • Откройте файл "Global.asax.cs" и добавьте строку кода "Vintasoft.Imaging.Drawing.Gdi.GdiGraphicsFactory.SetAsDefault();" в начало метода Application_Start - добавленный код указывает VintaSoft Imaging .NET SDK использовать библиотеку System.Drawing для отрисовки 2D-графики.

    4. Сторона сервера: Создайте веб-сервисы, которые позволяют загружать/скачивать файлы, управлять коллекцией изображений, получать информацию об изображениях, получать миниатюры, отображать плитки изображений, работать с PDF документами.

      • Создайте веб сервис, позволяющий загружать/скачивать файл

        • Нажмите правую кнопку мыши на папке "Controllers" и выберите меню "Add => Controller..." из контекстного меню
        • Выберите шаблон "Empty API controller", установите имя контроллера "MyVintasoftFileApiController" и нажмите кнопку "Add".
        • Укажите, что класс MyVintasoftFileApiController наследуется от класса Vintasoft.Imaging.Web.Api2Controllers.VintasoftFileApi2Controller.

          Вот исходные коды класса MyVintasoftFileApiController:
          namespace WebApplication1.Controllers
          {
              public class MyVintasoftFileApiController : Vintasoft.Imaging.Web.Api2Controllers.VintasoftFileApi2Controller
              {
          
                  public MyVintasoftFileApiController()
                      : base()
                  {
                  }
          
              }
          }
          
          

      • Создайте веб сервис, позволяющий управлять коллекцией изображений

        • Нажмите правую кнопку мыши на папке "Controllers" и выберите меню "Add => Controller..." из контекстного меню
        • Выберите шаблон "Empty API controller", установите имя контроллера "MyVintasoftImageCollectionApiController" и нажмите кнопку "Add".
        • Укажите, что класс MyVintasoftImageCollectionApiController наследуется от класса Vintasoft.Imaging.Web.Api2Controllers.VintasoftImageCollectionApi2Controller.

          Вот исходные коды класса MyVintasoftImageCollectionApiController:
          namespace WebApplication1.Controllers
          {
              public class MyVintasoftImageCollectionApiController :
                  Vintasoft.Imaging.Web.Api2Controllers.VintasoftImageCollectionApi2Controller
              {
          
                  public MyVintasoftImageCollectionApiController()
                      : base()
                  {
                  }
          
              }
          }
          
          

      • Создайте веб сервис, который позволяет получать информацию об изображениях, получать миниатюры, рендерить тайлы изображений, извлекать/искать текст

        • Нажмите правую кнопку мыши на папке "Controllers" и выберите меню "Add => Controller..." из контекстного меню
        • Выберите шаблон "Empty API controller", установите имя контроллера "MyVintasoftImageApiController" и нажмите кнопку "Add".
        • Укажите, что класс MyVintasoftImageApiController наследуется от класса Vintasoft.Imaging.Web.Api2Controllers.VintasoftImageApi2Controller.

          Вот исходные коды класса MyVintasoftImageApiController:
          namespace WebApplication1.Controllers
          {
              public class MyVintasoftImageApiController : Vintasoft.Imaging.Web.Api2Controllers.VintasoftImageApi2Controller
              {
          
                  public MyVintasoftImageApiController()
                      : base()
                  {
                  }
          
              }
          }
          
          

      • Создайте веб-сервис, позволяющий работать с PDF документом

        • Нажмите правую кнопку мыши на папке "Controllers" и выберите меню "Add => Controller..." из контекстного меню
        • Выберите шаблон "Empty API controller", задайте имя контроллера "MyVintasoftPdfApiController" и нажмите кнопку "Добавить"
        • Укажите, что класс MyVintasoftPdfApiController является производным от класса Vintasoft.Imaging.Pdf.Web.Api2Controllers.VintasoftPdfApi2Controller

          Вот исходные коды класса MyVintasoftPdfApiController:
          namespace WebApplication1.Controllers
          {
              public class MyVintasoftPdfApiController :
                  Vintasoft.Imaging.Pdf.Web.Api2Controllers.VintasoftPdfApi2Controller
              {
          
                  public MyVintasoftPdfApiController()
                      : base()
                  {
                  }
          
              }
          }
          

      • Откройте файл "App_Start\WebApiConfig.cs" и проверьте, правильно ли ASP.NET MVC приложение регистрирует маршрут для Web API контроллера.

        Вот C# код файла WebApiConfig.cs:
        using System.Web.Http;
        
        namespace WebApplication1
        {
            public static class WebApiConfig
            {
                public static void Register(HttpConfiguration config)
                {
                    config.Routes.MapHttpRoute(
                        name: "DemoAPI",
                        routeTemplate: "vintasoft/api/{controller}/{action}"
                    );
                }
            }
        }
        
        
    5. Сторона сервера: Создайте ASP.NET MVC 5 контроллер для веб-представления, которое будет отображать редактор PDF документа.

      • Нажмите правую кнопку мыши на папке "Controllers" и выберите меню "Add => Controller..." из контекстного меню


      • Выберите шаблон "MVC 5 Controller - Empty", укажите имя контроллера "DefaultController" и нажмите кнопку "Add".


      • Откройте файл "App_Start\RouteConfig.cs" и проверьте, правильно ли ASP.NET MVC 5 приложение регистрирует маршрут для MVC-контроллера.

        Вот C# код файла RouteConfig.cs:
        using System.Web.Mvc;
        using System.Web.Routing;
        
        namespace WebApplication1
        {
            public class RouteConfig
            {
                public static void RegisterRoutes(RouteCollection routes)
                {
                    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        
                    routes.MapRoute(
                        name: "Default",
                        url: "{controller}/{action}",
                        defaults: new { controller = "Default", action = "Index" }
                    );
                }
            }
        }
        
        
        
    6. На стороне сервера: Проверьте глобальную конфигурацию ASP.NET MVC 5 приложения.

      Откройте файл "Global.asax.cs" и убедитесь, что метод "Application_Start" регистрирует все области в ASP.NET MVC приложении, настраивает глобальную HTTP-конфигурацию для ASP.NET приложения и регистрирует маршруты для ASP.NET MVC приложения.

      Вот C# код файла Global.asax.cs:
      using System;
      using System.Web;
      using System.Web.Mvc;
      using System.Web.Routing;
      using System.Web.Http;
      
      namespace WebApplication1
      {
          public class Global : HttpApplication
          {
              void Application_Start(object sender, EventArgs e)
              {
                  // Code that runs on application startup
                  AreaRegistration.RegisterAllAreas();
                  GlobalConfiguration.Configure(WebApiConfig.Register);
                  RouteConfig.RegisterRoutes(RouteTable.Routes);
              }
          }
      }
      
    7. Клиентская сторона: Создайте веб представление для отображения редактора PDF документа.

      • Откройте файл "DefaultController.cs", щёлкните правой кнопкой мыши по методу "Index" класса DefaultController и выберите в контекстном меню пункт "Add View...".
      • Выберите шаблон "MVC 5 View", нажмите кнопку "Add", укажите "Index" в качестве имени представления, снимите флажок "Use a layout page" и нажмите кнопку "Add" => будет создан файл "Views\Default\Index.cshtml".
    8. На стороне клиента: Добавьте JavaScript-библиотеки в проект.

      • Добавьте папку "Scripts\" в ASP.NET MVC приложение (если папка отсутствует).

      • Скопируйте файлы Vintasoft.Shared.js, Vintasoft.Imaging.js, Vintasoft.Imaging.Pdf.js, Vintasoft.Imaging.css и Vintasoft.Imaging.Pdf.css из папки "\VintaSoft Imaging .NET 14.0\Bin\JavaScript\" в папку "Scripts\".

      • Укажите, какие "стандартные" UI-диалоги (диалог ввода пароля, диалог печати и т. д.) должны использоваться веб редактором PDF документа
        • Если веб редактор PDF документа должен использовать готовые к использованию "стандартные" UI-диалоги jQuery UI:
          • Скопируйте файл jQuery в папку "Scripts\".
            Вы можете использовать файл "jquery-3.3.1.min.js" из папки "\VintaSoft Imaging .NET 14.0\Examples\ASP.NET MVC\CSharp\AspNetMvcImagingDemo\Scripts\External\" или файл jQuery из любого другого источника.
          • Скопируйте файлы и папки jQuery UI в папку "Scripts\".
            Вы можете использовать файл "jquery-ui.min.js" и папку "jquery-ui-css" из папки "\VintaSoft Imaging .NET 14.0\Examples\ASP.NET MVC\CSharp\AspNetMvcImagingDemo\Scripts\External\" или файлы и папки jQuery UI из любого другого источника.
          • Скопируйте файлы Vintasoft.Imaging.Dialogs.jQueryUI.js и Vintasoft.Imaging.Pdf.Dialogs.jQueryUI.js из папки "\VintaSoft Imaging .NET 14.0\Bin\JavaScript\" в папку "Scripts\".

        • Если веб редактор PDF документа должен использовать пользовательские "стандартные" UI-диалоги, прочтите, как создать пользовательские "стандартные" UI-диалоги здесь .
    9. Клиентская сторона: Добавьте код JavaScript, который позволяет просматривать, печатать, редактировать, проверять, конвертировать, сохранять PDF документ.

      • Создайте папку "UploadedImageFiles\SessionID" и скопируйте в нее тестовый PDF документ "\VintaSoft\Imaging .NET 14.0\Images\VintasoftImagingDemo.pdf". Этот документ будет отображаться в редакторе PDF документов.

      • Откройте веб-представление - файл "Views\Default\Index.cshtml".


      • Добавьте ссылки на JavaScript-файлы Vintasoft:

        Вот HTML-код, который добавляет ссылки на файлы jQuery и JavaScript-файлы Vintasoft:
        <style>
            * {
                -webkit-box-sizing: border-box;
                box-sizing: border-box;
                border-collapse: collapse;
            }
        </style>
        
        <link rel="stylesheet" type="text/css" href="~/Scripts/jquery-ui-css/jquery-ui.min.css">
        <link rel="stylesheet" type="text/css" href="~/Scripts/Vintasoft.Imaging.css">
        <link rel="stylesheet" type="text/css" href="~/Scripts/Vintasoft.Imaging.Pdf.css">
        
        <script src="~/Scripts/jquery-3.3.1.min.js" type="text/javascript"></script>
        <script src="~/Scripts/jquery-ui.min.js" type="text/javascript"></script>
        
        <script src="~/Scripts/Vintasoft.Shared.js" type="text/javascript"></script>
        <script src="~/Scripts/Vintasoft.Imaging.js" type="text/javascript"></script>
        <script src="~/Scripts/Vintasoft.Imaging.Dialogs.jQueryUI.js" type="text/javascript"></script>
        <script src="~/Scripts/Vintasoft.Imaging.Pdf.js" type="text/javascript"></script>
        <script src="~/Scripts/Vintasoft.Imaging.Pdf.Dialogs.jQueryUI.js" type="text/javascript"></script>
        


      • Добавьте HTML-разметку (div-элемент, который будет отображать редактор PDF документа) в веб-представление:

        Вот код HTML-разметки:
        <h1 style="text-align: center">VintaSoft PDF Document Editor Demo (ASP.NET MVC5)</h1>
        
        <div id="pdfDocumentEditorContainer" style="height: 800px"></div>
        


      • Добавьте код JavaScript, который инициализирует и создает редактор PDF документа:

        Вот код JavaScript, который инициализирует и создает редактор PDF документа:
        
        @{
            Layout = null;
        }
        
        <!DOCTYPE html>
        
        <html>
        <head>
            <meta name="viewport" content="width=device-width" />
            <title>VintaSoft PDF Document Editor Demo (ASP.NET MVC)</title>
        
            <style>
                * {
                    -webkit-box-sizing: border-box;
                    box-sizing: border-box;
                    border-collapse: collapse;
                }
            </style>
        
            <link rel="stylesheet" type="text/css" href="~/Scripts/jquery-ui-css/jquery-ui.min.css">
            <link rel="stylesheet" type="text/css" href="~/Scripts/Vintasoft.Imaging.css">
            <link rel="stylesheet" type="text/css" href="~/Scripts/Vintasoft.Imaging.Pdf.css">
        
            <script src="~/Scripts/jquery-3.3.1.min.js" type="text/javascript"></script>
            <script src="~/Scripts/jquery-ui.min.js" type="text/javascript"></script>
        
            <script src="~/Scripts/Vintasoft.Shared.js" type="text/javascript"></script>
            <script src="~/Scripts/Vintasoft.Imaging.js" type="text/javascript"></script>
            <script src="~/Scripts/Vintasoft.Imaging.Dialogs.jQueryUI.js" type="text/javascript"></script>
            <script src="~/Scripts/Vintasoft.Imaging.Pdf.js" type="text/javascript"></script>
            <script src="~/Scripts/Vintasoft.Imaging.Pdf.Dialogs.jQueryUI.js" type="text/javascript"></script>
        </head>
        <body>
            <h1 style="text-align: center">VintaSoft PDF Document Editor Demo (ASP.NET MVC5)</h1>
        
            <div id="pdfDocumentEditorContainer" style="height: 800px"></div>
        
            <script type="text/javascript">
                // set the session identifier
                Vintasoft.Shared.WebImagingEnviromentJS.set_SessionId("SessionID");
        
                // specify web services, which should be used by Vintasoft Web PDF Document Editor
                Vintasoft.Shared.WebServiceJS.defaultFileService =
                    new Vintasoft.Shared.WebServiceControllerJS("vintasoft/api/MyVintasoftFileApi");
                Vintasoft.Shared.WebServiceJS.defaultImageCollectionService =
                    new Vintasoft.Shared.WebServiceControllerJS("vintasoft/api/MyVintasoftImageCollectionApi");
                Vintasoft.Shared.WebServiceJS.defaultImageService =
                    new Vintasoft.Shared.WebServiceControllerJS("vintasoft/api/MyVintasoftImageApi");
                Vintasoft.Shared.WebServiceJS.defaultPdfService =
                    new Vintasoft.Shared.WebServiceControllerJS("vintasoft/api/MyVintasoftPdfApi");
        
                // create settings for PDF document editor
                var pdfDocumentEditorSettings =
                    new Vintasoft.Imaging.Pdf.UI.WebPdfDocumentEditorControlSettingsJS("pdfDocumentEditorContainer");
        
                // create the PDF document editor
                var pdfDocumentEditor = new Vintasoft.Imaging.Pdf.UI.WebPdfDocumentEditorControlJS(pdfDocumentEditorSettings);
        
                // open file from session folder and add images from file to the image viewer
                pdfDocumentEditor.openFile("VintasoftImagingDemo.pdf");
            </script>
        </body>
        </html>
        
        
    10. Запустите ASP.NET MVC5 приложение и посмотрите результат.