`
xdoc
  • 浏览: 296349 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

纯java虚拟打印机

阅读更多
在项目中引入jpd.jar,示例代码如下:
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterException;

/**
 * 打印示例
 */
public class PrintDemo implements Printable {
    private static final long serialVersionUID = 1L;
    /**
     * printable接口实现
     */
    public int print(Graphics g, PageFormat pageFormat, int pageIndex) throws PrinterException {
        if (pageIndex < 9) {
            g.setColor(Color.BLUE);
            g.setFont(new Font("Tahoma", Font.ITALIC, 10));
            g.drawString("http://www.hgsql.com", 20, 50);
            g.setColor(Color.ORANGE);
            g.setFont(new Font("Tahoma", Font.PLAIN, 100));           
            g.drawString("第" + (pageIndex + 1) + "页", 20, 150);
            return Printable.PAGE_EXISTS;
        } else {
            return Printable.NO_SUCH_PAGE;
        }
    }
}

import javax.print.DocFlavor;
import javax.print.PrintException;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.ServiceUI;
import javax.print.SimpleDoc;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;

/**
 * 虚拟打印机
 * @author wanghg
 */
public class VPrinter {
    /**
     * @param args
     */
    public static void main(String[] args) {
        //声明JPD虚拟打印机
        try {
            Class.forName("com.hg.jpd.JpdPrintService");
        } catch (ClassNotFoundException e1) {
            e1.printStackTrace();
        }
        // 构建打印请求属性集
        PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
        // 设置打印格式
        DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.PRINTABLE;
        // 查找所有的可用打印服务
        PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras);
        // 定位默认的打印服务
        PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService();
        if (defaultService != null) {
            PrintService service = ServiceUI.printDialog(null, 200, 200,
                    printService, defaultService, flavor, pras);
            if (service != null) {
                try {
                    service.createPrintJob().print(new SimpleDoc(new PrintDemo(), flavor, null), pras);
                } catch (PrintException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}



  • 大小: 11.5 KB
  • jpd.jar (102.5 KB)
  • 下载次数: 400
分享到:
评论
4 楼 xdoc 2015-07-25  
willralfwill 写道
打出来是pint.jar,是什么东西啊?

结果就是一个jar,是一个桌面应用,可以执行
3 楼 willralfwill 2015-07-22  
打出来是pint.jar,是什么东西啊?
2 楼 zhuiyifengzhong 2013-06-13  
   PrintDemo 继承 Printable能不能直接打开一个指定的文件进行打印?
1 楼 chenjl 2010-11-13  
你好,请问一下关于JAVA监控打印机,是如何获取打印机返回的状态信息。
我的程序中使用swing和jasperreport.


谢谢!

相关推荐

    虚拟打印机

    虚拟打印机的一些实现可能依赖于Java平台,因此这个JRE可能用于支持某些虚拟打印机软件的运行。安装JRE是使用这些软件的必要条件,因为它提供了运行Java应用程序所需的库和组件。 “java.policy”文件是Java安全...

    虚拟打印机.开发人员用 C# java c++ vc PB

    在C#、Java、C++、Visual C++(VC)以及PowerBuilder(PB)等编程语言中,都可以实现虚拟打印机的开发。 首先,我们来深入了解虚拟打印机的工作原理。虚拟打印机实质上是一个驱动程序,它接收来自应用程序的打印...

    VirtualPrinter.v1.0.Source.Code.ccrun.360181.rar 虚拟打印机源码

    虚拟打印机是一种软件技术,它允许计算机用户将任何可打印文档转换为特定格式,例如PDF、JPEG或PNG,而无需实际的物理打印机硬件。这个压缩包"VirtualPrinter.v1.0.Source.Code.ccrun.360181.rar"包含了虚拟打印机的...

    java调用并口打印机

    3. **操作系统层面的解决方案**:在Windows系统中,可以通过创建虚拟打印机端口(例如,LP1)并将这个端口映射到并口打印机,然后使用Java的`java.awt.print.PrintService` API来选择这个虚拟打印机进行打印。...

    print_java实现查找打印机列表并打印_

    这些服务是`PrintService`对象,它们代表了系统的物理打印机或虚拟打印机。下面是一段示例代码: ```java import java.awt.print.*; public class PrinterList { public static void main(String[] args) { ...

    【收藏】SmartPrinter v3.4及v4.1 完美破解版

    这是本人使用的非常著名的虚拟打印机软件。经典的软件,不用多说。网上很流行 这里面有两个版本。都经过测试正常使用。似乎低版本效果更好些。但是后来一LODOP作者建议我使用:虚拟打印机Bullzip PDF Printer,下载...

    使用java实现,通过zpl指令调用 zebra打印机打印标签,含二维码及中文

    为了便于调试和测试,可以先将ZPL指令保存为文件,然后通过打印机的虚拟端口(如Windows的LPT1)进行预览。此外,还可以利用Zebra的EPL(Emulation Programming Language)作为替代,它同样支持二维码和中文打印,但...

    java print打印组件

    1. **PrintService**: 这是Java Print Service API的核心接口,代表一个实际的物理打印机或者虚拟打印机。你可以通过查找系统中的PrintService实例来选择合适的打印机进行打印。 2. **DocFlavor**: 这个类用于描述...

    FoxitPhantom_2.2.4.0225(带win7虚拟打印、带安装说明)特别版

    特别值得一提的是,它保留了“虚拟打印”功能,这一特性允许用户将任何可打印的文档转换为PDF格式,只需在打印设置中选择Foxit Phantom作为打印机即可。 "带Win7虚拟打印"意味着这款特别版是专门为Windows 7用户...

    斑马打印机(ZT210).docx

    接着,指定打印机接口为“USB001(USB虚拟打印机端口)”,并选择打印机型号为“ZDdesigner”的ZT210-200dpi ZPL版本。根据首次安装的情况选择相应的安装选项,通常第一次安装选择“创建新端口”,其他情况可选择...

    如何通过Java打印Word文档

    使用Spire.Doc for Java也可以通过虚拟打印机打印Word文档,下面是一个简单的示例代码: ```java import com.spire.doc.Document; import com.spire.ms.System.Drawing.Printing.PrinterSettings; public class ...

    Spring实现的一个打印机

    Spring框架是Java开发中广泛应用的开源框架,以其依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)的核心特性,极大地简化了企业级应用的开发工作。在这个“Spring实现的一...

    java串口通信.zip

    Java串口通信是一种在计算机与外部设备之间进行数据交换的技术,尤其适用于低速或中速的数据传输场景,如连接扫码枪、打印机等硬件设备。在本案例中,我们看到一个名为"java串口通信.zip"的压缩包,它可能包含了实现...

    SVG格式转PDF(java实现)-附件资源

    SVG格式转PDF(java实现)-附件资源

    java组件swing打印测试

    2. **`PrintService`**:在Java中,打印服务是通过`PrintService`接口表示的,它代表了实际的打印机或者虚拟打印机(如PDF生成器)。你可以使用`PrintServiceLookup`类查找可用的打印服务,并根据需要选择合适的...

    新建文件夹 (3).zip_JAVA打印_java实现打印小票

    为了确保打印效果正确,需要在开发过程中频繁测试,可以使用虚拟打印机或模拟打印功能进行调试。 通过以上知识点的了解和应用,你可以构建一个功能齐全、可定制内容的小票打印系统,适应各种商业场景的需求。记住...

    小票打印机new PrinterJobs() 核心方法

    你可以通过模拟打印机输出或使用支持虚拟打印机的库来测试代码。 最后,安全性也是需要考虑的一个方面。确保你的程序不会泄露敏感信息,如顾客数据或内部操作细节。遵循最佳实践,如及时关闭连接,防止未授权的访问...

    java知识点汇总

    泛型的泛化通常指的是继承关系,比如不同打印机可以处理不同类型的打印任务,体现了重载(Overloading)的概念。重写(Overriding)则是子类对父类的方法进行重新定义。 反射机制(Reflection)是Java语言中一个...

Global site tag (gtag.js) - Google Analytics