Отличные новости для разработчиков! Представлена новая версия GroupDocs.Annotation Cloud 19.5. Мы стремимся развивать GroupDocs.Annotation Cloud REST API, чтобы сделать его более простым и удобным в использовании. Имея это в виду, мы внесли необходимые изменения в эту версию. Новый API более оптимизирован с меньшим количеством методов и опций. Его внутренняя архитектура была переработана для быстрой и надежной обработки для создания инструментов аннотирования документов и изображений с поддержкой операций аннотирования на основе текста и рисунков. Также теперь в API включены методы для работы с облачным хранилищем. Таким образом, вы можете выполнять операции хранения с помощью REST API GroupDocs.Annotation Cloud напрямую, а не использовать отдельный API.
Пожалуйста, ознакомьтесь с подробными примечаниями к выпуску этой версии, чтобы получить представление обо всех новых функциях/улучшениях, внесенных в этот выпуск.
Критические изменения
Новая версия API
Представлена версия API V2 в версии 19.5, версия V1 останется доступной.
Аутентификация
В этом выпуске представлена аутентификация JWT (JSON Web Token), теперь методы аутентификации OAuth2 и подписи URL устарели.
API аннотаций
Упрощенные методы API для применения аннотаций на основе текста и рисунков к документам и изображениям всех популярных форматов.
API хранилища
Файловый API — Представлены методы загрузки, скачивания, копирования, перемещения, удаления файлов: входные документы и результаты рендеринга в облачном хранилище.
Folder API - Представлены методы создания, копирования, перемещения, удаления папок в облачном хранилище.
Storage API — введены методы получения информации о хранилище и информации о файлах.
Добавляем аннотации к документу
Здесь мы покажем вам, как работает версия API GroupDocs.Annotation Cloud V2, и она отличается от V1. Мы добавим аннотацию в документ Word с помощью GroupDocs.Annotation Cloud SDK для .NET, выполнив следующие действия:
- Загрузить исходный документ в хранилище
- Добавить аннотацию к исходному документу
Нам нужно загрузить исходный документ в облачное хранилище, так как в этом примере мы будем обрабатывать документ из облачного хранилища. В релизе мы представили File API для операций с файловым хранилищем. Мы будем использовать метод UploadFile версии Annotation V2 API вместо метода GroupDocs.Storage Cloud API для загрузки файла в хранилище.
using System;
using System.IO;
using GroupDocs.Annotation.Cloud.Sdk.Api;
using GroupDocs.Annotation.Cloud.Sdk.Client;
using GroupDocs.Annotation.Cloud.Sdk.Model.Requests;
namespace GroupDocs.Annotation.Cloud.Examples.CSharp
{
// Загрузить файл
class Upload_File
{
public static void Run()
{
var configuration = new Configuration(Common.MyAppSid, Common.MyAppKey);
var apiInstance = new FileApi(configuration);
try
{
// Откройте файл в IOStream с локального диска/диска.
var fileStream = File.Open("..\\..\\..\\Data\\Annotationdocs\\one-page.docx", FileMode.Open);
var request = new UploadFileRequest("Annotationdocs/one-page1.docx", fileStream, Common.MyStorage);
var response = apiInstance.UploadFile(request);
Console.WriteLine("Expected response type is FilesUploadResult: " + response.Uploaded.Count.ToString());
}
catch (Exception e)
{
Console.WriteLine("Exception while calling FileApi: " + e.Message);
}
}
}
}
В версии 19.5 метод PUT для импорта аннотаций был изменен на метод POST, как показано в следующем примере кода.
V1.1 Пример
//TODO: Получите свой AppSID и AppKey на https://dashboard.groupdocs.cloud (требуется бесплатная регистрация).
var configuration = new Configuration
{
AppSid = Sid,
AppKey = Key
};
var apiInstance = new AnnotationApi(configuration);
try
{
List<AnnotationInfo> annotations = new List<AnnotationInfo>();
AnnotationInfo annotation = new AnnotationInfo
{
AnnotationPosition = new Point(852, 154.31),
Replies = new[]
{
new AnnotationReplyInfo {Message = "reply text", RepliedOn = DateTime.Now, UserName = "Admin"},
new AnnotationReplyInfo
{
Message = "reply2 text",
RepliedOn = DateTime.Now,
UserName = "Commentator"
}
},
Box = new Rectangle((float)173.29, (float)154.31, (float)142.5, 9),
PageNumber = 0,
SvgPath =
"[{\"x\":173.2986,\"y\":687.5769},{\"x\":315.7985,\"y\":687.5769},{\"x\":173.2986,\"y\":678.5769},{\"x\":315.7985,\"y\":678.5769}]",
Type = AnnotationType.Text,
CreatorName = "Anonym A."
};
annotations.Add(annotation);
PutExportRequest request = new PutExportRequest()
{
Name ="Annotated.pdf",
Folder=null,
Password=null,
Body=annotations,
};
// Вставка/экспорт аннотаций в документ.
var response = apiInstance.PutExport(request);
Debug.Print("Document Processsed and stream length: " + response.Length);
}
catch (Exception e)
{
Debug.Print("Exception when inserting Annotation to document: " + e.Message);
}
Пример версии 2.0
using System;
using GroupDocs.Annotation.Cloud.Sdk.Api;
using GroupDocs.Annotation.Cloud.Sdk.Client;
using GroupDocs.Annotation.Cloud.Sdk.Model;
using GroupDocs.Annotation.Cloud.Sdk.Model.Requests;
namespace GroupDocs.Annotation.Cloud.Examples.CSharp
{
// Опубликовать/добавить аннотации
class Add_Annotation
{
public static void Run()
{
var configuration = new Configuration(Common.MyAppSid, Common.MyAppKey);
var apiInstance = new AnnotateApi(configuration);
try
{
// Установить запрос.
var request = new PostAnnotationsRequest()
{
filePath = "Annotationdocs\\ten-pages.docx",
annotations = new System.Collections.Generic.List<AnnotationInfo>() {
new AnnotationInfo
{
AnnotationPosition = new Point { X = 852, Y = 59.388262910798119 },
Box = new Rectangle { X = 375.89276123046875, Y = 59.388263702392578, Width = 88.7330551147461, Height = 37.7290153503418 },
PageNumber = 0,
PenColor = 1201033,
PenStyle = 0,
PenWidth = 1,
Type = AnnotationInfo.TypeEnum.Area,
CreatorName = "Anonym A."
}
}
};
apiInstance.PostAnnotations(request);
Console.WriteLine("Expected response type is void: Annotation added.");
}
catch (Exception e)
{
Console.WriteLine("Exception while calling Annotation AnnotateApi: " + e.Message);
}
}
}
}
Поделитесь своим отзывом
Ваш отзыв важен! Пожалуйста, напишите нам комментарий и поделитесь своими мыслями о новой версии GroupDocs.Annotation Cloud REST API. Это помогает нам постоянно улучшать и совершенствовать наш API.