vba - VBA (API) 将 SOLIDWORKS 工程图另存为 PDF 在设定位置
问题描述
我试图弄清楚如何修改我的 PDF 保存宏,以便将 PDF 保存在与绘图相同的文件夹中,而不是将其保存到宏中写出的设定位置。
我正在使用的代码是:
Sub Save_PDF()
'Declare variables
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swExportPDFData As SldWorks.ExportPdfData
Dim strFilename As String
Dim status As Boolean
Dim errors As Long, warnings As Long
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
'Export to PDF if it is a drawing
If (swModel.GetType = swDocDRAWING) Then
strFilename = swModel.GetPathName
strFilename = Left(strFilename, Len(strFilename) - 6) & "pdf"
Set swExportPDFData = swApp.GetExportFileData(1)
swModel.Extension.SaveAs strFilename, 0, 0, swExportPDFData, 0, 0
End If
End Sub
请有人帮我解决这个问题吗?
解决方案
您只需要获取文件的名称,然后与路径的其余部分连接,并删除不必要的行,如下所示:
Option Explicit
Sub Save_PDF()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim strFilename As String
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
If swModel.GetType <> swDocDRAWING Then MsgBox ("Error: Not a drawing"): Exit Sub
strFilename = swModel.GetPathName
strFilename = "G:\45 Design\" & Mid(strFilename, InStrRev(strFilename, "\") + 1, InStrRev(strFilename, ".") - InStrRev(strFilename, "\")) & "pdf"
MsgBox "Save path : " & strFilename
swModel.Extension.SaveAs strFilename, 0, 0, Nothing, 0, 0
End Sub
推荐阅读
- arrays - 在 Matlab 数组的每一行中索引相同/不同的元素
- c# - ml.net 异常检测无法正常工作
- python - 从网页中抓取会创建一个空数据框
- spring-boot - N1qlPrimaryIndexed 替换
- containers - Azure ML 容器上的 h2o 模型
- laravel - Laravel 管理队列管理器,用于在单个服务器上进行生产和登台
- python - tar 命令的子进程 Popen 和 shell=False 出错
- slideshow - 阵列和幻灯片
- css - 如何在图像加载时将光标更改为进度,并在图像在 vuejs 中完全加载时将其更改为指针?
- javascript - JavaScript中的日期和数字混合排序