`
1308706231
  • 浏览: 4273 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA打印

    博客分类:
  • java
 
阅读更多
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
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics