Word para PDF

Como converter Word para PDF online

Arquivos do MS Word, incluindo DOC, DOCX, DOCM, DOTX, ODT, OTT, etc. são alguns dos formatos de arquivo populares para armazenamento de informações e compartilhamento de dados. Muitas universidades, governo ou organizações públicas produzem seus artefatos no formato Word, mas devido a essa variedade de formatos, o layout do conteúdo nesses arquivos é comprometido quando visualizado em várias plataformas. Portanto, uma solução viável é a conversão para um formato fixo que preserva a estrutura e a fidelidade do documento em qualquer plataforma.

Neste artigo, discutiremos a conversão do formato Word para PDF usando a API REST do .NET.

API de conversão de Word para PDF

Aspose.Words Cloud é uma API REST incrível que fornece a facilidade de criar, editar e converter documentos do Word para outros formatos de arquivo suportados em qualquer plataforma. De acordo com o escopo do artigo, usaremos Aspose.Words Cloud SDK para .NET para conversão de Word para PDF.

Instalação

Execute o seguinte comando no terminal da linha de comando para instalar o SDK.

nuget install Aspose.Words-Cloud

Para instalar o SDK do gerenciador de pacotes NuGet, siga as etapas especificadas abaixo:

  • Expanda o Solution Explorer e clique com o botão direito do mouse na pasta Pacotes.
  • Digite Aspose.Words-Cloud no campo de pesquisa.
  • Agora ative a caixa de seleção perto de Aspose.Words-Cloud nos resultados da pesquisa e clique no botão Adicionar pacote.
  • O SDK referenciado é adicionado ao projeto.

Também precisamos criar uma conta gratuita visitando Aspose.Cloud dashboard onde podemos fazer login usando nossa conta GitHub ou Google existente ou podemos criar uma nova conta. Basta rolar para baixo em direção à seção Client Credentials para ver os detalhes do Client ID e do Client Secret.

Como converter Word para PDF em C#

Siga as etapas especificadas abaixo para realizar a conversão do Word para PDF usando o código C# .NET no Visual Studio. Neste cenário, o arquivo Word de entrada já está disponível no armazenamento em nuvem e o PDF resultante também é armazenado no armazenamento em nuvem.

  • Crie uma instância da classe Configuration que usa os detalhes do ID do cliente e do segredo do cliente como argumentos.
  • Em segundo lugar, crie uma instância da classe WordsApi e forneça uma instância de configuração como argumento.
  • Em terceiro lugar, carregue o arquivo do sistema local para o armazenamento em nuvem usando o método UploadFileRequest(..).
  • O próximo passo é criar um objeto de SaveOptionsData que define as propriedades do arquivo resultante. Usando esse objeto, definimos SaveFormat como Pdf, o valor para ZipOutput é especificado como false para que a saída não esteja no arquivo .zip e outras propriedades.
  • Agora crie uma instância de SaveAsRequest que recebe o nome do arquivo de entrada e os objetos SaveOptionsData como argumentos.
  • Por fim, chame o método SaveAs(…) da classe WordApi que recebe a instância SaveAsrequest como argumento.
// obter credenciais do cliente em https://dashboard.aspose.cloud/
string clientSecret = "caac6e3d4a4724b2feb53f4e460eade3";
string clientID = "4ccf1790-accc-41e9-8d18-a78dbb2ed1aa";

// crie uma instância de configuração passando o ID do cliente e os detalhes do segredo do cliente
var config = new Configuration { ClientId = clientID, ClientSecret = clientSecret };

// criar objeto WordsApi
var wordsApi = new WordsApi(config);

// documento do Word de entrada
string fileName = "test_multi_pages.doc";

// carregar arquivo do sistema local
using (var file = System.IO.File.OpenRead("/Users/nshahbaz/Downloads/" + fileName))
{
    // Carregar documento original no Cloud Storage
    wordsApi.UploadFile(new UploadFileRequest(file, fileName, null));
}

// criar objeto SaveOptionsData
SaveOptionsData saveOptionsData = new SaveOptionsData()
{
    SaveFormat = "pdf",
    FileName = "myResultant.pdf",
    AllowEmbeddingPostScriptFonts = true,
    ZipOutput = false,
    UpdateLastSavedTimeProperty = true,
    UpdateSdtContent = true,
    UpdateCreatedTimeProperty = true,
    UpdateLastPrintedProperty = true
};
            
try
{
    // crie SaveAsRequest passando o arquivo Word de entrada e saveOptionsData
    SaveAsRequest request = new SaveAsRequest(fileName, saveOptionsData);
    
    // inicializar a operação de conversão do Word para PDF
    var output = wordsApi.SaveAs(request);
}
catch (Exception ex)
{
    Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
} 
pré-visualização do word para pdf

Imagem 5:- Visualização da conversão de Word para PDF.

O arquivo de amostra usado no exemplo acima pode ser baixado de testmultipages.doc.

Converter DOC para PDF em C#

Neste cenário, vamos converter o arquivo DOC carregado do armazenamento local e converter a saída para o formato PDF. O arquivo resultante também é armazenado no armazenamento em nuvem.

  • Primeiro, crie uma instância da classe Configuration que recebe os detalhes do ID do cliente e do segredo do cliente como argumentos.
  • Em segundo lugar, crie uma instância da classe WordsApi e forneça uma instância de configuração como argumento.
  • Em terceiro lugar, crie um objeto da classe ConvertDocumentRequest que receba o fluxo de arquivo local, o formato de saída e o nome do arquivo resultante como argumentos.
  • Por fim, chame o método ConvertDocument(..) para executar a operação de conversão.
