SmartSketch는 도면을 PDF로 저장할 수 있는 함수를 제공하고 있습니다.
느낌으로는 SmartSketch도 하나의 도면에 여러개의 Sheet를 가질 수 있으니,
SheetArraySize는 Sheet의 갯수, SheetArray는 Sheet를 담은 배열이라 생각하고 값을 입력했더니 프로그램 오류가 발생했습니다.
그래서 궁리끝에 SheetArraySize에 0 , SheetArray에 null을 넘겨주니 에러없이 동작하였습니다.
아래는 PDF로 저장하는 예제 코드입니다.
void SaveAsPDF(string fileName, bool Bookmarks, PDFResolutionConstants Resolution, PDFColorModeConstants ColorMode, PDFJpegCompressionConstants JpegCompression, int SheetArraySize, object SheetArray);
다른 인자들은 쉽게 알수 있는데 제일 뒤 SheetArraySize , SheetArray가 뭔지 모호합니다.느낌으로는 SmartSketch도 하나의 도면에 여러개의 Sheet를 가질 수 있으니,
SheetArraySize는 Sheet의 갯수, SheetArray는 Sheet를 담은 배열이라 생각하고 값을 입력했더니 프로그램 오류가 발생했습니다.
그래서 궁리끝에 SheetArraySize에 0 , SheetArray에 null을 넘겨주니 에러없이 동작하였습니다.
아래는 PDF로 저장하는 예제 코드입니다.
public bool SaveAsPDF(string sPDFFilePath , string sShaFilePath , ref string sLog) { var app = ComInterop.GetInstance<SmartSketch.Application>("SmartSketch.Application"); if (app != null) { try { app.Visible = true; /// Make application visible var doc = app.Documents.Open(sShaFilePath); /// Document Open doc.SaveAsPDF(sPDFFilePath, false, SmartSketch.PDFResolutionConstants.igPDFResolution1200DPI, SmartSketch.PDFColorModeConstants.igPDFColorModeColor, SmartSketch.PDFJpegCompressionConstants.igPDFJpegGoodQualityGoodCompression, 0 , null); /// Now can use the SaveAs method on the open file(all sheets) doc.Close(false); return true; } catch(Exception ex) { sLog += ex.Message; return false; } finally { ///app.Quit(); } } else { return false; } }
댓글
댓글 쓰기