JAVA實(shí)現(xiàn)連接本地打印機(jī)并打印文件的實(shí)現(xiàn)代碼
實(shí)現(xiàn)代碼一
import javax.print.*;
import javax.print.attribute.DocAttributeSet;
import javax.print.attribute.HashDocAttributeSet;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import java.io.File;
import java.io.FileInputStream;
public class PrintDemo1 {
public void printPdf(String fileName) {
//構(gòu)造一個(gè)文件選擇器,默認(rèn)為當(dāng)前目錄
File file = new File(fileName);//獲取選擇的文件
//構(gòu)建打印請(qǐng)求屬性集
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
//設(shè)置打印格式,因?yàn)槲创_定文件類(lèi)型,這里選擇AUTOSENSE
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
//查找所有的可用打印服務(wù)
PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras);
//定位默認(rèn)的打印服務(wù)
//PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService();
// 顯示打印對(duì)話(huà)框
PrintService service = ServiceUI.printDialog(null, 200, 200, printService, defaultService, flavor, pras);
if (service != null) {
try {
DocPrintJob job = service.createPrintJob(); // 創(chuàng)建打印作業(yè)
FileInputStream fis; // 構(gòu)造待打印的文件流
fis = new FileInputStream(file);
DocAttributeSet das = new HashDocAttributeSet();
Doc doc = new SimpleDoc(fis, flavor, das);
job.print(doc, pras);
} catch (Exception e) {
e.printStackTrace();
}
}
}
public static void main(String args[]) {
PrintDemo1 pic = new PrintDemo1();
pic.printPdf("F:\\java資源2\\Docker視頻教程\\贈(zèng)送3-從Docker到Kubernetes之技術(shù)實(shí)戰(zhàn)\\01.為什么你需要學(xué)習(xí)Docker\\01.pdf");
}
}
代碼二
package com.iba.cxx.adm.controller;
import javax.print.*;
import javax.print.attribute.DocAttributeSet;
import javax.print.attribute.HashDocAttributeSet;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.swing.*;
import java.io.File;
import java.io.FileInputStream;
/**
* Created by Administrator on 2017/9/8 0008.
*/
public class TestController {
public static void main(String[] args) {
JFileChooser fileChooser = new JFileChooser(); //創(chuàng)建打印作業(yè)
int state = fileChooser.showOpenDialog(null);
if(state == fileChooser.APPROVE_OPTION){
// File file = new File("D:/haha.txt"); //獲取選擇的文件
File file = fileChooser.getSelectedFile();//獲取選擇的文件
//構(gòu)建打印請(qǐng)求屬性集
HashPrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
//設(shè)置打印格式,因?yàn)槲创_定類(lèi)型,所以選擇autosense
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
//查找所有的可用的打印服務(wù)
PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras);
//定位默認(rèn)的打印服務(wù)
PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService();
//顯示打印對(duì)話(huà)框
PrintService service = ServiceUI.printDialog(null, 200, 200, printService,
defaultService, flavor, pras);
if(service != null){
try {
DocPrintJob job = service.createPrintJob(); //創(chuàng)建打印作業(yè)
FileInputStream fis = new FileInputStream(file); //構(gòu)造待打印的文件流
DocAttributeSet das = new HashDocAttributeSet();
Doc doc = new SimpleDoc(fis, flavor, das);
job.print(doc, pras);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
好了這篇文章就介紹這么多,需要的朋友可以參考一下。
相關(guān)文章
java 替換docx文件中的字符串方法實(shí)現(xiàn)
這篇文章主要介紹了java 替換docx文件中的字符串方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
SpringCloud-Spring?Boot?Starter使用測(cè)試及問(wèn)題小結(jié)
Spring?Boot?Starter?是在?SpringBoot?組件中被提出來(lái)的一種概念、簡(jiǎn)化了很多煩瑣的配置、通過(guò)引入各種?Spring?Boot?Starter?包可以快速搭建出一個(gè)項(xiàng)目的腳手架,這篇文章主要介紹了SpringCloud-Spring?Boot?Starter使用測(cè)試,需要的朋友可以參考下2022-07-07
Java工程的Resources目錄從基礎(chǔ)到高級(jí)應(yīng)用深入探索
這篇文章主要介紹了Java工程中的resources目錄,從基礎(chǔ)概念到高級(jí)應(yīng)用,涵蓋了如何創(chuàng)建、使用以及資源文件的加載方法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-01-01
Spring?Boot項(xiàng)目中使用?TrueLicense?生成和驗(yàn)證License的詳細(xì)步驟
這篇文章主要介紹了Spring?Boot項(xiàng)目中使用?TrueLicense?生成和驗(yàn)證License,本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-10-10
Java?Request獲取請(qǐng)求頭數(shù)據(jù)實(shí)例詳解
在開(kāi)發(fā)中我們經(jīng)常需要獲取用戶(hù)IP地址,通過(guò)地址來(lái)實(shí)現(xiàn)一些功能,下面這篇文章主要給大家介紹了關(guān)于Java中Request獲取請(qǐng)求頭數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2024-01-01
Java實(shí)現(xiàn)網(wǎng)絡(luò)文件下載以及下載到指定目錄
在Spring框架中,StreamUtils和FileCopyUtils兩個(gè)工具類(lèi)提供了方便的文件下載功能,它們都屬于org.springframework.util包,可以通過(guò)簡(jiǎn)單的方法調(diào)用實(shí)現(xiàn)文件流的復(fù)制和下載,這些工具類(lèi)支持多種參數(shù)傳遞,涵蓋了文件下載的多種場(chǎng)景2024-09-09
Java五子棋簡(jiǎn)單實(shí)現(xiàn)代碼舉例
Java五子棋游戲是一種經(jīng)典的兩人對(duì)戰(zhàn)棋類(lèi)游戲,它基于簡(jiǎn)單的規(guī)則,即任何一方的棋子在棋盤(pán)上形成連續(xù)的五個(gè),無(wú)論是橫、豎還是斜線(xiàn),都將獲勝,這篇文章主要介紹了Java五子棋實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2024-10-10
說(shuō)說(shuō)@ModelAttribute在父類(lèi)和子類(lèi)中的執(zhí)行順序
這篇文章主要介紹了@ModelAttribute在父類(lèi)和子類(lèi)中的執(zhí)行順序,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
springboot自定義redis-starter的實(shí)現(xiàn)
這篇文章主要介紹了springboot自定義redis-starter的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10

