在项目中引入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
分享到:
相关推荐
虚拟打印机的一些实现可能依赖于Java平台,因此这个JRE可能用于支持某些虚拟打印机软件的运行。安装JRE是使用这些软件的必要条件,因为它提供了运行Java应用程序所需的库和组件。 “java.policy”文件是Java安全...
在C#、Java、C++、Visual C++(VC)以及PowerBuilder(PB)等编程语言中,都可以实现虚拟打印机的开发。 首先,我们来深入了解虚拟打印机的工作原理。虚拟打印机实质上是一个驱动程序,它接收来自应用程序的打印...
虚拟打印机是一种软件技术,它允许计算机用户将任何可打印文档转换为特定格式,例如PDF、JPEG或PNG,而无需实际的物理打印机硬件。这个压缩包"VirtualPrinter.v1.0.Source.Code.ccrun.360181.rar"包含了虚拟打印机的...
3. **操作系统层面的解决方案**:在Windows系统中,可以通过创建虚拟打印机端口(例如,LP1)并将这个端口映射到并口打印机,然后使用Java的`java.awt.print.PrintService` API来选择这个虚拟打印机进行打印。...
这些服务是`PrintService`对象,它们代表了系统的物理打印机或虚拟打印机。下面是一段示例代码: ```java import java.awt.print.*; public class PrinterList { public static void main(String[] args) { ...
这是本人使用的非常著名的虚拟打印机软件。经典的软件,不用多说。网上很流行 这里面有两个版本。都经过测试正常使用。似乎低版本效果更好些。但是后来一LODOP作者建议我使用:虚拟打印机Bullzip PDF Printer,下载...
为了便于调试和测试,可以先将ZPL指令保存为文件,然后通过打印机的虚拟端口(如Windows的LPT1)进行预览。此外,还可以利用Zebra的EPL(Emulation Programming Language)作为替代,它同样支持二维码和中文打印,但...
1. **PrintService**: 这是Java Print Service API的核心接口,代表一个实际的物理打印机或者虚拟打印机。你可以通过查找系统中的PrintService实例来选择合适的打印机进行打印。 2. **DocFlavor**: 这个类用于描述...
特别值得一提的是,它保留了“虚拟打印”功能,这一特性允许用户将任何可打印的文档转换为PDF格式,只需在打印设置中选择Foxit Phantom作为打印机即可。 "带Win7虚拟打印"意味着这款特别版是专门为Windows 7用户...
接着,指定打印机接口为“USB001(USB虚拟打印机端口)”,并选择打印机型号为“ZDdesigner”的ZT210-200dpi ZPL版本。根据首次安装的情况选择相应的安装选项,通常第一次安装选择“创建新端口”,其他情况可选择...
使用Spire.Doc for Java也可以通过虚拟打印机打印Word文档,下面是一个简单的示例代码: ```java import com.spire.doc.Document; import com.spire.ms.System.Drawing.Printing.PrinterSettings; public class ...
Spring框架是Java开发中广泛应用的开源框架,以其依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)的核心特性,极大地简化了企业级应用的开发工作。在这个“Spring实现的一...
Java串口通信是一种在计算机与外部设备之间进行数据交换的技术,尤其适用于低速或中速的数据传输场景,如连接扫码枪、打印机等硬件设备。在本案例中,我们看到一个名为"java串口通信.zip"的压缩包,它可能包含了实现...
SVG格式转PDF(java实现)-附件资源
2. **`PrintService`**:在Java中,打印服务是通过`PrintService`接口表示的,它代表了实际的打印机或者虚拟打印机(如PDF生成器)。你可以使用`PrintServiceLookup`类查找可用的打印服务,并根据需要选择合适的...
为了确保打印效果正确,需要在开发过程中频繁测试,可以使用虚拟打印机或模拟打印功能进行调试。 通过以上知识点的了解和应用,你可以构建一个功能齐全、可定制内容的小票打印系统,适应各种商业场景的需求。记住...
你可以通过模拟打印机输出或使用支持虚拟打印机的库来测试代码。 最后,安全性也是需要考虑的一个方面。确保你的程序不会泄露敏感信息,如顾客数据或内部操作细节。遵循最佳实践,如及时关闭连接,防止未授权的访问...
泛型的泛化通常指的是继承关系,比如不同打印机可以处理不同类型的打印任务,体现了重载(Overloading)的概念。重写(Overriding)则是子类对父类的方法进行重新定义。 反射机制(Reflection)是Java语言中一个...