다음과 같이 두 가지 방법을 예로 들겠다.
첫번째 :
ThisDoc.Document.SaveAs(ThisDoc.ChangeExtension(".pdf"), True)
이 방법은 흔히들 사용하는 방법이다. 하지만 시트가 하나의 경우에만 변환되고 다중시트일 경우에는 적합하지 않다.
파일저장은 해당 도면이 저장된 폴더에 저장된다.
위에 코드는 다른 형식으로 변환할 때도 사용된다.
dwg로 변환 : ThisDoc.Document.SaveAs(ThisDoc.ChangeExtension(".dwg"), True)
JPG로 변환 : ThisDoc.Document.SaveAs(ThisDoc.ChangeExtension(".jpg"), True)
두번째 :
아래의 방법은 인터넷 검색하다 찾았는데 출처가 어딘지 기억이 나질 않아 출처를 표시할수가 없다.
첫번째의 방법은 다중시트가 안되고 폴더 변경이 안되었다.
하지만 아래 코드는 그 문제를 해결했다고 본다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
oPath = ThisDoc.Path
oFileName = ThisDoc.FileName(False) 'without extension
oRevNum = iProperties.Value("Project", "Revision Number")
oPDFAddIn = ThisApplication.ApplicationAddIns.ItemById _
("{0AC6FD96-2F4D-42CE-8BE0-8AEA580399E4}")
oDocument = ThisApplication.ActiveDocument
oContext = ThisApplication.TransientObjects.CreateTranslationContext
oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism
oOptions = ThisApplication.TransientObjects.CreateNameValueMap
oDataMedium = ThisApplication.TransientObjects.CreateDataMedium
If oPDFAddIn.HasSaveCopyAsOptions(oDataMedium, oContext, oOptions) Then
oOptions.Value("All_Color_AS_Black") = 1
oOptions.Value("Remove_Line_Weights") = 1
oOptions.Value("Vector_Resolution") = 400
oOptions.Value("Sheet_Range") = Inventor.PrintRangeEnum.kPrintAllSheets
'oOptions.Value("Custom_Begin_Sheet") = 2
'oOptions.Value("Custom_End_Sheet") = 4
End If
'get PDF target folder path
oFolder = Left(oPath, InStrRev(oPath, "\")) & "PDF"
'Check for the PDF folder and create it if it does not exist
If Not System.IO.Directory.Exists(oFolder) Then
System.IO.Directory.CreateDirectory(oFolder)
End If
'Set the PDF target file name
oDataMedium.FileName = oFolder & "\" & oFileName & ".pdf"
'Publish document
oPDFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium)
| cs |
댓글 없음:
댓글 쓰기