This project includes:
jipp-core
is an IPP parser/builder for IPP packets.jipp-pdls
converts rasterized documents into common page description languages (PCLm and PWG-Raster).jprint
shows how jipp-core
can be used to send a document to a printer.jrender
shows how jipp-pdl
can be used to convert a PDF to PCLm or PWG-Raster.jipp-core
features:
What could I do with this?
The API is Java-compatible but implemented in Kotlin.
dependencies {
compile 'com.hp.jipp:jipp-core:0.7.16'
compile 'com.hp.jipp:jipp-pdl:0.7.16' // Only needed if transforming PDLs
}
IppClientTransport
or IppServerTransport
(see example
HttpIppClientTransport.java
)IppPacket
objects, e.g.:
URI uri = URI.create("http://192.168.1.100:631/ipp/print");
IppPacket printRequest = IppPacket.printJob(uri)
.putOperationAttributes(documentFormat.of("application/pdf")))
.build();
transport.sendData(uri, new IppPacketData(printRequest, new FileInputStream(inputFile)));
Demonstrates a simple print engine. To run:
# build the app
./gradlew jprint:build
# unzip in the current directory
unzip -o ./sample/jprint/build/distributions/jprint-*.zip
# Use IPP to print a file to the supplied HTTP/IPP endpoint.
# (The printer must natively support the supplied file type.)
jprint-*/bin/jprint -p sample.pdf ipp://192.168.1.102:631/ipp/print
An example of rendering a PDF to PWG-Raster or PCLm. To run:
# build the app
./gradlew jrender:build
# unzip in the current directory
unzip -o ./sample/jrender/build/distributions/jrender-*.zip
# Convert a PDF-file to PWG-Raster.
jrender-*/bin/jrender sample.pdf sample.pwg
# Convert a PDF-file to PCLm.
jrender-*/bin/jrender sample.pdf sample.pclm
Until 1.0, APIs may still be changed in non-backwards-compatible ways. See HISTORY.md for more details.
jipp-core
's only dependencies are JDK 8+ and the current Kotlin runtime.
To build, run ./gradlew build
.
A full build of this project requires python
(2.x) and dot
to generate dependency graphs.