Java Print 打印
Java 原生的API中有Print,使用Print可以操作打印机进行打印操作,获取打印机属性,下面是代码
打印程序(静默打印)
package com.boci.PrintPDF; import java.io.File; import java.io.FileInputStream; import javax.print.Doc; import javax.print.DocFlavor; import javax.print.DocPrintJob; import javax.print.PrintService; import javax.print.PrintServiceLookup; import javax.print.ServiceUI; import javax.print.SimpleDoc;
import javax.print.attribute.Attribute;
import javax.print.attribute.AttributeSet;
import javax.print.attribute.DocAttributeSet; import javax.print.attribute.HashDocAttributeSet; import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.standard.Chromaticity;
import javax.print.attribute.standard.Copies;
import javax.print.attribute.standard.Finishings;
import javax.print.attribute.standard.MediaSizeName;
import javax.print.attribute.standard.NumberUp;
import javax.print.attribute.standard.OrientationRequested;
import javax.print.attribute.standard.SheetCollate;
import javax.print.attribute.standard.Sides; /**
*
*@author Clare
*@Company
*
*Print file by javax
*
*/ public class PrintPdfJavax { public static void main(String[] args) { File file = new File("D:/Archive/A2.pdf"); // 获取选择的文件 // 构建打印请求属性集 HashPrintRequestAttributeSet pras = new HashPrintRequestAttributeSet(); // 设置打印格式,因为未确定类型,所以选择autosense DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE; // 查找所有的可用的打印服务 PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras);
System.out.println("-------------------All services-------------------");
for(int i=0;i<printService.length;i++){
System.out.println(printService[i]);
} // 定位默认的打印服务 //PrintService service1 = PrintServiceLookup.lookupDefaultPrintService();
if(printService.length>0){ System.out.println("-------------------Choose Printer-------------------");
System.out.println(printService[0]);
//指定使用 Microsoft XPS Document Writer
PrintService service = printService[0]; //获取打印机属性
AttributeSet attributes = service.getAttributes();
for (Attribute a : attributes.toArray()) {
String name = a.getName();
String value = attributes.get(a.getClass()).toString();
System.out.println(name + " : " + value);
}
// 显示打印对话框 //PrintService service = ServiceUI.printDialog(null, 200, 200, printService, // service1, flavor, pras); if (service != null) { try {
System.out.println("Begin Print PDF: "+file.getName());
DocPrintJob job = service.createPrintJob(); // 创建打印作业 FileInputStream fis = new FileInputStream(file); // 构造待打印的文件流 DocAttributeSet das = new HashDocAttributeSet();
//请求一个彩色打印机
pras.add(Chromaticity.COLOR); //请求横向模式
pras.add(OrientationRequested.LANDSCAPE); //美国Letter大小的纸质属性
pras.add(MediaSizeName.NA_LETTER); // European A4 paper
pras.add(MediaSizeName.ISO_A4); //请求装订
pras.add(Finishings.STAPLE); //整理多个副本
pras.add(SheetCollate.COLLATED); //请求双面
pras.add(Sides.DUPLEX); // 2页到一个工作表
pras.add(new NumberUp(2)); //多少个副本
pras.add(new Copies(2)); Doc doc = new SimpleDoc(fis, flavor, das); job.print(doc, pras);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
Java Print 打印的更多相关文章
- java中打印变量地址
在java中打印变量的地址 这个代码是在startoverflow上看到的,跟大家分享一下. import sun.misc.Unsafe; import java.lang.reflect.Fiel ...
- java中打印实心菱形以及空心菱形的方法
一.打印效果 二.实现代码汇总 为了方便初学者对代码的理解,建议熟练t1到t5为各种三角的打印,然后再进行菱形的打印实现. package circulationDemo; import java.u ...
- Java实现打印功能
用java实现打印,java.awt中提供了一些打印的API,要实现打印,首先要获得打印对象,然后继承Printable实现接口方法print,以便打印机进行打印,最后用Graphics2D直接输出直 ...
- java web 打印(lodop)案例
应需求接触到lodop 打印. 首先在lodop官网下载相关文件(js.css等):http://www.lodop.net/download.html 在下载好的包里 除了html页面 其他的j ...
- Atitit.java swing打印功能 api attilax总结
Atitit.java swing打印功能 api attilax总结 1. 打印方式有三种:2 1.1. 一是不经过任何修改,直接调用javascript中的window.print()打印.2 ...
- Java实现打印功能-AWT Graphics2D
Java实现打印功能 用java实现打印,java.awt中提供了一些打印的API,要实现打印,首先要获得打印对象,然后继承Printable实现接口方法print,以便打印机进行打印,最后用用Gra ...
- window.print() 打印页面部分内容的方法
用 JavaScript 实现页面数据的打印 : 主要是用到了一个 print() 函数 , 该函数将会打印整个 web 页面 body 内的所有 html 数据 ! 使用方法为 window.pri ...
- 用window.print()打印指定div里面的内容(转载的)
用window.print()打印指定div里面的内容 今天客户让添加个打印证照功能,直接用window.print()打印的是整个页面,而用以下方法就可以只打印证明了 <!--window.p ...
- 用window.print()打印指定div里面的内容
用window.print()打印指定div里面的内容 今天客户让添加个打印证照功能,直接用window.print()打印的是整个页面,而用以下方法就可以只打印证明了 <!--window.p ...
随机推荐
- php 缓冲区总结
我们先来看一段代码. <?php for ($i=10; $i>0; $i--) { echo $i; flush(); sleep(1); } ?> 按照php手册里的说法 该函数 ...
- 真正的PHP多线程(绝非fork或者用http再开进程)
转载:http://blog.csdn.net/leinchu/article/details/8012640 我写了一个扩展打算放到pecl,但是,进过交流发现有人已经做了两个php的多线程扩展 1 ...
- GitHub上最火的Android开源项目(完结篇)
摘要:截至目前,在GitHub“最受欢迎的开源项目”系列文章中我们已介绍了40个Android开源项目,对于如此众多的项目,你是Mark.和码友分享经验还是慨叹“活到老要学到老”?今天我们将继续介绍另 ...
- Android 设计的几处硬伤
[核心提示] 一些 Android App 不仅仅是设计风格的问题,产品交互上也比较混乱,造成用户体验不一致,这一部分原因也是 Android 当初设计时遗留的问题. 前几天看到 NovaDNG 介绍 ...
- IntelliJ IDEA类头注释和方法注释
The template is editable. Along with static text, code and comments, you can also use predefined var ...
- DevExpress中chartControl中实现统计图功能
public partial class Form1 : DevExpress.XtraEditors.XtraForm { public Form1() { InitializeComponent( ...
- Python 爬虫实例(2)—— 爬取今日头条
# coding:utf-8 import base64 import random, re import sqlite3 import redis, pickle import json, time ...
- 修改host简化远程访问
问题描述: 使用本机登陆服务器时,需要经常输入IP地址,在局域网下和非局域网下输入的IP又不一样,十分麻烦,如果可以给IP命名一个简单的名字,岂不是很方便? 解决方法: 修改host文件: vim / ...
- LDA与QDA
作者:桂. 时间:2017-05-23 06:37:31 链接:http://www.cnblogs.com/xingshansi/p/6892317.html 前言 仍然是python库函数sci ...
- Genral log(普通日志)与 Slow log(慢速日式)
General log: Geleral log记录了服务器接收到的每一个查询或是命令,无论这些查询或是命令是否正确甚至是否包含语法错误,general log 都会将其记录下来 ,记录的格式为 {T ...