Compare arquivos PDF usando a API REST em NodeJs

Você pode comparar dois ou mais documentos PDF programaticamente na nuvem. A comparação permite identificar semelhanças e diferenças nos documentos. Neste artigo, você aprenderá como comparar arquivos PDF usando uma API REST no Node.js.

Os seguintes tópicos serão abordados neste artigo:

API REST de comparação de documentos e SDK Node.js

Usarei a API Node.js SDK of GroupDocs.Comparison Cloud para comparar documentos PDF. Ele permite que você compare dois ou mais documentos e encontre as diferenças. Como resultado, ele cria um arquivo resultante contendo as diferenças. Ele também permite que você aceite ou rejeite as alterações recuperadas. Você pode integrá-lo facilmente em seus aplicativos Node.js existentes para comparar documentos, planilhas, apresentações, diagramas do Visio, e-mails e arquivos de muitos outros formatos. Ele também fornece SDKs .NET, Java, PHP, Python e Ruby como seus membros da família de comparação de documentos para a Cloud API.

Você pode instalar o GroupDocs.Comparison Cloud em seu aplicativo Node.js usando o seguinte comando no console:

npm install groupdocs-comparison-cloud --save

Obtenha seu ID e Segredo do cliente no painel antes de seguir as etapas mencionadas. Depois de ter seu ID e segredo, adicione o código conforme mostrado abaixo:

global.clientId = "112f0f38-9dae-42d5-b4fc-cc84ae644972";
global.clientSecret = "16ad3fe0bdc39c910f57d2fd48a5d618";
global.myStorage = "";

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

Comparar arquivos PDF usando uma API REST no Node.js

Você pode comparar seus documentos PDF programaticamente seguindo as etapas simples abaixo:

  1. Carregar os arquivos PDF para a nuvem
  2. Comparar arquivos PDF usando Node.js
  3. Baixe o arquivo PDF resultante

Carregar os arquivos PDF

Em primeiro lugar, carregue os arquivos PDF de origem e destino na nuvem usando o seguinte exemplo de código:

// construir FileApi
let fileApi = groupdocs_comparison_cloud.FileApi.fromConfig(config);
let resourcesFolder = 'C:\\Files\\';

fs.readdir(resourcesFolder, (err, files) => {
  files.forEach(file => {
    // ler arquivos um por um
    fs.readFile(resourcesFolder + file, (err, fileStream) => {
      // criar solicitação de upload de arquivo
      let request = new groupdocs_comparison_cloud.UploadFileRequest(file, fileStream, myStorage);
      // subir arquivo
      fileApi.uploadFile(request)
        .then(function (response) {
          console.log(file + " uploaded: " + response.uploaded.length);
        })
        .catch(function (error) {
          console.log("Error: " + error.message);
        });
    });
  });
});

Como resultado, os arquivos PDF carregados estarão disponíveis na seção de arquivos do seu painel na nuvem.

Comparar arquivos PDF usando Node.js

Você pode comparar dois documentos PDF programaticamente seguindo as etapas mencionadas abaixo:

  • Crie uma instância de CompareApi
  • Defina o arquivo .pdf de origem
  • Definir o arquivo .pdf de destino
  • Definir opções de comparação
  • Atribuir arquivos de origem e destino
  • Defina o caminho do arquivo de saída
  • Criar Pedido de Comparações
  • Obtenha resultados chamando o método CompareApi.comparisons()

O exemplo de código a seguir mostra como comparar dois arquivos PDF usando uma API REST em Node.js.

// inicializar API
let compararApi = groupdocs_comparison_cloud.CompareApi.fromKeys(clientId, clientSecret);

// arquivo fonte
let source = new groupdocs_comparison_cloud.FileInfo();
source.filePath = "source.pdf";

// Arquivo de destino
let target = new groupdocs_comparison_cloud.FileInfo();
target.filePath = "target.pdf";

// definir opções de comparação
let options = new groupdocs_comparison_cloud.ComparisonOptions();
options.sourceFile = source;
options.targetFiles = [target];
options.outputPath = "comparard/result.pdf";

// criar solicitação de comparação
let request = new groupdocs_comparison_cloud.ComparisonsRequest(options);

// comparar
let response = await compararApi.comparisons(request);
console.log("Output file link: " + response.href);
Comparar arquivos PDF usando Node.js

Comparar arquivos PDF usando Node.js

O arquivo resultante também contém uma página de resumo no final do documento, conforme mostrado abaixo:

Compare arquivos PDF usando a API REST no Node.js

Baixe o arquivo resultante

