「java针式打印机」javaweb调用打印机

博主:adminadmin 2022-12-20 13:09:06 72

本篇文章给大家谈谈java针式打印机,以及javaweb调用打印机对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java 怎么调用tess4j

网上传的代码示例大多是在Windows下安装Tesseract ORC后通过CMD命令操作进行图识别操作.而 Tess4j 针对Tesseract 提供了JNI支持,同时还提供了一些图片操作的工具类,提供比如图片放大,旋转,黑白处理,锐化 等用来提高识别率的操作.操作十分方便. Tess4j 简单到超乎想象,只是自己在使用环境比较特殊,遇到很多问题,这里一一道来.

1 依赖包.

tess4j.jar   Tess4j的本尊,用于Tesseract 的JNA支持,并提供相关操作工具类

jna.jar       看到Tesseract 的第一反应是要用cmd或JNI来操作它,了解了一下 Tess4j 使用的JNA,有点JNI高级版的感觉,CMD什么的,玩蛋蛋去吧.

jai_imageio.jar   图片操作的工具类,支持Tiff就靠它了. 它的 META-INF 里有文章,这个后面详说.

还有其它几个包,是用于操作PDF用的吧,没有引用,也没有发生错误.所以的包可以在 Tess4j 的文件目录里面找到.

2 操作代码.

官方的示例中给出了一个超级简单有效的示例,不足20行代码!!!我和小伙伴们都被震惊了!!!关键代码如下:

Java代码  收藏代码

File imageFile = new File("eurotext.tif");

Tesseract instance = Tesseract.getInstance();  // JNA Interface Mapping

String result = instance.doOCR(imageFile);

实际使用中为了提高识别率还要对图片作一些处理来提高识别率,使用Tess4j 自带的工具类即可完成,这样识别率就大大的提高了.( 这里无法解决 验证码 中干扰线问题,干扰线的清理,网上有其它方式处理 )

Java代码  收藏代码

// 这里对图片黑白处理,增强识别率.这里先通过截图,截取图片中需要识别的部分

BufferedImage textImage = ImageHelper.convertImageToGrayscale(ImageHelper.getSubImage(panel.image, startX, startY, endX, endY));

// 图片锐化,自己使用中影响识别率的主要因素是针式打印机字迹不连贯,所以锐化反而降低识别率

// textImage = ImageHelper.convertImageToBinary(textImage);

// 图片放大5倍,增强识别率(很多图片本身无法识别,放大5倍时就可以轻易识,但是考滤到客户电脑配置低,针式打印机打印不连贯的问题,这里就放大5倍)

textImage = ImageHelper.getScaledInstance(textImage, endX * 5, endY * 5);

3 使用中遇到的问题

3.1 相关DLL文件,相关字库文件

liblept168.dll,libtesseract302.dll 其中 liblept168.dll 要先加载.

tessdata 存放的是字库文件,如果需要数字,英文以外的支持需要 Tesseract 页面下载相关字库.

因为公司使用时是将文件打成Jar布署,然后提供客户端下载,所以就把以上两个文件一起打进tess4j.jar里面,然后客户端使用时 tessdata 直接可用,而 liblept168.dll,libtesseract302.dll 需要释放到临时目录然后加载.相关代码:

编码创建一个打印机类Printer,定义方法print(),针式打印机类DotMatriPrinte(用Java)

public class Printer{

public void print()

{

///你的代码

}

}

public class DotMatriPrinte extends Printer {

@Override

public void print()

{

///你的代码

}

}

java程序设计:创建一个打印类Printer,定义抽象方法print();

public abstract class Printer {

public abstract void print();

}

class A extends Printer{

@Override

public void print() {

System.out.println("-----AAAAAAAAAA------");

}

}

class B extends Printer{

@Override

public void print() {

System.out.println("-----BBBBBBBBBB------");

}

}

class C extends Printer{

@Override

public void print() {

System.out.println("-----CCCCCCCCCC------");

}

}

class Test{

public static void main(String[] args) {

Printer Aprinter = new A();

Aprinter.print();

Printer Bprinter = new B();

Bprinter.print();

Printer Cprinter = new C();

Cprinter.print();

}

}

java + ireport 打印。预览PDF后点击打印.使用针孔打印机打印(DPK300),列表中的字体很模糊求助

你可以把ireport的字体设置粗一点。然后再打印试试。

如果还是不行的话,我觉得跟这种针式打印机有关系了,你换个非针式打印机应该就没有这个问题。

或者看看那个针式打印机的说明,尝试调整一下针式打印机打印的点密度试试看。

关于java针式打印机和javaweb调用打印机的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-20,除非注明,否则均为首码项目网原创文章,转载请注明出处。