阅读PDF并找到要添加到列表中的特定列

本文关键字:列表 添加 PDF 阅读 | 更新日期: 2023-09-27 18:22:04

那么,有人能找到一种方法以编程方式只读取.PDF文件的一列中的数字吗?换言之,有没有可能删除一个PDF文件,然后制作一些能吸收它的东西,读出一个专栏的所有内容?

该列的格式如下:

401232111555713

阅读PDF并找到要添加到列表中的特定列

以下代码将打开并使用iTextSharp:将任何PDF读取为字符串

public static string ReadPdfFile(string fileName)
{
    StringBuilder text = new StringBuilder();
    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);
            currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));
            text.Append(currentText);
        }
        pdfReader.Close();
    }
    return text.ToString();
}

从那里,您可以简单地运行一些REGEX,使用您布局的模式来获得列:

string text = ReadPdfFile(@"path'to'pdf'file.pdf");
Regex regex = new Regex(@"(?<number>'d{15})");
List<string> results = new List<string>();
foreach (Match m in regex.Matches(text))
{
    results.Add(m.Groups["number"].Value);
}

您需要使用一些PDF处理库。这里有一个SO链接,讨论了这个主题:

在C#中读取PDF