[2 days left] What’s wrong with your cloud strategy? Learn why multicloud solutions matter with Nimble Storage.Register Now

x
?
Solved

How do I print a multipage pdf document in C#

Posted on 2008-06-13
7
Medium Priority
?
1,326 Views
Last Modified: 2012-06-21
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
Comment
Question by:kalittaair
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
7 Comments
 
LVL 15

Expert Comment

by:Ralf Klatt
ID: 21785122
Hi,

how about trying:

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


Best regards,
Raisor
0
 

Author Comment

by:kalittaair
ID: 21792481
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
 
LVL 15

Expert Comment

by:Ralf Klatt
ID: 21793469
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
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 

Author Comment

by:kalittaair
ID: 21797393
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
 
LVL 15

Expert Comment

by:Ralf Klatt
ID: 21797729
Hi,

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


Best regards,
Raisor
0
 
LVL 15

Accepted Solution

by:
Ralf Klatt earned 1000 total points
ID: 21811129
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
 

Author Closing Comment

by:kalittaair
ID: 31468302
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

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Question has a verified solution.

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

A short article about problems I had with the new location API and permissions in Marshmallow
This is about my first experience with programming Arduino.
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …
Simple Linear Regression

656 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