明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1060|回复: 2

[打印] 大神们帮帮忙,这个打印代码运行太奇怪了

[复制链接]
发表于 2016-5-11 19:32 | 显示全部楼层 |阅读模式

public static void 图片()
        {
            Document doc = Application.DocumentManager.MdiActiveDocument;
            Database db = doc.Database;
            using (Transaction tr = db.TransactionManager.StartTransaction())
            {
                LayoutManager lm = LayoutManager.Current;
                Layout lo = tr.GetObject(lm.GetLayoutId(lm.CurrentLayout), OpenMode.ForRead) as Layout;
                PlotInfo pi = new PlotInfo();
                pi.Layout = lo.ObjectId;
                PlotSettings ps = new PlotSettings(lo.ModelType);
                ps.CopyFrom(lo);
                PlotSettingsValidator pv = PlotSettingsValidator.Current;
                pv.SetPlotType(ps, Autodesk.AutoCAD.DatabaseServices.PlotType.Extents);
                pv.SetUseStandardScale(ps, true);
                pv.SetStdScaleType(ps, StdScaleType.ScaleToFit);
                pv.SetPlotCentered(ps, true);
                pv.SetPlotConfigurationName(ps, "DWF6 ePlot.pc3", "ANSI_A_(8.50_X_11.00_Inches)");
                pi.OverrideSettings = ps;
                PlotInfoValidator piv = new PlotInfoValidator();
                piv.MediaMatchingPolicy = MatchingPolicy.MatchEnabled;
                piv.Validate(pi);
                if (PlotFactory.ProcessPlotState == ProcessPlotState.NotPlotting)
                {
                    using (PlotEngine pe = PlotFactory.CreatePublishEngine())
                    {
                        PlotProgressDialog ppd = new PlotProgressDialog(false, 1, true);
                        using (ppd)
                        {
                            ppd.set_PlotMsgString(PlotMessageIndex.DialogTitle, "打印进度");
                            ppd.set_PlotMsgString(PlotMessageIndex.CancelJobButtonMessage, "取消打印");
                            ppd.set_PlotMsgString(PlotMessageIndex.CancelSheetButtonMessage, "cancel sheet");
                            ppd.set_PlotMsgString(PlotMessageIndex.SheetSetProgressCaption, "sheet set progress");
                            ppd.set_PlotMsgString(PlotMessageIndex.SheetProgressCaption, "sheet progress");
                            ppd.LowerPlotProgressRange = 0;
                            ppd.UpperPlotProgressRange = 100;
                            ppd.PlotProgressPos = 0;
                            ppd.OnBeginPlot();
                            ppd.IsVisible = true;
                            pe.BeginPlot(ppd, null);
                            pe.BeginDocument(pi, doc.Name, null, 1, true, "f:\\abc");
                            ppd.set_PlotMsgString(PlotMessageIndex.Status, "plotting" + doc.Name + "-" + lo.LayoutName);
                            ppd.OnBeginSheet();
                            ppd.LowerSheetProgressRange = 0;
                            ppd.UpperSheetProgressRange = 100;
                            ppd.SheetProgressPos = 0;
                            PlotPageInfo ppi = new PlotPageInfo();
                            pe.BeginPage(ppi, pi, true, null);
                            pe.BeginGenerateGraphics(null);
                            pe.EndGenerateGraphics(null);
                            pe.EndPage(null);
                            ppd.SheetProgressPos = 100;
                            ppd.OnEndSheet();
                            pe.EndDocument(null);
                            ppd.PlotProgressPos = 100;
                            ppd.OnEndPlot();
                            pe.EndPlot(null);
                        }
                    }
                }
                tr.Commit();
            }
            Application.ShowAlertDialog("运行完毕");
        }


以上是我打印作业的源码,基本是照抄.net开发指南的,可为什么执行代码后在f盘并没有找到生成的图片。尤为奇怪的是我想调查对话框时,提示“已经有一个打印或发布作业在后台处理……”字样。实在快崩溃了,帮帮忙啊高手!
 楼主| 发表于 2016-5-12 08:31 | 显示全部楼层
自己顶一下。我这是vs2010配合cad2010开发的。非狐版主呢?帮下忙啊
发表于 2017-12-10 21:02 | 显示全部楼层
设置前台打印
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-25 20:45 , Processed in 0.375859 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表