纯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();
}
}
}
}
}


[img]http://dl.iteye.com/upload/attachment/327713/aab7aeaf-8dc7-31ec-ab1f-67fb7efde4f5.png[/img]
Java调用并口打印机的实现与解决方案 JNI 是 Java 提供的一套本地接口规范,它允许 Java 程序调用 C/C++ 编写的本地代码,也支持本地代码回调 Java 方法。通过 JNI,Java 可以突破 JVM 的限制,访问操作系统底层资源,例如硬件端口、系统调用等。JNI 的调用流程如下:graph TDA[Java程序] --> B(调用native方法)B --> C{JVM查找本地库}C -->|找到| D[加载.so或.dll文件]D --> E[调用C/C++函数]E --> F[操作硬件或系统资源] 阅读详情

相关推荐

调用虚拟打印机,文件转pdf

文件中包含 itextsharp.dll 操作pdf的组件 Interop.ACAWebThumbLib.dll 把web page保存为image的组件 还有就是调用虚拟打印机Bullzip printer转换pdf的源码

java调用打印机的两种方式

一、用java中自带的PrintServiceLookup实现 import javax.imageio.ImageIO; import javax.print.*; import javax.print.attribute.HashPrintRequestAttributeSet; import javax.print.attribute.PrintRequestAttributeSet; ...

雾朦胧 2万+

doppdf虚拟打印机

将可打印的文件转换成PDF格式,方便阅读

java打印word_如何通过Java打印Word文档

这篇文章主要介绍了如何通过Java打印Word文档,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下Java 打印Word文档本文介绍如何在Java程序中通过物理打印机和虚拟打印机来打印Word文档的方法。文中使用了类库Spire.Doc for Java,可通过官网下载jar文件并导入程序或者直接通过maven仓库安装导入。【示例1】通过物理打印机...

weixin_32063287的博客 1021

从模组到集装箱:手把手拆解一个储能BMS的软硬件架构设计与通信组网

本文深入解析储能BMS的软硬件架构设计与通信组网,从电芯采样到系统集成的全链条技术实现。详细介绍了三级硬件架构(AFE、CMU、BMU)的设计要点,以及软件分层实现中的驱动层、应用层核心算法和通信协议栈。通过实战案例分享CAN网络搭建、调试工具链和系统验证测试经验,为储能系统开发提供实用指导。

weixin_30752699的博客 464

PySpark机器学习生产化陷阱:跨节点依赖问题的7种解决方案

隐式依赖陷阱使用ldd解决方案:在基础镜像中预装和路径冲突终极解法依赖树瘦身技巧用conda-tree可减少40%环境体积PySpark机器学习生产化的核心矛盾在于分布式环境的确定性与灵活性不可兼得。轻量级方案(1-3)牺牲一致性换取灵活性重量级方案(4-6)牺牲灵活性换取确定性混合方案(7)针对特殊场景补充正如某AI平台架构师所言:“环境一致性不是技术问题,而是工程纪律问题选择适合团队当前阶段的方案,建立严格的依赖管理流程,才能让PySpark真正扛起生产环境的大旗。

datacanvas2426的博客 911

Java静默调用虚拟打印机_静默虚拟打印机BullzipPDFPrinter

上下文作为一个开发或测试人员,当软件中有打印功能,我们为了节省纸张,保护大自然,经常会使用虚拟打印机进行测试,比如 Win10 系统中的 Microsoft Print to PDF。但是,系统自带的虚拟打印机需要烦人的交互操作,比如选择 PDF 文档保存的位置和文件名,这种重复的工作,绝对不能忍受,尤其是测试“批量打印”这种功能。想想看,当我要批量打印100个文档,下面截图的操作要进行100次!...

weixin_35174422的博客 1158

告别手动!用Python+CATIA V5/V6自动生成三视图和标题栏(附完整代码)

本文详细介绍了如何利用Python和CATIA V5/V6实现工程图自动生成,包括三视图布局和标题栏填写。通过COM接口调用和智能算法,系统能自适应不同尺寸模型,大幅提升设计效率。附完整代码和部署方案,帮助团队实现从手动到自动化的转变。

weixin_42699679的博客 354

java 虚拟打印机_纯java虚拟打印机

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 Prin...

weixin_39676930的博客 713

RC正弦波振荡电路实验全解析:如何通过调节电容电阻改变输出频率

本文深入解析RC正弦波振荡电路,重点阐述如何通过调节电容和电阻来精确改变输出频率。文章从文氏桥振荡电路的核心原理出发,详细介绍了电容粗调频段与电阻微调频率的实操策略,并分析了元件误差、寄生参数等对实测频率的影响,为电路设计与调试提供了从理论到实践的完整指南。

yhn456789的博客 1114

Pytorch实现EdgeCNN(基于PyTorch实现)

本专栏整理了《图神经网络代码实战》,内包含了不同图神经网络的相关代码实现(PyG以及自实现),理论与实践相结合,如GCN、GAT、GraphSAGE等经典图网络,每一个代码实例都附带有完整的代码。

优快云 精品推荐 1万+

java 实现虚拟打印机_java – 确定打印机的便携方式是物理的还是虚拟的

