【发布时间】:2017-09-19 18:04:15
【问题描述】:
我正在使用 ITextSharp 和列出的代码从 pdf 中提取文本。 但我发现有些行给了我不正确的结果:
- 在 Excel 中 - “11 3 11”
- 在 Visual Studio 中 - “11 \u0085\u0014\u0016\u001c 3 11”
- pdf 格式 - “11 £139 3 11”
再举一个例子:
- 在 Excel 中 - “2 45 1”
- 在 Visual Studio 中 - “2 \u0085\u0019\u0018\u001b 45 1”
- pdf 格式 - “2 £658 45 1”
经过调查,我发现 pdf 文件包含 法语脚本-mt-58fbba579ea99.ttf
using (PdfReader reader = new PdfReader(pfile.path)){
StringBuilder text = new StringBuilder();
if (pagenum == 0)
{
for (int i = 1; i <= reader.NumberOfPages; i++)
{
string page = "";
page = PdfTextExtractor.GetTextFromPage(reader, i, new
iTextSharp.text.pdf.parser.SimpleTextExtractionStrategy());
string stringOutput = page;
string[] lines = stringOutput.Split('\n');
allData.Add(lines);
output = lines;
}
}
}
问题:
- 如何将已加载的字体添加到 Extract 策略?
- 是否可以创建映射,以便将 \u0085\u0014\u0016\u001c 转换为 £139?
- 也许我在编码方面遗漏了什么?
【问题讨论】:
-
可以分享一下pdf文件吗? excel和pdf到底有什么关系?
-
这里是 pdf 文件的一部分(它将在线 30 天)pdfFile 我已经为 pdf 文件创建了解析器,因此我可以分析数据和结构本身,我只是将所有解析的文本放到 Excel使用 Microsoft.Office.Interop。而这段法语文本是我工作的瓶颈。
标签: c# excel pdf itext text-extraction