首页 > 其他分享 >cups+ippserver+cups4j 进行ipp 打印测试

cups+ippserver+cups4j 进行ipp 打印测试

时间:2023-04-15 18:12:21浏览次数:46  
标签:ippserver cups4j ipp import org cups

cups 是一个打印标准,ippserver 属于一个测试mock 的ipp 服务(基于软件的),cups4j 是cups 的一个客户端

环境准备

具体配置参考github,实际配置来自ippsample 的测试配置

version: "3"
services:
  ippserver:
    image: dalongrong/ippserver
    hostname: ippserver
    volumes:
      - ./test:/config
      - ./data/print:/print
      - ./data/spool:/spool
      - ./data/tools:/tools
    command: ippserver -C /config -r _print
  cups:
    image: olbat/cupsd
    privileged: true
    ports:
      - "632:631"
    volumes:
      - ./cupsd.conf:/etc/cups/cupsd.conf
      - /var/run/dbus:/var/run/dbus

cups 配置

  • 添加打印机
    参考配置

    打印机信息

     

     

代码集成

  • 核心代码
    使用cups4j 客户端
 
package com.dalong;
 
import org.cups4j.CupsClient;
import org.cups4j.CupsPrinter;
import org.cups4j.PrintJob;
import org.cups4j.PrintRequestResult;
 
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
 
public class App {
 
    public static void main(String[] args) throws Exception {
        CupsClient cupsClient = new CupsClient("127.0.0.1", 632);
        CupsPrinter cupsPrinter = cupsClient.getDefaultPrinter();
        Map<String,String> attr = new HashMap<>();
        attr.put("document-format","application/pdf");
        attr.put("attributes-charset","utf-8");
        InputStream inputStream = new FileInputStream("src/main/resources/v4.pdf");
        PrintJob printJob = new PrintJob.Builder(inputStream).attributes(attr).build();
        PrintRequestResult printRequestResult = cupsPrinter.print(printJob);
        System.out.println(printRequestResult.getJobId());
    }
}
  • 参考效果

 

 

说明

当时测试了一台普通打印机,通过usb 进行连接,发现了一些问题(是可以打印,但是中文是乱码的),同时通过cups 提供的ipp 地址 进行打印是没有问题的
实际还得测试,同时对于直接打印,可以支持的是pdf,图片以及文件。。。,但是对于office 是不能直接支持的,但是可以通过ipp 协议暴露的打印机地址然后
通过office 软件进行打印(选择暴露的打印机即可),以上只是一个简单的测试,基于软件部署环境主要是为了方便测试

参考资料

https://github.com/harwey/cups4j
https://github.com/istopwg/ippsample
https://www.cups.org/
https://github.com/apple/cups
https://www.pwg.org/ipp/everywhere.html
https://github.com/rongfengliang/cups_ippsample_ipp_learning

标签:ippserver,cups4j,ipp,import,org,cups
From: https://www.cnblogs.com/rongfengliang/p/17321567.html

相关文章

  • 使用cups + ipp 协议client 进行网络打印处理
    实际上日常中我们已经使用了网络打印了(比如公司内部使用的共享打印机),现在大家会有使用基于部分厂商开发的的网络打印进行资料打印从技术实现上基本都是基于网络打印技术,然后通过控制程序对于打印机进行操作,然后平台会按照不同的打印模式收取不同的费用,用户可以自己去固定网点去取......
  • gzip 解压文件报错 gzip.BadGzipFile: Not a gzipped file (b'\n')
          因为获取的是Unicode码,需要decode才会正常解决办法:按行获取然后......
  • sipp3.6带媒体测试方案
       概述SIP压测工具sipp,免费,开源,功能足够强大,配置灵活,优点多。本文档介绍sipp工具如何带媒体测试,并介绍如何制作可用的媒体文件(G729和PCMA)。环境centos7.9freeswitch1.10.7sippv3.6.2_rc1制作媒体流文件sipp支持通过exec调用play_pcap_audio来发送媒体流,但是要求......
  • HDU 3328 Flipper 栈的应用
    FlipperTimeLimit:2000/1000MS(Java/Others)    MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):521    AcceptedSubmission(s):334ProblemDescriptionLittleBobbyRoberts(sonofBigBob,ofProblemG)playsthissolitairememory......
  • Haskell CSCI3136 Ripple Effect
    HaskellCSCI3136RippleEffectProblemDescriptionRippleEffectorHakyuuisalogicpuzzlesomewhatsimilartoSudoku.Thepuzzleconsistsofarectangulargri......
  • sipp3.6分支压测方案
      概述SIP压测工具sipp,免费,开源,功能足够强大,配置灵活,优点多。本文档介绍sipp工具的常用参数和测试脚本。环境centos7.9sippv3.6.2_rc1常用参数-sf加载自定义......
  • k8s ingress-nginx 使用 snippet 添加自定义配置(例如:安全头)
    比如在有些时候我们需要在server里或者location里添加一些参数,例如添加安全头、包体大小限制、添加跨域配置、添加自定义header、处理响应header等等。遇到这些需求的时......
  • Ascend CL两种数据预处理的方式:AIPP和DVPP
    摘要:本文介绍了昇腾CANN提供的两种数据预处理的方式:DVPP和AIPP,介绍了两者的功能、差别及联系,并以具体代码示例介绍了如何使用DVPP和AIPP的功能。本文分享自华为云社区《了......
  • sipp3.6 on centos7安装部署
      概述在VOIP软交换的开发过程中,必然需要对软交换进行批量压测。SIP压测工具一般都是sipp,免费,开源,功能足够强大,配置灵活,优点多。环境centos7.9cmake3.6sippv3.......
  • ViewFlipper的基本使用
    ViewFlipper,它是Android自带的一个多页面管理控件,且可以自动播放!和ViewPager不同,ViewPager是一页页的,而ViewFlipper则是一层层的,和ViewPager一样,很多时候,用来实现进入应用......