Como desenvolvedor Node.js, você pode facilmente comparar dois ou mais documentos do Word em busca de semelhanças e diferenças de forma programática na nuvem. Ele pode ajudá-lo a rastrear alterações em diferentes versões do mesmo documento do Word ou em documentos diferentes. Neste artigo, você aprenderá como comparar dois ou mais documentos do Word usando uma API REST no Node.js.
Os seguintes tópicos serão abordados neste artigo:
- API REST e SDK Node.js para comparar documentos do Word
- Compare dois arquivos do Word usando uma API REST no Node.js
- Compare vários arquivos DOCX usando Node.js
- Obtenha a lista de alterações usando a API REST no Node.js
- Personalize os resultados da comparação usando Node.js
API REST e SDK Node.js para comparar documentos do Word
Para comparar dois ou mais arquivos DOCX, usaremos a API Node.js SDK of GroupDocs.Comparison Cloud. Ele permite que você compare dois ou mais documentos e encontre as diferenças em um arquivo resultante. Você pode integrar facilmente o SDK em seus aplicativos Node.js existentes para comparar documentos, planilhas, apresentações, diagramas Visio, e-mails e arquivos de muitos outros formatos suportados.
Você pode instalar o GroupDocs.Comparison Cloud em seu aplicativo Node.js usando o seguinte comando no console:
npm install groupdocs-comparison-cloud
Por favor, 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";
Compare dois arquivos do Word usando uma API REST no Node.js
Você pode comparar seus documentos do Word programaticamente seguindo as etapas simples fornecidas abaixo:
- Carregar os arquivos DOCX para a nuvem
- Comparar arquivos do Word usando Node.js
- Baixe o arquivo DOCX resultante
Carregar os arquivos DOCX
Em primeiro lugar, carregue os arquivos DOCX 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\\comparison\\uploads\\';
fs.readdir(resourcesFolder, (err, files) => {
files.forEach(file => {
console.log(file);
fs.readFile(resourcesFolder + file, (err, fileStream) => {
let request = new groupdocs_comparison_cloud.UploadFileRequest(file, fileStream, myStorage);
fileApi.uploadFile(request);
});
});
});
Como resultado, os arquivos DOCX carregados estarão disponíveis na seção de arquivos do seu painel na nuvem.
Comparar arquivos do Word usando Node.js
Você pode comparar dois documentos do Word programaticamente seguindo as etapas abaixo:
- Em primeiro lugar, crie uma instância do CompareApi.
- Em seguida, crie uma instância do FileInfo e defina o caminho do arquivo DOCX de entrada de origem.
- Em seguida, crie outra instância do FileInfo e defina o caminho do arquivo DOCX de entrada de destino.
- Depois disso, crie uma instância do ComparisonOptions e atribua arquivos de origem e destino.
- Em seguida, defina o caminho do arquivo de saída.
- Em seguida, crie o ComparisonsRequest com ComparisonOptions.
- Por fim, obtenha os resultados chamando o método CompareApi.comparisons() com ComparisonsRequest.
O exemplo de código a seguir mostra como comparar dois arquivos do Word 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.docx";
// Arquivo de destino
let target = new groupdocs_comparison_cloud.FileInfo();
target.filePath = "target.docx";
// definir opções de comparação
let options = new groupdocs_comparison_cloud.ComparisonOptions();
options.sourceFile = source;
options.targetFiles = [target];
options.outputPath = "comparard/result_compararOptions.docx";
// criar solicitação de comparações
let request = new groupdocs_comparison_cloud.ComparisonsRequest(options);
// comparar
let response = await compararApi.comparisons(request);
console.log("Output file link: " + response.href);
Baixe o arquivo resultante
O exemplo de código acima salvará as diferenças em um arquivo DOCX 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_compareOptions.docx", myStorage);
// ⇬ Fazer download do arquivo
let response = await fileApi.downloadFile(request);
// salvar no diretório de trabalho
fs.writeFile("C:\\Files\\comparison\\result_compareOptions.docx", response, "binary", function (err) { });
Compare vários arquivos DOCX usando Node.js
Você pode comparar vários documentos do Word programaticamente seguindo as etapas abaixo:
- Em primeiro lugar, crie uma instância do CompareApi.
- Em seguida, crie uma instância do FileInfo e defina o caminho do arquivo DOCX de entrada de origem.
- Em seguida, crie outra instância do FileInfo e defina o caminho do arquivo DOCX de entrada de destino.
- Repita as etapas acima para adicionar vários arquivos de destino.
- Depois disso, crie uma instância do ComparisonOptions e atribua arquivos de origem e destino.
- Em seguida, defina o caminho do arquivo de saída.
- Em seguida, crie o ComparisonsRequest com ComparisonOptions.
- Finalmente, obtenha resultados chamando o método CompareApi.comparisons() com ComparisonsRequest
O exemplo de código a seguir mostra como comparar vários arquivos do Word 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.docx";
// arquivo de destino 1
let target1 = new groupdocs_comparison_cloud.FileInfo();
target1.filePath = "target1.docx";
// arquivo de destino 2
let target2 = new groupdocs_comparison_cloud.FileInfo();
target2.filePath = "target2.docx";
// definir opções de comparação
let options = new groupdocs_comparison_cloud.ComparisonOptions();
options.sourceFile = source;
options.targetFiles = [target1, target2];
options.outputPath = "comparard/result_Multiple.docx";
// criar solicitação de comparações
let request = new groupdocs_comparison_cloud.ComparisonsRequest(options);
// comparar
let response = await compararApi.comparisons(request);
console.log("Output file link: " + response.href);
Obtenha a lista de alterações usando a API REST no Node.js
Você pode obter uma lista completa das diferenças encontradas depois de comparar os documentos do Word programaticamente seguindo as etapas abaixo:
- Em primeiro lugar, crie uma instância do CompareApi
- Em seguida, crie uma instância do FileInfo e defina o caminho do arquivo DOCX de entrada de origem
- Em seguida, crie outra instância do FileInfo e defina o caminho do arquivo DOCX de entrada de destino
- Depois disso, crie uma instância do ComparisonOptions e atribua os arquivos de origem e destino
- Em seguida, defina o caminho do arquivo de saída
- Em seguida, crie o PostChangesRequest com ComparisonOptions
- Depois disso, obtenha os resultados chamando o método CompareApi.postChanges() com PostChangesRequest
- Por fim, mostre 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.docx";
// Arquivo de destino
let target = new groupdocs_comparison_cloud.FileInfo();
target.filePath = "target.docx";
// definir opções de comparação
let options = new groupdocs_comparison_cloud.ComparisonOptions();
options.sourceFile = source;
options.targetFiles = [target];
options.outputPath = "compared/result.docx";
// criar solicitação de alteração de postagem
let request = new groupdocs_comparison_cloud.PostChangesRequest(options);
// postar mudanças
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);
});
Personalize os resultados da comparação usando Node.js
Você pode personalizar facilmente o estilo das alterações programaticamente seguindo as etapas abaixo:
- Em primeiro lugar, crie uma instância do CompareApi.
- Em seguida, crie uma instância do FileInfo e defina o caminho do arquivo DOCX de entrada de origem.
- Em seguida, crie outra instância do FileInfo e defina o caminho do arquivo DOCX de entrada de destino.
- Depois disso, crie uma instância de Settings e defina várias configurações de comparação, como sensibilidadeOfComparison.
- Em seguida, crie instâncias de ItemsStyle para insertItemsStyle, deleteItemsStyle e changeItemsStyle.
- Em seguida, defina várias propriedades para cada ItemsStyle, como HighlightColor, FontColor, negrito, itálico, etc.
- Depois disso, crie uma instância do ComparisonOptions e atribua arquivos de origem e destino.
- Em seguida, defina o caminho do arquivo de saída.
- Em seguida, atribua configurações a ComparisonOptions
- Depois disso, crie o ComparisonsRequest com ComparisonOptions.
- Por fim, obtenha resultados chamando o método CompareApi.comparisons() com ComparisonsRequest
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.docx";
// Arquivo de destino
let target = new groupdocs_comparison_cloud.FileInfo();
target.filePath = "target.docx";
// definir configurações de comparação
let settings = new groupdocs_comparison_cloud.Settings();
// comparar sensibilidade
settings.sensitivityOfComparison = 100;
// personalizar estilo de alterações para itens inseridos
settings.insertedItemsStyle = new groupdocs_comparison_cloud.ItemsStyle();
settings.insertedItemsStyle.highlightColor = "14297642";
settings.insertedItemsStyle.fontColor = "16711680";
settings.insertedItemsStyle.underline = true;
// personalizar estilo de alterações para itens excluídos
settings.deletedItemsStyle = new groupdocs_comparison_cloud.ItemsStyle();
settings.deletedItemsStyle.fontColor = "14166746";
settings.deletedItemsStyle.bold = true;
// personalizar estilo de alterações para itens alterados
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.docx";
options.settings = settings;
// criar solicitação de comparações
let request = new groupdocs_comparison_cloud.ComparisonsRequest(options);
// comparar
let response = await compararApi.comparisons(request);
console.log("Output file link: " + response.href);
Experimente on-line
Experimente a seguinte ferramenta de comparação DOCX on-line gratuita, desenvolvida usando a API acima. https://products.groupdocs.app/comparison/docx
Conclusão
Neste artigo, você aprendeu como comparar documentos do Word usando uma API REST na nuvem. Além disso, você viu como comparar vários arquivos DOCX programaticamente. Este artigo também explicou como carregar programaticamente um arquivo DOCX para a nuvem e, em seguida, baixar o arquivo resultante da nuvem. Além disso, 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.