[WinPrnDev] Re: Creating a Printer Driver

  • From: Sam Elamin <hussam_88@xxxxxxxxxxx>
  • To: <winprndev@xxxxxxxxxxxxx>
  • Date: Wed, 31 Mar 2010 15:07:21 +0000

Gary
Can the port monitor pass print job settings or can i write a port monitor that 
checks a print job;s properties then maybe pass them to the server? 
RegardsSam

> From: garyp@xxxxxxxxxx
> To: winprndev@xxxxxxxxxxxxx
> Subject: [WinPrnDev] Re: Creating a Printer Driver
> Date: Wed, 31 Mar 2010 16:04:40 +0100
> 
> Dear Sam,
> FILE is a port monitor. It's one of the default ports available under
> Windows, like LPT1. If you want to trigger an upload to server mechanism
> then you either need to create a separate watch process to monitor for file
> creation, or write your own port monitor which is then triggered by the
> event of someone printing (much easier). As I said, unless you use one of
> the PDF driver technologies which creates PDF without going through the
> interim stage of PostScript (and I don't know of any free one of those) then
> you'll have to follow Clinton's suggestion of using a PostScript driver and
> a port monitor which converts it to a PDF file - e.g. distil through
> GhostScript - and which then uploads this to a server. Or the port monitor
> could just grab the PostScript file, upload it to the server, and instead do
> the distillation to PDF on the server.
> The only real difference at the client side if you decide to use XPS instead
> of PDF is that you can go direct to XPS for free without any interim
> process. The rest of the system, e.g. a port monitor, is the same. But then
> this would be a Windows only solution (which I think you mentioned before as
> not being a problem). Server side you've still got to address the problem of
> programmatically printing and defining job settings such as paper size,
> mono, duplex etc. and this is much simpler (and free) to do with XPS than
> with PDF.
> Regards,
> Gary
> -----Original Message-----
> From: Sam Elamin [mailto:hussam_88@xxxxxxxxxxx]
> Sent: 31 March 2010 14:12
> To: winprndev@xxxxxxxxxxxxx
> Subject: [WinPrnDev] Re: Creating a Printer Driver
> 
> 
> Gary
> 
> 
> Yes that is correct, howeverif i save to file using "FILE", wont i lose all
> the original formatting? If its the port monitor that does the saving of the
> output file (from what I understood from Rune's eail) then maybe I can
> design a port monitor that creates a PDF or XPS and then save it the client.
> 
> 
> Then I would have the path and then as previosly stated I can use my .NET
> application to upload it and print it from the server?
> 
> 
> Wont that make things far much simpler? 
> 
> 
> Regards
> Sam
> 
> > From: garyp@xxxxxxxxxx
> > To: winprndev@xxxxxxxxxxxxx
> > Subject: [WinPrnDev] Re: Creating a Printer Driver
> > Date: Wed, 31 Mar 2010 14:06:17 +0100
> > 
> > Dear Sam,
> > Ah, you mean the path to the Output file. But you can do this in Windows
> > anyway. One of the standard ports in Windows is FILE: (open the Port
> option
> > for any of your print queues and you can choose that) which will then put
> up
> > a dialog asking where you want to save the resultant file. The format of
> > that file will of course depend upon what your driver generates (PCL,
> > PostScript, XPS etc.). If you don't want a prompt everytime then you can
> > create a new port in Windows, choose "Local port", and then type in a path
> > to a file name. It'll keep getting overwritten each time you print to it
> > though.
> > Most print drivers that produce PDF (as you are referring to) are usually
> > based around a PostScript driver, and they use a custom port monitor to
> grab
> > the PostScript output and distil this into PDF at which point they can
> > prompt you for a destination file. There are also "pure" PDF solutions out
> > there that accept the GDI printed by the Windows application and they
> > generate PDF without going though the interim PostScript stage.
> > Regards,
> > Gary
> > -----Original Message-----
> > From: Sam Elamin [mailto:hussam_88@xxxxxxxxxxx]
> > Sent: 31 March 2010 13:46
> > To: winprndev@xxxxxxxxxxxxx
> > Subject: [WinPrnDev] Re: Creating a Printer Driver
> > 
> > 
> > Gary
> > 
> > 
> > Then it was a misunderstand and I appologise if my questions are getting
> > repetitve, maybe I did not phrase it properly. I understand that if a
> > document is printed to a print driver, the driver has no idea what the
> > source is.
> > 
> > 
> > What I am asking about is a driver that creates a PDF document from
> anything
> > that is printed to it, so you would print a PPT power point document and
> the
> > output would be a PDF of the PPT. 
> > 
> > 
> > Wont the driver know where its supposed to save the output pdf and hence
> has
> > the PATH?
> > 
> > 
> > Regards
> > Sam
> > 
> > > From: garyp@xxxxxxxxxx
> > > To: winprndev@xxxxxxxxxxxxx
> > > Subject: [WinPrnDev] Re: Creating a Printer Driver
> > > Date: Wed, 31 Mar 2010 13:01:22 +0100
> > > 
> > > Dear Sam,
> > > You're like a dog with a new bone! As a previous respondent said, the
> > > printer driver is just given a bunch of drawing commands, text etc. It
> > then
> > > renders those drawing commands into a language that the printer can
> > > understand. The printer driver knows nothing of "documents". It would be
> > > like looking at a piece of printed paper and knowing from that the path
> to
> > > the original Word document that it came from. There is no relational
> link
> > > between the source document and the output print job. Please don't think
> > > that PDF or XPS or EMF or anything else would make any difference! The
> > only
> > > thing that knows the path to the original document is - somewhat
> obviously
> > -
> > > the application that handles it.
> > > Regards,
> > > Gary
> > > -----Original Message-----
> > > From: Sam Elamin [mailto:hussam_88@xxxxxxxxxxx]
> > > Sent: 31 March 2010 12:25
> > > To: winprndev@xxxxxxxxxxxxx
> > > Subject: [WinPrnDev] Re: Creating a Printer Driver
> > > 
> > > 
> > > Gary
> > > 
> > > 
> > > I thought so, thanks. But quick question arent there PDF print drivers
> > that
> > > will create a pdf of any document printed to it. Which means the driver
> > > knows which path its creating the document to, correct?
> > > 
> > > 
> > > 
> > > 
> > > Regards
> > > Sam
> > > 
> > > > From: garyp@xxxxxxxxxx
> > > > To: winprndev@xxxxxxxxxxxxx
> > > > Subject: [WinPrnDev] Re: Creating a Printer Driver
> > > > Date: Wed, 31 Mar 2010 12:15:34 +0100
> > > > 
> > > > Dear Sam,
> > > > That's about the long and the short of it, yes.
> > > > Regards,
> > > > Gary
> > > > -----Original Message-----
> > > > From: Sam Elamin [mailto:hussam_88@xxxxxxxxxxx]
> > > > Sent: 31 March 2010 12:12
> > > > To: winprndev@xxxxxxxxxxxxx
> > > > Subject: [WinPrnDev] Re: Creating a Printer Driver
> > > > 
> > > > 
> > > > Gary
> > > > 
> > > > 
> > > > So the bulk of the work will be developing the port monitor. Once that
> > is
> > > > done we can then look at the "print ticket" which passes the right
> > > > properties.
> > > > 
> > > > 
> > > > To put it simply my custom print monitor will upload the XPS file
> which
> > > will
> > > > probably contain the print ticket (where the properties are held) and
> > then
> > > > the server handles the job.
> > > > 
> > > > 
> > > > Regards
> > > > Sam
> > > > 
> > > > > From: garyp@xxxxxxxxxx
> > > > > To: winprndev@xxxxxxxxxxxxx
> > > > > Subject: [WinPrnDev] Re: Creating a Printer Driver
> > > > > Date: Wed, 31 Mar 2010 12:07:50 +0100
> > > > > 
> > > > > Dear Sam,
> > > > > "what i need to do is develop a port monitor that can transfer that
> > file
> > > > up
> > > > > to the server?." - yes.
> > > > > "Since the document has already been printed I wont need to supply
> the
> > > job
> > > > > properties (Color,Mono)." - this depends upon what options you offer
> > in
> > > > your
> > > > > XPS "printer" driver, and which of those choices the user chooses.
> As
> > > with
> > > > > any printer.
> > > > > "is the XPS file i am sending a spool file and not an actual
> document
> > > like
> > > > a
> > > > > pdf? " - well the simple answer is that it's both. Read up on the
> XPS
> > > > > documentation. The feature you are looking for regarding colour etc.
> > is
> > > in
> > > > > the Print Ticket which you can pass to the API for printing your XPS
> > > file
> > > > on
> > > > > the server - subject to the PrintCapabilities of the printer you're
> > > trying
> > > > > to send it to of course.
> > > > > Regards,
> > > > > Gary
> > > > > 
> > > > > -----Original Message-----
> > > > > From: Sam Elamin [mailto:hussam_88@xxxxxxxxxxx]
> > > > > Sent: 31 March 2010 12:01
> > > > > To: winprndev@xxxxxxxxxxxxx
> > > > > Subject: [WinPrnDev] Re: Creating a Printer Driver
> > > > > 
> > > > > 
> > > > > Gary
> > > > > 
> > > > > 
> > > > > So what your saying is the XPS driver will provide me with the file,
> > > what
> > > > i
> > > > > need to do is develop a port monitor that can transfer that file up
> to
> > > the
> > > > > server?. Since the document has already been printed I wont need to
> > > supply
> > > > > the job properties (Color,Mono).
> > > > > 
> > > > > 
> > > > > But what if i am printing a document which has colour in it to my
> XPS
> > > > > driver, and i choose to print in mono, then technically the XPS file
> > > > > produced wont have any colour on it right? and where will the other
> > data
> > > > be
> > > > > stored (Duplex or a4 or a3) or is the XPS file i am sending a spool
> > file
> > > > and
> > > > > not an actual document like a pdf? 
> > > > > 
> > > > > 
> > > > > Regards
> > > > > Sam
> > > > > 
> > > > > > From: garyp@xxxxxxxxxx
> > > > > > To: winprndev@xxxxxxxxxxxxx
> > > > > > Subject: [WinPrnDev] Re: Creating a Printer Driver
> > > > > > Date: Wed, 31 Mar 2010 11:54:06 +0100
> > > > > > 
> > > > > > Dear Sam,
> > > > > > For the overwhelming majority of devices you cannot just send them
> > XPS
> > > -
> > > > > > they don't understand it. But using an XPS print driver will
> provide
> > > you
> > > > > > with a file that has all the resources required to print that job
> at
> > > the
> > > > > > server end (check out MSDN for how to submit XPS to a device with
> > the
> > > > > > settings you are after). There is no need to convert XPS to PDF by
> > the
> > > > > way,
> > > > > > it's completely unnecessary. You are correct about the mechanism
> for
> > > > > > replaying a metafile but I wouldn't recommend EMF because better
> > > > > > technologies are available (i.e. PDF or XPS) that address the font
> > and
> > > > > file
> > > > > > size implications.
> > > > > > A port monitor is just a port, the same as printing to LPT1, or
> > COM1,
> > > or
> > > > a
> > > > > > file, or port 9100 on an IP address. In your case it's a bit of
> code
> > > > that
> > > > > > you want to run as the (XPS) file spools off the queue in order to
> > > > trigger
> > > > > > your client / server communication. It's completely independent of
> > > your
> > > > > > driver. Google "RedMon" for an example of one.
> > > > > > Regards,
> > > > > > Gary
> > > > > > 
> > > > > > -----Original Message-----
> > > > > > From: Sam Elamin [mailto:hussam_88@xxxxxxxxxxx]
> > > > > > Sent: 31 March 2010 10:45
> > > > > > To: winprndev@xxxxxxxxxxxxx
> > > > > > Subject: [WinPrnDev] Re: Creating a Printer Driver
> > > > > > 
> > > > > > 
> > > > > > Jason/Gary
> > > > > > 
> > > > > > 
> > > > > > Thanks Jason I got the sample working, now I am trying to
> understand
> > > > what
> > > > > a
> > > > > > port monitor is and how to implement it into the sample driver
> > > > > > 
> > > > > > 
> > > > > > Gary thank you for your detailed email and I understand your
> > concerns.
> > > 
> > > > > > 
> > > > > > 
> > > > > > But what i dont get is the print driver that will sit on the
> client
> > > > side,
> > > > > if
> > > > > > it converts documents to XPS then the print driver compatibility
> is
> > > not
> > > > > > really an issue because XPS can be understood by most printers
> > right?
> > > > > > 
> > > > > > 
> > > > > > and if its not why not use an XPS to PDF converter then print it
> at
> > > the
> > > > > > server. 
> > > > > > 
> > > > > > 
> > > > > > The question is when you print it how do you know what properties
> to
> > > > give
> > > > > it
> > > > > > ( Color, Mono, Duplex, Simplex, etc) I am assuming there will be
> no
> > > > > printing
> > > > > > done at the client side so no spool file is generated.
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > But if we go down the EMF route, then printing will be done, a
> spool
> > > > file
> > > > > > will be generated and then the EMF will be extracted from that
> spool
> > > > file.
> > > > > > 
> > > > > > 
> > > > > > The EMF then has to be transfered to a print server where it will
> be
> > > > > played
> > > > > > back into a spool file so it can be printed.
> > > > > > 
> > > > > > 
> > > > > > Does that seem right? 
> > > > > > 
> > > > > > 
> > > > > > Regards
> > > > > > Sam
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > From: jharrison@xxxxxxxxxxx
> > > > > > To: winprndev@xxxxxxxxxxxxx
> > > > > > Subject: [WinPrnDev] Re: Creating a Printer Driver
> > > > > > Date: Tue, 30 Mar 2010 09:44:50 -0700
> > > > > > 
> > > > > > 
> > > > > > Hey Sam,
> > > > > > 
> > > > > > With the WDK 7600 there is an XPS printer sample, and much older
> > port
> > > > > > monitor sample. The harder part is connecting them and installing
> > > them.
> > > > > > But all of the code is there and I believe working.
> > > > > > 
> > > > > > -Jason
> > > > > > 
> > > > > > --
> > > > > > Jason Harrison
> > > > > > Sr Software Developer
> > > > > > PDFTron Systems, Inc.
> > > > > > www.pdftron.com
> > > > > > Tel: 1-604-730-8989
> > > > > > Fax: 1-604-676-2477
> > > > > > Email: jharrison@xxxxxxxxxxx
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > CONFIDENTIALITY NOTICE: This message (and any attachment to it) is
> > > > > intended
> > > > > > only for the use of the individual or entity to which it is
> > addressed
> > > in
> > > > > the
> > > > > > header, and may contain information that is privileged,
> confidential
> > > and
> > > > > > exempt from disclosure under applicable law. Any reproduction,
> > > > > distribution,
> > > > > > modification or use of the contents of this message (and any
> > > attachment
> > > > to
> > > > > > it) by any individual or entity other than the intended recipient
> is
> > > > > > prohibited. If you have received this communication in error,
> please
> > > > > notify
> > > > > > us immediately and delete the original.
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > P Please think before you print!
> > > > > > 
> > > > > > From: winprndev-bounce@xxxxxxxxxxxxx
> > > > > [mailto:winprndev-bounce@xxxxxxxxxxxxx]
> > > > > > On Behalf Of Sam Elamin
> > > > > > Sent: Tuesday, March 30, 2010 4:55 AM
> > > > > > To: winprndev@xxxxxxxxxxxxx
> > > > > > Subject: [WinPrnDev] Re: Creating a Printer Driver
> > > > > > 
> > > > > > Hey Clinton
> > > > > > 
> > > > > > Sorry for the late reply but Iw as rebuilding my PC with Windows 7
> > > > because
> > > > > I
> > > > > > heard that it is better as a printer driver building enviroment. 
> > > > > > 
> > > > > > I have read your email and have a few questions:
> > > > > > 
> > > > > > 1) Did you use WDK to develop your driver? Did you write your
> driver
> > > > > > yourself?
> > > > > > 
> > > > > > 2) How do I start devloping this PostScript parser? and since its
> > > > > Postscript
> > > > > > does it mean that I wont be ableto print to PCL drivers? Or
> > > > willconverting
> > > > > > it to PDF do the trick?
> > > > > > 
> > > > > > 3) I have no idea what you mean by using Port monitors, is there
> any
> > > > > > reference I can go back to and learn from?
> > > > > > 
> > > > > > 4) I think for testing purposes we might have to assume no errors
> > and
> > > > get
> > > > > > the actual driver working before installing checks to look for
> > errors
> > > > > > 
> > > > > > I just feel really lost and overwhelmed, where is the best place
> to
> > > > start?
> > > > > > 
> > > > > > Regards
> > > > > > Sam
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > From: clinton@xxxxxxxxxxxxxx
> > > > > > To: winprndev@xxxxxxxxxxxxx
> > > > > > Subject: [WinPrnDev] Re: Creating a Printer Driver
> > > > > > Date: Sun, 28 Mar 2010 10:32:58 +0100
> > > > > > Hi Sam,
> > > > > > I'm doing this off the tail end of what seems like a long
> > discussion.
> > > > > > Not sure if you have your answer yet but might have a few design
> > ideas
> > > > for
> > > > > > you.
> > > > > > What you are trying to achieve has been done before and is
> possible.
> > > > > > Back in 2002 I was faced with a similar issue. Getting a document
> > off
> > > > the
> > > > > > client PC and sending it round the world to an unknown print
> server.
> > > > > > The solution is a combination of technologies that each do their
> own
> > > > > part..
> > > > > > 
> > > > > > 1.) I used a PostScript print driver ( Generic PPD will do the job
> )
> > > > that
> > > > > > pass the print stream onto a portmonitor ( this gives you the
> > control
> > > to
> > > > > > assign to random filename and pass onto the next module either
> > > > WebService
> > > > > or
> > > > > > in my case a socket service client ). 
> > > > > > 
> > > > > > THINGS TO REMEMBER:
> > > > > > If you are to allow for duplex, orientation, colour etc, then you
> > will
> > > > > need
> > > > > > to gather this info and "drag" it along. I developed a PostScript
> > > parser
> > > > > > that drives through the spool file ( PostScript ) extracts these
> > bits
> > > > and
> > > > > > then passes this with the file along ( make use of network sockets
> > and
> > > > > send
> > > > > > as parameters or HASH index - a WenService or Socket listener
> would
> > > need
> > > > > to
> > > > > > manage these parameters ). OR in the world of WebServices pass
> over
> > an
> > > > XML
> > > > > > stream that can be managed.
> > > > > > 
> > > > > > On the "Server" side either convert to a generic format i.e. PDF
> > which
> > > > > then
> > > > > > can be converted over to MOST printer specific languages
> > > > > > 
> > > > > > 2.) Develop a portmonitor that manages the spoolfile and controls
> > > > calling
> > > > > > the "service client" either webservice or sockets. Remember to
> > remove
> > > > the
> > > > > > file and close portinfo thus removing the JOB off the print queue.
> > > > > > 
> > > > > > 3.) The bigest problem with transmitting data around is that we
> > forget
> > > > > about
> > > > > > the wonderful worl of TCP/IP packets and ERROR checking. What
> > happens
> > > if
> > > > > > network goes down during transmission, do I restart, fail, notify
> > user
> > > > or
> > > > > > cycle through a number of socket trying to establish connection.
> > > > > > 
> > > > > > Hope this helps for starters.
> > > > > > Clinton Bessesen
> > > > > > check out www.pdqit.com
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > Do you want a Hotmail account? Sign-up now - Free
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > Do you have a story that started on Hotmail? Tell us now 
> > > > > > ---
> > > > > > Questions? First check the UndocPrint pages at
> > > > > http://www.undocprint.org/winspool
> > > > > > 
> > > > > > To unsubscribe, visit the List Server page at
> > > > > //www.freelists.org/list/winprndev
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > Not got a Hotmail account? Sign-up now - Free 
> > > > > ---
> > > > > avast! Antivirus: Inbound message clean.
> > > > > Virus Database (VPS): 100331-0, 31/03/2010
> > > > > Tested on: 31/03/2010 12:03:15
> > > > > avast! - copyright (c) 1988-2010 ALWIL Software.
> > > > > http://www.avast.com
> > > > > ---
> > > > > Questions? First check the UndocPrint pages at
> > > > http://www.undocprint.org/winspool
> > > > > 
> > > > > To unsubscribe, visit the List Server page at
> > > > //www.freelists.org/list/winprndev
> > > > 
> > > > 
> > > > 
> > > > 
> > > > Do you want a Hotmail account? Sign-up now - Free 
> > > > ---
> > > > avast! Antivirus: Inbound message clean.
> > > > Virus Database (VPS): 100331-0, 31/03/2010
> > > > Tested on: 31/03/2010 12:12:46
> > > > avast! - copyright (c) 1988-2010 ALWIL Software.
> > > > http://www.avast.com
> > > > ---
> > > > Questions? First check the UndocPrint pages at
> > > http://www.undocprint.org/winspool
> > > > 
> > > > To unsubscribe, visit the List Server page at
> > > //www.freelists.org/list/winprndev
> > > 
> > > 
> > > 
> > > 
> > > Got a cool Hotmail story? Tell us now 
> > > ---
> > > Questions? First check the UndocPrint pages at
> > http://www.undocprint.org/winspool
> > > 
> > > To unsubscribe, visit the List Server page at
> > //www.freelists.org/list/winprndev
> > 
> > 
> > 
> > 
> > Do you have a story that started on Hotmail? Tell us now 
> > ---
> > Questions? First check the UndocPrint pages at
> http://www.undocprint.org/winspool
> > 
> > To unsubscribe, visit the List Server page at
> //www.freelists.org/list/winprndev
> 
> 
> 
> 
> Not got a Hotmail account? Sign-up now - Free 
> ---
> avast! Antivirus: Inbound message clean.
> Virus Database (VPS): 100331-1, 31/03/2010
> Tested on: 31/03/2010 14:13:27
> avast! - copyright (c) 1988-2010 ALWIL Software.
> http://www.avast.com
> ---
> Questions? First check the UndocPrint pages at 
> http://www.undocprint.org/winspool
> 
> To unsubscribe, visit the List Server page at 
> //www.freelists.org/list/winprndev
                                          
_________________________________________________________________
Do you have a story that started on Hotmail? Tell us now
http://clk.atdmt.com/UKM/go/195013117/direct/01/

Other related posts: