Java调用打印机两种方式(无驱/有驱)

这篇具有很好参考价值的文章主要介绍了Java调用打印机两种方式(无驱/有驱)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一:无驱(通过ip连接打印机)

        String filePath = "D:\\file.pdf"; //需要打印的文件
        String ip = "192.168.2.240"; //打印机ip
        Integer port = 9100; // 打印机端口
        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());
            //建立数组
            byte[] buf = new byte[1024];
            int len = 0;
            //判断是否读到文件末尾
            while((len = fis.read(buf)) != -1)
            {
                out.write(buf, 0, len);
            }
            //告诉服务端,文件已传输完毕
            socket.shutdownOutput();
            socket.close();
            fis.close();
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }

二:有驱(使用电脑自带驱动连接打印机) 

添加依赖文章来源地址https://www.toymoban.com/news/detail-770672.html

        <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();
        // 遍历所有打印机的名称
        for (PrintService ps : PrinterJob.lookupPrintServices()) {
            String psName = ps.toString();
            // 选用指定打印机
            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();
        // 设置打印纸张大小
        paper.setSize(598,842); // 1/72 inch
        // 设置打印位置 坐标
        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 设置一些属性 是否缩放 打印张数等
        book.append(new PDFPrintable(document, Scaling.ACTUAL_SIZE), pageFormat, pageCount);
        job.setPageable(book);
        // 开始打印
        job.print();
        //创建打印任务
        document.close();

到了这里,关于Java调用打印机两种方式(无驱/有驱)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 局域网内共享打印机的几种方式

    时间: 2022.06.07 设备: win10为主, 其他版本也可参考 网络拓扑图大致如下: 1.共享打印机 搜索打印机,打开打印机和扫描仪设置 选择打印机,点击管理,进入打印机设置 打印机属性 - 共享 - 勾选共享这台打印机 - 确定 2.更改高级共享设置 搜索 共享 进入管理高级共享设置 把其下 专

    2024年02月09日
    浏览(21)
  • js、PHP连接外卖小票机打印机方案(调用佳博、芯烨等)

    前言:         目前开发需要用到电脑直接连接外卖小票机打印小票,查阅各种资料,使用 6612345浏览器 终于解决了这个问题。 效果:         PHP、js直接连接小票机并且自动出票。 支持的小票机:          目前测试可以的有:电脑A4打印机、佳博GP58MBIII(USB直

    2024年02月11日
    浏览(28)
  • 惠普打印机---共享打印机安装 --连接

    输入 win+R ,再输入共享打印机的连接的IP 2.进入 连接 界面 3.右击打印机 ,点击连接 ,就可以添加打印机设备 方法二、 添加打印机

    2024年02月03日
    浏览(49)
  • Windows11连接共享打印机失败,提示以下错误:Windows 无法连接到打印机。请检查打打印机名并重试。如果这是网络打印机,请确保打印机已打开

    1.在确定打印机所在的主机是开机状态且局域网内其他电脑连接打印机正常情况下; 2.检查所需安装打印机的电脑打印服务运行状态; 2.1 按住Win+R键输入 services.msc 点击确 定后,打开服务; 2.2 Print Spooler、DCOM Server Process Launcher、RPC Endpoint Mapper,将其运行状态设置为自动启动

    2024年02月04日
    浏览(158)
  • 老毛子、华硕固件USB连接打印机,普通打印机变无线打印机

    本次作为打印机服务器的是Newifi Mini,1千兆wan口,2百兆lan口,1USB2.0接口,打印机型号为canon ip1180,年代非常久远,不过墨盒可以反复加墨,算下来打印费用很便宜,无奈不支持无线打印,于是利用路由器的usb口使其变成无线打印机。 由于打印机离主机位置较远,且布线不方

    2024年02月08日
    浏览(118)
  • 安装pdf打印机无法找到安装打印机的核心驱动

    安装pdf打印机无法找到安装打印机的核心驱动,出现这种情况下。可以利用以下方法解决 * C:WindowsSystem32DriverStore* 这个文件夹。在 FileRepository 文件夹上面,点击右键“管理员取得所有权”命令,这个时候会跳出一个命令行窗口不停的执行取得权限操作,耐心等待几十秒钟等

    2024年02月11日
    浏览(39)
  • mac Canon打印机连接教程(附打印机驱动下载)

    网上大多是windows版驱动和安装教程,mac链接相对参考材料较少,记录于此方便节省大家时间。本篇以Canon iR C3025打印机为例,流程大同小异。

    2024年02月12日
    浏览(49)
  • Android Pos 打印机支持库(适合市场常见打印机使用)

    ① 集成多个品牌打印机的SDK:GPrinter(佳博),Epson(爱普森),Bixolon(必胜龙), ② 已调试支持的打印机品牌:GPrinter(佳博),Epson(爱普森),Bixolon(必胜龙),XPrinter(芯烨),Element(元素) ③ 支持局域网,USB,蓝牙通讯(具体情况取决于打印机以及使用的SDK策略) ④ 开发者只需要关心打

    2024年03月13日
    浏览(47)
  • win10、11共享打印机报错无法连接到打印机

    大多数是windows更新补丁导致的,只需运行相应版本的的bat文件就可以解决。 使用方法:将下载好的压缩包解压,并运行bat文件。只要打了2021年10月补丁的电脑都需要运行,不管是服务端还是客户端。比如服务端是xp(xp不存在有2021年10月的补丁),那么就只需要客户端运行即

    2024年02月13日
    浏览(43)
  • 在局域网下是如何共享打印机让大家共用一台打印机

    打印机共享如何设置?这是在工作中经常遇到的问题。由于公司购买的打印机不带网络打印功能,但又想能让办公室里的所有人员都能共用这一台打印机。那么把打印机设置成共享就能很好解决这一问题。下面大家一起来看看在局域网下是如何共享打印机的。 在带有打印机的

    2024年02月06日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包