栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java:将程序输出打印到物理打印机

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java:将程序输出打印到物理打印机

因此,我找到了一种最适合我的情况的方法,并且我认为我只发布它的内容,以防对任何人有用。

该解决方案的基础是Java确实拥有自己的完整版(至少与我的版本相比)printDialog
popUp,它具有超出我所需的功能(页面布局编辑,预览等),使用它所需要做的就是一个实现Printable的对象,并且在该对象内您可以创建图形并绘制文档。

我只需要绘制我的输出String即可,而且很容易做到,我什至找到了StringReader,所以我可以天真地停止编写文件只是为了将我的输出保存在BufferedReader中。

这是代码。有两部分,方法和绘制图像的类:

方法:

private void printToPrinter(){    String printData = Calculationtextarea.getText() + "n" + Specifictextarea.getText();    PrinterJob job = PrinterJob.getPrinterJob();    job.setPrintable(new OutputPrinter(printData));    boolean doPrint = job.printDialog();    if (doPrint)    {         try         { job.print();        }        catch (PrinterException e)        { // Print job did not complete.        }    }}

这是打印文档的类:

public class OutputPrinter implements Printable {    private String printData;    public OutputPrinter(String printDataIn)    {    this.printData = printDataIn;    }@Overridepublic int print(Graphics g, PageFormat pf, int page) throws PrinterException{    // Should only have one page, and page # is zero-based.    if (page > 0)    {        return NO_SUCH_PAGE;    }    // Adding the "Imageable" to the x and y puts the margins on the page.    // To make it safe for printing.    Graphics2D g2d = (Graphics2D)g;    int x = (int) pf.getImageableX();    int y = (int) pf.getImageableY(); g2d.translate(x, y);    // Calculate the line height    Font font = new Font("Serif", Font.PLAIN, 10);    FontMetrics metrics = g.getFontMetrics(font);    int lineHeight = metrics.getHeight();    BufferedReader br = new BufferedReader(new StringReader(printData));    // Draw the page:    try    {        String line;        // Just a safety net in case no margin was added.        x += 50;        y += 50;        while ((line = br.readLine()) != null)        { y += lineHeight; g2d.drawString(line, x, y);        }    }    catch (IOException e)    {        //     }    return PAGE_EXISTS;}}

无论如何,这就是我解决这个问题的方法!希望对某人有用!



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/453258.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号