기본 콘텐츠로 건너뛰기

5월, 2013의 게시물 표시

OpenCASCADE 6.6.0 빌드하기

1. 환경 변수 설정하기 OpenCASCADE 6.6.0은 이전 버젼과 바이너리 호환이 되지 않습니다. 따라서 이전 버젼으로 작성된 프로젝트는 소스를 다시 컴파일해야만 합니다.

도면을 PDF로 저장

SmartSketch는 도면을 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.PDFColo