| Accurate Image Manipulation for Desktop Publishing | ||
PostScript Calibration Hack
In order to simulate a calibrated printer it is possible to first print a job into a file and then edit a calibration block into the ps-file before sending the file to a printer. First the document to be printed is printed into a file, this creates the PostScript file. Then the calibration data with the settransfer command has to be inserted into that ps-file. The calibration block is as follows: ----------start of calibration
block---------- In the above calibration block the calibration data is a dummy one, it does not change the behavior of the printer at all, it is there for clarity. The actual transfer curve of the printer need to be measured so that the calibration data can be created (and the dummy data is replaced). It does not matter how many rows there are between the"[" and "]" but the 256 values must be in order from black to white and the scale is from 0 to 255. The "%" denoted a comment in PostScript. In order to measure the transfer curve of your printer you can buy a densitometer. Or use my calibration method, it is free. The next question is exactly where to insert the calibration block within the ps-file. This possibly varies from application to application that are used for printing. In case of Word97 (and jpg images) the image data appears directly below rows that has the "doNimage" alone on it. If the calibration block is inserted just above the "doNimage" row then that image prints calibrated. The problem here is that the calibration block needs to be inserted for each image. Again in a ps-file created by Word97 if the above calibration block is inserted just below the last row that has "%end resource" alone on that row then the calibration is in effect for the whole document. Finally the ps-file is sent to printer. In Windows an utility like GSView can be used for this or a command: copy /b printjob.ps printer_port in the dos-promt does it easily. printjob.ps is the filename to print and printer_port is the LPT1: for a parallel connected printer or a network que in form of \\servername\printername in case a network printer.
Accurate Image Manipulation for Desktop Publishing |
||