zoukankan      html  css  js  c++  java
  • 记 iTextSharp 提取中文的问题

    原文

    问题

    下面的代码中 currentText 能提取到大部分汉字

    但是字体为 Non-Embedded Font: AdobeSongStd-Light(Horizontal) 的汉字提取不到

    PdfReader pdfReader = new PdfReader(@"E:\Desktop\file.pdf");
    var currentText = string.Empty;
    for (int i = 0; i < pdfReader.NumberOfPages; i++)
    {
        currentText += PdfTextExtractor.GetTextFromPage(pdfReader, i + 1, new LocationTextExtractionStrategy());
    }
    
    

    解决办法

    增加 iTextSharp 的中文,韩文,日文字体包

    //1. 我使用的iTextSharp 5.5.13.2
    //2. 引用 iTextAsian.dll 2.1 版本和iTextAsianCmaps.dll 1.0 版本
    //3. 读取pdf前加载字体包
    StreamUtil.AddToResourceSearch(System.Reflection.Assembly.Load("iTextAsian"));
    StreamUtil.AddToResourceSearch(System.Reflection.Assembly.Load("iTextAsianCmaps"));
    

    读取某个文本域的值

    RenderFilter[] filter = { new RegionTextRenderFilter(new System.util.RectangleJ(393, 676,1, 1)) };//即使选取了一个很小的1*1区域,只要这个区域在这个文本域内,也能读取到整个文本内容
    ITextExtractionStrategy strategy =
        new FilteredTextRenderListener(
            new LocationTextExtractionStrategy(), filter);
    currentText += PdfTextExtractor.GetTextFromPage(pdfReader, pageNum, strategy);
    

    附件

    iTextAsianCmaps.dll

    iTextAsian.dll

    Tags

    iTextSharp pdf

    iTextAsian.dll 2.1

    iTextAsian-all-2.1.zip

    Chinese 汉字 中文 日文 韩文

  • 相关阅读:
    MinkowskiPooling池化(上)
    稀疏张量基础
    稀疏张量网络
    英伟达TRTTorch
    闵可夫斯基引擎Minkowski Engine
    reactive和reactor
    today search
    today news 2020-8-8
    如何去写一本精品小书?
    today news
  • 原文地址:https://www.cnblogs.com/ohzxc/p/15622302.html
Copyright © 2011-2022 走看看