您绝对不必将 PDF 转换为 Excel。首先,请确定您的PDF是否包含文本数据,或者是扫描图像。如果它包含文本数据,那么您使用“一些免费的 dll”是正确的。我推荐 iTextSharp,因为它很流行且易于使用。
现在是有争议的部分。如果您不需要可靠的解决方案,最简单的方法是将所有 PDF 读取为字符串,然后使用正则表达式检索电子邮件。
以下是使用 iTextSharp 阅读 PDF 并提取电子邮件的示例(并不完美):
public string PdfToString(string fileName)
{
var sb = new StringBuilder();
var reader = new PdfReader(fileName);
for (int page = 1; page <= reader.NumberOfPages; page++)
{
var strategy = new SimpleTextExtractionStrategy();
string text = PdfTextExtractor.GetTextFromPage(reader, page, strategy);
text = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(text)));
sb.Append(text);
}
reader.Close();
return sb.ToString();
}
//adjust expression as needed
Regex emailRegex = new Regex("Email Address (?<email>.+?) Passport No");
public IEnumerable<string> ExtractEmails(string content)
{
var matches = emailRegex.Matches(content);
foreach (Match m in matches)
{
yield return m.Groups["email"].Value;
}
}
Run Code Online (Sandbox Code Playgroud)