O exemplo de código acima salvará as diferenças em um arquivo PDF recém-criado na nuvem. Você pode baixá-lo usando o seguinte exemplo de código:

// construir FileApi
let fileApi = groupdocs_comparison_cloud.FileApi.fromConfig(config);

// criar solicitação de download de arquivo
let request = new groupdocs_comparison_cloud.DownloadFileRequest("compared\\result.pdf", myStorage);

// ⇬ Fazer download do arquivo
let response = await fileApi.downloadFile(request);

// salvar no diretório de trabalho
fs.writeFile("C:\\Files\\result.pdf", response, "binary", function (err) { });

Comparar vários arquivos PDF usando Node.js

Você pode comparar vários documentos PDF programaticamente seguindo as etapas simples mencionadas abaixo:

  • Crie uma instância de CompareApi
  • Defina o arquivo .pdf de origem
  • Definir vários arquivos .pdf de destino
  • Criar instância ComparisonOptions
  • Atribuir arquivos de origem e destino
  • Defina o caminho do arquivo de saída
  • Criar Pedido de Comparações
  • Obtenha resultados chamando o método CompareApi.comparisons()

O exemplo de código a seguir mostra como comparar vários arquivos PDF usando uma API REST em Node.js.

// inicializar API
let compararApi = groupdocs_comparison_cloud.CompareApi.fromKeys(clientId, clientSecret);

// arquivo fonte
let source = new groupdocs_comparison_cloud.FileInfo();
source.filePath = "source.pdf";

// arquivo de destino 1
let target1 = new groupdocs_comparison_cloud.FileInfo();
target1.filePath = "target.pdf";

// arquivo de destino 2
let target2 = new groupdocs_comparison_cloud.FileInfo();
target2.filePath = "target2.pdf";

// definir opções de comparação
let options = new groupdocs_comparison_cloud.ComparisonOptions();
options.sourceFile = source;
options.targetFiles = [target1, target2];
options.outputPath = "comparard/result.pdf";

// criar solicitação de comparação
let request = new groupdocs_comparison_cloud.ComparisonsRequest(options);

// comparar
let response = await compararApi.comparisons(request);

Personalize os resultados da comparação usando Node.js

Você pode personalizar facilmente o estilo das alterações programaticamente seguindo as etapas mencionadas abaixo:

  • Crie uma instância de CompareApi
  • Defina o arquivo .pdf de origem
  • Definir o arquivo .pdf de destino
  • Criar instância de configurações
  • Definir sensibilidade de comparação
  • Personalizar estilo de itens
  • Criar instância ComparisonOptions
  • Atribuir arquivos de origem e destino
  • Defina o caminho do arquivo de saída
  • Atribuir configurações
  • Criar Pedido de Comparações
  • Obtenha resultados chamando o método CompareApi.comparisons()

O exemplo de código a seguir mostra como personalizar os resultados da comparação usando uma API REST no Node.js.

// inicializar API
let compararApi = groupdocs_comparison_cloud.CompareApi.fromKeys(clientId, clientSecret);

// arquivo fonte
let source = new groupdocs_comparison_cloud.FileInfo();
source.filePath = "source.pdf";

// Arquivo de destino
let target = new groupdocs_comparison_cloud.FileInfo();
target.filePath = "target.pdf";

// definir configurações de comparação
let settings = new groupdocs_comparison_cloud.Settings();

// comparar sensibilidade
settings.sensitivityOfComparison = 100;

// personalizar estilo de mudanças
settings.insertedItemsStyle = new groupdocs_comparison_cloud.ItemsStyle();
settings.insertedItemsStyle.highlightColor = "14297642";
settings.insertedItemsStyle.fontColor = "16711680";
settings.insertedItemsStyle.underline = true;
settings.deletedItemsStyle = new groupdocs_comparison_cloud.ItemsStyle();
settings.deletedItemsStyle.fontColor = "14166746";
settings.deletedItemsStyle.bold = true;
settings.changedItemsStyle = new groupdocs_comparison_cloud.ItemsStyle();
settings.changedItemsStyle.fontColor = "14320170";
settings.changedItemsStyle.italic = true;

// definir opções de comparação
let options = new groupdocs_comparison_cloud.ComparisonOptions();
options.sourceFile = source;
options.targetFiles = [target];
options.outputPath = "comparard/result_compararOptions.pdf";
options.settings = settings;

// criar solicitação de comparação
let request = new groupdocs_comparison_cloud.ComparisonsRequest(options);

// comparar
let response = await compararApi.comparisons(request);

Obter lista de alterações usando Node.js

