Microstation生成PDF文件

本文介绍了一种使用Microstation应用程序将.dgn文件转换为PDF的方法。通过特定的命令和操作流程,可以实现在不显示打印对话框的情况下进行文件转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将Microstation的draw 转化为PDF文件43.gif(kentyshang@gmail.com)
Public Function cbfGeneratePDF(ByVal strIn As String, ByVal strOut As String, ByVal strPDFDriver As String) As Boolean
On Error GoTo cbfGeneratePDF_Err
Dim msApp As MicroStationDGN.Application
Dim oDgn As MicroStationDGN.DesignFile
Dim oCadInputQueue As MicroStationDGN.CadInputQueue
Dim boolOpen As Boolean

Dim pfile As New clsFileOperate
Dim pSrvFile As Object
Dim var() As String, strPDFName As String

Set msApp = New Application

If Dir$(msApp.ActiveWorkspace.ConfigurationVariableValue("_USTN_SYSTEMROOT") & Trim(strPDFDriver)) = "" Then

     var = Split(strPDFDriver, "\")
     strPDFName = var(UBound(var))
    
     Set pSrvFile = New clsFileOperate
     If Not pfile.CopyFile(pOGlobalConst.prpcolGC.item("CMSConfigFilePath") & "\" & strPDFName, pOGlobalConst.item("CMSServerWorkLn") & "\" & pstrUsr_ID & "\" & strPDFName, True) Or _
                Not pSrvFile.CopyFile(pOGlobalConst.item("CMSServerWorkLn") & "\" & pstrUsr_ID & "\" & strPDFName, msApp.ActiveWorkspace.ConfigurationVariableValue("_USTN_SYSTEMROOT") & Trim(strPDFDriver), True) Then
            Err.Description = "Copy PDF Driver fail : '" & pOGlobalConst.prpcolGC.item("CMSConfigFilePath") & "\" & strPDFName & "' to '" & msApp.ActiveWorkspace.ConfigurationVariableValue("_USTN_SYSTEMROOT") & Trim(strPDFDriver) & "'"
            GoTo cbfGeneratePDF_Err
     End If
    
End If
   
   
    If msApp Is Nothing Then Set msApp = New Application
     With msApp
'        .LeftPosition = 1000
'        .Width = 1000
'        .Height = 1000
'        .Visible = False
    End With
   
    Set oDgn = msApp.OpenDesignFile(Trim(strIn))
    boolOpen = True
    Set oCadInputQueue = msApp.CadInputQueue
   
    With oCadInputQueue
        'Open print dialog  打开print对话框
        .SendCommand "DIALOG PLOT"
        'Set Area="Fit All" and select View 1 让Current Draw在当前窗口最大化
        .SendCommand "PRINT BOUNDARY FIT ALL 1"
        'select pdf file print driver           '设定print driver
        .SendCommand "PRINT DRIVER " & msApp.ActiveWorkspace.ConfigurationVariableValue("_USTN_SYSTEMROOT") & Trim(strPDFDriver)
        'export pdf file           '将current Draw中的图转化为pdf
        .SendCommand "PRINT EXECUTE " & Trim(strOut)
        'close the print dialog   '关闭print对话框
        .SendCommand "PRINT EXIT PLOTDLG"
        .SendCommand "MDL UNLOAD PLOTDLG"
    End With
    cbfGeneratePDF = True
       
cbfGeneratePDF_Cleanup:
'    msApp.Quit
    If Not pSrvFile Is Nothing Then Set pSrvFile = Nothing
    If Not pfile Is Nothing Then Set pfile = Nothing
    If Not msApp Is Nothing Then Set msApp = Nothing
    If boolOpen Then oDgn.Close
    Set msApp = New Application
    If msApp Is Nothing Then Set msApp = New Application
    Set oDgn = msApp.OpenDesignFile(Trim(pstrDGNPath))
    Exit Function

cbfGeneratePDF_Err:
    cbfGeneratePDF = False
    App.LogEvent "Err GeneratePDF : " & CStr(Err.Number) & Err.Source & " : clsUtility-cbfGeneratePDF : " & Err.Description
    Resume cbfGeneratePDF_Cleanup
End Function

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值