我会尽量直接解释,英语不是我的第一语言=)。
我有一台热敏打印机Epson TM-20,我通过USB将它安装在我的电脑上,我可以从'Windows>打印页面测试设备和打印机'。我正在开发一个使用Java在该打印机上打印报告的软件,在这种情况下我必须通过Windows发送报告,这意味着使用打印机的名称,如下所示:
PrintService ps = getPrintService("EPSON TM-T20");
DocPrintJob docPrint = null;
docPrint = ps.createPrintJob();
docPrint.getPrintService();
InputStream stream = new ByteArrayInputStream(out.toByteArray());
DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
Doc doc = new SimpleDoc(stream, flavor, null);
docPrint.print(doc, getAtributoSet());
public static PrintRequestAttributeSet getAtributoSet() {
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(OrientationRequested.PORTRAIT);
aset.add(new JobName("Report 1", null));
aset.add(new Copies(1));
return aset;
}
这段代码有效......然后我也得到了一个QrCode,就像那样:
String qrCodeText= "http://stackoverflow.com/questions/ask";
int size = 125;
String fileType = "png";
File qrFile = new File(filePath);
createQRImage(qrFile, qrCodeText, size, fileType);
在此之后,我在变量qrFile中有一个“png”图像。
我想打印这个...
----------- / N
我的标题/ n
嗨,我在这里解释/ n
Qr代码如下./n
----------- / N
“”来自qrFile的图像QRCODE“”“
----------- / N
我的页脚/ n
谢谢你的帮助!! / n
----------- / N
感谢您的时间!
答案 0 :(得分:0)
@AlexR 这个。
private static void createQRImage(File qrFile, String qrCodeText, int size,
String fileType) throws WriterException, IOException {
// Create the ByteMatrix for the QR-Code that encodes the given String
Hashtable hintMap = new Hashtable();
hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
QRCodeWriter qrCodeWriter = new QRCodeWriter();
BitMatrix byteMatrix = qrCodeWriter.encode(qrCodeText,
BarcodeFormat.QR_CODE, size, size, hintMap);
// Make the BufferedImage that are to hold the QRCode
int matrixWidth = byteMatrix.getWidth();
BufferedImage image = new BufferedImage(matrixWidth, matrixWidth,
BufferedImage.TYPE_INT_RGB);
image.createGraphics();
Graphics2D graphics = (Graphics2D) image.getGraphics();
graphics.setColor(Color.WHITE);
graphics.fillRect(0, 0, matrixWidth, matrixWidth);
// Paint and save the image using the ByteMatrix
graphics.setColor(Color.BLACK);
for (int i = 0; i < matrixWidth; i++) {
for (int j = 0; j < matrixWidth; j++) {
if (byteMatrix.get(i, j)) {
graphics.fillRect(i, j, 1, 1);
}
}
}
ImageIO.write(image, fileType, qrFile);
}
虽然我也有这个,但是要创建qrCode:
ByteArrayOutputStream out = QRCode.from(urlQrCode).to(ImageType.PNG).withSize(250, 250).stream();
最后一个我使用zxing中的qrGen库...