• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1327
  • Last Modified:

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

0
kalittaair
Asked:
kalittaair
  • 4
  • 3
1 Solution
 
Ralf KlattPrincipal ConsultantCommented:
Hi,

how about trying:

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


Best regards,
Raisor
0
 
kalittaairAuthor Commented:
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

0
 
Ralf KlattPrincipal ConsultantCommented:
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
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
kalittaairAuthor Commented:
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
0
 
Ralf KlattPrincipal ConsultantCommented:
Hi,

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


Best regards,
Raisor
0
 
Ralf KlattPrincipal ConsultantCommented:
Hi,

Let's try it this way:

CAcroPDDoc pdDoc = (Acrobat.CAcroPDDoc)new Acrobat.AcroPDDocClass();
pdDoc.Open("C:\\YourPath\\YourPDF.pdf");
int pageNum = pdDoc.GetNumPages()


Best regards,
Raisor
0
 
kalittaairAuthor Commented:
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);
0

Featured Post

Important Lessons on Recovering from Petya

In their most recent webinar, Skyport Systems explores ways to isolate and protect critical databases to keep the core of your company safe from harm.

  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now