小编Hen*_*ski的帖子

itext:如何调整文本提取?

我正在使用iText 5.5.8 for Java.遵循默认的,简单的文本提取程序,即

PdfTextExtractor.getTextFromPage(reader, pageNumber)
Run Code Online (Sandbox Code Playgroud)

我惊讶地发现,在输出几次失误,特别是所有的字母d的问世为Ø秒.

那么iText中的文本提取真的如何工作呢?是某种OCR吗?

我看了看引擎盖,试图掌握它是如何TextExtractionStrategy工作的,但我想不出多少.SimpleTextExtractionStrategy例如,似乎只是确定线条和空间的存在,而这TextRenderInfo是通过调用一些提供文本解码的方法GraphicsStatefont领域,这是据我可以去没有得到一个重大的偏头痛.

那么谁是我的男人?其中I类应该重写或参数我应该调整到能够告诉iText的:"嘿,你在阅读完所有d错!"

编辑:

样本PDF可以在http://www.fpozzi.com/stampastopper/download/找到,文件名是0116_LR.pdf对不起,无法共享直接链接.这是文本提取的一些基本代码

import java.io.File;
import java.io.IOException;

import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.parser.PdfTextExtractor;

public class Import
{

    public static void importFromPdf(final File pdfFile) throws IOException
    {
        PdfReader reader = new PdfReader(pdfFile.getAbsolutePath());

        try
        {

            for (int i = 1; i <= reader.getNumberOfPages(); i++)
            {
                System.out.println(PdfTextExtractor.getTextFromPage(reader, i));
                System.out.println("----------------------------------");
            }

        }
        catch (IOException e)
        {
            throw …
Run Code Online (Sandbox Code Playgroud)

text-extraction itext

3
推荐指数
1
解决办法
998
查看次数

标签 统计

itext ×1

text-extraction ×1