C# IText使用法语脚本MT从pdf中提取文本

C# IText使用法语脚本MT从pdf中提取文本,c#,excel,pdf,itext,text-extraction,C#,Excel,Pdf,Itext,Text Extraction,我正在使用ITextSharp和列出的代码从pdf中提取文本。 但我发现有些行给出了不正确的结果: 在excel中-“11 3 11” 在Visual Studio中-“11\u0085\u0014\u0016\u001c 3 11” pdf格式-“11英镑139 3 11” 还有一个例子: 在excel中-“245 1” 在Visual Studio中-“2\u0085\u0019\u0018\u001b 45 1” pdf格式-“2英镑658 45 1” 经过调查,我发现pdf文件包含 法语

我正在使用ITextSharp和列出的代码从pdf中提取文本。 但我发现有些行给出了不正确的结果:

  • 在excel中-“11 3 11”
  • 在Visual Studio中-“11\u0085\u0014\u0016\u001c 3 11”
  • pdf格式-“11英镑139 3 11”
  • 还有一个例子:

  • 在excel中-“245 1”
  • 在Visual Studio中-“2\u0085\u0019\u0018\u001b 45 1”
  • pdf格式-“2英镑658 45 1”
  • 经过调查,我发现pdf文件包含 法语-script-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;
    }
    }
    }
    
    使用(PdfReader读取器=新的PdfReader(pfile.path)){
    StringBuilder text=新的StringBuilder();
    如果(pagenum==0)
    {
    
    对于(int i=1;i所有带有英镑货币符号“£”的条目均使用字体绘制(分别命名为C2_0C2_2),没有PDF规范ISO 32000-1第9.10节“文本内容提取”中所述的PDF文本提取所需的信息:它们使用编码Identity-H(这并不意味着任何到Unicode的映射),并且没有ToUnicode映射

    用于其他条目的字体要么使用有意义的编码(T1_0T1_1使用winansionoding),要么具有ToUnicode映射(C2_1

    由于iText中的文本提取基本上遵循第9.10节中的描述,因此iText无法提取这些条目的实际文本,而是返回原始字形代码,就像Adobe Reader copy&paste一样

    通常这意味着必须求助于OCR,或者是整个页面并使用OCR提取所有文本,或者是单独使用相关字体的字符来为这些字体构建ToUnicode表格,然后如上所述提取文本


    不过,在这种情况下,C2_0C2_2嵌入式字体程序本身包含将包含的字形映射到Unicode代码点的信息。因此,还可以利用这些字体程序中的信息构建ToUnicode表。这些信息可以从字体程序中读取使用可处理真字体的字体库。

    您可以共享pdf供检查吗?excel与pdf的关系如何?这是pdf文件的一部分(将联机30天)我已经为pdf文件创建了解析器,这样我就可以分析数据和结构本身,我只是使用Microsoft.Office.Interop将所有解析的文本放到Excel中。这个法语文本是我工作的瓶颈。嗨,mkl!非常感谢!你的回答以某种方式解决了我的问题。我将使用Adobe作为主要工具,并使用ITextSharp进行结构分析。我将更好地使用c创建基于Adobe output或任何其他OCR的解析器。另外,您能分享一下您用来检查上述信息的工具吗?@Vitalii我使用了基于iText的PDF检查工具RUPS,我还打开了一份PDF规范副本供参考。