3

.PDF那么任何人都可以找到一种方法来以编程方式读取文件列中的数字吗?换句话说,是否有可能删除一个 PDF 文件并制作一些东西来吸收它,读出一列的所有内容?

该列的格式如下:

401232111555713

4

2 回答 2

4

以下代码将使用 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);
}
于 2013-07-11T18:57:23.870 回答
0

您需要使用一些 PDF 处理库。这是一个关于该主题的讨论的 SO 链接:

在 C# 中阅读 PDF

于 2013-07-11T18:57:33.413 回答