Remote printing

G

gilles27

Hello all.

I am currently working on a project which will allow our users to
print invoices, delivery notes, etc. using Crystal Reports. The basic
premise is that the print job details are saved into the database and
then picked up by a windows service which polls the database
regularly.

The problem I have is that our application is deployed on our own
servers, which our customers then Remote Desktop to. Therefore the
windows service cannot "see" the user's printer when it comes time to
print.

The best solution I have so far is to place another service on the
customer's intranet, which can then see their printers. This service
would receive the print job via a TCP socket which it has opened.

The application is implemented in .NET so I have initially tried
sending the Crystal Report document object down the wire - however
this class is not serializable. I would also introduce a dependency on
Crystal at the customer's end, which I'd rather avoid.

I've also tried using Crystal to create a pdf document, then sending
the pdf down the wire. I can recreate the pdf at the other end but
then have no way to print it using .NET. I believe I can use Acrobat
via the command line but this introduces another dependency and seems
a bit messy.

If anyone has any suggestions as to how I might get around this
problem I'd be pleased to hear from them.


Regards,


Ross
 
M

Mr. Arnold

Hello all.

I am currently working on a project which will allow our users to
print invoices, delivery notes, etc. using Crystal Reports. The basic
premise is that the print job details are saved into the database and
then picked up by a windows service which polls the database
regularly.

The problem I have is that our application is deployed on our own
servers, which our customers then Remote Desktop to. Therefore the
windows service cannot "see" the user's printer when it comes time to
print.

The best solution I have so far is to place another service on the
customer's intranet, which can then see their printers. This service
would receive the print job via a TCP socket which it has opened.

The application is implemented in .NET so I have initially tried
sending the Crystal Report document object down the wire - however
this class is not serializable. I would also introduce a dependency on
Crystal at the customer's end, which I'd rather avoid.

I've also tried using Crystal to create a pdf document, then sending
the pdf down the wire. I can recreate the pdf at the other end but
then have no way to print it using .NET. I believe I can use Acrobat
via the command line but this introduces another dependency and seems
a bit messy.

If anyone has any suggestions as to how I might get around this
problem I'd be pleased to hear from them.

If this is Windows Terminal Server farm you're talking about, then there
should be a way to configure something in that respect for the remote client
so that the remote client can use the printer local on his or her end.

The printer should be in the Printer Selection list just like any other
printer that can be selected by an application to print to a local printer
or networked printer, if it was running local to the client.

Terminal Server should be able to send the printout over the wire by itself
as if that printer was local to the Terminal Server.

This can be done with Citrix Terminal Server and its clients. I don't see
why the same thing cannot be done with Windows Terminal Server and its
clients.

You should check with your Admins to see how this can be accomplished,
because it should be there in some form so that an application that's
running on the Terminal Server by the remote client can print to a client's
local printer or network printer, by sending the printout to the client over
wire to the client's local or networked printer, in a remote session.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top