小票代码

package printer;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

public class PrinterOK {

private int fontMargin=0;

    private int margin =20;

    private int titleFontSize = 10;
    private int contentFontSize = 10;

    public int getContentFontSize() {
        return contentFontSize;
    }

    public void setContentFontSize(int contentFontSize) {
        this.contentFontSize = contentFontSize;
    }

    public int getTitleFontSize() {
        return titleFontSize;
    }

    public void setTitleFontSize(int titleFontSize) {
        this.titleFontSize = titleFontSize;
    }

    public int getMargin() {
        return margin;
    }

    public void setMargin(int margin) {
        this.margin = margin;
    }

    public int getFontMargin() {
        this.fontMargin += margin;
        return fontMargin;
    }

    public void setFontMargin(int fontMargin) {
        this.fontMargin = fontMargin;
    }

    public void outputImage() {
        BufferedImage image = new BufferedImage(300, 800,
                BufferedImage.TYPE_USHORT_GRAY);
        Graphics2D g = image.createGraphics();

        g.setBackground(new Color(255,255,255));
        g.setPaint(new Color(0,0,0));
        g.clearRect(0, 0, 300, 1000);   

 g.clearRect(0, 0, 220, 1000);   

        g.setColor(Color.BLACK); // 设置颜色
        g.setFont(new Font("宋体",Font.BOLD,15));//设置字体
        g.drawString("婷美摩力21产后恢复", 30, this.getFontMargin());

        g.setFont(new Font("宋体",Font.PLAIN,this.getTitleFontSize()));//设置字体

        //抬头开始
        this.margin = 15;
        g.drawString("单号:TM0001111708110952528660000", 10, this.getFontMargin());

        g.drawString("收营员:陆建", 10, this.getFontMargin());

        g.drawString("调理师:015", 10, this.getFontMargin());

        g.drawString("购买时间:2017-08-11 09::52:52", 10, this.getFontMargin());
        //抬头结束

        //划线开始
        this.margin = 20;
        int line = this.getFontMargin();
        g.drawLine(10, line, 280, line);
        //划线结束

        //内容开始

        //标题开始
        int titleMargin = this.getFontMargin()-10;

        g.drawString("服务名称", 10, titleMargin);
        g.drawString("数量", 120, titleMargin);
        g.drawString("单价", 150, titleMargin);
        g.drawString("金额", 190, titleMargin);
        //标题结束

        g.setFont(new Font("宋体",Font.PLAIN,this.getContentFontSize()));//设置字体
        //具体内容开始
        for (int i = 0; i < 10; i++) {
            int contentMargin = this.getFontMargin();
            g.drawString("臀部上提  美肤紧腹", 10, contentMargin);
            g.drawString("5", 110, contentMargin);
            g.drawString("¥4550", 140, contentMargin);
            g.drawString("¥22900", 185, contentMargin);
        }
        //具体内容结束
        //内容结束
        //划线开始
        line = this.getFontMargin()-10;
        g.drawLine(10, line, 280, line);
        //划线结束
        this.margin = 15;
        //尾部信息
        g.drawString("会员姓名:如花", 10, this.getFontMargin()-10);
        g.drawString("会员联系方式:1888888887", 10, this.getFontMargin()-10);
        g.drawString("服务项目数量", 10, this.getFontMargin()-10);
        g.drawString("应收金额:¥96800", 10, this.getFontMargin()-10);
        g.drawString("优惠金额:0", 10, this.getFontMargin()-10);
        g.drawString("支付方式:现金¥10000", 10, this.getFontMargin()-10);
        g.drawString("支付方式:银行卡¥9000", 10, this.getFontMargin()-10);
        g.drawString("支付方式:支付宝¥100", 10, this.getFontMargin()-10);
        g.drawString("支付方式:微信¥100", 10, this.getFontMargin()-10);
        g.drawString("支付方式:优惠券¥60", 10, this.getFontMargin()-10);
        g.drawString("找零¥0", 10, this.getFontMargin());

        this.getFontMargin();
        g.drawString("谢谢惠顾!!!", 10, this.getFontMargin());
//        image.flush();
        try {
            ImageIO.write(image, "png", new File("C:\\Users\\Administrator\\Desktop\\aaaa.png"));
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        g.dispose();
    }

    public static void main(String args[]) {
        new PrinterOK().outputImage();
//        new FrameTicket();
    }
}
时间: 2024-11-03 21:01:26

小票代码的相关文章

错误和问题解决的成本

问题描写叙述 错误 数据收集 根本原因 版本号   组件:数据修复           在一个实际成本组织中,(平均,先进先出,后进先出) 一个或更 多的下面情况可能发生: 1.导航到物料成本历史表单上的数量信息,与现有量表单的数量不匹配的记录 2. 一些物料前期已计成本的数量与前面的事务处理历史表单的数量不匹配 3. 全部的库存值报表与事务处理值报表不匹配 4. 存货层次成本更新表单的总数量与现有量数量表单不匹配(只在先进先出/后进先出) 5.这些症状的不论什么一个意味着 MMT-CQL不匹配

Android 如何通过代码绘制小票单据

2020-02-04 关键字:通过代码绘制POS机小票.快递单小票.收银小票.自定义绘制Bitmap 话不多说,直接上效果图: 这种收银小票,由于它的格式排版的多元化,是不可能有什么公用模板可以让我们只是简单地输入一些信息就自动生成并排版好的.它的本质就是一张张的图片. 我们需要将要打印的信息准备好,然后创建一张尺寸合适的空白图片,再在这张图片上像画画一样一点一点地将要打印的信息涂绘上去,最终成画.它的原理就是这么简单且粗暴.本篇文章所述功能的完整源码将于文末贴出. 而在 Android 中,我

超市/饭店等收据或者小票的生成代码

package com.chauvet.utils; import java.awt.Color; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStr

.net 调用小票打印机 打印票据

public class PrintInvoice     { #region 01.获得打印机1获得吧台打印机2获得后厨打印机 /// <summary> /// 获得打印机1获得吧台打印机2获得后厨打印机 /// </summary> public TcpClient GetPrint(int n = 1) { var client = new System.Net.Sockets.TcpClient(); var bll = new PrintAndPlaceBll(); v

浏览器打印58小票方法及限制

浏览器打印58小票 浏览器端的打印是极其普遍的一个应用场景,如票据.OA管理.应用文档笔记等的打印.随着基于云端管理的web应用越来越广泛,对于浏览器的打印需求会越来越多.小票打印就是近年来的一个新的浏览器打印应用. 浏览器打印的说明 PC端的每款浏览器都是支持打印功能的,很多的浏览器都对打印功能做了封装,打印时弹出的是预览对话框,如谷歌.360.百度等浏览.同时这些浏览器一般都提供选项,可以选择使用系统设置对话框.火狐则是直接使用的系统对话框(我比较喜欢这个). 在打印大纸张的文件时,直接弹出

qt实现小票打印

1.需求 需要实现订单结算后的小票打印,要求能打印商品数据和结算数据及将小票号打印成条码,退货或查询时能通过扫描枪扫描条码快速查询到订单信息 2.解决 1.通过将数据转化为html后调用qt进行打印,打印机无法打印img标签中的条码 2.通过将数据转化为html,将条码直接绘制的方法实现了需求 3.代码 Barcode.h // Barcode.h: interface for the CBarcode class. // // Copyright 2002 Neil Van Eps // //

转:C#并口热敏小票打印机打印位图

最近一直在研究并口小票打印机打印图片问题,这也是第一次和硬件打交道,不过还好,最终成功了. 这是DEMO的窗体: 下面是打印所需要调用的代码: [html] view plaincopy class LptControl { private string LptStr = "lpt1"; public LptControl(string l_LPT_Str) { LptStr = l_LPT_Str; } [StructLayout(LayoutKind.Sequential)] pr

iOS Bluetooth 打印小票(二)

在上一篇中介绍了打印小票所需要的命令,这一篇介绍Bluetooth连接蓝牙和打印小票的全过程. CoreBluetooth的封装 因为CoreBluetooth中的代理太多,而每一次操作又比较依赖上一次操作的结果,方法又比较零散,所以我做了粗略封装,把代理改成了block方式回调. 1.获取蓝牙管理单例 HLBLEManager *manager = [HLBLEManager sharedInstance]; __weak HLBLEManager *weakManager = manager

酷客多小程序新版发布:与微信卡券、小票打印等无缝对接

酷客多小程序商城系统更新了!酷客多小程序商城系统更新了!酷客多小程序商城系统更新了!重要的事情说3遍!这一次我们对原有版本做了全方位体验优化,从UI UE等方面对商家后台进行了体验式改善,使商家后台变得更加美观和易用.除此之外,还推出了"微信优惠券"和"小票打印"两个重要功能 ,已实现与微信卡券和小票打印机无缝对接,更便于品牌传播.具体的功能说明请见下文. 一.左侧导航菜单优化 1,调整了左侧栏目的显示顺序,显示顺序改为"店铺管理"-"