将pdf文件转换为C#中的文本

时间:2009-12-22 06:50:31

标签: c# pdf text-files

我需要将.pdf文件转换为.txt文件(或.doc,但我更喜欢.txt)。

我怎样才能在C#中做到这一点?

6 个答案:

答案 0 :(得分:4)

我自己有这种需要,而且我用这篇文章让我开始:http://www.codeproject.com/KB/string/pdf2text.aspx

答案 1 :(得分:4)

Ghostscript可以做你需要的。下面是一个命令,用于将pdf文件中的文本提取到txt文件中(您可以从命令行运行它来测试它是否适合您):

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

点击此处:codeproject: Convert PDF to Image Using Ghostscript API了解如何在C#

中使用ghostscript的详细信息

答案 2 :(得分:1)

将PDF转换为文本的概念并不是很直接,您不会在此处发布任何可以将PDF直接转换为文本的代码。因此,现在最好的选择是使用一个可以为您完成工作的库...一个好的是PDFBox,您可以谷歌它。您可能会发现它是用java编写的,但幸运的是,您可以使用IKVM将其转换为.Net ....

答案 3 :(得分:1)

作为Don解决方案的替代方案,我发现了以下内容:

Extract Text from PDF in C# (100% .NET)

答案 4 :(得分:0)

Docotic.Pdf library可以从PDF文件中提取文本(格式化与否格式化)。

以下是一个示例代码,演示如何从PDF文件中提取格式化文本并将其保存到其他文件中。

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

此外,我们的网站上还有一个示例,其中显示了extraction of text from PDF files的其他选项。

免责声明:我为图书馆的供应商Bit Miracle工作。

答案 5 :(得分:0)

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

            }

        }

    }