【问题标题】:C# Convert pdf to txtC# 将 pdf 转换为 txt
【发布时间】:2017-03-13 10:11:29
【问题描述】:

我热烈欢迎... 我有一个问题,我正在尝试将 PDF 转换为 txt,但无法保存 txt 文件??有人请帮帮我吗??

using System;
using System.Text;
using System.Windows.Forms;
using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;
using System.IO;

namespace ZestawienieFaktur
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

        }



        private void button1_Click(object sender, EventArgs e)
        {

            string[] filePaths = Directory.GetFiles(@"D:\\faktury\\", "*.pdf");

           foreach (string fp in filePaths)
            {
                ExtractTextFromPdf(fp);
            }

        }

        public static string ExtractTextFromPdf(string path)
        {
            using (PdfReader reader = new PdfReader(path))
            {
                StringBuilder text = new StringBuilder();

                for (int i = 1; i <= reader.NumberOfPages; i++)
                {
                    text.Append(PdfTextExtractor.GetTextFromPage(reader, i));
                }

                string lines = text.ToString();
                using (var file = new StreamWriter(@"D:\faktury\test1.txt"))
                {
                    file.WriteLine(lines);
                    file.Close();
                }


            }




        }

    }
}

在文件夹中,我有几个不同名称的 pdf 文件。 而且我要全部转换成txt的格式。 非常感谢您的回答...

【问题讨论】:

  • 只要把“return text.ToString();”函数 ExtractTextFromPdf() 到函数末尾之间的行。
  • 请编辑您的问题。在当前表单中,不清楚您使用的是哪个库
  • 您在ExtractTextFromPdf 中间有一个return。假设不会到达下一行
  • @ArthurP.R.使用系统;使用 System.Text;使用 System.Windows.Forms;使用 iTextSharp.text.pdf;使用 iTextSharp.text.pdf.parser;使用 System.IO;
  • @Pikoh 下一行到底是哪一行?

标签: c# .net


【解决方案1】:

您应该删除 return 关键字,然后返回 void。它不执行的原因是因为它在return 之后停止执行其余代码。改成这样:

public static void ExtractTextFromPdf(string path)
{
    using (PdfReader reader = new PdfReader(path))
    {
        StringBuilder text = new StringBuilder();

        for (int i = 1; i <= reader.NumberOfPages; i++)
        {
            text.Append(PdfTextExtractor.GetTextFromPage(reader, i));
        }
        string lines = "";
       using(var file = new StreamWriter(path2))
       {
          file.WriteLine(lines);
          file.Close();
       }      

    }
}

希望对你有帮助!

【讨论】:

    【解决方案2】:

    OK WORKS thx 朋友...

    using System;
    using System.Text;
    using System.Windows.Forms;
    using iTextSharp.text.pdf;
    using iTextSharp.text.pdf.parser;
    using System.IO;
    
    namespace ZestawienieFaktur
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
    
            }
    
    
    
            private void button1_Click(object sender, EventArgs e)
            {
    
                string[] filePaths = Directory.GetFiles(@"D:\faktury\", "*.pdf");
    
               foreach (string fp in filePaths)
                {
                    ExtractTextFromPdf(fp);
                }
    
            }
    
            public static string ExtractTextFromPdf(string path)
            {
                using (PdfReader reader = new PdfReader(path))
                {
                    StringBuilder text = new StringBuilder();
    
                    for (int i = 1; i <= reader.NumberOfPages; i++)
                    {
                        text.Append(PdfTextExtractor.GetTextFromPage(reader, i));
                    }
    
                    string lines = text.ToString();
                    using (var file = new StreamWriter(@"D:\faktury\test1.txt"))
                    {
                        file.WriteLine(lines);
                        file.Close();
                    }
                    return lines; 
                }
    
    
            }
    
    
    
    
        }
    
        }
    

    【讨论】:

      猜你喜欢
      • 2016-10-18
      • 1970-01-01
      • 2019-01-18
      • 1970-01-01
      • 2017-09-13
      • 1970-01-01
      • 2015-11-01
      • 2020-06-11
      • 2020-01-08
      相关资源
      最近更新 更多