Você pode obter uma lista completa das diferenças encontradas depois de comparar documentos PDF programaticamente seguindo as etapas simples mencionadas abaixo:

  • Crie uma instância de CompareApi
  • Defina o arquivo .pdf de origem
  • Definir o arquivo .pdf de destino
  • Definir opções de comparação
  • Criar Pedido de Comparações
  • Obtenha resultados chamando o método CompareApi.comparisons()
  • Mostrar todas as alterações uma a uma

O exemplo de código a seguir mostra como obter uma lista de alterações usando uma API REST em Node.js.

// inicializar API
let compareApi = groupdocs_comparison_cloud.CompareApi.fromKeys(clientId, clientSecret);

// arquivo fonte
let source = new groupdocs_comparison_cloud.FileInfo();
source.filePath = "source.pdf";

// Arquivo de destino
let target = new groupdocs_comparison_cloud.FileInfo();
target.filePath = "target.pdf";

// definir opções de comparação
let options = new groupdocs_comparison_cloud.ComparisonOptions();
options.sourceFile = source;
options.targetFiles = [target];
options.outputPath = "compared/result.pdf";

// criar solicitação de comparação
let request = new groupdocs_comparison_cloud.PostChangesRequest(options);
let changes = await compareApi.postChanges(request);

console.log("Changes count: " + changes.length);

changes.forEach(change => {
  console.log(change.id + 1 +"- Target Text: " + change.targetText + ", Text: " + change.text + ", Type: " + change.type);
});
Obter lista de alterações usando Node.js

Obter lista de alterações usando Node.js

Compare e salve com senha e metadados usando Node.js {#Compare-and-Save-with-Password-&-Metadata-using-Nodejs}

Siga as etapas mencionadas abaixo para proteger com senha o arquivo resultante e salvá-lo com metadados:

  • Crie uma instância de CompareApi
  • Defina o arquivo .pdf de origem
  • Definir o arquivo .pdf de destino
  • Criar instância de configurações
  • Definir metadados e senha
  • Criar instância ComparisonOptions
  • Atribuir arquivos de origem e destino
  • Defina o caminho do arquivo de saída
  • Atribuir configurações
  • Criar Pedido de Comparações
  • Obtenha resultados chamando o método CompareApi.comparisons()

O exemplo de código a seguir mostra como salvar o arquivo resultante com senha e metadados usando uma API REST em Node.js.

// inicializar API
let compararApi = groupdocs_comparison_cloud.CompareApi.fromKeys(clientId, clientSecret);

// arquivo fonte
let source = new groupdocs_comparison_cloud.FileInfo();
source.filePath = "source.pdf";

// Arquivo de destino
let target = new groupdocs_comparison_cloud.FileInfo();
target.filePath = "target.pdf";

let settings = new groupdocs_comparison_cloud.Settings();

// definir metadados
settings.metadata = new groupdocs_comparison_cloud.Metadata();
settings.metadata.author = "Author";
settings.metadata.company = "GroupDocs";
settings.metadata.lastSaveBy = "Last saved by";
settings.cloneMetadata = groupdocs_comparison_cloud.Settings.CloneMetadataEnum.FileAuthor;

// configurar senha
settings.password = "password";
settings.passwordSaveOption = groupdocs_comparison_cloud.Settings.PasswordSaveOptionEnum.User;

// definir opções de comparação
let options = new groupdocs_comparison_cloud.ComparisonOptions();
options.sourceFile = source;
options.targetFiles = [target];
options.outputPath = "comparard/result_Metadata.pdf";
options.settings = settings;

// criar solicitação de comparação
let request = new groupdocs_comparison_cloud.ComparisonsRequest(options);

// comparar
let response = await compararApi.comparisons(request);

Experimente on-line

Experimente a seguinte ferramenta de comparação de PDF on-line gratuita, desenvolvida usando a API acima. https://products.groupdocs.app/comparison/pdf

Conclusão

Neste artigo, você aprendeu como comparar documentos PDF na nuvem. Você também aprendeu como comparar vários arquivos PDF, personalizar o estilo de alterações e obter uma lista de alterações. Além disso, você aprendeu a carregar programaticamente vários arquivos PDF para a nuvem e, em seguida, baixar o arquivo resultante da nuvem. Você pode aprender mais sobre GroupDocs.Comparison Cloud API usando a documentação. Também fornecemos uma seção Referência de API que permite visualizar e interagir com nossas APIs diretamente pelo navegador. Em caso de ambiguidade, sinta-se à vontade para nos contatar no fórum.

Veja também