// obter credenciais do cliente em https://dashboard.aspose.cloud/
string clientSecret = "caac6e3d4a4724b2feb53f4e460eade3";
string clientID = "4ccf1790-accc-41e9-8d18-a78dbb2ed1aa";

// crie uma instância de configuração passando o ID do cliente e os detalhes do segredo do cliente
var config = new Configuration { ClientId = clientID, ClientSecret = clientSecret };

// criar objeto WordsApi
var wordsApi = new WordsApi(config);

// arquivo de entrada de palavras
string fileName = "test_multi_pages.doc";

// nome do arquivo resultante
string outputfile = "result.pdf";

try
{
    // carregue o arquivo word do armazenamento local e especifique o formato de saída
    ConvertDocumentRequest request = new ConvertDocumentRequest(System.IO.File.OpenRead("/Users/nshahbaz/Downloads/" + fileName),"pdf",outputfile);
    
    // executar operação de conversão
    var output = wordsApi.ConvertDocument(request);
}
catch (Exception ex)
{
    Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}  

DOCX para PDF em C#

Vamos discutir o cenário para converter um arquivo DOCX disponível no armazenamento em nuvem e também salvar o PDF resultante no armazenamento em nuvem. Neste cenário, usaremos o método de solicitação HTTP GET.

  • Primeiro, crie uma instância da classe Configuration que recebe os detalhes do ID do cliente e do segredo do cliente como argumentos.
  • Em segundo lugar, crie uma instância da classe WordsApi e forneça uma instância de configuração como argumento.
  • O próximo passo é carregar o arquivo da unidade local para o armazenamento em nuvem usando o método UploadFileRequest(…) do WordsApi.
  • Penúltimo, crie um objeto da classe GetDocumentWithFormatRequest que recebe o nome do arquivo DOCX, o formato de saída e o nome do arquivo resultante como argumentos.
  • Por fim, chame o método GetDocumentWithFormat(…) para realizar a conversão.
// obter credenciais do cliente em https://dashboard.aspose.cloud/
string clientSecret = "caac6e3d4a4724b2feb53f4e460eade3";
string clientID = "4ccf1790-accc-41e9-8d18-a78dbb2ed1aa";

// crie uma instância de configuração passando o ID do cliente e os detalhes do segredo do cliente
var config = new Configuration { ClientId = clientID, ClientSecret = clientSecret };

// criar objeto WordsApi
var wordsApi = new WordsApi(config);

// arquivo docx de entrada
string fileName = "file-sample_1MB.docx";

// formato de saída como PDF
string format = "pdf";

// nome do arquivo resultante
string outputfile = "result.pdf";

// carregar conteúdo do arquivo DOCX da unidade local
using (var file = System.IO.File.OpenRead("/Users/nshahbaz/Downloads/" + fileName))
{
    // Carregar documento original no Cloud Storage
    wordsApi.UploadFile(new UploadFileRequest(file, fileName, null));
}

// carregue o arquivo no Cloud Storage            
try
{
    GetDocumentWithFormatRequest request = new GetDocumentWithFormatRequest(fileName,format,null,null,null,null,outputfile);
    wordsApi.GetDocumentWithFormat(request);
}
catch (Exception ex)
{
    Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
} 

Você pode considerar baixar os arquivos de recursos usados no exemplo acima de file-sample1MB.docx e result.pdf.

pré-visualização da conversão de docx para pdf

Imagem 6:- Visualização da conversão de DOCX para PDF.

Word para PDF usando o comando cURL

Nesta seção, acessaremos a Cloud API por meio de comandos cURL. Então, o primeiro passo é gerar um token de acesso JWT com base nos detalhes do Client ID e do Client Secret.

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=4ccf1790-accc-41e9-8d18-a78dbb2ed1aa&client_secret=caac6e3d4a4724b2feb53f4e460eade3" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

Agora execute o seguinte comando para enviar o arquivo para o armazenamento em nuvem.

curl -X PUT "https://api.aspose.cloud/v4.0/words/storage/file/file-sample_1MB.docx" \
-H  "accept: application/json" \
-H  "Authorization: Bearer <JWT Token>" \
-H  "Content-Type: multipart/form-data" \
-d {"fileContent":{}}

Por fim, use a API GetDocumentWithFormat para realizar a conversão de DOCX para PDF.

curl -X GET "https://api.aspose.cloud/v4.0/words/file-sample_1MB.docx?format=pdf&outPath=myOutput.pdf" \
-H  "accept: application/octet-stream" \
-H  "Authorization: Bearer <JWT Token>

Conclusão

Discutimos alguns recursos incríveis de conversão do Word para o formato PDF usando o Aspose.Words Cloud. A conversão pode ser realizada usando o código .NET ou por meio do comando cURL. Além disso, você também pode explorar a API por meio do Swagger UI no seu navegador.

Observe que o código-fonte completo do SDK está disponível para download no GitHub e caso você encontre algum problema ao usar a API, sinta-se à vontade para entrar em contato conosco através do Fórum de suporte gratuito ao produto.

Artigos relacionados

Recomendamos fortemente que você visite os seguintes links para saber mais sobre: