最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java調(diào)用打印機(jī)的2種方式舉例(無驅(qū)/有驅(qū))

 更新時間:2023年11月29日 15:33:05   作者:隨風(fēng)不說話  
我們平時使用某些軟件或者在超市購物的時候都會發(fā)現(xiàn)可以使用打印機(jī)進(jìn)行打印,這篇文章主要給大家介紹了關(guān)于Java調(diào)用打印機(jī)的2種方式,分別是無驅(qū)/有驅(qū)的相關(guān)資料,需要的朋友可以參考下

一:無驅(qū)(通過ip連接打印機(jī))

        String filePath = "D:\\file.pdf"; //需要打印的文件
        String ip = "192.168.2.240"; //打印機(jī)ip
        Integer port = 9100; // 打印機(jī)端口
        Integer timeout = 3000; //連接超時時間
        File file = new File(filePath); 
        Socket socket = new Socket(); 
        try {
            socket.connect(new InetSocketAddress(ip,port), timeout);
            OutputStream out = socket.getOutputStream();
            FileInputStream fis = new FileInputStream(file);
            System.out.println(file.length());
            //建立數(shù)組
            byte[] buf = new byte[1024];
            int len = 0;
            //判斷是否讀到文件末尾
            while((len = fis.read(buf)) != -1)
            {
                out.write(buf, 0, len);
            }
            //告訴服務(wù)端,文件已傳輸完畢
            socket.shutdownOutput();
            socket.close();
            fis.close();
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }

二:有驅(qū)(使用電腦自帶驅(qū)動連接打印機(jī)) 

添加依賴

        <dependency>
            <groupId>org.apache.pdfbox</groupId>
            <artifactId>pdfbox</artifactId>
            <version>2.0.8</version>
        </dependency>
        String filePath = "D:\\file.pdf"; //需要打印的文件
        File file = new File(filePath); 
        int pageCount = 0;
        String printName = "Win32 Printer : HP LaserJet Pro M428f-M429f [F097F8]";
        PrinterJob job = PrinterJob.getPrinterJob();
        // 遍歷所有打印機(jī)的名稱
        for (PrintService ps : PrinterJob.lookupPrintServices()) {
            String psName = ps.toString();
            // 選用指定打印機(jī)
            if (psName.equals(printName)) {
                job.setPrintService(ps);
                break;
            }
        }

        // 讀取pdf文件
        PDDocument document = null;
        try {
            document = PDDocument.load(file);
            pageCount = document.getNumberOfPages();
        } catch (IOException e) {
            e.printStackTrace();
        }
        job.setPageable(new PDFPageable(document));

        Paper paper = new Paper();
        // 設(shè)置打印紙張大小
        paper.setSize(598,842); // 1/72 inch
        // 設(shè)置打印位置 坐標(biāo)
        paper.setImageableArea(0, 0, paper.getWidth(), paper.getHeight()); // no margins
        // custom page format
        PageFormat pageFormat = new PageFormat();
        pageFormat.setPaper(paper);
        // override the page format
        Book book = new Book();
        // append all pages 設(shè)置一些屬性 是否縮放 打印張數(shù)等
        book.append(new PDFPrintable(document, Scaling.ACTUAL_SIZE), pageFormat, pageCount);
        job.setPageable(book);
        // 開始打印
        job.print();
        //創(chuàng)建打印任務(wù)
        document.close();

總結(jié) 

到此這篇關(guān)于Java調(diào)用打印機(jī)方式的文章就介紹到這了,更多相關(guān)Java調(diào)用打印機(jī)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 正確使用Java?CompletableFuture對象的方法

    正確使用Java?CompletableFuture對象的方法

    本文將深入探討Java的CompletableFuture,一種強(qiáng)大的工具,用于簡化異步編程和并發(fā)任務(wù)管理,我們將介紹CompletableFuture的基本概念、核心方法以及實際應(yīng)用場景,感興趣的朋友跟隨小編一起看看吧
    2025-10-10
  • 一文詳解SpringBoot實現(xiàn)多數(shù)據(jù)源的自動切換

    一文詳解SpringBoot實現(xiàn)多數(shù)據(jù)源的自動切換

    在現(xiàn)代企業(yè)級應(yīng)用中,為了提高系統(tǒng)的可維護(hù)性和擴(kuò)展性,多數(shù)據(jù)源的配置和使用變得越來越常見,本文將,介紹如何在Spring Boot項目中實現(xiàn)多數(shù)據(jù)源的自動切換有需要的小伙伴可以了解下
    2025-10-10
  • 使用記事本編寫java程序全過程圖解

    使用記事本編寫java程序全過程圖解

    這篇文章主要介紹了如何使用記事本編寫java程序,需要的朋友可以參考下
    2014-03-03
  • Java?List過濾的多種方法及實戰(zhàn)應(yīng)用小結(jié)

    Java?List過濾的多種方法及實戰(zhàn)應(yīng)用小結(jié)

    本文深入探討了Java List過濾的多種方法及實戰(zhàn)應(yīng)用小結(jié),涉及了使用Collection接口的removeIf方法移除不滿足條件的元素,并分析了流API在并行操作中的優(yōu)勢,感興趣的朋友跟隨小編一起看看吧
    2025-08-08
  • Java中Hashtable集合的常用方法詳解

    Java中Hashtable集合的常用方法詳解

    本篇文章給大家?guī)淼膬?nèi)容是關(guān)于Java中Hashtable集合的常用方法詳解,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。下面我們就來學(xué)習(xí)一下吧
    2021-11-11
  • 用Java進(jìn)行zip文件壓縮與解壓縮

    用Java進(jìn)行zip文件壓縮與解壓縮

    這篇文章主要介紹了用Java進(jìn)行zip文件壓縮與解壓縮的方法,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-12-12
  • SpringBoot實現(xiàn)熱部署Community的示例代碼

    SpringBoot實現(xiàn)熱部署Community的示例代碼

    本文主要介紹了SpringBoot實現(xiàn)熱部署Community的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • JAVA(SpringBoot)集成Jasypt進(jìn)行加密、解密功能

    JAVA(SpringBoot)集成Jasypt進(jìn)行加密、解密功能

    Jasypt是一個Java庫,專門用于簡化加密和解密操作,提供多種加密算法支持,集成到SpringBoot等框架中,通過使用Jasypt,可以有效保護(hù)配置文件中的敏感信息,如數(shù)據(jù)庫密碼等,避免被未授權(quán)訪問,Jasypt還支持自定義加密器,提高擴(kuò)展性和安全性,適用于各種需要加密保護(hù)應(yīng)用場景
    2024-09-09
  • java靜態(tài)方法里使用spring的注入對象方式

    java靜態(tài)方法里使用spring的注入對象方式

    本文分析了在使用Spring框架時,靜態(tài)方法中引用非靜態(tài)變量導(dǎo)致空指針的問題,并提出了使用`@PostConstruct`注解、`@Value`注解、構(gòu)造注入和`InitializingBean`接口等解決方案
    2026-04-04
  • 解決外部jar包@Service無法注解無法掃描的問題

    解決外部jar包@Service無法注解無法掃描的問題

    這篇文章主要介紹了解決外部jar包@Service無法注解無法掃描的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10

最新評論

固安县| 武宣县| 阿拉善盟| 兴隆县| 田阳县| 福海县| 黄石市| 石狮市| 河南省| 阳新县| 固镇县| 天门市| 博罗县| 江油市| 英德市| 盱眙县| 霍城县| 阿拉尔市| 开阳县| 平江县| 莱阳市| 定州市| 台中县| 邮箱| 康定县| 大石桥市| 伊宁县| 闽清县| 阜新| 砚山县| 德阳市| 河曲县| 夏津县| 磴口县| 郎溪县| 德昌县| 桃园市| 临漳县| 齐河县| 且末县| 通山县|