精华内容
下载资源
问答
  • 1.打印例子java打印中最关键的就是每一个绘图函数 g2.drawString(str, x, y ) 中的起点坐标(x,y)import java.awt.BasicStroke;import java.awt.Color;import java.awt.Component;import java.awt.Font;import java....

    1.打印例子

    java打印中最关键的就是每一个绘图函数 g2.drawString(str, x, y ) 中的起点坐标(x,y)

    import java.awt.BasicStroke;

    import java.awt.Color;

    import java.awt.Component;

    import java.awt.Font;

    import java.awt.Graphics;

    import java.awt.Graphics2D;

    import java.awt.Image;

    import java.awt.Toolkit;

    import java.awt.print.Book;

    import java.awt.print.PageFormat;

    import java.awt.print.Paper;

    import java.awt.print.Printable;

    import java.awt.print.PrinterException;

    import java.awt.print.PrinterJob;

    /**

    * 打印图片和文字

    *

    * @author wfg

    *

    */

    public class PrintSalesSlip implements Printable {

    /** */

    /**

    * @param Graphic指明打印的图形环境

    * @param

    * PageFormat指明打印页格式(页面大小以点为计量单位,1点为1英才的1/72,1英寸为25.4毫米。A4纸大致为595×842点)

    * @param pageIndex指明页号(80毫米:226.7点,58毫米:164.4)

    */

    public int print(Graphics gra, PageFormat pf, int pageIndex)

    throws PrinterException {

    Component c = null;

    // print string

    // 转换成Graphics2D

    Graphics2D g2 = (Graphics2D) gra;

    // 设置打印颜色为黑色

    g2.setColor(Color.black);

    // 打印起点坐标

    double x = pf.getImageableX();//返回与此 PageFormat 相关的 Paper 对象的可成像区域左上方点的 x 坐标。

    double y = pf.getImageableY();

    switch (pageIndex) {

    case 0:

    // 设置打印字体(字体名称、样式和点大小)(字体名称可以是物理或者逻辑名称)

    // Java平台所定义的五种字体系列:Serif、SansSerif、Monospaced、Dialog 和 DialogInput

    Font font = new Font("宋体", Font.PLAIN, 12);

    g2.setFont(font);// 设置字体

    // BasicStroke bs_3=new BasicStroke(0.5f);

    float[] dash1 = { 2.0f };

    // 设置打印线的属性。

    // 1.线宽 2、3、不知道,4、空白的宽度,5、虚线的宽度,6、偏移量

    g2.setStroke(new BasicStroke(0.5f, BasicStroke.CAP_BUTT,

    BasicStroke.JOIN_MITER, 2.0f, dash1, 0.0f));

    // g2.setStroke(bs_3);//设置线宽

    float fontHeigth1 = font.getSize2D();

    // -1- 用Graphics2D直接输出

    // 首字符的基线(右下部)位于用户空间中的 (x, y) 位置处

    //g2.drawLine(10,10,200,300);

    String str1 ="xxxxxxxxxxxxxxxxxx";

    g2.drawString(str1, (int)x, (int)y + fontHeigth1);

    String str2 = "139";

    g2.drawString(str2, (int)x, (int)y + fontHeigth1*2+10);

    Font font2 = new Font("宋体", Font.PLAIN, 9);

    g2.setFont(font2);// 设置字体

    g2.setStroke(new BasicStroke(0.5f, BasicStroke.CAP_BUTT,

    BasicStroke.JOIN_MITER, 2.0f, dash1, 0.0f));

    float fontHeigth2 = (int)font.getSize2D();

    int tempHeight = (int) (fontHeigth1*2+10);

    String str3 ="行行行行行行惺惺惜惺惺";

    g2.drawString(str3, (int)x, (int)y + fontHeigth2+10 +tempHeight);

    String str4 ="xxxxxxxxxxxxxx嘻嘻嘻";

    g2.drawString(str4, (int)x, (int)y + fontHeigth2*2+10 +tempHeight);

    String str5 ="新行行行行行行行行行";

    g2.drawString(str5, (int)x, (int)y + fontHeigth2*3+10 +tempHeight);

    String str6 ="惺惺相惜休息休息想";

    g2.drawString(str6, (int)x, (int)y + fontHeigth2*4+20 +tempHeight);

    String str7 ="xxxxxxxx";

    g2.drawString(str7, (int)x, (int)y + fontHeigth2*5+20 +tempHeight);

    String str8 ="xxxxxxxxxxxxxxxxx";

    g2.drawString(str8, (int)x, (int)y + fontHeigth2*6+20 +tempHeight);

    Image src = Toolkit.getDefaultToolkit().getImage("f:/barcode2.jpg");

    g2.drawImage(src, (int) x, (int)( y + fontHeigth2*6+50 +tempHeight+10),150,70, c);//打印条形码

    int img_Height = src.getHeight(c);

    int img_width = src.getWidth(c);

    return PAGE_EXISTS;

    default:

    return NO_SUCH_PAGE;

    }

    }

    public static void main(String[] args) {

    // 通俗理解就是书、文档

    Book book = new Book();

    // 设置成竖打

    PageFormat pf = new PageFormat();

    pf.setOrientation(PageFormat.PORTRAIT);

    /*static int LANDSCAPE

    原点位于纸张的左下方,x 的方向从下到上,y 的方向从左到右。

    static int PORTRAIT

    原点在纸张的左上方,x 指向右方,y 指向下方。

    static int REVERSE_LANDSCAPE

    原点位于纸张的右上方,x 的方向从上到下,y 的方向从右到左。 */

    //(页面大小以点为计量单位,1点为1英寸的1/72,1英寸为25.4毫米。A4纸大致为595×842点)

    // 通过Paper设置页面的空白边距和可打印区域。必须与实际打印纸张大小相符。

    Paper p = new Paper();

    ///

    System.out.println("1高:"+p.getHeight()+"-宽:"+p.getWidth());

    p.setSize(227, 300);// 纸张大小 设置此 Paper 对象的宽和高,它表示要用来打印的页面的属性

    p.setImageableArea(10, 10, 227, 300);//设置此 Paper 的可成像区域。

    //A4(595 X 842)设置打印区域,其实0,0应该是72,72,因为A4纸的默认X,Y边距是72

    System.out.println("2高:"+p.getHeight()+"-宽:"+p.getWidth());

    pf.setPaper(p);

    // 把 PageFormat 和 Printable 添加到书中,组成一个页面

    book.append(new PrintSalesSlip(), pf);

    // 获取打印服务对象

    PrinterJob job = PrinterJob.getPrinterJob();

    // 设置打印类

    job.setPageable(book);

    try {

    // 可以用printDialog显示打印对话框,在用户确认后打印;也可以直接打印

    boolean a=job.printDialog();

    if(a){

    //System.out.println(a);

    job.print();

    }

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    }

    2.打印中字符串换行

    思路:按像素来判断是否要换行,按字符串长度换行的话会有英文和汉子的问题,宽度不一样。

    int StrPixelWidth = metrics.stringWidth(str); //字符串长度(像素) str要打印的字符串

    int lineSize =(int) Math.ceil(StrPixelWidth*1.0/width);//要多少行

    //FontMetrics metrics = new FontMetrics(font) {};

    // Rectangle2D bounds = metrics.getStringBounds(str, null);

    // int widthInPixels = (int) bounds.getWidth();

    //System.out.println(StrPixelWidth+"---:");

    if(width < StrPixelWidth){//页面宽度(width)小于 字符串长度

    lineNum = (int) Math.ceil(StrPixelWidth*1.0/lineSize);//算出行数

    StringBuilder sb =new StringBuilder();//存储每一行的字符串

    int j=0;

    int tempStart = 0;

    String tempStrs[] =new String[lineSize];//存储换行之后每一行的字符串

    for(int i1 =0;i1

    char ch = str.charAt(i1);

    sb.append(ch);

    Rectangle2D bounds2 = metrics.getStringBounds(sb.toString(), null);

    int tempStrPi1exlWi1dth = (int) bounds2.getWidth();

    if(tempStrPi1exlWi1dth > width){

    tempStrs[j++] = str.substring(tempStart,i1);

    tempStart = i1;

    sb.delete(0, sb.length());

    sb.append(ch);

    }

    if(i1 == str.length()-1){//最后一行

    tempStrs[j] = str.substring(tempStart);

    }

    }

    展开全文
  • OutputStream类Java PrintStream.println打印自动换行定义public void println()public void println(boolean x)public void println(char x)public void println(int x)public void println(long...

    首页 > 基础教程 > IO流 > OutputStream类

    Java PrintStream.println打印自动换行

    定义

    public void println()

    public void println(boolean x)

    public void println(char x)

    public void println(int x)

    public void println(long x)

    public void println(float x)

    public void println(double x)

    public void println(char[] x)

    public void println(Object x)

    参数

    println参数可以是任何对象,同时也可以不需要传参数。

    实例

    public static void main(String[] args)

    {

    PrintStream ps = null;

    try

    {

    FileOutputStream fs = new FileOutputStream("G:/51gjie.txt");

    ps = new PrintStream(fs);

    ps.print("javaschool");

    ps.println(128);

    }

    catch(Exception e)

    {}

    finally

    {

    ps.close()

    }

    }

    1. PrintStream.println每次打印一次就加一个换行,回自动换行输出。

    2. println可以打印java基本类型的数据,作用和System.out.println差不多。

    版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。

    展开全文
  • JAVA输出内容打印到TXT以及不同系统中如何换行2011-08-25 17:27:55| 分类: Java技术 |字号 订阅1、输出内容到指定文件FileWriter fw = new FileWriter("D:\\xxx.txt");fw.write("第一行\r\n");fw.write("第二行\r\n...

    JAVA输出内容打印到TXT以及不同系统中如何换行

    2011-08-25 17:27:55|  分类: Java技术 |字号 订阅

    1、输出内容到指定文件

    FileWriter fw = new FileWriter("D:\\xxx.txt");

    fw.write("第一行\r\n");

    fw.write("第二行\r\n");

    fw.write("第二行\r\n");

    fw.close();

    2、获得换行符

    FileWriter fw = new FileWriter("D:\\xxx.txt");

    String str1 = "第一行"+System.getProperty("line.separator");

    String str2 = "第二行"+System.getProperty("line.separator");

    String str3 = "第三行"+System.getProperty("line.separator");

    fw.write(str1);

    fw.write(str2);

    fw.write(str3);

    fw.close();

    附:不同系统中的换行转义符

    windows下的文本文件换行符:\r\n

    linux/unix下的文本文件换行符:\r

    Mac下的文本文件换行符:\n

    展开全文
  • github上写bloghttp://www.elbow95.me/blog/My-First-Blog-Essay.html 阮一峰的: http://www.ruanyifeng.com/blog/2012/08/blo ...【The Expendables】团队博客目录站立式会议: •[alpha版本]第一次站立式会议 •...

    github上写blog

    http://www.elbow95.me/blog/My-First-Blog-Essay.html 阮一峰的: http://www.ruanyifeng.com/blog/2012/08/blo ...

    【The Expendables】团队博客目录

    站立式会议: •[alpha版本]第一次站立式会议  •[beta版本]冲刺计划                •[beta版本]冲刺总结 •[alpha版本]第二次站立式会议  •[beta版本]第 ...

    关于XML与类型Class的映射

    我们知道数据的持久化是编程必须面对的问题.我们可以保存数据到数据库.Excel表.XML文件.TXT文件等等.那么我们编程中经常会遇到对Xml文件的操作.在http://www.cnblogs.com ...

    PKU 1050-To The Max&lpar;找矩形内元素最大和)

    Given a two-dimensional array of positive and negative integers, a sub-rectangle is any contiguous s ...

    C&num;Linq技术中SelectMany&lpar;&period;&period;&period;&rpar;函数的内部实现的伪代码

    我们先来假设这种场景: 一个学校中有多个年级,一个年级有多个班级,一个班级里有多个学生.这里我们只需要班级.年级.和学生这三个概念: 让我们先来定义Class类和Student类: // 注意,Cla ...

    linux 内核参数优化

    Sysctl命令及linux内核参数调整   一.Sysctl命令用来配置与显示在/proc/sys目录中的内核参数.如果想使参数长期保存,可以通过编辑/etc/sysctl.conf文件来实现.   ...

    vue filter过滤器简单应用

    vue中过滤器,用于一些常见的文本格式化,用 | 来操作. 过滤器可以用在两个地方: 1.在{{}}双花括号中插入值 2.v-bind表达式中使用 {{ m ...

    Citrix XenApp工作原理

    Citrix XenApp™作为一种Windows®应用交付系统,可在数据中心集中管理应用,并将应用按需交付给身处各地.使用各种设备的用户.利用集成的应用虚拟化技术,XenApp克服了传统应用部署方法 ...

    QPainter、QPainterPath、QBrush

    参考资料: https://blog.csdn.net/qq_35488967/article/details/70802973https://blog.csdn.net/wanghualin033/ ...

    展开全文
  • //换行打印,输出之后会自动换行System.out.print();//不换行打印System.out.printf();//按格式输出0x02:输出示例public classtest {public static voidmain(String []args){System.out.println(1...
  • Java回车换行

    千次阅读 2011-02-07 16:45:00
    历史 ...但是,它有一个问题,就是打完一行换行的时候要用去0.2秒也就是打印两个字符的时间。假若,在这0.2秒时间里又有新的字符传过来,那么这个字符将丢失。于是,研制人员想了个办法解决这个问...
  • 我的代码打印两个限制之间的每个数字并求和.如何每10个数字打印一行?for (int i = nedreGrense; i <= øvreGrense; i++) {sum = sum + i;}for (int tallStreng = nedreGrense; tallStreng < øvreGrense; ...
  • 我发现这里解决了一些类似的问题,例如[here]在JLabel中使用int换行的问题,以及[here]如何为除最后一行以外的所有行附加换行符? ,还有其他几个,但似乎没有一个适合我。当打印到System.out时,它可以正常工作,...
  • 1.打印例子java打印中最关键的就是每一个绘图函数 g2.drawString(str, x, y ) 中的起点坐标(x,y)import java.awt.BasicStroke;import java.awt.Color;import java.awt.Component;import java.awt.Font;import java....
  • 1、【用syso打印及tw调试app】在制作软件的过程中,我们需要查看部分变量的数据来更好的调试我们的软件。我们可以用syso打印输出数据、tw弹出数据,当然syso只能是测试时查看到,测试→菜单,tw较于syso而言相对要...
  • java对象的内存分配 (1) 寄存器(register).这是最快的保存区域,这是主要由于它位于处理器内部.然而,寄存器的数量十分有限,所以寄存器是需要由编译器分配的.我们对此没有直接的控制权,也不可能在自己的程序里找到寄 ...
  • Java注释单行注释 使用 //多行注释 使用 /* */文档注释 使用 /** **/main方法Java程序入口,所有代码从main开始执行 快捷键psvm+Tab键public static void main(String[] args){}print是打印 println是换行打印 ...
  • JAVA输出内容打印到TXT以及不同系统中如何换行2011-08-25 17:27:55| 分类: Java技术 |字号 订阅1、输出内容到指定文件FileWriter fw = new FileWriter("D:\\xxx.txt");fw.write("第一行\r\n");fw.write("第二行\r\n...
  • java 怎么让打印信息换行

    千次阅读 2018-07-18 16:33:00
    System.out.println("账号=="+name+"\n"); System.out.println("密码=="+pwd+"\n"); 转载于:https://www.cnblogs.com/baxianhua/p/9330015.html
  • import java.util.LinkedList; public class PrintBinaryTreeByFloor { public static void main(String[] args) { // 初始化一颗二叉树 Node head = new Node(12); head.left = new No...
  • 1.打印例子 java打印中最关键的就是每一个绘图函数 g2.drawString(str, x, y ) 中的起点坐标(x,y) import java.awt.BasicStroke; import java.awt.Color; import java.awt.Componen...
  • Python 打印回车换行

    2021-03-19 12:01:36
    如果你对 Java 程序比较熟悉的话,你可能知道在 Java 中的回车换行是 \r\n。 当我们在 Python 中同时也使用 \r\n 的时候,我们可能会遇到输出的回车换行是 2 行了。 如上面程序运行的结果所示。 解决方案 ...
  • 打印一行 :好像不用嵌套循环,一个循环就能打印出来,我们只需要定义一个变量,然后用制表符"t"分割 ,那么打印5行即可,使用一个循环,循环5次,将变量循环一次加1,代码如下:由上面的运行效果可见...
  • 循环结构for循环 for(条件初始化;条件判断;条件变化){ 重复执行的代码; } for循环的执行流程: 1.条件初始化 2.条件判断 3.不满足条件结束循环,满足条件执行,执行循环体语句 4.... //打印10次,我是最帅的!...
  • 悬赏提问下,Java打印100以内的素数,要求5个一个换行,怎么实现?
  • j,能执行1次,所以第一行打印一个*,在打印换行。 //当i = 2,准备打印第二行,但是打印几列,内循环决定。j,能执行2次,所以第二行打印两个*,在打印换行。 //... for(int i = 1 ; i ; i++) {//外循环,执行5次 ...
  • java实现执行linux命令 并且把返回结果放到buffer 在jsp中打印换行
  • 问题场景:如果两个socket通信,一个socket用从键盘获取一行数据,再通过打印流输出到另外一个socket,另外一个socket使用BufferedReader#readLine就可以接收到数据。这是正常的。但是如果SocketChannel从键盘读取一...
  • 一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。后来,计算机发明了,这两个概念也就被般...
  • 思路是维护一个节点队列和两个节点引用last(上一行最后的元素...然后判断x是否是last,是则打印换行并将last指向nlast(开始下一行),否则普通打印。 文字描述不太清晰,结合程序走一遍就理解了。 package structur
  • 假如我们需要打印一个字符串100次。就需要把输出语句重复写100遍,这是相当繁琐的,为了解决这个问题,Java提供了一种称为循环(loop)的结构,用来控制一个操作或操作序列重复执行的次数,使用循环语句时,只要简单...
  • import java.util.Scanner; public class T { public static void main(String[] args) { System.out.println("输入:"); Scanner scanner = new Scanner(System.in); String str = scanner.nextLine(); ...
  • 猛年Discoimport java.util.Scanner;public class Prime{public static void main(String args[]){Scanner In=new Scanner(System.in);int m=In.nextInt();int n=In.nextInt();isprime(m,n);}public static void ...
  • 不要在源代码中保留tab字符,这是因为tab字符会随着不同用户的不同设置和不同的资源管理工具(打印、文档、版本控制等)而代表不同的宽度。尽量避免一行的长度超过80个字符,因为很多终端和工具不能很好处理之。注意:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 595
精华内容 238
关键字:

java打印换行

java 订阅