java 控制打印机实现打印 String【】aa 字符串的数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 控制打印机实现打印 String【】aa 字符串的数据相关的知识,希望对你有一定的参考价值。

有个String【】 aa 数组,用 java 打印就像 自动取款机上 点一个按钮 直接打印出自己的单据,打印出一个80*600的长条纸张有谁会啊?

/**
* 这是一部分代码
*/
package com.mqney.barcode.tsc.templet;

import ookj.ui.pub.messagedailog.MessageDailog;

import com.mqney.barcode.tsc.TscBarcode;
import com.mqney.barcode.tsc.TscClearbuffer;
import com.mqney.barcode.tsc.TscCloseport;
//import com.mqney.barcode.tsc.TscSendcommand;
import com.mqney.barcode.tsc.TscWindowsfont;
import com.mqney.barcode.tsc.impl.TscBarcodeDefault;
import com.mqney.barcode.tsc.impl.TscOpenportDefault;
import com.mqney.barcode.tsc.impl.TscPrintlabelDefault;
import com.mqney.barcode.tsc.impl.TscSetupDefault;
import com.mqney.barcode.tsc.impl.TscWindowsfontDefault;
import com.mqney.barcode.util.ReadTscProperties;
import com.mqney.barcode.util.RunTscDllFunction;
import com.mqney.barcode.util.TextToParagraph;

/**
* @author pinkfloyd
*
*/
public class SonqaoReportPrint
public void init(SonqaoReportBean[] srbs)
tryif(srbs==null||srbs.length==0)
return;

int num = srbs.length;

/**
* DIRECTION可以,RSS、CIRCLE不行。
*/
// TscSendcommand ts = new TscSendcommand("DIRECTION 1,1");
// TscSendcommand ts = new TscSendcommand("RSS 300,300,\"UCC128CCC\",270,2,2,25,\"1234567890|ABCDEFG\"");
// TscSendcommand ts = new TscSendcommand("CIRCLE 40,16,10,2");
// rdf.RunDllFunctionTSC(ts);
for(int i=0; i<num; i++)
SonqaoReportBean srb = srbs[i];
if(srb==null)
continue;

RunTscDllFunction rdf = new RunTscDllFunction();
TextToParagraph ttp = new TextToParagraph();
MessageDailog md = new MessageDailog();
TscOpenportDefault tod = new TscOpenportDefault();
ReadTscProperties rtp = new ReadTscProperties();
tod.setPrinter(rtp.getValue(ReadTscProperties.TSC_REPORT_PATH));
rdf.RunDllFunctionTSC(tod);

TscSetupDefault tsd = new TscSetupDefault();
tsd.setLabelWidth("100");
tsd.setLabelHeight("70");
rdf.RunDllFunctionTSC(tsd);
TscClearbuffer tcb = new TscClearbuffer();
rdf.RunDllFunctionTSC(tcb);
TscWindowsfontDefault twd;
twd = new TscWindowsfontDefault(40,16,36,"单位:");
twd.setFontStyle(TscWindowsfont.FONT_STYLE_BOLD);
rdf.RunDllFunctionTSC(twd);
twd = new TscWindowsfontDefault(40,88,36,"姓名:");
twd.setFontStyle(TscWindowsfont.FONT_STYLE_BOLD);
rdf.RunDllFunctionTSC(twd);
twd = new TscWindowsfontDefault(40,152,36,"信息:");
twd.setFontStyle(TscWindowsfont.FONT_STYLE_BOLD);
rdf.RunDllFunctionTSC(twd);
twd = new TscWindowsfontDefault(40,216,36,"部门:");
twd.setFontStyle(TscWindowsfont.FONT_STYLE_BOLD);
rdf.RunDllFunctionTSC(twd);

