【问题标题】:Intercepting console output which originated from Tess4J拦截源自 Tess4J 的控制台输出
【发布时间】:2015-01-09 18:05:40
【问题描述】:

我正在尝试拦截使用Tess4J 时打印到我的屏幕上的红色Empty page!! 消息。我写了一个简短的拦截器类,它覆盖了printprintln 并替换了stdoutstderr 来检查这个字符串:

private static class Interceptor extends PrintStream {
    public Interceptor(OutputStream out) {
        super(out, true);
    }
    @Override
    public void print(String s) {
        if ( !s.contains("Empty page!!") )
            super.print(s);
    }
    @Override
    public void println(String s) {
        if ( !s.contains("Empty page!!") )
            super.println(s);
    }
}

我测试了这个类:它可以工作并抑制我写给stdoutstderr 的任何Empty page!!。我没有成功捕获来自Tess4JEmpty page!! 消息,该消息以红色打印到我的控制台。我的问题:我怎样才能拦截和抑制这条消息?

非常感谢。

【问题讨论】:

    标签: java stdout tesseract stderr tess4j


    【解决方案1】:

    您可能想要模拟 Tesseract 的 quiet 命令行选项,它具有 debug_file /dev/null

    api.setVariable("debug_file", "/dev/null");
    

    instance.setTessVariable("debug_file", "/dev/null");
    

    【讨论】:

    • 你好 nguyenq:首先,非常感谢Tess4J。这是一个很棒的程序。其次,您能告诉我更多关于变量api 的信息吗?谢谢!
    • 指低级TessAPI。您也可以使用高级别的。有关quiet 选项的更多信息。
    • 谢谢你,nguyenq。然而,我仍然很困惑。我尝试实现它,但它并没有改变任何输出。您能否提供一个简短的代码 sn-p 来说明如何实现它?非常感谢。
    • 你能附上一个输出“空页!!”的示例图像,我可以试试吗?谢了。
    • 我正在遍历一堆图像文件,其中一些是空的。我想避免所有“空页!!”输出。这是一个创建“空页面!!”的示例文件:dropbox.com/s/njppgbn5bwbnaui/193_351.jpg?dl=0 非常感谢您的帮助。
    猜你喜欢
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 2016-12-27
    • 1970-01-01
    • 2018-11-29
    • 2015-01-23
    • 2018-05-15
    相关资源
    最近更新 更多