Print-Jobs.Com: Global Directory of Printing Indusry RSS Feeds  

Print-Jobs.Com is the leading information Web site of the printing industry and the production and sale of printing devices industry. Useful for professionals who work or associated with printing industry, this site allows you to keep abreast of the latest news in the industry, covering all aspects of the printing industry worldwide.

Our site offers you a huge selection of free RSS feeds, providing you with news and delivering them to you straight to your desktop. This site is the best place where you can find the latest news in the industry and find partners.

Most popular RSS New RSS   Suggest your RSS feed


Forums (13) Videos (1) News (10) Reviews (2)
Toner/Ink (4) Printing Equipment Vendors (6) Miscellaneous (1) Printing Equipment (3)
Companies (0) Print Jobs (5) Patents (13) How-To (3)
Programming (1) Printing Software (11) Printing Articles (14) Printer Comparison (1)
Blogs (7) Buy Printers (1)

Related Links:

Below you'll find a list of web resources and print industry resources that we think you'll find interesting.


We believe in links with like minded in printing businesses. If you feel you know of an interesting website that has synergy with printing industry, please suggest RSS Feeds from it using "Suggest your RSS feed" form.

RSS Feeds:
Total feeds: 96

Links from our site to third party websites:
The links in this area will let you leave the Print-Jobs.Com website. The linked sites are not under the control of Print-Jobs.Com and Print-Jobs.Com is not responsible for the contents of any site linked from our site or any link contained in a linked site or any changes or updates to such sites. Print-Jobs.Com is not responsible for any form of transmission received from any linked site. Print-Jobs.Com is providing these links to you only as a convenience and the inclusion of any link does not imply endorsement by Print-Jobs.Com of the site.

Latest Printing Software Development Articles
Place informer on your site/blog.
Description: Articles at All About Printing. Only About Printing.
RSS format: RSS 2.0
RSS Url:
Last messages
Import AVI to iMovie, how to convert AVI to iMovie on Mac?
Mon, 07 May 2012 19:04:34 -0500

Import AVI to iMovie, how to convert AVI to iMovie on Mac? iMovie is a video editing software application for Mac users to edit videos or make their own movies on Mac. It features powerful video editing functions and easy-to-use interface. As a Mac user, you must have your iMovie and edit many videos with it on Mac. Do you find that iMovie supports many kinds of video formats but not all. So when you import AVI to iMovie for editing on Mac, but failed. Unfortunately, AVI format is not compitable well with iMovie. As we know, iMovie supports some video formats like DV, HDV, MP4, MOV, etc. Obviously, converting AVI to iMovie supported video formats is the best solution to solve the problem. The third part software which called Mac AVI to iMovie Converter is designed for users to convert AVI to iMovie on Mac. By using it, AVI to iMovie conversion will be finished quickly. Of course, it keeps the video quality. Moreover, this converter allows users to convert AVI to other video formats like WMV, MKV, VOB, FLV, 3GP, etc. AVI to iMovie Converter for Mac enables you to make some settings before converting AVI to iMovie on Mac. More editing functions like cropping, merging, trimming videos, adding watermark, etc are provided for you. You can set these settings and make some editings by your needs. All the things are ready, you can convert AVI to iMovie. After conversion, just import AVI to iMovie on Mac and make videos with it. The following is a step by step guide to help you convert AVI to iMovie on Mac Step 1. Add AVI files to this converter Free download and run Mac AIV to iMovie Converter, then click "Add" button to upload AVI files to this program from your Mac. Step 2. Set output format In this step, you can click the "Format" drop-down list to choose the output format. Here you can select MP4 as the format. Step 3. Converting AVI to iMovie on Mac All settings are ready, just clicking "Convert" button to start AVI to iMovie conversion on Mac. --
Mac import MKV to iMovie, how to convert MKV to iMovie on Mac?
Sat, 14 Apr 2012 19:03:07 -0500

Mac import MKV to iMovie, how to convert MKV to iMovie on Mac? MKV (Matroska Video) has become more and more popular, it's an open and free container format and widely used on Internet. You have lots of MKV files stored in your Mac and wWant to import MKV to iMovie for editing on Mac? The frustration you will face is you can't import MKV files to iMovie directly because iMovie doesn't recongnize the MKV format. To solve the format Compatibility issues, converting MKV to iMovie is the first thing we should do. iMovie is an ideal software for video fans to make their videos for sharing. iMovie has limited video formats including MP4, MOV, DV, HDV, etc. So just converting MKV to iMovie supported video format, we can import MKV to iMovie on Mac. Mac MKV to iMovie Converter is best choice for users to convert MKV to iMovie on Mac. You will have a smooth conversion process and get high quality videos. To meet your more needs, this MKV to iMovie Converter not only can convert MKV to iMovie, but also can convert MKV to other video formats like AVI, FLV, MPG, WMV, 3GP, etc on Mac. And if you want to make some settings or editings, you allowed to do this. You can tirm videos, merge videos, add watermark, etc before MKV to iMovie conversion on Mac. When the conversion finished, importing MKV to iMovie will be successful, then, you can edit converted videos with iMovie on Mac. Here are steps for Mac users to convert MKV to iMovie on Mac Step 1. Add MKV files to MKV to iMovie Converter Mac Click "Add" button to upload your MKV videos which you want to convert onto this converter after downloading and running. Step 2. Select the output format Click the "Format" drop-down list and choose MP4 as the output format from Common Video. Then you can set the destination by clicking "Browse" button. Step 3. Converting MKV to iMovie on Mac When the settings are ready, you can click "Convert" button to convert MKV to iMovie on Mac. After conversion, you can click the "Open" button to check the converted MKV files conveniently. -- Mac MKV to iMovie Converter is best choice for users to convert MKV to iMovie on Mac.
Why experts and online applications is needed in letterhead printing
Sun, 19 Feb 2012 04:18:59 -0600

Well-designed business letterheads will as a rule say a great deal about you and especially your business establishment. If you have a poor imagination especially when it comes to designing your very own prints, then it might well show that it is too much of a test for you and most of you might want to mirror about hiring a professional or even an expert designer as one of your option. The true printing process of these prints is best left to all the experts and professionals in its given field as these individuals most of the time make use of high quality paper materials and ink materials, these people also have wide range of selections of weight of paper stocks, and finishes to best print the perfect result that you want to have. For some of the people who would like to try their own mind and hand when it comes to making these things, then it is always a must to look at some of the given ideas and tips below before you even start the procedure. Always remember that if it all gets harsh, an expert or a professional at this field is just a click away. All you have to do is to read on below and understand.. Regularly browsing the World Wide Web - if you have much time, it is necessary for you to browse the internet for you to have more ideas. The MS Office as a rule has free tutorial lessons for making these prints with the use of the MS Word. There is also a great thing for you to get the very first layout and arrangement and even the lessons on how you will make use of the colors that will suit your business image and current business logos. Making use of some plan thoughts through online is much easier than on paper. Make sure to duplicate and link or even revise the files until you come up with the image that you want or close the whole page and start it all over again. If you do not have one of these things, there are also some free drawing applications that will always allow you to draw your designs and test with coatings and backdrops.. Pre designed guides for letterheads - there are also some available good internet sites that as a rule have pre designed guides particularly for these letterheads. After you have attained all these guides, the editing process will be an easy thing for you to make. You can also always start with the basic while backdrop and the addition of a couple of colors for your business logo and recognize the result on the computer screen.. Coming up with a great and imaginative thought - constantly be imaginative and make a brainstorming meeting will all your business staffs and partners. In addition, also make sure to start with an empty sheet of paper material. Make sure to also get some colorful marking pens and recognized what you and your partners have created.. Choosing the right online printer - for you make sure of having a great and effective company letterhead printing for your business, always make sure that you work with the best online printer. There are lots of online printers over the internet these days for your added convenience.For more details visit: -- Cyrel Russer is a dedicated writer about business letterheads in a leading company. He is also determined to enhance his interest by developing exclusive company letterhead.
All About Mac Printing
Sun, 21 Nov 2010 23:07:46 -0600

