Cups4j
— the Java printing library for CUPS.
This library is available on the Maven Central repository, here.
To import and use cups4j in your project, add the following dependency in your pom.xml
file:
<dependency>
<groupId>org.cups4j</groupId>
<artifactId>cups4j</artifactId>
<version>0.7.6</version>
</dependency>
CupsClient cupsClient = new CupsClient();
CupsPrinter cupsPrinter = cupsClient.getDefaultPrinter();
InputStream inputStream = new FileInputStream("test-file.pdf");
PrintJob printJob = new PrintJob.Builder(inputStream).build();
PrintRequestResult printRequestResult = cupsPrinter.print(printJob);
CupsClient cupsClient = new CupsClient("127.0.0.1", 631);
URL printerURL = new URL("http://127.0.0.1:631/printers/printer-name");
CupsPrinter cupsPrinter = cupsClient.getPrinter(printerURL);
Map<String, String> attributes = new HashMap<>();
attributes.put("compression", "none");
attributes.put("job-attributes", "print-quality:enum:3#fit-to-page:boolean:true#sheet-collate:keyword:collated");
PrintJob printJob = new PrintJob.Builder(bytes)
.jobName("job-name")
.userName("user-name")
.copies(2)
.pageRanges("1-3")
.duplex(false)
.portrait(false)
.color(true)
.pageFormat("iso-a4")
.resolution("300dpi")
.attributes(attributes)
.build();