import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintException;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;
import javax.print.attribute.DocAttributeSet;
import javax.print.attribute.HashDocAttributeSet;
import javax.print.attribute.HashPrintRequestAttributeSet;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
public class PrintQrCode {
private static final Integer WIDTH=200;
private static final Integer HEIGHT=200;
private void print(File file) throws WriterException, IOException, PrintException {
HashPrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
DocFlavor flavor = DocFlavor.INPUT_STREAM.PNG;
PrintService defaultService = PrintServiceLookup
.lookupDefaultPrintService();
DocPrintJob job = defaultService.createPrintJob(); // 创建打印作业
Object fis = new FileInputStream(file); // 构造待打印的文件流
DocAttributeSet das = new HashDocAttributeSet();
Doc doc = new SimpleDoc(fis, flavor, das);
job.print(doc, pras);
}
/**二维码打印*/
public Boolean printQRCode(String code,String filePath) {
try {
String format = "png";
Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
BitMatrix bitMatrix = new MultiFormatWriter().encode(code,
BarcodeFormat.QR_CODE, WIDTH, HEIGHT, hints);
File outputFile = new File(filePath);
MatrixToImageWriter.writeToFile(bitMatrix, format, outputFile);
print(outputFile);
return true;
} catch (WriterException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (PrintException e) {
e.printStackTrace();
}
return false;
}
}
来源http://www.oschina.net/question/2274641_193386
分享到:
相关推荐
非常好用的java打印组件非常好用的java打印组件非常好用的java打印组件
java打印测试程序!java打印测试程序!java打印测试程序!
用java打印近似圆,疯狂java第四章习题3
java6打印插件,如果不行就安装java8安装工具
java 打印excel
java打印五角星for循环,for循环各种运用,镶嵌if语句,帮助大家更好的学习。
用java 打印目录下所有文件名称 包括子目录, 默认目录 "C:/" 打印完 目录列表 输出在 选择的根目录的 "path/TestResultList.txt" 文件夹里。
很不错的java打印程序,内有java打印及java定位打印,值得拥有.
Java web 打印,Java pdf打印,Java打印
java 打印出100以内的素数
java 打印任意一年日历 java 打印任意一年日历
使用JAVA打印小票的方法,可以参考下。
Java打印统一管理,类似Android的日记打印管理类。
java打印输入框的文字,供各位大侠下载应用。
用java编程实现杨辉三角的打印,这是一道常见的java考试题目。
输入一个路径,如果该路径是一个文件,打印文件,否则如果是目录, 打印目录名,并且打印该目录下所有文件
java 打印pdf文件 ,也可支持批量打印
自定义小票打印,通过打印机名称打印,设置纸张大小,分辨率问题
帮学弟解决小问题 java 打印三角 运用循环的小知识
用Java打印等腰三角形的源码及图形解说等