Solved

Printing PDF Dokuments with Windows API (bad chars instead of the Document-Font)

Posted on 2003-11-13
5
1,593 Views
Last Modified: 2013-12-03
Hello,

i have to print many Files with different File-Extensions.

I have solved the problem, by printing with the Windows-API.

Every Document will be printed by its own application now.

It´s like you would click with the right mousebutton on a filename
at Windows-Explorer and choose PRINT from the Contextmenu.

I have written a function, which do this with many many files.
(Open Filetype, print File with API, open next file and so on)

The printer prints out the Files correctly, but after 100 or
more Pages, the FONT of the PDF Document gets corrupt,
that means, instead of LETTERS there are only rectangular
Boxes on the printed Paper. Some pages later, the font
is ok again, some pages later the font crashes again.
Graphics are allways printed correctly...

I think this mistake only happens, if the PDF Document has
graphic inside and is longer than 10 Pages per Document.

The Printer is a HP Laserjet 4000, the Operating System
is Windows 2000 (tested with XP, with the same result)
I use the Printer-Spooler (no direct printing). The Language
i have used is VB 6.0 SP4. I have tested it with Acrobat Reader
4.0 and 5.0 (same results).

Some strangeness:

1.
If i print out Office Documents, the Officeprogram opens, prints
and closes then. If i print PDF´s the Acrobat Reader opens, prints
but don´t close, it stores the printed Document in Memory and
opens the next, and so on... I am able to see all printed documents
if i switch the pages forward or backward after all jobs are done.

2.
No error message appears (to less memory, or font not found or
something like that)

What kind of problem do i have :

Printer Memory to low ?
Virtual Memory to low ?
Spooler corrupt ?
Acrobat don´t close itself and stores Docs in Memory for browsing ?

Can you gimme a tip, how i can avoid this behaviour ?
0
Comment
Question by:Astar0th
  • 3
5 Comments
 

Accepted Solution

by:
ishmell earned 125 total points
ID: 9744086
I'd try installing the PS (post script) version of the printer driver. I've had similar problems printing several things to my HP 4100 printer from my win2k box until I changed up to the postscript driver.
0
 

Expert Comment

by:ishmell
ID: 9744101
PS, also, if you want to get adobe to close after printing, you might try the to shell out acrobat reader with the "secret" command line option:

http://www.planetpdf.com/mainpage.asp?WebPageID=90
0
 

Author Comment

by:Astar0th
ID: 9747354
Thank you very much, this has solved my problem !!!!
0
 

Expert Comment

by:ishmell
ID: 9749670
Glad to help!
0
 
LVL 14

Expert Comment

by:sandeep_patel
ID: 23594219
Astar0th,
I am trying to create the same functionality. wanted to know what are the api's you used for this?
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The debugging module of the VB 6 IDE can be accessed by way of the Debug menu item. That menu item can normally be found in the IDE's main menu line as shown in this picture.   There is also a companion Debug Toolbar that looks like the followin…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

919 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now