Link to home
Start Free TrialLog in
Avatar of kalittaair
kalittaair

asked on

How do I print a multipage pdf document in C#

I am opening up a pdf document, filling the fields with data and want to print the document. I am having troubles with the print part. I was thinking of perhaps counting the number of pages in the document and storing that value in printpagessilent method (the second 0 is the nLastPage), but I am unsure on how that is accomplished.

Dave
The following code worked great, but unfortunately it brings up a print dialog screen and you would always have to click the ok button. I need to print the pages silent.
 
acroApp.MenuItemExecute("Print")
 
The following code works fine if you have a set number of pages. 
avDoc.PrintPagesSilent(0, 0, 0, 0, 1)

Open in new window

Avatar of Ralf Klatt
Ralf Klatt
Flag of Germany image

Hi,

how about trying:

int pagenum = (avDoc.GetNumPages() - 1);
avDoc.PrintPagesSilent(0, pagenum, 1, 0, 1);


Best regards,
Raisor
Avatar of kalittaair
kalittaair

ASKER

Hi Raisor,

Well I am on the right path because I saw the use of GetNumPages in the SDK Summary of OLE objects and methods section that I downloaded from Adobe but whenever I tried to use it, it is not available with the intellisense. I tried the suggestion you sent anyway and an error, (like I thought it would do) states "Acrobate.CAcroAVDoc does not contain a definition for 'GetNumPages' and no extension method 'GetNumPages' accepting..."

Perhaps I am missing an Adobe library file? I am using Adobe 8 Professional.

Best Regards,
Dave

Hi,

I'm not sure if you've added the correct references!

You may have a look at this thread: http://groups.google.com/group/adobe.acrobat.sdk/browse_thread/thread/3d2da62344fc5097

... it should give you an idea about the correct references.


Best regards,
Raisor
Hello
In C# I had to use the following code to get access to the pDDoc methods.
           CAcroPDDoc pdDoc = new AcroPDDocClass();
To get the PDDoc, (whic contains the method GetNumPages) associated with a particular AVDoc object, your supposed to use the GetPDDoc method. Have any ideas on how to join the two together?
I got as far as:
int pageNum = (avDoc.GetPDDoc(pdDoc.GetNumPages()-1)); but it's wrong because there is no overload for method 'GetPDDoc' takes '1' arguments.

Best Regards,
Dave
Hi,

I'll have a closer look at it and get back with detailed information soon!


Best regards,
Raisor
ASKER CERTIFIED SOLUTION
Avatar of Ralf Klatt
Ralf Klatt
Flag of Germany image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Hi,
Thank you, thank you, thank you! I didn't realize you had to open up the pdDoc after creating it since I thought creating a new instance of the PDDoc Class was a way to just join to the AVDoc class, (which had already opened the file). Anyway, the final code below works great and I appreciate all your patience and perseverance ! Give yourself a big pat on the back for this one.

            CAcroPDDoc pdDoc = new AcroPDDocClass();
            pdDoc.Open(FORM_NAME); //FORM_NAME is the const string of the file name used with avDoc
            int pageNum = (pdDoc.GetNumPages()-1);

            avDoc.PrintPagesSilent(0, pageNum, 0, 0, 1);