问题描述
我们打算开发的软件需求是:用户通过我们的软件进行打印,软件需要获得用户打印的总页数。打印文本的格式是pdf(所以PrintDocument这个类不能使用了)打印设置调用的是Adobereader现有的API的dialog,但是Adobe但是无法获得用户设置打印的页数和打印的份数。voidprintWithDialog()<--这个函数调用后打印设置出来了,但因为这个函数没有返回值,所以无法知道用户打印了多少份,也无法知道用户打印的范围从第几页到第几页。所以我们打算通过连接打印机来获取打印页数,查资料查到了PrintSever这个类,但是里面没有获得打印页数和打印copy的份数相关的函数。。><,求大神相助!!!回答粗来我把所有分都给了><
解决方案
解决方案二:
求不沉,自己顶一下
解决方案三:
去问Adobe技术支持。如果没有技术支持,那么只好作罢。
解决方案四:
...E楼主用Aspose.Pdf.打印吧,那里面能取得PDF的页数的。另一种极端就是用Aspose.pdf把原来的PDF文件拆分,然后再一页一页的打。我之前就是用这个整出来的。
解决方案五:
引用3楼wyd1520的回复:
...E楼主用Aspose.Pdf.打印吧,那里面能取得PDF的页数的。另一种极端就是用Aspose.pdf把原来的PDF文件拆分,然后再一页一页的打。我之前就是用这个整出来的。
你好~意思是,我可以调出来打印设置的dialog,设置完点击打印后,我的程序能获得dialog里设置的页数的值吗??
解决方案六:
引用4楼hangtianmeng的回复:
Quote: 引用3楼wyd1520的回复:
...E楼主用Aspose.Pdf.打印吧,那里面能取得PDF的页数的。另一种极端就是用Aspose.pdf把原来的PDF文件拆分,然后再一页一页的打。我之前就是用这个整出来的。你好~意思是,我可以调出来打印设置的dialog,设置完点击打印后,我的程序能获得dialog里设置的页数的值吗??
Aspose.Pdf他可以让你打印从第几页到第几页的。至于对话框你可自己自己弄个Setting介面把下面的设置放到对话框里就可以了,我们都这么用的。Aspose.Pdf.Documentdoc=newAspose.Pdf.Document(Application.StartupPath+"\DOC-27728-20130619-083545.pdf");Aspose.Pdf.Facades.PdfViewerpdfv=newAspose.Pdf.Facades.PdfViewer(doc);//createobjectsforprinterandpagesettingsandPrintDocumentSystem.Drawing.Printing.PrinterSettingsps=newSystem.Drawing.Printing.PrinterSettings();System.Drawing.Printing.PageSettingspgs=newSystem.Drawing.Printing.PageSettings();//specifyyourprintername这里你就是把这些参数弄个自己的对话框就可以了。ps.PrinterName="XXX";打印机名称ps.PrintRange=PrintRange.SomePages;ps.FromPage=1;开始页ps.ToPage=2;结束页//setPageSize(ifrequired)pgs.PaperSize=newSystem.Drawing.Printing.PaperSize("A4",827,1169);//setPageMargins(ifrequired)pgs.Margins=newSystem.Drawing.Printing.Margins(0,0,0,0);//HereyoucansetthePaperSourcewhichyouwanttouseasperyourprinter.pgs.PaperSource=ps.PaperSources[0];//printdocumentusingprinterandpagesettingspdfv.PrintDocumentWithSettings(pgs,ps);