好的,这是我到目前为止所发现的(这不是一个详尽无遗的测试,但尝试和解决这个问题是一个有趣的问题).通过查看PrinterJob类中的validatePage()方法是如何工作的,似乎可能会有一些帮助.似乎如果打印机作业是虚拟的,那么任何设置页面的尝试ImageableArea将始终返回一个完全等于默认页面ImageableArea的值,而尝试与真实打印机相同的值将返回略小的值(以考虑到打印机机制所...

weixin_31885729的博客 514

预测股票价格趋势:使用MATLAB进行股票价格预测

通过收集股票数据、数据预处理、构建预测模型以及可视化结果,我们可以利用MATLAB强大的计算和分析功能来预测股票价格的走势。然而,需要注意的是,股票市场具有高度复杂性和不确定性,预测结果仅供参考,并不构成投资建议。然而,借助计算机编程和数据分析工具,我们可以利用历史股价数据来建立模型,并预测未来的股票价格走势。首先,我们需要获取股票的历史价格数据。完成模型的拟合后,我们可以使用该模型来进行未来股票价格的预测。最后,我们可以使用MATLAB的绘图功能将预测的股票价格与实际股票价格进行对比,并进行可视化展示。

2301_79326588的博客 1018

java 调用虚拟打印机_Java实现打印Word文档

码农公社 210.net.cn210= 102410月24日一个重要的节日--码农(程序员)节本文介绍如何在Java程序中通过物理打印机和虚拟打印机来打印Word文档的方法。文中使用了类库Spire.Doc for Java【示例1】通过物理打印机打印import com.spire.doc.Document;import com.spire.ms.System.Drawing.Prin...

weixin_42299198的博客 1123

Vue - 简约大气 404 页面

效果图 实现代码 复制即可。 <template> <div> <div class="error"> <!-- 图片可保存到本地 --> <img src="https://img-blog.csdnimg.cn/20210715111039922.png"> <p>抱歉!你访问的页面不存在或已删除 :( </p> <span class="back" @click="go(

🏆 前端领域优质创作者 3371

Mastercam软件二次开发:使用C#进行Mastercam二次开发

C#(发音为“C Sharp”)是一种现代、面向对象的编程语言,由微软开发,首次发布于2000年。它结合了C和C++的强大功能,同时引入了Java的垃圾回收机制,使得C#在开发效率和运行性能之间找到了一个良好的平衡点。C#的设计目标是提高开发者的生产力,它支持多种编程范式,包括面向对象、泛型、委托和事件等,这使得它成为开发Windows应用程序、Web应用程序、游戏(尤其是使用Unity引擎)和企业级应用的理想选择。

kkchenjj的博客 2217

java 虚拟打印机_在java里调用SmartPrinter虚拟打印机的问题

这几天在做java里调用SmartPrinter虚拟打印机转换文件,在SmartPrinter的帮助文档里找到了一段代码,但是执行后报错,大家帮看一下如何解决:代码如下:import com.ms.activeX.ActiveXComponent;import com.ms.com.Dispatch;import com.ms.com.Variant;public class dll {publi...

weixin_33335851的博客 440

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

java 虚拟打印机_打印作业提交给打印机,使用虚拟打印机但不是真正的打印机 . Java的...

我是java新手,在java中遇到打印服务问题 . 我正在尝试用Java创建一个桌面应用程序,它安装在系统中,调用api,返回结果并打印 .仅当我们从api获得结果时才调用打印服务 . 所以我的问题是,当我在我的Windows机器上尝试这个应用程序时,它完全按照我想要的方式使用虚拟打印机,当我将它作为默认打印机时,但是对于我的真实打印机不起作用,即使它是默认的打印机 .我们是否需要添加一些配置或端...

weixin_34193979的博客 362

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

java连接虚拟打印机_v4打印驱动器的虚拟打印机驱动程序INF配置

我正在尝试使用WDK和打印驱动程序v4创建虚拟打印驱动程序 . 我想在系统中安装虚拟打印机,在打印时显示我自己的UI - 理想情况下是.NET win或wpf形式 . 最后,虚拟打印机将联系Web服务,并将发送包含在UI中输入的元数据的XPS文件XML .我试着用v4驱动程序 . 到目前为止,我尝试在Visual Studio 2013中修改打印机项目,这是我的inf文件:[Version]Si...

weixin_35933582的博客 668

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

java 虚拟打印机_Java 通过物理、虚拟打印机打印Word文档

import com.spire.doc.Document;import com.spire.ms.System.Drawing.Printing.PrinterSettings;public class PrintWord {public static void main(String[] args) {//加载Word文档Document document = new Document();d...

weixin_36041939的博客 284

java 实现虚拟打印机_是否有可能将虚拟打印机与物理打印机区分开来?

我知道这是一个老问题,但这个答案可能对有同样问题的人有所帮助 .如果我对“虚拟打印机”的理解是正确的 . 您可以检查WMI属性“PrintProcessor”并忽略“winprint” . 据我所知,这将忽略所有基于Windows 7软件的打印机选项 . 这是一些示例代码来演示 . 返回打印机名称 .using System.Management;try{ManagementObjectSearc...

weixin_28987735的博客 355

Java 打印Word文档

本文介绍如何在Java程序中通过物理打印机和虚拟打印机来打印Word文档的方法。文中使用了类库Spire.Doc for Java,可通过官网下载jar文件并导入程序或者直接通过maven仓库安装导入。 【示例1】通过物理打印机打印 import com.spire.doc.Document; import com.spire.ms.System.Drawing.Printing.Print...

Eiceblue的专栏 2835

VMwareWorkstation添加打印机

背景描述 目前在做Java FX桌面端的开发,最终的效果是需要将jar文件打包成exe文件,方便用户进行安装使用。由于jar文件依赖jre环境,而用户本地一般不会安装jdk或者jre,为了测试jar文件打包成exe运行程序效果,所以需要一台没有安装jdk或者jre的电脑,手里虽有两台电脑,但都安装了java开发环境,无法模拟,所以只能在虚拟机上进行。改程序有一个打印功能,在使用虚拟机时,发现找不到...

dong_chl的专栏 7608
上一篇: 轻松Java打印预览、Web打印
下一篇: 分享一个纯Java文书、合同录入与打印解决方案
sqlhub
博客等级 码龄21年 19粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值