Converter um ficheiro pdf para texto Em C# [fechado]
6 answers
Ghostscript poderia fazer o que você precisa. Abaixo está um comando para extrair texto de um ficheiro pdf para um ficheiro txt (pode executá-lo a partir de uma linha de comandos para testar se funciona para si):
gswin32c.exe -q -dNODISPLAY -dSAFER -dDELAYBIND -dWRITESYSTEMDICT -dSIMPLE -c save -f ps2ascii.ps "test.pdf" -c quit >"test.txt"
Assinale aqui: codeproject: Convert PDF para imagem usando a API do Ghostscript para mais detalhes sobre como usar o ghostscript com o C#
O conceito de conversão de PDF para texto não é realmente direto para a frente e você não vai ver ninguém postando um código aqui que irá converter PDF para texto direto. Então a sua melhor aposta agora é usar uma biblioteca que faria o trabalho por você... um bom é PDFBox, você pode pesquisar no google. Provavelmente irá encontrá-lo escrito em java, mas felizmente poderá usar o IKVM para o converter para. Net...
Docótico.Pdf library can extract text from PDF files (formatted or not).
Aqui está um código de exemplo que mostra como extrair texto formatado de um arquivo PDF e salvá-lo para outro arquivo.
public static void ExtractFormattedText(string pdfFile, string textFile)
{
using (PdfDocument doc = new PdfDocument(pdfFile))
{
string text = doc.GetTextWithFormatting();
File.WriteAllText(textFile, text);
}
}
Além disso, há uma amostra no nosso site que mostra outras opções para extracção de texto a partir de ficheiros PDF .
Disclaimer: eu trabalho para Bit Miracle, vendedor da biblioteca. public void PDF_TEXT()
{
richTextBox1.Text = string.Empty;
ReadPdfFile(@"C:\Myfile.pdf"); //read pdf file from location
}
public void ReadPdfFile(string fileName)
{
string strText = string.Empty;
StringBuilder text = new StringBuilder();
try
{
PdfReader reader = new PdfReader((string)fileName);
if (File.Exists(fileName))
{
PdfReader pdfReader = new PdfReader(fileName);
for (int page = 1; page <= pdfReader.NumberOfPages; page++)
{
ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
string currentText = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy);
text.Append(currentText);
}
pdfReader.Close();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
richTextBox1.Text = text.ToString();
}
private void Save_TextFile_Click(object sender, EventArgs e)
{
SaveFileDialog sfd = new SaveFileDialog();
DialogResult messageResult = MessageBox.Show("Save this file into Text?", "Text File", MessageBoxButtons.OKCancel);
if (messageResult == DialogResult.Cancel)
{
}
else
{
sfd.Title = "Save As Textfile";
sfd.InitialDirectory = @"C:\";
sfd.Filter = "TextDocuments|*.txt";
if (sfd.ShowDialog() == DialogResult.OK)
{
if (richTextBox1.Text != "")
{
richTextBox1.SaveFile(sfd.FileName, RichTextBoxStreamType.PlainText);
richTextBox1.Text = "";
MessageBox.Show("Text Saved Succesfully", "Text File");
}
else
{
MessageBox.Show("Please Upload Your Pdf", "Text File",
MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);
}
}
}
}