Os arquivos PDF são populares porque suportam texto, imagens, animações, vídeos e muitas outras anotações. No entanto, o texto é a parte mais importante da maioria dos documentos PDF. Neste artigo, converteremos PDF para arquivo TXT e arquivo TXT para formato PDF usando C# .NET. Essa conversão é útil em situações em que você está preocupado apenas com o conteúdo de texto de documentos PDF. Vamos percorrer os seguintes títulos para uma visão geral dos próximos tópicos:

Dica: Você pode estar interessado em um Conversor de Texto para GIF gratuito que permite gerar animações a partir de textos.

Conversor de TXT para PDF ou PDF para TXT

A conversão de PDF para TXT, bem como a conversão de arquivo TXT para PDF, é muito útil quando sua principal preocupação é a string de texto usada no documento. Você pode converter esses formatos de arquivo um no outro com algumas etapas simples usando a API Aspose.PDF for .NET. Sendo uma API baseada em framework .NET, permite trabalhar com C#, bem como com a linguagem de programação VB.NET. Você pode instalar facilmente a API em seus aplicativos .NET baixando os arquivos DLL de Downloads ou através da galeria NuGet.

Depois de instalar a API com sucesso, vamos converter um arquivo PDF para arquivo TXT com duas abordagens diferentes:

Converter PDF para arquivo de texto sem formatação usando C# ou VB.NET

Em primeiro lugar, converteremos o PDF em Texto sem nenhuma rotina de formatação. O conteúdo do texto será convertido em seu formato atual. Portanto, o texto de saída não seguirá nenhuma formatação a partir do arquivo PDF de entrada. Você precisa seguir os passos abaixo para converter PDF para TXT com grande eficiência e confiabilidade.

  1. Carregar documento PDF de entrada
  2. Inicialize uma instância da classe StringBuilder
  3. Iterar em cada página do documento PDF
  4. Ler texto usando o modo TextDevice e Raw
  5. Salvar texto de saída como um arquivo TXT

O trecho de código abaixo mostra como converter PDF para arquivo TXT usando C# ou VB no .NET Framework:

// Abrir documento
Document pdfDocument = new Document(dataDir + "MultiColumnPdf.pdf");
StringBuilder builder = new StringBuilder();
// String para armazenar o texto extraído
string extractedText = "";

foreach (Page pdfPage in pdfDocument.Pages)
{
    using (MemoryStream textStream = new MemoryStream())
    {
        // Criar dispositivo de texto
        TextDevice textDevice = new TextDevice();

        // Defina diferentes opções
        TextExtractionOptions options = new
        TextExtractionOptions(TextExtractionOptions.TextFormattingMode.Raw);
        textDevice.ExtractionOptions = options;

        // Converta a página e salve o texto no fluxo
        textDevice.Process(pdfPage, textStream);

        // Fechar fluxo de memória
        textStream.Close();

        // Obter texto do fluxo de memória
        extractedText = Encoding.Unicode.GetString(textStream.ToArray());
    }
    builder.Append(extractedText);
}

dataDir = dataDir + "PDF_to_TXT_Raw.txt";
// Salve o arquivo de texto
File.WriteAllText(dataDir, builder.ToString());

Converter PDF para arquivo TXT com rotinas de formatação usando C# ou VB.NET

Agora, vamos considerar o caso de uso em que você precisa converter o PDF em texto com um pouco de rotinas de formatação. Por exemplo, recuos de parágrafo, tabulações, estilos ou formatação em colunas. Você pode facilmente renderizar o conteúdo de texto de um documento PDF em um arquivo TXT com C# seguindo as etapas abaixo:

  1. Carregar arquivo PDF de origem
  2. Iniciar uma variável de string
  3. Leia cada página com TextFormattingMode.Pure
  4. Salvar arquivo TXT convertido

O trecho de código a seguir mostra como converter PDF para arquivo TXT com formatação usando a linguagem C# ou VB.NET:

// Abrir documento
Document pdfDocument = new Document(dataDir + "MultiColumnPdf.pdf");
StringBuilder builder = new StringBuilder();
// String para armazenar o texto extraído
string extractedText = "";

foreach (Page pdfPage in pdfDocument.Pages)
{
    using (MemoryStream textStream = new MemoryStream())
    {
        // Criar dispositivo de texto
        TextDevice textDevice = new TextDevice();

        // Defina diferentes opções
        TextExtractionOptions options = new
        TextExtractionOptions(TextExtractionOptions.TextFormattingMode.Pure);
        textDevice.ExtractionOptions = options;

        // Converta a página e salve o texto no fluxo
        textDevice.Process(pdfPage, textStream);

        // Fechar fluxo de memória
        textStream.Close();

        // Obter texto do fluxo de memória
        extractedText = Encoding.Unicode.GetString(textStream.ToArray());
    }
    builder.Append(extractedText);
}

dataDir = dataDir + "PDF_to_TXT_Pure.txt";
// Salve o arquivo de texto
File.WriteAllText(dataDir, builder.ToString());

Comparação visual da conversão de texto PURE e RAW

A captura de tela a seguir é uma comparação visual das duas abordagens que acabamos de discutir. Você pode notar que o modo Puro (janela mais à direita) mostra o Texto com as mesmas formatações do arquivo PDF (janela mais à esquerda).

Converter PDF TXT csharp

Esta captura de tela de arquivos de entrada e saída permite que você decida qual abordagem de conversão combina melhor com você.

Converter arquivo TXT para PDF programaticamente usando C# ou VB.NET

Os arquivos TXT geralmente contêm conteúdo de texto enorme. Você pode facilmente converter um arquivo TXT para arquivo PDF com Aspose.PDF para .NET API. Basta seguir os passos abaixo para realizar a conversão de texto para PDF:

  1. Crie uma instância da classe TextReader
  2. Inicialize um documento PDF e adicione uma página em branco
  3. Instanciar objeto TextBuilder
  4. Leia cada linha de texto do arquivo TXT de entrada
  5. Salvar arquivo PDF de saída

O trecho de código abaixo explica como converter programaticamente um arquivo TXT contendo texto em um documento PDF usando a linguagem C# ou VB.NET:

// Ler arquivo TXT de entrada
System.IO.TextReader tr = new StreamReader(dataDir + "Test.txt", Encoding.UTF8, true);

// Inicializar novo documento
Document doc = new Document();

// Adicionar página em branco
Page page = doc.Pages.Add();
String strLine;

// Iniciar objeto TextBuilder
TextBuilder builder = new TextBuilder(page);
double x = 100; double y = 100;
while ((strLine = tr.ReadLine()) != null)
{
 TextFragment text = new TextFragment(strLine);
 text.Position = new Position(x, y);
 if (y >= page.PageInfo.Height - 72)
 {
  y = 100;
  page = doc.Pages.Add();
  builder = new TextBuilder(page);
 }
 else
 {
  y += 15;
 }
 builder.AppendText(text);
}

// Salvar arquivo PDF de saída
doc.Save(dataDir + "TexttoPDF.pdf");
tr.Close();

Conclusão

Neste artigo, aprendemos e exploramos a conversão do texto em arquivo PDF para o formato de arquivo TXT. Além disso, convertemos o texto de um arquivo TXT em um documento PDF usando C# ou VB no .NET Framework. Você pode converter arquivos PDF e TXT com bastante eficiência e rapidez. No entanto, se você tiver alguma dúvida ou pergunta, sinta-se à vontade para nos escrever em Fórum de suporte gratuito ou explorar Documentação do produto. Gostaríamos muito de ouvir de você!

Veja também