Excel VBA将NanoCAD DWG文件打印为PDF

时间:2017-10-19 10:13:08

标签: excel vba pdf cad dwg

我一直在寻找将Excel VBA中的DWG文件打印到PDF的选项。它是我使用的另一个程序的一部分。 AutoCAD中有很多帮助,但NanoCAD很少或没有找到。我尝试使用等效函数进行打印,但会导致错误。有人可以帮我修复代码吗? 关于我所探索的一点背景。

  1. 在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")
    
  2. 但是,上面的代码没有用。可能是因为我使用了为autoCAD专业版指定的命令而不是LT吗? AutoCAD LT中是否有可以适应NanoCAD的解决方法?

    1. 通过Acrobat的打印功能进行第二次试用,其中windows要求打印到PDF。从Internet获取帮助调用shell命令的代码。我使用了一些代码如下,但没有运气。

      call Shell ("C:\Program Files\Adobe\Acrobat 8.0\Acrobat\Acrobat.exe /p/h" & pth & "\typicals\Title-OPA01.dwg")
      
    2. 任何人都可以通过解决方法代码帮助我。注意:我已经将NanoCAD,Acrobat的类型库引用到VBA项目中。

1 个答案:

答案 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文件。

尝试根据您的目的调整此基本代码 再见