【发布时间】:2017-05-20 13:14:45
【问题描述】:
有人知道如何将位图图像发送到打印机吗?我有一个特殊的食谱打印机,只能打印“.bmp”格式。至少手册中提到了这一点。
我尝试将打印作为不同的格式,但总是会出现一些哈希值..
import javax.print.*;
import javax.print.attribute.*;
import javax.print.attribute.standard.Copies;
import javax.print.attribute.standard.PrinterName;
import javax.print.attribute.standard.PrinterResolution;
public class PrintService {
private void printImage() {
try {
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
pras.add(new Copies(1));
PrintService printService = PrintServiceLookup.lookupDefaultPrintService();
DocPrintJob job = printService.createPrintJob();
String pathToImageSortBy = "logo.bmp";
InputStream logoInputStream = getClass().getClassLoader().getResourceAsStream(pathToImageSortBy);
DocAttributeSet das = new HashDocAttributeSet();
das.add(new PrinterResolution(203, 203, PrinterResolution.DPI));
Doc doc = new SimpleDoc(logoInputStream, DocFlavor.INPUT_STREAM.PNG, das);
job.print(doc, pras);
logoInputStream.close();
} catch (PrintException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
或者可能有人知道另一个第三方库可以做到这一点?
【问题讨论】:
-
DocFlavor.INPUT_STREAM.PNG似乎不适合 BMP? -
很遗憾没有。我尝试了列表中的所有格式,但输出行总是像“jhHjgHJh23kKkn..”
-
嗯,BMP 不在列表中,所以你必须自己创建一个。你试过
new DocFlavor.INPUT_STREAM("image/bmp")吗? -
PS:如果您添加打印机的型号/品牌,它可能会对您的问题有所帮助。以及描述其支持的格式的文档的链接。
-
是的,我尝试制作新的 DocFlavor,但收到“sun.print.PrintJobFlavorException: invalid flavor”
标签: java image printing bitmap bmp