拦截源自Tess4J的控制台输出

时间:2014-11-12 19:05:06

标签: java stdout tesseract stderr tess4j

我正在尝试拦截使用Empty page!!时打印到我的屏幕的红色Tess4J消息。我编写了一个简短的拦截器类,它覆盖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);
    }
}

我测试了这个类:它可以工作并抑制我写给Empty page!!stdout的任何stderr。我没有成功捕获来自Empty page!!的{​​{1}}消息,但是以红色打印到我的控制台。我的问题:如何拦截和压制此消息?

非常感谢。

Screenshot Eclipse

1 个答案:

答案 0 :(得分:2)

您可能希望模拟Tesseract的quiet命令行选项,该选项包含debug_file /dev/null

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

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