我需要将.pdf文件转换为.txt文件(或.doc,但我更喜欢.txt)。
我怎样才能在C#中做到这一点?
答案 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解决方案的替代方案,我发现了以下内容:
答案 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);
}
}
}
}