我在JSP页面上需要自动刷新,得到文本,并自动把文本打印出来。
一、得到文本(字符串);
二、利用JAVA来自动打印。(不弹出打印框)如下是我的自动打印的函数,各位大佬帮忙看一下:希望打印出html的效果来,但实际过程中的打印public int printText(String content)
  throws Exception{   //content 来自网页上的组合字符串,如<font size=6>测试和打印</font><br>print_test
  content  = "<font size=6>测试和打印</font><br>print_test";
  int printFlag =0; //打印标志清零    byte[] b = content.getBytes();
    InputStream in = new ByteArrayInputStream(b);    //指定打印输出格式
    //DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;//可用的STRING.TEXT_HTML
    DocFlavor flavor = DocFlavor.INPUT_STREAM.TEXT_HTML_HOST;    //定位默认的打印服务
    PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService();    if (!defaultService.isDocFlavorSupported(flavor)){
     System.err.println("打印机不支持这种格式");
    }
    try
    {      DocPrintJob job = defaultService.createPrintJob();//创建打印作业
      Doc doc = new SimpleDoc(in, flavor, null);//建立打印文件格式,指定打印内容
      job.print(doc, null); //进行每一页的具体打印操作      in.close();
      printFlag=1;    }catch(Exception pe){
      printFlag=0;
      pe.printStackTrace();
      return printFlag;
    }
  }
  return printFlag;
}
可能关键在于这里:
DocFlavor flavor = DocFlavor.INPUT_STREAM.TEXT_HTML_HOST;如果直接打印,总是连超文本的代码一起打印,郁闷!!感谢大人了!

解决方案 »

  1.   

    你用注释掉的  那个AUTOSENSE  可以么?
      

  2.   

    不行啊,用AUTOSENSE  的话,就直接打印所有的字符了(连<font …………  都打印了) 。老哥,帮我调试看看,好吗?
      

  3.   

    用这个类型的时候,打印的时候报这个错误了:sun.print.PrintJobFlavorException: invalid flavor
      

  4.   

    我觉得你应该先用html包对html代码进行解析,然后把解析的结果转换成一种内存图片,然后再通过打印机打印出来,基本上所有打印机都支持图片打印的,但是支持文字打印的打印机很少。
      

  5.   

    不好意思.我这里没有打印机不能帮你测试.    不过我建议你.. 你的 content 本来就是 String的..
     你就用DocFlavor.STRING.TEXT_HTML   这个不行么?   还有 可以用 DocFlavor.BYTE_ARRAY这个里面的试试..
      

  6.   


    直接打印DocFlavor.STRING.TEXT_HTML  ,也是不行。
    哥们再帮忙看看好不?
    你不用打印机的,只需要随便装个打印机的驱动,可调试 ,看有没有报错。
    麻烦你们了。感谢
      

  7.   

    我还有一个思路:就是把结果输出到一个新的页面上,这样就相当于所见即所得的第一步了,
    然后使用JS来调用windows的打印功能,但总是弹出打印对话框,大人有没有好办法让打印框不出现呢???