跃池先生 发表于 2014-11-26 21:46:00

vb.net调用cad打印多个文件为PDF,第一个可以正常生成,但第二个就出错了,望高手指教

代码如下:
For i = 0 To FileNames.Length - 1
            AcadApp.Documents.Open(FileNames(i))
            AcadDoc = AcadApp.ActiveDocument
            AcadDoc.ModelSpace.Layout.ConfigName = "DWG To PDF.pc3"                                 '选定打印机配置
            AcadDoc.ModelSpace.Layout.CanonicalMediaName = "ANSI_A_(11.00_x_8.50_Inches)"          '设置图幅
            AcadDoc.Plot.PlotToFile(FileNames(i) & ".pdf") '打印
Next
第1个文件可以正常打印成PDF,循环到第2个时就出错,出错的提示是:“未处理COMException”,
"对 COM 组件的调用返回了错误 HRESULT E_FAIL".
我的想法会不会第1个文件正在打印的时候,程序又开始调用第2个打印,造成冲突,希望高手
指教原因和解决办法啊!

jixiezhang 发表于 2021-1-7 10:38:00

我用Python弄,ActiveX , 也出现这个问题

sysu-沼泽 发表于 2021-2-11 20:15:00

我自己也出现过这种情况,而且你的想法跟我的想法一样。于是我在打印第一个文件完毕后设置延迟,确保文件1生成后再进行第二个文件的打印,结果的确没出现问题。后来,在论坛上发现,可以通过设置系统变量backgroundplot的值为0,将打印设置为前台打印,就一切顺利了。
(setvar "backgroundplot" 0);;;      设定系统变量,确保cad在前台进行打印,这样后一次打印会在前一次打印完成后才开始,避免错误

llc1968 发表于 2022-2-12 15:59:00

学习了,支持!!!

cooolseee 发表于 2022-2-16 09:23:00

学习了,谢谢你
页: [1]
查看完整版本: vb.net调用cad打印多个文件为PDF,第一个可以正常生成,但第二个就出错了,望高手指教