gpt4 book ai didi

Java使用标签打印机打印到特定页面大小

转载 作者:行者123 更新时间:2023-12-04 03:06:36 25 4
gpt4 key购买 nike

我正在尝试使用标签打印机(具体来说是 EPSON TM-T88V)来输出 PNG 图像。

我可以很好地打印它,除非我正在打印图像尺寸(再次具体为 220x175,72dpi),打印图像顶部有一团空白,我认为这是浪费纸张.

关于如何最大限度地减少纸张浪费,我有什么想法吗?我希望它只打印图像,尽量减少空白,然后裁 Papercut 张。

这是我的代码

    AttributeSet aset = new HashAttributeSet();
aset.add(new PrinterName(printerName, null));
/* locate a print service that can handle the request */
PrintService[] services = PrintServiceLookup.lookupPrintServices(DocFlavor.INPUT_STREAM.PNG, aset);

if (services.length >= 1) {
/* create a print job for the chosen service */
DocPrintJob pj = services[0].createPrintJob();

DocAttributeSet das = new HashDocAttributeSet();
das.add(PrintQuality.HIGH);
das.add(MediaSizeName.ISO_A7); // I know the problem is here somewhere. This Media size seems to work best currently

try {
/*
* Create a Doc object to hold the print data.
*/
Doc doc = new SimpleDoc(imageByteIs, DocFlavor.INPUT_STREAM.PNG, das);

/* print the doc as specified */
pj.print(doc, null);

} catch (PrintException e) {
System.err.println(e);
}
}

最佳答案

您可以通过以下方式找到可用的纸张尺寸:

PrintService printService = PrintServiceLookup.lookupDefaultPrintService();
Media[] res = (Media[]) printService.getSupportedAttributeValues(Media.class, null, null);
for (Media media : res) {
if (media instanceof MediaSizeName) {
MediaSizeName msn = (MediaSizeName) media;
MediaSize ms = MediaSize.getMediaSizeForName(msn);
float width = ms.getX(MediaSize.INCH);
float height = ms.getY(MediaSize.INCH);
System.out.println(media + ": width = " + width + "; height = " + height);
}
}

找到最适合您的纸张尺寸的可用 MediaSizeName 后,只需将其添加到 MediaSizeName.ISO_A7 的位置即可。

关于Java使用标签打印机打印到特定页面大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10951394/

25 4 0