我一直在寻找将Excel VBA中的DWG文件打印到PDF的选项。它是我使用的另一个程序的一部分。 AutoCAD中有很多帮助,但NanoCAD很少或没有找到。我尝试使用等效函数进行打印,但会导致错误。有人可以帮我修复代码吗? 关于我所探索的一点背景。
在NanoCAd中创建的打印配置DWG2PDF.pc3并尝试使用以下代码进行打印:
Dim NCAD As nanocad.Application
Dim ndg As nanocad.Document
Dim pth As String
Dim result As String
pth = ThisWorkbook.Path
Set NCAD = GetObject("", "nanoCAD.Application")
NCAD.Visible = True
Set ndg = NCAD.Documents.Open(pth & "\typicals\Title-OPA01.dwg")
ndg.ActiveLayout.ConfigName = "DWG2PDF.pc3"
result = ndg.Plot.PlotToFile(pth & "\Output\op.pdf")
但是,上面的代码没有用。可能是因为我使用了为autoCAD专业版指定的命令而不是LT吗? AutoCAD LT中是否有可以适应NanoCAD的解决方法?
通过Acrobat的打印功能进行第二次试用,其中windows要求打印到PDF。从Internet获取帮助调用shell命令的代码。我使用了一些代码如下,但没有运气。
call Shell ("C:\Program Files\Adobe\Acrobat 8.0\Acrobat\Acrobat.exe /p/h" & pth & "\typicals\Title-OPA01.dwg")
任何人都可以通过解决方法代码帮助我。注意:我已经将NanoCAD,Acrobat的类型库引用到VBA项目中。
答案 0 :(得分:0)
将这一项用于我:
Public Sub test()
Dim NCAD
Dim ndg
Dim pth As String
Dim result As String
pth = "C:\Users\Cci\Desktop\TMP Ivan\"
Set NCAD = GetObject("", "nanoCAD.Application")
NCAD.Visible = True
Set ndg = NCAD.Documents.Open(pth & "BASE CAVALLETTO.dwg")
'setup plot
ndg.ActiveLayout.RefreshPlotDeviceInfo
ndg.ActiveLayout.ConfigName = "doPDF 10"
ndg.ActiveLayout.PlotRotation = ac0degrees
ndg.ActiveLayout.StyleSheet = "monochrome.ctb"
ndg.ActiveLayout.PlotWithPlotStyles = True
ndg.ActiveLayout.PlotViewportBorders = False
ndg.ActiveLayout.PlotViewportsFirst = True
ndg.ActiveLayout.CanonicalMediaName = "A3"
ndg.ActiveLayout.PaperUnits = acMillimeters
ndg.ActiveLayout.StandardScale = acScaleToFit
ndg.ActiveLayout.ShowPlotStyles = False
ndg.ActiveLayout.CenterPlot = True
ndg.Plot.NumberOfCopies = 1
result = ndg.Plot.PlotToDevice
End Sub
doPDF 10是一个免费程序,可以模拟打印机并制作pdf文件。
尝试根据您的目的调整此基本代码 再见