String[] s0 = ttp.textToParaVoid(srb.getGongsi(), 40);
if(s0==null||s0.length==0)
md.showWarningMessage("getGongsi");
else
int num0 = s0.length;
for(int j=0; j<num0; j++)
twd = new TscWindowsfontDefault(140,16+(j*32),32,s0[j]);
// twd.setFontUnderline(TscWindowsfont.FONT_UNDERLINE_WITH);
rdf.RunDllFunctionTSC(twd);



twd = new TscWindowsfontDefault(140,80,40,srb.getXingming());
rdf.RunDllFunctionTSC(twd);

String[] s2 = ttp.textToParaVoid(srb.getXinxi(), 40);
if(s2==null||s2.length==0)
md.showWarningMessage("getXinxi");
else
int num2 = s2.length;
for(int j=0; j<num2; j++)
twd = new TscWindowsfontDefault(140,152+j*32,32,s2[j]);
// twd.setFontUnderline(TscWindowsfont.FONT_UNDERLINE_WITH);
rdf.RunDllFunctionTSC(twd);



String[] s3 = ttp.textToParaVoid(srb.getBumen(), 40);
if(s3==null||s3.length==0)
md.showWarningMessage("getBumen");
else
int num3 = s3.length;
for(int j=0; j<num3; j++)
twd = new TscWindowsfontDefault(140,216+j*32,32,s3[j]);
// twd.setFontUnderline(TscWindowsfont.FONT_UNDERLINE_WITH);
rdf.RunDllFunctionTSC(twd);



TscBarcodeDefault tbd;
tbd = new TscBarcodeDefault("216","360","48",srb.getBarcode());
tbd.setNarrowBarRatioX(TscBarcode.NARROW_BARRATIO_3);
tbd.setNarrowBarRatioY(TscBarcode.NARROW_BARRATIO_3);
rdf.RunDllFunctionTSC(tbd);

twd = new TscWindowsfontDefault(160,500,32,srb.getSonqao());
rdf.RunDllFunctionTSC(twd);

TscPrintlabelDefault tpd = new TscPrintlabelDefault();
tpd.setLabelCopies("1");
tpd.setLabelSets("1");
rdf.RunDllFunctionTSC(tpd);
TscCloseport tc = new TscCloseport();
rdf.RunDllFunctionTSC(tc);


catch(Exception e)
e.printStackTrace();


参考技术A http://hi.baidu.com/joinme/blog/item/b3cefec43f5929a98226ac90.html,你看看这个吧,主要是调用打印的API

java 打印出如下图案(菱形)

题目:

打印出如下图案(菱形)

程序分析:

先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重 for 循环,第一层控制行,第二层控制列。

代码部分:

 1 public class Prog18{
 2     public static void main(String[] args){
 3         int n = 5;
 4         printStar(n);
 5     }
 6     //打印星星
 7     private static void printStar(int n){
 8         //打印上半部分
 9         for(int i=0;i<n;i++){
10             for(int j=0;j<2*n;j++){
11             if(j<n-i)
12               System.out.print(" ");
13             if(j>=n-i && j<=n+i)
14               System.out.print("*");
15           }
16           System.out.println();
17         }
18         //打印下半部分
19         for(int i=1;i<n;i++){
20             System.out.print(" ");
21             for(int j=0;j<2*n-i;j++){
22                 if(j<i)
23               System.out.print(" ");
24             if(j>=i && j<2*n-i-1)
25               System.out.print("*");
26             }
27             System.out.println();
28         }
29     }
30 }

 

运行结果:

     *
    ***
   *****
  *******
 *********
  *******
   *****
    ***
     *

 

以上是关于java 控制打印机实现打印 String【】aa 字符串的数据的主要内容,如果未能解决你的问题,请参考以下文章

java反射调用System.out.println实现控制台打印

Java多线程循环打印ABC的5种实现方法

Java 如何让字符串按规定的字符编码打印出来

多线程 实现控制台打印“我爱你”10遍

Java实现调用Bartender控制条码打印机

java怎么实现打印机打印