Coder Social home page Coder Social logo

captdriver's Introduction

CUPS driver for CAPT printers

This is a driver for Canon CAPT-based printers (LBP-****) based on several reverse engineering attempts. This is currently in an early alpha stage. Use at your own risk.

The printer protocol documentation based on reverse engineering is in the SPECS file. This is incomplete and probably has many errors. Please help expanding it.

Supported printers

  • Canon LBP-2900
  • Canon LBP-3000

Build

The project uses GNU Autotools to build the driver. Run the following commands after cloning the repo to build the driver:

$ aclocal
$ autoconf
$ automake --add-missing
$ ./configure
$ make

Install

The file "rastertocapt" has to be installed into CUPS manually. If you don't know how to do that, this driver is not for you. :) Automatic installation will not be done until the driver reaches beta stage to avoid misuse.

Contribute

The driver can potentially support various Canon GDI printers which have a similar protocol and share and the compression algorithm:

  • LBP-1120
  • LBP-1210
  • LBP-3300
  • LBP-3200
  • LBP-5000
  • LBP-5100
  • LBP-5300

Physical access to a printer is needed to identify the protocol differences of each individual model. In order to reverse engineer you need the following:

  1. Please make yourself familiar with the reverse-engineered LBP2900 protocol provided in the SPECS file
  2. You have to find a way of printing with Canon's official driver (presumably under Windows) and intercept USB communication. Any USB sniffer will do. Windows can be installed in a virtual machine.
  3. Look at any differences in commands. Try to vary printing parameters and look what changes.
  4. Guess the meaning of individual bytes.
  5. Submit your findings as pull requests to this repo or open an issue.

There are some helper utilities written by me at early stages of reverse engineering, you can make use of them. They're here: https://github.com/agalakhov/anticapt Another possibility is using the "captfilter" binary from the official Linux driver. It generates output containing some (but not all) commands needed to print. Try running it with different input parameters and look what it does.

captdriver's People

Contributors

aaa945260 avatar agalakhov avatar highwaystar avatar jekader avatar kp1533tm2 avatar missla avatar mounaiban avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.