Выделите текст в PDF с помощью REST API в Node.js

В некоторых случаях нам может потребоваться выделить текстовую фразу, строку или область в документах PDF. Это помогает выделить важный текст полупрозрачным цветом в электронном формате, так же, как мы это делаем маркером на стандартной бумаге. Мы можем использовать функцию выделения программно, используя аннотации выделения в приложениях. В этой статье мы узнаем, как выделить текст в PDF с помощью REST API в Node.js.

В этой статье должны быть раскрыты следующие темы:

REST API для выделения текста PDF и Node.js SDK

Для выделения текста в файлах PDF мы будем использовать API Node.js SDK для GroupDocs.Annotation Cloud. Это позволяет добавлять аннотации, наложения водяных знаков, замены текста, исправления и текстовые пометки в поддерживаемые форматы документов. Пожалуйста, установите его с помощью следующей команды в консоли:

npm install groupdocs-annotation-cloud

Пожалуйста, получите свой идентификатор клиента и секрет из панели инструментов, прежде чем выполнять указанные шаги. Получив свой идентификатор и секрет, добавьте код, как показано ниже:

// В этом примере кода показано, как добавить идентификатор клиента и секрет в код.
global.clientId = "659fe7da-715b-4744-a0f7-cf469a392b73";
global.clientSecret = "b377c36cfa28fa69960ebac6b6e36421";
global.myStorage = "";

const configuration = new groupdocs_annotation_cloud.Configuration(clientId, clientSecret);
configuration.apiBaseUrl = "https://api.groupdocs.cloud";

Выделите текст в PDF с помощью REST API в Node.js

Мы можем выделить текст в файлах PDF, выполнив простые шаги, указанные ниже:

  1. Загрузить файл PDF в облако
  2. Выделить текст в загруженном PDF-файле
  3. Скачать аннотированный файл

Загрузить документ

Во-первых, мы загрузим файл PDF в облако, используя пример кода, приведенный ниже:

// В этом примере кода показано, как загрузить PDF-файл в облако.
// Инициализировать экземпляр API
var fileApi = new groupdocs_annotation_cloud.FileApi(configuration);

// Откройте файл в IOStream с локального диска/диска.
var resourcesFolder = 'C:\\Files\\Annotation\\sample.pdf';

// Прочитать файл
fs.readFile(resourcesFolder, (err, fileStream) => {
  // Запрос на загрузку файла
  var request = new groupdocs_annotation_cloud.UploadFileRequest("sample.pdf", fileStream, myStorage);
  // Загрузить файл
  fileApi.uploadFile(request);
});

В результате загруженный PDF-файл будет доступен в разделе файлов панели инструментов в облаке.

Выделите текст в документе PDF с помощью Node.js

Теперь мы добавим аннотации выделения, чтобы выделить текст в загруженном PDF-документе, выполнив следующие действия:

  • Во-первых, создайте экземпляр AnnotateApi.
  • Затем установите позиции точек аннотаций.
  • Затем назначьте точки объекту AnnotationInfo и установите цвет и тип его фона.
  • Затем укажите путь к входному файлу.
  • Затем инициализируйте объект AnnotateOptions и задайте путь к выходному файлу.
  • После этого создайте AnnotateRequest с AnnotateOptions в качестве аргумента.
  • Наконец, выделите текст в PDF с помощью метода AnnotateApi.annotate().

В следующем примере кода показано, как выделить текст в документе PDF с помощью REST API в Node.js.

// В этом примере кода показано, как добавить выделенные аннотации в файл PDF.
// Инициализировать экземпляр API
let annotateApi = groupdocs_annotation_cloud.АннотироватьApi.fromKeys(clientId, clientSecret);

// Определить аннотацию
let a1 = new groupdocs_annotation_cloud.AnnotationInfo();

// Пункт 1
let p1 = new groupdocs_annotation_cloud.Point();
p1.x = 30;
p1.y = 710;

// Пункт 2
let p2 = new groupdocs_annotation_cloud.Point();
p2.x = 460;
p2.y = 710;

// Пункт 3
let p3 = new groupdocs_annotation_cloud.Point();
p3.x = 30;
p3.y = 690;

// Пункт 4
let p4 = new groupdocs_annotation_cloud.Point();
p4.x = 460;
p4.y = 690;

// Добавить баллы
a1.points = [p1, p2, p3, p4];

// Фоновый цвет
a1.backgroundColor = 3329434;

// Тип
a1.type = groupdocs_annotation_cloud.AnnotationInfo.ТипEnum.TextHighlight;

// Входной файл
let fileInfo = new groupdocs_annotation_cloud.FileInfo();
fileInfo.filePath = "sample.pdf";

// Определить АннотироватьOptions
let options = new groupdocs_annotation_cloud.АннотироватьOptions();
options.fileInfo = fileInfo;

// Назначить аннотацию
options.annotations = [a1];

// Путь к выходному файлу
options.outputPath = "output.pdf";

// Создать запрос аннотации
let request = new groupdocs_annotation_cloud.АннотироватьRequest(options);

// Аннотировать
let result = await annotateApi.annotate(request);

// Сделанный
console.log("AddAreaAnnotation: Area Annotation added: " + result.href);
Выделите текст в документе PDF с помощью Node.js

Выделите текст в документе PDF с помощью Node.js

Вы можете получить необходимое значение цвета по следующей ссылке для использования в качестве цвета фона. https://docs.microsoft.com/en-us/office/vba/api/excel.xlrgbcolor

Загрузите аннотированный файл

Приведенный выше пример кода сохранит аннотированный PDF-файл в облаке. Его можно загрузить с помощью следующего примера кода:

// В этом примере кода показано, как загрузить PDF-файл из облака.
// Создать FileApi
var fileApi = new groupdocs_annotation_cloud.FileApi(configuration);

// Создать запрос на скачивание файла
let request = new groupdocs_annotation_cloud.DownloadFileRequest("output.pdf", myStorage);

// Загрузить файл
let response = await fileApi.downloadFile(request);

// Сохраните файл в своем рабочем каталоге
fs.writeFile("C:\\Files\\Annotation\\output.pdf", response, "binary", function (err) { });

Попробуйте онлайн

Попробуйте следующий бесплатный онлайн-инструмент для создания аннотаций PDF, разработанный с использованием указанного выше API. https://products.groupdocs.app/annotation/pdf

Заключение

В этой статье мы узнали, как:

  • добавлять выделенные аннотации в PDF с помощью Node.js;
  • программно загрузить файл PDF в облако;
  • скачать аннотированный PDF-файл из облака.

Кроме того, вы можете узнать больше о GroupDocs.Annotation Cloud API, воспользовавшись документацией. Мы также предоставляем раздел Справочник по API, который позволяет визуализировать наши API и взаимодействовать с ними непосредственно через браузер. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.

Смотрите также