找回密码
 立即注册

QQ登录

只需一步,快速开始

lbzgrape

注册会员

13

主题

20

帖子

195

积分

注册会员

积分
195
lbzgrape
注册会员   /  发表于:2019-3-25 12:37  /   查看:2688  /  回复:1
            var pd = new PrintDialog();
            if (pd.ShowDialog() == DialogResult.OK)
            {
                var c1doc = new C1PrintDocument();
                c1doc.Print(pd.PrinterSettings, false);
            }
通过如上方式打印数据到pdf文件中,打印机选的Microsoft Print to PDF

然后点击确定后,弹出设置文件名的弹框,需要手动输入文件名才能打印到pdf,我能不能通过设置直接将该文件的打印名称设置好,然后打印时直接打印,不弹出该框呢?
试了试设置pd.PrinterSettings.PrintToFile = true;
                 pd.PrinterSettings.PrintFileName = "C://test.pdf";
这样可以直接输出到设置的FileName路径中,但是,因为打印机选项有多个,可能有打印到打印机,打印到pdf,打印到xps等多个打印机,我在设置PrintFileName时不能够确定用户的打印机输出类型是什么,所以不能直接设置它的文件后缀是pdf还是xps,这个应该打印机决定。
我有什么方法可以只设置上文件名,然后它输出时自动按这个文件名输出对应的类型,而不弹出输入文件名的弹窗呢,谢谢帮助。
(因为我是在做批量打印,在软件中每个文件的名称是知道的,但是批量打印时却需要每个文件弹出窗口输入打印文件名,体验上不太好)

(打印时弹出输入文件名的对话框)

打印机列表,输出类型各不相同



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

1 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-3-25 18:00:54
沙发
实际上如果需要直接打印而不是弹出框的话,您只需要设置文件名(不加后缀)就可以,

比如您上面写的就只需要设置为“test”就行。如果默认的是Print toPDF,那就会自动保存为test.PDF的

按照这种方式,你需要预先设置好系统默认的打印机,会直接调用默认打印机打印
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部