469,898 Members | 1,832 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,898 developers. It's quick & easy.

PDF printing in C# ?


Hello,

Is there a way to easily print a .pdf file to the printer ?
(without an external component)
Thanks.
Nov 16 '05 #1
11 37355
On Wed, 16 Jun 2004 08:39:33 +0200, cybertof wrote:

Hello,

Is there a way to easily print a .pdf file to the printer ?
(without an external component)

I would say No!

The only way I have made it print is using Acrobat Reader or Ghostscript
gsprint and then starting it via System.Diagnostics.Process

If your application is commercial then Acrobat Reader is your only choice,
unless you sell a million copies of it...

The really hard way would of cause be to create a .NET component that
prints PDF... If you do, PLEASE let me know!!!

// Anders
Nov 16 '05 #2
In article <1t****************@morateknikutveckling.se>,
an*************@morateknikutveckling.se says...
The only way I have made it print is using Acrobat Reader or Ghostscript
gsprint and then starting it via System.Diagnostics.Process


Hi !

Yes but I don't think Acrobat Reader exposes a robust COM interface to
do it.

It is possible to do it through a shell call like :

acrord32.exe /h /p d:\test.pdf

But :
- it makes acrobat reader appear
- it does not close at the end
Any idea to do it properly (not appear and closing at the end) ?
Regards,
Cybertof.
Nov 16 '05 #3
"Anders Eriksson" <an*************@morateknikutveckling.se> wrote in message
news:1t****************@morateknikutveckling.se...
The really hard way would of cause be to create a .NET component that
prints PDF... If you do, PLEASE let me know!!!


And me!
Nov 16 '05 #4
Hello

What about

http://itextsharp.sourceforge.net/tutorial/index.html
Olivier

"cybertof" <cy****************@gmx.net> a écrit dans le message de
news:MP************************@msnews.microsoft.c om...

Hello,

Is there a way to easily print a .pdf file to the printer ?
(without an external component)
Thanks.

Nov 16 '05 #5
On Wed, 16 Jun 2004 11:46:17 +0200, Olivier wrote:
http://itextsharp.sourceforge.net/tutorial/index.html

The iTextSharp is a very nice Library, but I haven't seen anyone using it
for printing.

If you know how to do it then _PLEASE_ let us know!!

// Anders
--
I'm using iTextSharp for merging several PDF files into one so that I can
print out many PDF files in a specific order...
Nov 16 '05 #6
You can close acrobot after printing by using System.Windows.Forms.SendKeys
class. You have to send ALT+F4 to close the app.

However, you have to check the printer queue first to ensure that printing
is completed before closing it..

Shak.

"cybertof" <cy****************@gmx.net> wrote in message
news:MP************************@msnews.microsoft.c om...
In article <1t****************@morateknikutveckling.se>,
an*************@morateknikutveckling.se says...
The only way I have made it print is using Acrobat Reader or Ghostscript
gsprint and then starting it via System.Diagnostics.Process


Hi !

Yes but I don't think Acrobat Reader exposes a robust COM interface to
do it.

It is possible to do it through a shell call like :

acrord32.exe /h /p d:\test.pdf

But :
- it makes acrobat reader appear
- it does not close at the end
Any idea to do it properly (not appear and closing at the end) ?
Regards,
Cybertof.

Nov 16 '05 #7
"Anders Eriksson" <an*************@morateknikutveckling.se> wrote in message
news:g7***************@morateknikutveckling.se...
The iTextSharp is a very nice Library, but I haven't seen anyone using it
for printing.
That's because it doesn't work...
If you know how to do it then _PLEASE_ let us know!!


Yep, I'll eat my hat, as we say here in Blighty... :-)
Nov 16 '05 #8
hi,

I´m using this for print the .pdf files:

acrord32.exe /h /p d:\mypdf.pdf

but I´m getting some errors.

In my case, I´m printing several files, 100, 150, 200, ...
I have a list of pdf files, and for each pdf I execute the command:

acrord32.exe /h /p d:\mypdfX.pdf

The error is the following: acrobat print the documents in other order
than I have executed, and don´t print some documents ...

Any ideas?

PD: sorry, my inglish is very poor.

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!
Nov 16 '05 #9
Hello Javier,

On Tue, 13 Jul 2004 14:32:31 -0700, Javier Ros Moreno wrote:
In my case, I´m printing several files, 100, 150, 200, ...
I have a list of pdf files, and for each pdf I execute the command:

acrord32.exe /h /p d:\mypdfX.pdf

The error is the following: acrobat print the documents in other order
than I have executed, and don´t print some documents ...

Any ideas?
The problem is that Adobe has change the behavior of Acrobat Reader! If you
are using a version later than 4.0 then the /p flag is not performed.

Acrobat will 'never' exit and is reused for the next document you print.
Only one document can be printed at a time. This explains the error that
some documents are not printed. Your command to print is executed when
Acrobat is busy printing and your command is ignored!

The reason for that the documents are printed in a different order on the
printer than you have executed the commands is that you are using a print
queue (which is the normal way of printing in Windows). You are not
printing directly to the printer just to the print queue and then the print
queue will send the documents to the printer, in the order that the print
queue thinks is appropriate.

The only way I have gotten this to work is to use iTextSharp to merge all
the documents into one big document that has all pages in the correct order
and then print this AllInOne document.

I have created a .net Assembly that I can include in any .net project, but
since I did this for the company I work for I need to check with the bosses
if I can share it.

It's really simple to create it yourself. Just go to iTextSharps site and
download the library and the source. then check the sample on merging
pdf-documents...
http://itextsharp.sourceforge.net/

PD: sorry, my inglish is very poor.

su inglés es mucho mejor que mi español ;-)
// Anders
Nov 16 '05 #10

Anders, I had tryed to merge these document into one big document but
iTextSharp don´t support encrypted documents, my pdf documents are
encryted.

Thanks.

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!
Nov 16 '05 #11
On Thu, 15 Jul 2004 00:43:05 -0700, Javier Ros Moreno wrote:
Anders, I had tryed to merge these document into one big document but
iTextSharp don´t support encrypted documents, my pdf documents are
encryted.

OK, then there are one thing that you might do. This depends on the license
of your application.

I'm sure you have heard of Ghostscript. Well there is a utility program
that comes with Ghostscript called gsprint. Using gsprint instead of
Acrobat Reader will do everything you want.

gsprint will end when the printing is done so you can use
System.Diagnostics.Process to start gsprint and then use
Process::WaitForExit(); to wait until the printing is done.

This way you will get all documents printed in order!

The only problem is that to be able to use gsprint/Ghostscript your
application has to be released under the GPL License or you need to buy a
license from Artifex Software, Inc. and the license cost from 20000$ and up

// Anders
Nov 16 '05 #12

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

4 posts views Thread by Jody Gelowitz | last post: by
reply views Thread by Programatix | last post: by
9 posts views Thread by Jody Gelowitz | last post: by
4 posts views Thread by Arif | last post: by
18 posts views Thread by Brett | last post: by
1 post views Thread by Waqarahmed | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.