Background Printing on the Mac is done through the Printing Manager, RAM software that is considered part of the low-level operating system software. This code is stored in the system file and loaded into RAM. The Printing Manager interfaces between your program and the actual printer driver that controls the printer. The Imagewriter and LaserPrinter files are printer drivers called by the Printing Manager. The "Choose Printer" desk accessory switches between the two drivers so the Printing Manager has the correct driver installed and ready to go. To be more specific, the Imagewriter and LaserPrinter files are printer resource files, which contain device driver code within them to drive the respective printer. The "Choose Printer" DA copies the selected printer driver and it's data structures from the printer resource file into the system file, and that's the driver that the Print Manger then uses. The idea is that a Mac application can be written using printing manager calls and be printer independent, since the printing manager would then interface to the appropriate device driver, eliminating the need to re-code an application for a different printer. This ideal comes close to being achieved on the Mac, probably more than any other computer system, but is still far from perfect. The intent of the Mac designers was that printing would be transparent to quickdraw graphics "printed" on the screen. This was accomplished by using a special quickdraw grafport for printing. Normal quickdraw routines are used to draw into this port. The Printing Manager converts these quickdraw calls in your grafport to printer calls to drive the printer instead of the screen. In this way, printing is supposed to be transparent to a normal screen drawing operation. It also explains the complexity of printing, since it involves all the quickdraw screen graphics technology. Draft versus Standard Quality The Printing Manager is responsible for the dialog boxes that appear prior to printing and for allowing draft or standard quality printing. These two modes are fundamentally different. In draft mode, the ascii representation of the quickdraw calls are sent to the printer, which prints the text of the document using the character generator within the printer. Hence no graphics are supported except character graphics or modes directly supported by the printer and driven by the user's program. The printer responds to it's own command codes rather than any of the "Mac" like graphics. Spool File versus Printing the Spool File Standard and high quality modes are completely different. In these modes, the printer is controlled bit by bit and the entire document is converted into a giant bit mapped graphics dump. A temporary quickdraw picture is first composed on disk called the spool file. This spool file is then read into memory, converted into an array of dots by bands, and sent to the printer. The bands are necessary because of the huge amount of memory required by bit-mapping an 81/2 by 11 inch page. For the imagewriter, this amounts to 256K of memory. For the LaserWriter, over a megabyte! The task of first creating a quickdraw picture for the spool file, and then imaging (converting to a bit-map) and printing the spool file band by band, are handled seperately by the printing manager. In fact, it is supposed to be possible to create several spool files for printing later, but no one seems to be using that ability. Inside Mac appears indecisive about printing, saying that printing spool files is done by the Printer utility, the code of which has apparently been integrated into the Finder. But Printer does exist as a seperate utility that will read a spool file, image it and print it. Since hardly any applications leave the spool file lying around, there hasen't been much opportunity to use the Printer utility. Print Manager Calls: Lisa Pascal to Mac Pascal In the printing chapter of Inside Mac a lengthy list of data types is presented along with 14 Pascal procedures and functions. This is the printing interface, but it is not made clear exactly where these procedures are found. The idea is that you are supposed to simply include the declarations and calls in your program and then link with a printing module. What is misleading about this is that the link is not with the procedures you think you are using but merely a piece of "glue". The actual code used to drive the printer is in the file 'Imagewriter' (usually in the system folder). Naturally, the code is in resources. Imagewriter To get a handle (pun intended) on printing, I examined the link module provided by Owen Densmore. I then duplicated Owen's algorithms in Pascal. You can find my versions of all 14 procedures in the following program. The first task is to open a resource file. I said a bit on resources last month and there is never enough I can say about them. You should take a look in 'Imagewriter' and see what is there. The resources of interest here are of TYPE PDEF. These resources are actual printer-specific code. The code we need is in PDEF#0, PDEF#1, PDEF#4, and PDEF#5. In 'Imagewriter' is also a driver DRVR#-8192 named, '.print', but the one actually used is installed in the file, 'system'. The other stuff is for support of the dialog boxes the print manager presents. Rather than simply OpenResFile('Imagewriter');, we must take into account the possibility that there is more than one printer. To this end there is a resource STR #-8192 which contains the name of the print resource file. Therefore the print procedure PrOpen is ResID := OpenResFile( GetString(-8192) ); along with PBOpen of '.Print'. PrClose is simply CloseResFile(ResID). The other print procedures are in the PDEF resources and begin at various offsets into those resources. The function GetAddress is used in the program to load one of the PDEF's (GetResource) and then to lock it in place (Hlock). It is then dereferenced and the offset is added. Once we have an absolute address to use we need a way to pass control to it. To do this I created the array jsr[0..3] of integer which contains code to JSR to the address on the top of the stack. Once again I take advantage of the fact that InlineP leaves register A0 pointing 2 bytes behind of the place we must return to. If you know no 68000 assembly you can ignore this. The final detail to emulating the print interface code is that some of the routines release the PDEF handle and others leave it locked in place. This is the purpose of ReleaseAddress. Further, note that some of the routines use different PDEF's (0,1,2 or 3) depending on the setting of bjDocLoop. This is the purpose of MethodAdd. I find this a rather obscure feature and it will not be used here; nonetheless, the interface presented is complete, I think. GrafPorts for Printing It is necessary to use the type declarations to print but it is not necessary to closely study their form or function. I suggest studying my print record declarations in the program below along side "Printing Resources" in the new telephone version of Inside macintosh, where the print data structures are explained. A print record is created and filled in by the Printing Manager and the print dialog boxes. The printing port is set by a variant record type so that your program can write into the port as if it were a regular grafport, while the Printing Manager can modify the grafport for the printer. The central issue is one of drawing in a GrafPort. Essentially, printing is no different than updating the contents of a window except that the size of the window is huge. To simply print a picture use a sequence like PrOpen, PrintDefault, PrOpenDoc, PrOpenPage, draw your picture, PrClosePage, PrCloseDoc, PrPicFile, and PrClose. To print more pages repeat PrOpenPage, draw, PrClosePage. Note the perfect symmetry with the exception of PrintDefault and PrPicFile. PrintDefault will fill in all those nasty hPrint fields for you and PrPicFile actually drives the printer. You may also modify your hPrint with PrStlDialog and PrJobDialog. These two present very familiar dialog boxes. In the following program the procedure DrawPic draws a large picture in whatever port is current. In the main body of the program DrawPic is called several times to demonstrate the use of SetOrgin to show different views of the big picture. Of course, the parts of the picture that don't fit are chopped off by quickdraw and the same will happen when we print. I have found some strange complications. When printing, the VisRgn of the print port is not used, rather the clipRgn is used to delineate the usable area. In contrast, the drawing example opens up the ClipRgn and the VisRgn presents the limits. To investigate put: with MyPort^.VisRgn^^.rgnBBox do writeln(top,left,bottom,right); in various places. If you are doing a picture that is larger than one page don't assume the size of the page. You won't have to mess around in the grafport because you can use the rectangle hPrint^^.prInfoPt.Rpage to obtain the necessary offsets. and Rpage.left are zero so use right and bottom. I think this is the only one of the many hPrint fields that is commonly useful. To make a banner, as promised, you will need the newer version of Imagewriter (sometimes called Imagewriter 15) or else there will be breaks between the pages. For banner format choose 'wide' and 'no breaks between pages' on the style dialog. You can change DrawPic to make any picture you please. If there is any, and I mean any, subject that you think needs to be covered, write to me care of MacTutor and I will give it a try. I figure that if we can print with MacPascal then MacPascal can do just about anything. program Banner_Print;{ by Alan Wootton 5/85 }{ Prints a test pattern using the Printing Manager } uses Quickdraw2; type ptr = ^integer; handle = ^ptr; ProcPtr = ^longint; OStype = longint; strptr = ^str255; strHan = ^strptr;{~~~~~~~~~ Print Manager Data Types ~~~~~~~~~~ }{ note: byte size fields don't work right in MacPascal } TPStr80 = ^TStr80; TStr80 = string[80]; TPRect = ^Rect; TPPrPort = ^TPrPort; TPrPort = record gPort : GrafPort ;{ GrafPort to draw in } gProcs : QDProcs ;{ pointers to drawing routines } LGParam1, LGParam2 : longint; LGParam3, LGParam4 : longint; { internal use } { fOurPtr:boolean } fOurBits : integer; { boolean } end; TPPort = record case integer of 0 : ( pGPort : GrafPtr ); 1 : ( pPrPort : TPPrPort ) end; TPrInfo = record iDev : INTEGER; {driver information} iVRes : INTEGER; {printer vertical resolution} iHRes : INTEGER; {printer horizontal resolution} rPage : Rect {page rectangle} end; TPrStl = record wDev : integer; { TWord; used internally} iPageV : INTEGER; {paper height} iPageH : INTEGER; {paper width}{ bPort : SignedByte; printer or modem port} Tfeed : integer; { TFeed; paper type} end; TFeed = (feedCut, {hand-fed, individually cut sheets} feedFanfold, {continuous-feed fanfold paper} feedMechCut, {mechanically fed cut sheets} feedOther); {other types of paper} TPrJob = record iFstPage : INTEGER; {first page to print} iLstPage : INTEGER; {last page to print} iCopies : INTEGER; {number of copies} bJDocLoop : integer;{ printing method (in upper byte) }{ fFromUsr : BOOLEAN; }{ TRUE if called from application } pIdleProc : ProcPtr; {background procedure} pFileName : TPStr80; {spool file name} iFileVol : INTEGER; {volume reference number}{ bFileVers : SignedByte; }{ version number of spool file } bJobX : integer;{ SignedByte not used} end; TScan = (scanTB, {scan top to bottom} scanBT, {scan bottom to top} scanLR, {scan left to right} scanRL); {scan right to left} TPrXInfo = record iRowBytes : INTEGER; {bytes per row} iBandV : INTEGER; {vertical dots} iBandH : INTEGER; {horizontal dots} iDevBytes : INTEGER; {size of bit image} iBands : INTEGER; {bands per page}{ bPatScale : SignedByte; used by Quickdraw} bUlThick : integer;{ was Signed Byte, underline thickness}{ bUlOffset : Signed Byte; underline offset} bUlShadow : integer;{ was SignedByte, underline descender} scan : integer;{ TScan(byte), scan direction }{ bXInfoX : SignedByte not used } end; THPrint = ^TPPrint; TPPrint = ^TPrint; TPrint = record iPrVersion : INTEGER; {Printing Manager version} prInfo : TPrInfo; {printer information} rPaper : Rect; {paper rectangle} prStl : TPrStl; {style information} prInfoPT : TPrInfo; {Pcopy of PrInfo} prXInfo : TPrXInfo; {band information} prJob : TPrJob; {job information} printX : array[1..19] of INTEGER{ printX used internally by print manager} end; TPrStatus = record iTotPages : INTEGER; {total number of pages} iCurPage : INTEGER; {page being printed} iTotCopies : INTEGER; {number of copies} iCurCopy : INTEGER; {copy being printed} iTotBands : INTEGER; {bands per page} iCutBand : INTEGER; {band being printed}{ fPgDirty : BOOLEAN; in lower byte of iCutBand }{ dirty is TRUE if started printing page} fImaging : integer;{ BOOLEAN; TRUE if imaging} hPrint : THPrint; {print record} pPrPort : TPPrPort; {printing port} hPic : PicHandle {used internally} end;{ Parameter Block information contained in File Manager}{ chapter of Inside Macintosh. Note that MacPascal }{ won 't do 8 bit fields right. We will only use the }{ ioParam part here } ParamBlkPtr = ^ParamBlockRec; ParamBlockRec = record qLink : Ptr; qType : integer; ioTrap : integer; ioCmdAddr : ptr; ioCompletion : ptr; ioResult : integer; ioNamePtr : ^str255; ioVrefNum : integer;{ case ParamBlkType of ... ioParam: } ioRefNum : integer; { ioVersNum : byte; } ioPermssn : integer;{ byte } ioMisc : ptr; ioBuffer : ptr; ioReqCount : longint; ioActCount : longint; ioPosMode : integer; ioPosOffset : longint; end; var {-----------global variables-----------}{ jsr and access are 68000 glue routines }{ jsr source code described below }{ See MacTutor vol.1 no.6 for access source code } jsr : array[0..3] of integer; access : array[0..12] of integer; ResId : integer;{ id of currently open Printer file } hPrint : THPrint;{ data record for print job } pPrPort : TPPrPort;{ pointer to port to draw into } PrStatus : TPrStatus;{ printing status record } page : integer;{ page number currently printing } pageR : rect;{ copy of rPaper rectangle } width : integer;{ width of paper } maxR : rect;{ huge rectangle } myport : GrafPtr;{ for temporary use }{ %%% %%% %% %% }{ % % % % % % % % }{ %%% %%% % % % }{ % % % % % % % }{ % % % %% %% }{----------beginning of procedure definitions----------}{ This loads, locks, dereferences, and computes an }{ entry point for a resource that will be used as code } function GetAddress (id, offset : integer) : longint; var h, d : Handle; begin h := pointer(LinlineF($A9A0, $50444546, id));{ _GetResource('PDEF',id) } d := nil; inlineP($4E75, @d, @H, $A029, @access);{ _Hlock( H ) } if d <> nil then writeln('GetAddress error', ord(d)); GetAddress := ord(h^) + offset; end;{ This unlocks a PDEF resource that was locked to run } procedure ReleaseAddress (id : integer); var h, d : Handle; begin h := pointer(LinlineF($A9A0, $50444546, id));{ _GetResource('PDEF',id) } d := nil; inlineP($4E75, @d, @H, $A02A, @access);{ _Hunlock( H ) } if d <> nil then writeln('ReleaseAddress error', ord(d)); end;{ this calls GetAddress for the appropriate resource. }{ Which resource is used depends upon bjDocLoop. } function MethodAdd (hPrint : THPrint; offset : integer) : longint; var method : integer; begin method := hPrint^^.prJob.bjDocLoop div 256; method := method mod 4; hPrint^^.prJob.bjDocLoop := method * 256;{ bjDocLoop is in upper byte. It must be mod 4 } MethodAdd := GetAddress(method, offset); end;{common OS trap code, could be done with 'Generic' call}{ see MacTutor vol.1 no.6 for source code } function filecall (Pb : ParamBlkPtr; trap : integer) : integer; var d0, a0 : longint; begin a0 := ord(pb); inlineP($4E75, @d0, @a0, trap, @access);{ $4E75 is rts to access routine } filecall := loword(d0); end;{ The following File Manager calls work just like }{ those described in Inside Macintosh for the Lisa Pascal }{ Workshop, except that the async parameter is a }{ dummy; all calls are sync. } function PBOpen (Pb : ParamBlkPtr; async : boolean) : integer; begin PBOpen := filecall(pb, $A000); end;{ Below are the Printing Manager calls. }{ They are supposed to work just like the real ones. } procedure PrOpen; var sH : strHan; pblock : ParamBlockRec; Tstr : str255; begin Tstr := '.Print'; pBlock.ioNamePtr := @Tstr; { first we open driver...} pBlock.ioPermssn := 0; if PBOpen(@pBlock, false) <> 0 then sysbeep(100);{...then we open the resource fork of current printer file} sH := pointer(LinlineF($A9BA, $E000));{ _GetString(-8192 ) = name of print manager } ResId := WinlineF($A997, sH^);{ _OpenResFile of print manager, usually='Imagewriter'} end; procedure PrClose; begin inlineP($A99A, ResId);{ _CloseResFile }{ note that the driver is left open } end; procedure PrintDefault (hPrint : THPrint); begin inlineP($4E75, hPrint, Getaddress(4, 0), @jsr);{ $4E75 is rts to 'jsr' routine which runs }{ PDEF #4 with offset of zero. }{ This same sequence is used below also } ReleaseAddress(4); end; function PrValidate (hPrint : THPrint) : boolean; begin PrValidate := BinlineF($4E75, hPrint, Getaddress(4, 24), @jsr); ReleaseAddress(4); end; function PrStlDialog (hPrint : THPrint) : boolean; begin PrStlDialog := BinlineF($4E75, hPrint, Getaddress(4, 4), @jsr); ReleaseAddress(4); end; function PrJobDialog (hPrint : THPrint) : boolean; begin PrJobDialog := BinlineF($4E75, hPrint, Getaddress(4, 8), @jsr); ReleaseAddress(4); end; procedure PrJobmerge (hPrintSrc, hPrintDst : THPrint); begin inlineP($4E75, hPrintSrc, hPrintDst, Getaddress(4, 28), @jsr); ReleaseAddress(4); end; function PrOpenDoc (hPrint : THPrint; pPrPort : TPPrPort; pIOBuf : Ptr) : TPPrPort; var lll : longint; begin lll := LinlineF($4E75, hPrint, pPrPort, pIOBuf, MethodAdd(hPrint, 0), @jsr); PROpenDoc := pointer(lll); end; procedure PrOpenPage (pPrPort : TPPrPort; pPageFrame : TPRect); begin inlineP($4E75, pPrPort, pPageFrame, MethodAdd(hPrint, 8), @jsr); end; procedure PrClosePage (pPrPort : TPPrPort); begin inlineP($4E75, pPrPort, MethodAdd(hPrint, 12), @jsr); end; procedure PrCloseDoc (pPrPort : TPPrPort); begin inlineP($4E75, pPrPort, MethodAdd(hPrint, 4), @jsr); ReleaseAddress(1); end; procedure PrPicFile (hPrint : THPrint; pPrPort : TPPrPort; pIOBuff : Ptr; pDevBuf : Ptr; var prStatus : TPrStatus); begin inlineP($4E75, hPrint, pPrPort, pIOBuff, pDevBuf, @prStatus, Getaddress(5, 0), @jsr); ReleaseAddress(5); end; function PrError : integer; var eptr : Ptr; begin eptr := pointer($944); PrError := eptr^; end; procedure PrSetError (iErr : integer); var eptr : Ptr; begin eptr := pointer($944); eptr^ := iErr; end;{ This is my routine to draw a sample picture. }{ The picture is drawn into the current port. }{ Note that this is a very wide picture. } procedure drawpic; var i : integer; r : Rect; begin moveto(4, 220); textfont(2); textsize(216);{ must be less than 256 } textface([bold, outline, underline]); drawstring('Hooray for MacTutor!'); end; %%%%%%% }{ %%% }{ % }{ Main entry point of program }begin stuffHex(@jsr, '5488225F2F084ED1');{ Code to jsr to address on top of stack: }{ 5488 addq.l #2,a0 ;a0 is now return address }{ 225F move.l (a7)+,a1 ;a1 is address of routine }{ 2F08 move.l a0,-(sp) ;put return on stack }{ 4ED1 jmp (a1) ;and call routine } stuffHex(@access, '2848548C41FA000C309F245F265F20522013FFFF224826804ED4');{ access calls a register based trap } showdrawing;{ Set current port to Drawing window. } setrect(maxR, 10, 100, 510, 330); SetDrawingRect(maxR);{ Make Drawing big. } setrect(maxR, -32000, -32000, 32000, 32000);{ make maxR huge } cliprect(maxR); { Open up clip region. } for page := 0 to 8 do{ Draw 9 times for preview. } begin setOrigin(page * 300, 0);{ Use increasing offset. } eraserect(maxR); drawpic;{<------ Draw our picture in drawing. } end; hPrint := NewHandle(120);{ 120 is size of TPrint record. } PrOpen;{ Open Printing Manager. } PrintDefault(hPrint);{ Fetch default hPrint. }{ Now modify style info of hPrint if desired. }{ For banner chose Wide and No Breaks Between Pages. } if PrStlDialog(hPrint) then writeln('new style chosen');{ Then get job info for hPrint. } if PrJobDialog(hPrint) then begin pPrPort := PrOpenDoc(hPrint, nil, nil);{ Grafport is now pPrPort, not Drawing window. } pageR := hPrint^^.prInfoPt.Rpage; pageR.right := pageR.right div 2; pageR.bottom := pageR.bottom div 2; width := pageR.right;{ width of printing 'window' }{ Draw into rect 1/2 page size, quickdraw will }{ scale picture to fit page later. This effectivly doubles}{ the size of our drawing. }{ Now we will draw the picture. It will go into pPrPort. }{ For each page we offset to clip off parts not used. } getport(myport);{ myport := pPrPort; } for page := 0 to 7 do{ 8 pages } begin PrOpenPage(pPrPort, @pageR);{ PrOpenPage resets the ports size, coordinates etc. } setOrigin(width * page, 0);{ setOrigin does not change cliprgn so we do it here. } offsetRgn(myport^.cliprgn, width * page, 0);{ I tried simply maxing out the clip and it didn't work. } drawpic;{<---------draw picture into pPrPort} PrClosePage(pPrPort); end; PrCloseDoc(pPrPort); PrPicFile(hPrint, nil, nil, nil, PrStatus); end;{ if job } disposeHandle(hPrint); PrClose;end. -- By Alan Wootton, President, Top-Notch Productions, MacTutor Contributing Editor
PJL - HP Printer Job Language
Sat, 13 Nov 2010 02:02:31 -0600

