Преобразование pdf-файла в текст на C# [закрыто]

Мне нужно преобразовать a .pdf файл в a .файл txt (или .док, но я предпочитаю .формат txt.)

Как я могу сделать это в C#?

6 ответов


Ghostscript может делать то, что вам нужно. Ниже приведена команда для извлечения текста из PDF-файла в txt-файл (вы можете запустить его из командной строки, чтобы проверить, если он работает для вас):

gswin32c.exe -q -dNODISPLAY -dSAFER -dDELAYBIND -dWRITESYSTEMDICT -dSIMPLE -c save -f ps2ascii.ps "test.pdf" -c quit >"test.txt"

регистрация здесь: codeproject: преобразование PDF в Изображение с помощью Ghostscript API подробнее о том, как использовать Ghostscript с C#


У меня была потребность, и я использовал эту статью, чтобы начать:http://www.codeproject.com/KB/string/pdf2text.aspx


в качестве альтернативы решению Дона я нашел следующее:

извлечение текста из PDF в C# (100% .NET)


концепция преобразования PDF в текст не очень прямолинейна, и вы не увидите никого, кто разместит здесь код, который преобразует PDF в текст прямо. Поэтому лучше всего сейчас использовать библиотеку, которая сделает эту работу за вас... хороший-PDFBox,вы можете его google. Вы, вероятно, найдете его написанным на java, но, к счастью, вы можете использовать IKVM для его преобразования в .Net....


Docotic.Библиотека Pdf можно извлечь текст из PDF-файлов (отформатирован или нет).

вот пример кода, который показывает, как извлечь форматированный текст из PDF-файла и сохранить его в другой файл.

public static void ExtractFormattedText(string pdfFile, string textFile)
{
    using (PdfDocument doc = new PdfDocument(pdfFile))
    {
        string text = doc.GetTextWithFormatting();
        File.WriteAllText(textFile, text);
    }
}

кроме того, на нашем сайте есть образец, который показывает другие варианты для извлечение текста из PDF-файлов.

отказ от ответственности: я работаю для Bit Miracle, поставщика библиотеки.


    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);
                }

            }

        }

    }