Does anyone have experience with programming to control printers?

Recommended Answers

All 13 Replies

I need to programme a Cannon printer to get it to print exactly the way I want, do you think you can help?

I have got more info. including stuff (like codes) from Canon, if you can. i just don't know how to use it.

If this is PCL compatible, I can certainly help with that.

If its PostScript help you need, then I probably can't be of much assistance.

Can you identify the model of the printer, and whether or not there is a PCL driver available for it? Preferably a PCL 5 or greater driver?

All the printing I do from my AIX systems use scripts to wrap them in PCL code to control the formatting. Landscape.. portrait... duplex - depending on the printer I may even be able to find code to determine which tray the document uses as a default tray. What do you need to do?

P.S. If you are doing this on a UNIX system you can even write scripts that modify the job based on the argument.. e.g.:

my_printscript.sh landscape duplex
would produce a landscape duplex print job with some proper case or if statements... if this needs to be done in c++ I might be less help - but may be able to point you in a direction.

niek_e.... The two links you provided go to a 404 and a "no results found"....

If you are using MS-Windows and Microsoft compiler then you can find some c++ classes here.

.

niek_e.... The two links you provided go to a 404 and a "no results found"....

You're right. How the hell did that happen, I checked the links twice... Anyway: click

If this is PCL compatible, I can certainly help with that.

If its PostScript help you need, then I probably can't be of much assistance.

Can you identify the model of the printer, and whether or not there is a PCL driver available for it? Preferably a PCL 5 or greater driver?

All the printing I do from my AIX systems use scripts to wrap them in PCL code to control the formatting. Landscape.. portrait... duplex - depending on the printer I may even be able to find code to determine which tray the document uses as a default tray. What do you need to do?

P.S. If you are doing this on a UNIX system you can even write scripts that modify the job based on the argument.. e.g.:

my_printscript.sh landscape duplex
would produce a landscape duplex print job with some proper case or if statements... if this needs to be done in c++ I might be less help - but may be able to point you in a direction.

niek_e.... The two links you provided go to a 404 and a "no results found"....

I want to be able to control the print head of a Canon PIXMA iP5000 (inkjet) for printing.

It is the fine resolution I need to be able to utilise and control.

I do have access to Cannon's Official Printer programing codes should they be required.

Canon will provide the specific codes for qualified users of their equipment. These codes enable one to call a wide range of canon printer functions and commands e.g. Set the paper gap between the paper and the print head, which for ASCII is PAPERGAP, also they give it for HEX 50 41 50 45 52 47 41 50.

However within the codes they provide, I cannot work out how to control the print head, so that I can get just one ink jet point to print without any input/ouput from any of the other inkjet colours (e.g if I select Blue there will still be doplets from other colours on the paper despite the fact that I selected blue and blue only), and such that, I can get the Jet to produce a single 1 picolitre thickness of line on the horizontal or on the vertical, for a specified length in each case (1 picolitr is the size of droplet produced at a resolution of 9600 per inch on the horizontal). Most photographic printers only go down to 4 or 2.5 picolitres at the least.

Using the normal software tools provided by Canon within the printer software, the minimum thickness of line is about 50 picolitres thick, which is way too thick. No matter what the resolution (dpi) of the background image frame is set up at and the dpi print image is set at (e.g 1 pixel thick), the printer and the colour selected by choice, the printer will always print the line too thick (ie. about 50 picolitres). The ink jet output, under microscope examination, is producing individual 1 picolitre droplets, but will not print 1 picolitre droplets in 1 continuous straight line, using a single colour.

I need to enable it to do just that, print 1 picolitre droplets in 1 continuous straight line, I must have a command and control set, that controls the print head so that it will print the line using only a single print head ink jet of my choice, which will provide a series of single picolitre droplets onto the paper.

The Codes provided by Canon do not explain how that can be done. Having spoken with them at length about this problem, they gave me access to these codes so that I could do a program to control the print head to achieve this.

These command codes are in pdf files containing all the printer programing codes for the iP5000. I now have some eight of these command files.

Canon inform me there is no API for the printer.

So I need someone who knows how to utilise printer codes to control the print head, and can advise me on what to do.

That is definitely more advanced than I have worked with in the past.

It sounds like Canon has given you the command set available for their proprietary driver for this device. I think what you might need to do is get the input/output specifications of this printer so that you can write a new driver for it - that is, if Canon will make those available to you. If you cannot get with them, you might actually check with Ubuntu programmers - as there has been an initiative with the Ubuntu development community to offer companies to write drivers for their devices to become compatible with Linux, free of charge. Since this expands a company's potential customer base, it's a good initiative to release that type of technical specification.

Here's a related thread and here are the searchresults :)

niek_e you said you were a 'Virtuoso' to my request for help with Printer Programing, so can you help please ?

That is definitely more advanced than I have worked with in the past.

It sounds like Canon has given you the command set available for their proprietary driver for this device. I think what you might need to do is get the input/output specifications of this printer so that you can write a new driver for it - that is, if Canon will make those available to you. If you cannot get with them, you might actually check with Ubuntu programmers - as there has been an initiative with the Ubuntu development community to offer companies to write drivers for their devices to become compatible with Linux, free of charge. Since this expands a company's potential customer base, it's a good initiative to release that type of technical specification.

Can you give me any idea of what I am asking for when you say "Input/Output specifications", a few examples of items normally included in a printer spec. would help, just so that I have some idea of what I am asking for. To me an "output spec." would consist of things like print speed , chars. per second, page output speed, rate of ink usage, etc. Clearly, that is not what you are talking about.

I can also check to make sure that they or some of them are not already in any of the pdf files that they have supplied me with so far.

Thanks for your help.

Is there any reason you can't just load your image of what you want to print (that you've created at 9600 dpi, 24bpp) into a graphics program, select print to-scale?

You may have to turn a few image processing 'features' off if it's smoothing the image.

I'm guessing that your troubles printing out blue might be due to the case that printers often use cyan, magenta, yellow and black (CMYK); not red, green and blue (RGB).

According to http://reviews.cnet.com/inkjet-printers/canon-pixma-ip5000/4507-3156_7-31091201.html, the ip5000 uses CMYK.

Any chance of saying what you're working on? Just for interests sake...

niek_e you said you were a 'Virtuoso' to my request for help with Printer Programing, so can you help please ?

I never said I'm a Virtuoso. It's just a title I automatically get when number of posts > 1000, just as you are a 'newbie poster'.
If I would know how to solve your problem, I would tell you. But I don't..

Any chance of saying what you're working on? Just for interests sake...

Medical Diagrams.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.