PJL was developed by Hewlett-Packard to provide a method for switching printer languages at the job level, and for status readback between the printer and the host computer. PJL offers application programs an efficient way to remotely control Hewlett-Packard printers. Using PJL, developers can provide applications with the ability to programmatically switch printer languages, monitor printer status, request the printer model and configuration, change control panel default settings, modify control panel messages, and more. Reference The latest reference manuals can be ordered or downloaded from Hewlett-Packard. # HP PCL/PJL reference - Printer Job Language Technical Reference Manual (bpl13208) 342 pages, 3MB, from # HP PCL/PJL Reference - Printer Job Language Technical Reference Addendum (bpl13207) 176 pages, 3.2MB, from Undocumented PJL On HP LaserJet Pro P1102w: @PJL INFO LOGMARSLOGEND = 1@PJL INFO PRODINFOProductName = HP LaserJet Professional P1102wFormatterNumber = Q910CHLPrinterNumber = Q1234AProductSerialNumber = VNB3600454ServiceID = 20127FirmwareDateCode = 20091029MaxPrintResolution = 600ControllerNumber = Q910CHLDeviceDescription = HP LaserJet Professional P1102wDeviceLang = ZJS PJL ACL HTTPTotalMemory = 8388608AvailableMemory = 4993912Personality = 7EngFWVer = 15IPAddress = = 0025B3EDFFD0@PJL INFO SUPPLIESType = HPREGION = 1PartNumber = 13824ReorderPN = CE285APercentRemaining = 65PercentLifeRemaining = 70PagesRemaining = 150LowReached = 0SerialNumber = 580583681PageCount = 70InstallDate = 0LastUseDate = 20100620Manufacture_Date = 20100114Capacity_Units = 3Capacity_Units = 5Total_Capacity = 0AvgAreaCvrg = 15AvgAreaCvrg1 = 42AvgAreaCvrg2 = 22AvgAreaCvrg3 = 24AvgAreaCvrg4 = 6AvgAreaCvrg5 = 6 On HP LaserJet P1005: @PJL INFO LOGErrCode0 = 79.0000PageCount0 = 38ErrCode1 = 55.0000PageCount1 = 38ErrCode2 = 79.0000PageCount2 = 32ErrCode3 = 55.0000PageCount3 = 32MARSLOGEND = 1@PJL INFO SUPPLIESType = HPPartNumber = 9216ReorderPN = CB435APercentRemaining = 92PagesRemaining = 652LowReached = 0SerialNumber = 1142030597PageCount = 48InstallDate = 0LastUseDate = 20100501Manufacture_Date = 20080418Capacity_Units = 3Total_Capacity = 284AvgAreaCvrg = 5AvgAreaCvrg1 = 29AvgAreaCvrg2 = 4AvgAreaCvrg3 = 40AvgAreaCvrg4 = 13AvgAreaCvrg5 = 15@PJL INFO PRODINFOProductName = HP LaserJet P1005FormatterNumber = BA0600DPrinterNumber = CB410AProductSerialNumber = VND3717399ServiceID = 20121FirmwareDateCode = 20090916MaxPrintResolution = 600ControllerNumber = BA0600DDeviceDescription = HP LaserJet P1005DeviceLang = HBS PJL ACLTotalMemory = 2097152AvailableMemory = 1127784Personality = 7EngFWVer = 56 --
ZjStream - Zenographics SuperPrint Zj Stream
Sat, 13 Nov 2010 01:31:07 -0600

