All Projects → HPInc → jipp

HPInc / jipp

Licence: MIT license
A Java implementation of IPP

Programming Languages

kotlin
9241 projects
java
68154 projects - #9 most used programming language
python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to jipp

ipp-client-kotlin
A client implementation of the ipp protocol written in kotlin
Stars: ✭ 25 (-74.23%)
Mutual labels:  printing, ipp, ipp-protocol
ipp.rs
IPP protocol implementation for Rust
Stars: ✭ 24 (-75.26%)
Mutual labels:  printing, ipp, ipp-protocol
Go Ipp
Pure Go IPP library
Stars: ✭ 40 (-58.76%)
Mutual labels:  printing
Cups
OpenPrinting CUPS Sources
Stars: ✭ 253 (+160.82%)
Mutual labels:  printing
Astrobox
AstroBox allows you to control your 3D Printer wirelessly
Stars: ✭ 143 (+47.42%)
Mutual labels:  printing
Cups
Apple CUPS Sources
Stars: ✭ 1,223 (+1160.82%)
Mutual labels:  printing
Pagedjs
Display paginated content in the browser and generate print books using web technology
Stars: ✭ 228 (+135.05%)
Mutual labels:  printing
Mapbox Gl Print Export For Port
Print/Export for Mapbox GL
Stars: ✭ 14 (-85.57%)
Mutual labels:  printing
winprint
winprint 2.0 - Advanced source code and text file printing. The perfect tool for printing source code, web pages, reports generated by legacy systems, documentation, or any text or HTML file. It works interactively or from the command line making it great for single users or whole enterprises. Works great with Powershell.
Stars: ✭ 52 (-46.39%)
Mutual labels:  printing
Dynamicreports
Java reporting library for creating dynamic report designs at runtime
Stars: ✭ 129 (+32.99%)
Mutual labels:  printing
Sketchsheets
Free ready to print sketch sheet templates for UX designers
Stars: ✭ 241 (+148.45%)
Mutual labels:  printing
Glabels Qt
gLabels Label Designer (Qt/C++)
Stars: ✭ 116 (+19.59%)
Mutual labels:  printing
Simplewpfreporting
Reporting in WPF (XAML) made easy
Stars: ✭ 87 (-10.31%)
Mutual labels:  printing
Printooth
A well documented, high-level Android interface that makes printing via bluetooth printers easier
Stars: ✭ 231 (+138.14%)
Mutual labels:  printing
Pyescpos
Support for Epson ESC/POS printer command system.
Stars: ✭ 52 (-46.39%)
Mutual labels:  printing
floaxie
Floating point printing and parsing library based on Grisu2 and Krosh algorithms
Stars: ✭ 28 (-71.13%)
Mutual labels:  printing
Tree printer
A Java class for printing binary trees as ASCII text
Stars: ✭ 20 (-79.38%)
Mutual labels:  printing
Graphql Go Tools
Tools to write high performance GraphQL applications using Go/Golang.
Stars: ✭ 96 (-1.03%)
Mutual labels:  printing
Paper Css
Paper CSS for happy printing
Stars: ✭ 2,023 (+1985.57%)
Mutual labels:  printing
Print-Reset-Tool
No description or website provided.
Stars: ✭ 18 (-81.44%)
Mutual labels:  printing

CircleCI CodeCov Maven Central Core Docs PDL Docs Kotlin ktlint

JIPP: A Java-compatible IPP library

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:

  • Supports construction of IPP servers, clients, routers, gateways, etc.
  • Common operations and attributes available for use.
  • Can be extended to support new operations and attributes.
  • Can be used over any transport (typically HTTP).
  • Includes a pretty-printer for human-readable IPP packet display.
  • Kotlin users can access a type-safe packet building DSL

What could I do with this?

  • Scan and show available printers on your network to your users.
  • Implement an Android Print Service.
  • Test IPP clients or IPP printers in interesting ways.
  • Experiment with alternative IPP transports.
  • Implement a cloud-based print server or client.

The API is Java-compatible but implemented in Kotlin.

Usage

  1. Add the current version of JIPP to your project
dependencies {
    compile 'com.hp.jipp:jipp-core:0.7.12'
    compile 'com.hp.jipp:jipp-pdl:0.7.12' // Only needed if transforming PDLs
}
  1. Create an IppClientTransport or IppServerTransport (see example HttpIppClientTransport.java)
  2. Use the transport to send and receive 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)));

Sample Applications

jprint

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

jrender

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

API Maturity

Until 1.0, APIs may still be changed in non-backwards-compatible ways. See HISTORY.md for more details.

Dependencies

jipp-core's only dependencies are JDK 8+ and the current Kotlin runtime.

Building

To build, run ./gradlew build.

A full build of this project requires python (2.x) and dot to generate dependency graphs.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].