package com.kmall.common.utils.print.ticket.doc;

import javax.print.DocFlavor;
import javax.print.attribute.DocAttributeSet;
import javax.print.attribute.HashDocAttributeSet;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.OrientationRequested;

/**
 * 打印文档构造
 * 适用于{@link javax.print}
 *
 * @author Scott Chen
 * @since 1.0
 * 2018-10-29
 */
public class PrintAttributeBuilder {

    /**
     * 设置打印属性
     * 应用于当前打印任务全部文档
     *
     * @return
     */
    public PrintRequestAttributeSet buildPrintRequestAttributeSet() {
        // 设置打印属性
        PrintRequestAttributeSet printAttr = new HashPrintRequestAttributeSet();
        // 纵向打印, LANDSCAPE:横向,PORTRAIT:纵向
        printAttr.add(OrientationRequested.PORTRAIT);

        // 设置纸张大小,也可以新建MediaSizeName类来自定义大小
        printAttr.add(ThermalMediaSizeName.TP_80);

        return printAttr;
    }


    /**
     * 指定应用到{@link javax.print.DocPrintJob}打印数据的格式,
     * 支持文档,图片(jpg,gif等),url
     * 只应用于当前文档
     *
     * @return
     */
    public DocFlavor buildDocFlavor() {
        // 指定打印输出格式
        DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.PRINTABLE;
        return flavor;
    }

    /**
     * 设置打印文档属性
     * 只应用于当前文档
     *
     * @return
     */
    public DocAttributeSet buildDocAttributeSet() {
        // 打印文档属性
        DocAttributeSet docAttr = new HashDocAttributeSet();
        return docAttr;
    }


}