The Zj-RCA controller for the Minolta 3001 color laser printer was the first of its kind. While other host-based printing systems with very simple engine interfaces have been built, the Zj-RCA controller was the first to solve the problem with a standard parallel interface, with high performance and while maintaining a low controller cost. Other host-based printers have at least one significant drawback. The Minolta 3001 Zj was the first truly practical host-based color printing system. ZjStream printers are often erroneously referred to as win-printers or GDI-printers. However, Microsoft GDI only mandates the API between an application and the printer driver, not the protocol on the wire between the printer driver and the printer. In fact, ZjStream printers are raster printers which happen to use a very efficient wire protocol. ZjStream is licensed by most major printer manufacturers for at least some of their product lines. ZjStream is just one of many wire protocols that are in use today, such as Postscript, PCL, Epson, etc. Spooling on Windows The Zenographics SuperPrint/SuperRip drivers typically use IMF - Zenographics SuperPrint/SuperRip spool file format on Windows, for spooling prior to converting into ZjStream. Sample $ foo2zjs-wrapper | zjsdecodeZJS_MAGIC, 0x5a4a5a4a (JZJZ)ZJT_START_DOC, 4 items ZJI_DMCOLLATE, 0 (0x0) ZJI_DMDUPLEX, 1 (0x1) ZJI_PAGECOUNT, 0 (0x0) ZJI_QUANTITY, 1 (0x1)ZJT_START_PAGE, 19 items [Page 1] ZJI_ECONOMODE, 0 (0x0) ZJI_0x16, 1 (0x1) ZJI_VIDEO_X, 9792 (0x2640) ZJI_VIDEO_Y, 6392 (0x18f8) ZJI_VIDEO_BPP, 1 (0x1) ZJI_RASTER_X, 9792 (0x2640) ZJI_RASTER_Y, 6392 (0x18f8) ZJI_OFFSET_X, 204 (0xcc) ZJI_OFFSET_Y, 102 (0x66) ZJI_MINOLTA_CUSTOM_X, 0 (0x0) ZJI_MINOLTA_CUSTOM_Y, 0 (0x0) ZJI_NBIE, 1 (0x1) ZJI_RESOLUTION_X, 1200 (0x4b0) ZJI_RESOLUTION_Y, 600 (0x258) ZJI_DMDEFAULTSOURCE, 7 (0x7) ZJI_DMCOPIES, 1 (0x1) ZJI_DMPAPER, 1 (0x1) ZJI_DMMEDIATYPE, 1 (0x1) ZJI_MINOLTA_PAGE_NUMBER, 1 (0x1)ZJT_START_PLANE, 1 items ZJI_PLANE, 4 (0x4) [black]ZJT_JBIG_BIH, 0 items Data: 20 bytes DL = 0, D = 0, P = 1, - = 0, XY = 9792 x 6392 L0 = 128, MX = 16, MY = 0 Order = 3 ILEAVE SMID Options = 92 LRLTWO TPDON TPBON DPON 50 stripes, 0 layers, 1 planesZJT_JBIG_BID, 0 items Data: 65536 bytesZJT_JBIG_BID, 0 items Data: 65536 bytesZJT_JBIG_BID, 0 items Data: 39260 bytesZJT_END_JBIG, 0 itemsZJT_END_PLANE, 0 itemsZJT_END_PAGE, 0 itemsZJT_END_DOC, 0 itemsTotal size: 170352 bytes Reference Reference information can be found on the public part of the Zenographics Developer Site http://web.archive.org Open Source Driver --
ProPrinter - IBM ProPrinter
Sat, 13 Nov 2010 01:26:46 -0600

Page Control Commands Command Description Ctrl+G Beeper Ctrl+H Backspace Ctrl+X Cancel Data Ctrl+M Carriage Returncr Ctrl+Q Select Printer Ctrl+S Deselect Printer Ctrl+L Form Feedformfeed Ctrl+I Horizontal Tab Ctrl+J Line Feedlf Ctrl+@ Null Space Space Ctrl+K Vertical Tab Esc A n Set text line spacing. n is in units of n/72”. Esc B n1 n2...n255 Ctrl+@ Set vertical tabs at n1, n2, etc. Esc C n m Set form length in lines or inches. Esc D n1 n2...n28 Ctrl+@ Set horizontal tabs at n1, n2, etc. Esc N n Set automatic Perforationperf skip in n lines. Esc O Cancel automatic Perforationperf skip. Esc Q n Deselect printer. Esc R Set all tabs to power on settings. Esc U n Print in one direction. n=0: Bi-directionalbidir.n=1: Left-to-right Esc X n m Set horizontal margins. n=left Marginmargin. m=right Marginmargin. Esc 0 1/8 inch line spacing. Esc 1 7/72 inch line spacing. Esc 2 Start text line spacing. Esc 3 n Graphics line spacing. n=n/216 inch and is between 0 and 255. Esc 4 Set Top of Form. Esc 5 n Automatic line feed. n=0 cancels; n=1begins. Esc [ K Set initial condition. Esc j Stop printing. Esc d n1 n2 Relative move inline forward. n in values ofn/120 inch. Esc [ \ Set vertical units. Character/Print Mode Commands Command Description Ctrl+R 10 characters per inch print. Ctrl+T Cancel double-wide printing by line. Ctrl+O Condensedcompressed printing. Ctrl+N Double-wide printing by line. Esc E Emphasized printing. Esc F Cancel emphasized printing. Esc G Double-strike printing. Esc H Cancel double-strike printing. Esc P n Proportionalproportional space mode. n=0 cancels n=1 activates. Esc S n Subscriptsubscript or Superscriptsuperscript printing. n=0 Superscriptsuperscript n=1 Subscriptsubscript. Esc T Cancel Subscriptsubscript or Superscriptsuperscript printing. Esc W n Continuous double-wide printing. n=0 ends n=1 begins. Esc 6 Select Character Setcharset 2. Esc 7 Select Character Setcharset 1. Esc _ n Continuous overscore. n=0 cancels n=1 begins. Esc - n Continuous underscore. n=0 cancels n=1 begins. Esc : 12 characters per inch printing. Esc ^ Print single Character from all characters chart. Esc \ n1 n2 Print continuously from all characters chart. Esc [ @ Set presentation height. Esc = Character Font image download. Esc [ T Set Code Page. Graphics Commands Command Description Esc J n Graphics variable line spacing. n is anumber between 0 and 255. Use exactmultiples of 3 to move exactly n/216 inch. Esc K n1 n2 v1 v2 ...v480 Normal-density bit-image graphics. Esc L n1 n2 v1 v2 ...v960 Dual-density bit-image graphics(half-speed). Esc Y n1 n2 v1 v2 ...v960 Dual-density bit-image graphics (normalspeed). Esc Z n1 n2 v1 v2 ...v1920 High-density bit-image graphics. Esc [ g High Resolutionresolution graphics. Esc 3 n Graphics line spacing. n in values of n/180 inch. Esc A n Set text line spacing. n in values of n/60inch. Esc J n Graphics variable line spacing. n in valuesof n/180 inch. Esc * Select graphic mode. Print Mode Selection The command for selecting print mode is ESC I n Below are tables of n values and what print mode each supports: Proprinter and Proprinter XL N Values Print Mode Ctrl+@ DP Resident Ctrl+B NLQ Resident Ctrl+D DP Resident Ctrl+F NLQ Resident Proprinter II and Proprinter II XL N Values Print Mode Ctrl+@ DP Resident Ctrl+A Fastfont (12 CPIcpi) Resident Ctrl+B NLQ Resident Ctrl+C NLQ II Resident Ctrl+D DP Download Ctrl+E Fastfont (12 CPIcpi) Download Ctrl+F NLQ Download Ctrl+G NLQ II Download Proprinter III and Proprinter III XL N Values Print Mode Ctrl+@ DP Resident Ctrl+A Fastfont (12 CPIcpi) Resident Ctrl+B NLQ Resident Ctrl+C NLQ II Resident Ctrl+D DP Download Ctrl+E Fastfont (12 CPIcpi) Download Ctrl+F NLQ Download Ctrl+G NLQ II Download Ctrl+K Alternate NLQ II (Italic): Resident Ctrl+O Alternate NLQ II: Download Proprinter X24, XL24, X24E, XL24E N Values Print Mode Ctrl+@ Normal (Draftdraft) 10 CPIcpi Sans-Serifsansserif (default) Ctrl+B Letter Qualitylq 10 CPIcpi Couriercourier Ctrl+C Proportionalproportional Letter Qualitylq Couriercourier Ctrl+D Downloaded 10 CPIcpi Draftdraft Ctrl+H Normal (Draftdraft) 12 CPIcpi (derived from 10 CPIcpi draft) Ctrl+J Letter Qualitylq 12 CPIcpi prestige Eliteelite Ctrl+L Downloaded 12 CPIcpi Draftdraft (derived from the downloaded 10 CPIcpi draft) Ctrl+P Normal (Draftdraft) 17 CPIcpi (derived from 10 CPIcpi draft) Ctrl+R Letter Qualitylq 17 CPIcpi Couriercourier --
PCL XL - HP Page Description Language Level 6
Sat, 13 Nov 2010 01:18:37 -0600

PCL XL is a Hewlett-Packard LaserJet printer language optimized for printing from graphical user interfaces (GUI) like Microsoft Windows® and OS/2®. The PCL XL language commands are designed to optimally match the graphics printing requirements for GUI-based applications. In most cases, for every graphics print command that a GUI wishes to perform, there is a matching PCL XL language command. This reduces the number of commands required to describe a graphics page. Versions Class 1.1 Draw tools: Support drawing lines, arcs/ellipses/chords, (rounded) rectangles, polygons, Bezier paths, clipped paths, raster images, scanlines, raster operations. Color handling: Support 1/4/8-bit palettes, RGB/grey color space. Support custom halftone patterns (max 256 patterns). Compression: Supports RLE. Units of measurement: Inch, millimetre, tenth of millimetre. Paper handling: Support custom or predefined sets of paper types, including common Letter, Legal, A4, etc. Can choose paper from manual feed, trays, cassettes. Paper can be duplexed horizontally or vertically. Paper can be oriented in portrait, landscape, or 180 degree rotation of the former two. Font: Supports bitmap or TrueType fonts, 8 or 16-bit code points. Choosing character set uses different symbol set code from PCL 5. When bitmap font is used, many scaling commands are unavailable. When TrueType font is used, variable length descriptors, continuation blocks are not supported. Outline font can be rotated, scaled, or sheared. Class 2.0 Compression: Added a proprietary JPEG compression called JetReady. Paper handling: Media can redirected to different output bins (up to 256). Added A6 and Japanese B6 preset media sizes. Added Third cassette preset, 248 external tray media sources. Font: Text can be written vertically. Class 2.1 Color handling: Added Color matching feature. Compression: Added Delta Row. Paper handling: Orientation, media size are optional when declaring a new page. Added B5, JIS 8K, JIS 16K, JIS Exec paper types. Class 3.0 Color handling: Allow using different halftone settings for vector or raster graphics, text. Supports adaptive halftoning. Protocol: Supports PCL passthrough, allowing PCL 5 features to be used by PCL 6 streams. However, some PCL 6 states are not preserved when using this feature. Font: Supports PCL fonts. Viewer/Converter: PCLReader (freeware) can view, convert or print any level of PCL 6 (including JetReady) to any printer. Reference The latest technical reference manuals can be ordered or downloaded from Hewlett-Packard. Official HP PCL SDK Download Site Public Kits and Information Download HP PCL XL 2.0 Technical Reference Rev 2.2 pcl_xl_2_0_technical_reference_rev2_2.pdf HP PCL XL 3.0 Technical Reference Supplement Rev 0.90 xl_refsup30r089.pdf --
PCL - HP Page Description Language
Sat, 13 Nov 2010 01:14:49 -0600

HP created PCL to provide an efficient way to control printer features across many different printing devices. PCL was originally devised, in the early 1980s, for HP’s dot matrix and Inkjet printers. The first printer in HP’s LaserJet series, the HP LaserJet was released in 1984 with the PCL 3 Language. The current version is PCL XL. PCL commands are compact escape sequence codes that are embedded in the print job before being sent to the printer. HP PCL formatters and fonts are designed to quickly translate application output into high-quality, device-specific, raster print images. PCL is the most widely spread printer language in the laser printer market today. Most laser printer manufacturers use an implementation of PCL PCL 5e or PCL XL for their printers. Versions PCL versions differ in functionality (e.g. font type support: bitmap fonts, scalable fonts (Intellifonts, TrueType fonts), raster graphic compression methods, HP-GL/2 graphic support). PCL 1 around 1980 - Print and Space functionality is the base set of functions provided for simple, convenient, single-user workstation output. PCL 2 around 1980 - EDP (Electronic Data Processing)/Transaction functionality is a superset of PCL 1. Functions were added for general purpose, multi-user system printing. PCL 3 1984 - Office Word Processing functionality is a superset of PCL 2. Functions were added for high-quality, office document production. It allowed for the use of a limited number of bitmapped fonts and graphics, and supported HP-GL. PCL 3 was widely imitated by other printer manufacturers and was referred to by these companies as “LaserJet Plus Emulation.” (Printers: HP DeskJet family, HP LaserJet series printer, HP LaserJet Plus series printer) PCL3+ Used by DeskJet and DesignJet family of printers. PCL3c Used by DeskJet and DesignJet family of printers. PCL3e Used by DeskJet and DesignJet family of printers. Now used in PhotoSmart also. PCL3GUI Used by DeskJet and DesignJet family of printers. Uses RTL PCLSLEEK Used by DeskJet and DesignJet family of printers. Uses RTL PCL 4 1985 - Page formatting functionality is a superset of PCL 3. Supported macros, larger bitmapped fonts and graphics. (Printers: HP LaserJet II, HP LaserJet IIP (PCL 4.5)) PCL 5 1990 - Office Publishing functionality is a superset of PCL 4. New publishing capabilities include font scaling and HP-GL/2 (vector) graphics. (Printers: HP LaserJet III) PCL 5e 1994 - This is a major revision, which includes new features like Adaptive Compression System, 2byte character encoding, support for vector fonts and bi-directional configuration commands. Includes Logical OPerations (corresponds to GDI ROPs) to improve Windows support before clipping paths. (Printers: HP LaserJet 4) PCL 5j New features like 2-byte character support for Japanese resident scalable fonts, vertical writing, Japanese paper sizes and typeface strings. (Printers: HP LaserJet 4PJ) PCL 5c 1995 - Color support and Logical OPerations was added to PCL5. PCL5c predates PCL5e. Some models also support clipping paths. (Printers: HP Color LaserJet, HP PaintJet 300 XL (first printer with PCL5c), HP DeskJet 1200C/1600C (these model numbers have been re-used and the newer models are not PCL 5c) If PCL 5c predates 5e, what are the correct years then? — Christoph Lindemann 2006/07/26 16:54 Also if both 5c and 5e introduce Logical OPerations, are they different? or does 5e just implement the same ops as 5c? — Christoph Lindemann 2006/07/26 16:56 PCL 5ce Supports Agfa Microtype scalable typefaces. (Printers: HP 2500c Pro Printer) PCL 6 / XL 1996 - PCL 6 or PCL XL is a new format introduced in 1995, which is not compatible with any previous versions of PCL. (Printers: HP LaserJet 5, 5M and 5N) For more information see PCL XL. Users having data corruption on poor quality cable with PCL6 should consider PCL5 (much reliable). Either buy a more efficient XOR shorter cable. You confuse with PCL6 (base) and PCL XL: PCL6 (base) is a superset of PCL5e and compatible with PCL5 printers. PCL XL (aka “PCL6 enhanced”) is a superset of PCL6 and is designed too offer near PostScript quality. Because of too much quality improvements, it is not compatible with PCL5 printers. Interresting. Could you please provide some documentation about the differences? All documentation I have seen about PCL 6/XL was describing the new PCL XL, and in the first draft specs of PCL XL, it was called PCL 6 (As far as I know). But if you could provide some tech specs for PCL 6 (base) that would be fantastic, as I have only across docs up til PCL 5c. — Christoph Lindemann 2009/07/02 20:24 Reference The latest technical reference manuals can be ordered (HP Part-Number #5961-0546) or downloaded from Hewlett-Packard. Official HP PCL SDK Download Site Public Kits and Information Download HP PCL 5 Technical Reference pcl5_technical_reference.pdf HP PCL 5c Technical Reference pcl5_color_technical_reference.pdf HP PCL 5 Comparison Guide pcl5_comparison_guide.pdf HP PCL 5 Comparison Guide Addendum pcl5_comparison_guide_addendum.pdf HP PCL 5 Quick Reference pcl5_quick_reference.pdf HP PCL 5c Programming Quick Reference pcl5_color_programming_quick_reference.pdf PCL-UTF-8: HP-UX 11i v3 International Printing Features Brother HL-Series Technical Reference hl-series_techreference_revc_oct1994.pdf - PCL5e printer symbol sets (Cyr.Tech.) Symbol tables.pdf Support for PCL5e/PCL5c macros in a multi-user environment (Cyr.Tech.) Support of PCL5e Macros.pdf Notes Despite all the descriptions not allowing it, there are “groupless” parametrized commands. EC(8U for example has a command of the parameterized type, the “(” which is immediatly followed by the value and parameter. It is not valid PCL but you would be hard pressed to select the correct font without it. Setting the group to asc(127) seems to be the most logical way to handle this when parsing PCL commands. Not all binary transfer escape sequences are defined by the “w” parameter character or “W” terminating character. However, this is the preferred parameter for standardization. The following are some sequences that do not end with a “w” or “W”; these commands should be parsed and any binary data discarded if the device does not support the command. EC&p#X - Transparent Data: Transparent print data EC*b#V - Raster Data: Raster graphics transfer by plane The following Esc?W commands should not be interpreted as binary data commands: EC&k#W - Device Specific Control EC(W - Select Primary Font Character Set EC)W - Select Secondary Font Character Set EC&dW - Underline LaserJets do not currently support the lowercase “w” as indicating that binary data follows and will continue parsing the binary data, looking for value field or terminating character. The Perf Skip Disable command EC&l0L does not prevent a page eject when data is printed off the bottom of the page, it only delays it from the point where the lower non-printable margin begins to the actual end of the physical page. LaserJets prior to LJ4, DeskJets below DJ1200C, PaintJet XL300, and the Color LaserJet do not support HP-GL/2 commands or picture frame directives within macros. (All LaserJets support some form of HP-GL) EDIT: The PCL5 Comparison Guide, Edition 2, 6/2003 states the Color LJ supports HP-GL/2. Can anyone prove or disprove this? TC Holmes 12:34 AM PT 2009-12-31 When a macro ID is specified for which no macro has been defined, the macro invocation, macro deletion, and “make macro permanent or temporary” commands are ignored. A macro enabled for auto macro overlay is executed on each page, until the macro is disabled, deleted, a reset occurs, the page length is changed, the page size is changed or the page orientation is changed. Undocumented PCL Commands Command Syntax Version Media Type EC&l#M Negativ Motion EC&a#N Text Parsing Method EC&t#P Seed Row Source EC*b#S DeskJet 600 Set Black Optimization EC*b#B PCLSLEEK Transfer Raster Data (Plane) EC*b#V[data] Transfer Raster Data (Row/Block) EC*b#W[data] Raster graphics depletion EC*o#D # = 1..5 1 = None 2 = 25% 5 = 50% PCLSLEEK Print Quality EC*o#M # = -1..1 -1 = EconoFast 0 = Normal 1 = Presentation DeskJet 600 Mechanical Print Quality EC*o#Q Driver Configuration EC*o#W[data] PCLSLEEK User Defined Logical Page EC&a#W[LogicalPageFormat] HP D640 High-volume Printer Self Test ECz Test Pages EC|p#T # = Testpage flags bit 0 = Menus bit 1 = Fontlist bit 2 = Storage Set Black Optimization Specifies whether black optimization should be performed. Only supported by some inkjet devices. (PCLSLEEK) <ESC>*b#B # = 1..2 1 = Enable 2 = Disable When black is constructed by setting all the bits in the CMY color planes, the resulting color may have a non-black hue. This command can enable black optimization, to make black (composed of color inks) appear more black. User Defined Logical Page This command allows you to define the logical page. Not supported by most printers <ESC>&a#W[LogicalPageFormat] Where # is the number of bytes of binary data following the terminator. The default value for # is = NA. The range for # is = 4,10. The binary data describes the logical page format as shown below: Byte 15 (MSB) 8 7 0 (LSB) Byte 0 Left Offset 1 2 Top Offset 3 4 Orientation Reserved (0) 5 6 Width 7 8 Height 9 Left Offset Specifies (in integer decipoints) the location of the left edge of the logical page with respect to the left side of the physical page in the selected viewing orientation. The range of values is -32767 to 32767. Top Offset Specifies (in integer decipoints) the location of the top edge of the logical page with respect to the top edge of the physical page in the selected viewing orientation. The range of values is -32767 to 32767. Orientation This is the viewing orientation of the logical page with respect to the physical page. Values may be 0 (portrait), 1(landscape), 2 (reverse portrait), or 3 (reverse landscape). All other values reset the logical page definition leaving the logical page as it was previously defined. Reserved Byte A byte which must be present in the data streamand must be equal to zero. Width Logical page width is defined in decipoints. A zero width causes the logical page definition to be ignored. The logical page may be larger than the physical page. The range of values is 1 to 65535. Height Logical page height is defined in decipoints. A zero height causes the logical page definition to be ignored. The logical page may be larger than the physical page. The range of values is 1 to 65535. Either 4 or 10 bytes of binary data defining values in the specified range must be downloaded with this command. If more than 10 bytes are received, the excess number is disregarded. If the number of bytes received is less than 10 and greater than 4, the left and top offsets are changed and the remaining bytes are ignored. Upon receipt of a valid, 4-byte command, the current logical page definition is updated with the new left and top offsets. The margins, print direction, and current active position (CAP) are retained relative to the new position of the logical page. (The only change to the current logical page is that now it is offset relative to the physical page.) Upon receipt of a valid command with 10 or more bytes of binary data, the current logical page definition is discarded and the new definition is installed. The following actions take place with a new definition: The macro overlay is disabled. Any current raster graphics are closed. The primary and secondary fonts are set for the selected orientation. Print direction is set to zero and the orientation is set appropriately. HMI, VMI, margins, and text length are set to their PCL defaults. CAP is moved to (0,0). CAP becomes floating. The reference point used for tiling defaults to the upper-left corner of the current logical page. The tiles are printed based on the viewing orientation selected. The picture frame is defaulted to the logical page bounds and the anchor point is set to the upper left corner of the logical page. Any extra bytes specified with the command are disregarded. The positions stored in the CAP stack are not changed with an orientation change. Therefore, the positions are relative to the top left corner of the current orientation. The new logical page definition remains in effect until another logical page is defined, or the logical page is defaulted by receipt of a reset, an orientation change, a page length, or a paper size command. The current logical page definition (PCL default or user defined) is part of the user and overlay environments. A graphic mark will appear on the page if and only if it falls within the printable area and the logical page boundaries. For HP-GL/2 mode, graphics must also be within the defined picture frame and user defined window. RTL - Raster Transfer Language HP RTL is Hewlett-Packard’s Raster Transfer Language. It is a language that is understood by various plotters and printers, and is used to produce plotted or printed output from those devices. HP RTL is similar to Hewlett-Packard’s PCL printer language; many of its commands are the same as those of PCL, though some are different, and you should be aware of these differences if you are already familiar with PCL. The following RTL commands are different from PCL. Configure Raster Data The Configure Raster Data command configures the device to receive raster data. EC*g#W[data] # = Bytes in the immediatly following format block. The data format can have one of the following characteristics: Direct mode. When you send data in Direct Mode, the data is printed without being retained inside the printer. This has as the advantage that the processing time is reduced to a minimum, but with the drawback that you will not be able to replot the job. Four or more color pens: KCMY, KCMYcm or KCMYOG. Different definitions for each pen. Data organised in pixel- or plane-major order Each pen is identified as a ‘channel’ of the active color space: K, C, M, Y, O, G, and so on.   Byte Length Description 0 1 Format 1 1 Number of Pens 2 1 Pens Major Specification 3 1 Reserved = 0 4 2 Horizontal Resolution for Pen 1 6 2 Vertical Resolution for Pen 1 8 2 Number of Intensity Levels for Pen 1 if Contone. 2: Halftone (1bit) 4: 2bit print modes 10 1 Planes Major Specification for Pen 1 11 1 Channel ID for Pen 1 ... ... ... 8(n-1)+4 2 Horizontal Resolution for Pen n 8(n-1)+6 2 Vertical Resolution for Pen n 8(n-1)+8 2 Number of Intensity Levels for Pen n 8(n-1)+10 1 Planes Major Specification for Pen n 8(n-1)+11 1 Channel ID for Pen n Byte 0: Format Number 2: Unknown 7: “Complex Direct Organisation—Major-Specification Channel-ID”. Byte 1: Number of Pens Value = 1..255 Specifies the number of expected pens. The Product Comparison Guide indicates the number of pens supported by each printer. Byte 2: Pens Major Specification Specifies how the data of the different pens is organised. Value = 0: Pixel Major: All the bits for all the pens of a pixel are together, followed by the bits for the next pixel of the row and so on. In total there is a single plane per row. Value = 1: Plane Major: The data for each pen bits are placed in different structures; there should be as many of these structures as pens. These structures, in turn, can also be organised in pixel- or plane-major, which is indicated in the appropriate fields for each pen. There can be pens with different major specifications. Byte 3: Reserved Value = 0 Bytes 4-5, 12-13, ...: Horizontal Resolution Value = 1 through 65535 Specifies the horizontal resolution of each pen, in pixels per inch of the source raster. Bytes 6-7, 14-15, ...: Vertical Resolution Value = 1 through 65535 Specifies the vertical resolution of each pen, in pixels per inch of the source raster. Bytes 8-9, 16-17, ...: Number of Intensity Levels Value = 2 through 65535 Specifies the number of intensity or grayscale levels for each pen for contone data. A level of 2 allows only two intensities expressed by 1 bit, since a pixel is either on or off. A level of 4 allows four intensities expressed by 2 bits, and so on. A level of 256 allows this number of intensities expressed by 8 bits, and is usually interpreted as contone data. Note that the number of levels could be 187, for instance, which would mean 8 bits to represent values between 0 and 187. With halftone data, the number of intensity levels is not important, as the order in which the dots are fired by the pen for a certain pixel is not relevant. For this reason, this field is actually 2number of bits per pen for this particular pen, when dealing with halftoned data. The lowest intensity is zero; the highest intensity is Number of Levels -1. The number of bits per pixel expected for each pen in each row is ceiling(log2(number of levels)) where the ceiling function gives the next higher integer, for non-integer values. [So, ceiling(3.1) is 4.] For example, three levels require two bits. The lowest order plane is transmitted first and the highest order plane last for a given pen of a row. Byte 10, 18, ...: Planes Major Specification Specifies how the data of the pen is organised. Value = 0: Pixel Major: All the bits of a pixel pen are together, followed by the bits of the next pixel pen of the row and so on. In total there are as many planes as pens per row. Value = 1: Plane Major: There is one plane for each bit of the pixel pen. In total, in a row there are as many planes as bits per pixel. When the Pens Major Specification (byte 2) is Pixel Major, the Planes Major Specification should be also Pixel Major; in this case the field is ignored. Byte 11, 19, ...: Channel ID ID Channel 0 K (black) 1 C (cyan) 2 M (magenta) 3 Y (yellow) 4 R (red) 5 G (green) 6 B (blue) 7 W (white) 10 O (orange) 51 k (grey) 52 c (light cyan) 53 m (light magenta) Specifies the channel a pen is intended for, that is, the pen ink color (as K,C,M,Y) or the channel of a previously defined color space. The order of the pen channel IDs in the command determines the order in which the data planes must be sent. Rules The use of the Configure Raster Data command is subjected to the following rules: The ECE, Reset command overrides the Configure Raster Data configuration and enables any locked-out command. The raster mode used by the printer is determined by the last valid EC*v#W[data], Configure Image Data command, Configure Raster Data command or EC*r#U, Simple Color command (with a parameter of -4) when the first raster row (or object for Configure Image Data) is processed. The EC&a#N, Negative Motion command specifying no negative motion must be sent in the file with the Configure Raster Data or Simple Color command in order to activate this mode. If the printer is already in this mode (by means of a Configure Raster Data or Simple Color command), any further Configure Raster Data or Simple Color commands are ignored. The raster resolution is determined by the last valid Configure Raster Data command before entering this mode, that is, before the first raster row is sent. This mode locks out the following commands and features until the receipt of a ESCE, Reset command: EC*r#U, Simple Color EC*t#R, Set Graphics Resolution EC*v#W[data], Configure Image Data Configure Raster Data itself EC*v#N, Source Transparency Mode Some cases of raster scaling mode (depending on the format configuration: halftone formats lock it, but contone formats allow it) Inked Area feature IW, Input Window—only the hard-clip limiting takes place Current Active Position movements. As a result of the last two items, this mode allows for a real full page raster description, and it requires the generation of all data in the page in the right order and format. If the data is generated for a bigger page than the one already loaded, hard-clip limiting takes place. Once in this mode, any HP-GL/2 command that implies the creation or maintenance of a display list is ignored. Also, once an object or raster is sent to the device and a display list has been created, the Simple Color command with a parameter of -4 and the Configure Raster Data command are ignored. If an unsupported Configure Raster data command is sent to a printer, the job is cancelled. The horizontal resolution defined in the Configure Raster Data command determines the horizontal pixel size for the EC*r#S, Source Raster Width, to which all the planes of all the rows for all pens are zero-filled or clipped. Similarly, the vertical resolution determines the vertical pixel size for EC*r#T, Source Raster Height, which defines the vertical height of the raster area. Missing data is zero-filled if an EC*b#Y, Y Offset command is received after only part of the data defining the strip is sent. The EC*b#V[data], Transfer Raster Data by Plane and EC*b#W[data], Transfer Raster Data by Row/Block commands download raster data, and the EC*b#M, Compression Method command defines the compression rules. Raster Line Path EC*b#L Transfer Raster Data by Plane EC*b#V[data] HP-GL/2 - Hewlett-Packard Graphics Language HP-GL/2 is the standardized version of the Hewlett-Packard Graphics Language. It is designed to provide a set of consistent functions across a wide range of peripheral devices, both plotters and printers. It’s aim is therefore to reduce programming effort and the future compatibility of your programs, while allowing great flexibility in creating images. HP-GL/2 is a super-set of HP-GL, with 4 exceptions: XT and YT (x tick and y tick), RP (Replot), and PG (Page Advance/Eject) are no longer supported andmust be sent as some method of PCL mode, and share the color pallet. As a result, HP-GL/2 is strictly a subset of PCL5. --
ESC/P - Epson Standard Code for Printers
Sat, 13 Nov 2010 00:50:43 -0600

Information The printer language ESC/P was originally developed by Epson for use with their early dot-matrix printers. Today it is supported also by Epson inkjet and laser printers as well as by many other dot-matrix printers in the market. ESC/P2 is an enhancement of ESC/P, i.e. it has new functions for font scaling, raster graphic printing, etc. As with many printer languages, ESC/P or ESC/P2 on printers from different manufacturers may differ slightly in their functionality. Normally the differences are additional functions not provided with the original version from Epson, so beware of using them if you want to support all ESC/P or ESC/P2 compatible printers. Reference Information about ESC/P and ESC/P2 may be found in the printer manuals of the respective manufacturer. Sometimes it is only a short listing of all available functions (hopefully!) sometimes the functions are declared in depth with examples in BASIC. Character set tables and font width tables may be found there too. Epson sells the “ESC/P2 Reference Manual”, which includes both ESC/P and ESC/P2, as well as a complete description of the differences in commands supported by each printer. The newest version is dated December 1997, and includes Stylus Color commands. escode.txt Listing of ESC/P codes supported by Epson impact printers. --

Suggest your RSS feed | Terms & Conditions | Other Projects

© Copyright 2011 - 2012, Print-Jobs.Com: Global Directory of Printing Indusry RSS Feeds, All rights reserved.