2012-10-05 2 views
1

몇 년 동안 Doxygen을 사용하고 있지만 PowerPoint 파일, Word 파일, UML 파일과 같이 문서를 만드는 데 사용되는 다른 방법이 많이 있습니다. 모든 파일 유형에는 장점이 있습니다 (예 : PowerPoint는 작성하기 쉽고 프리젠 테이션에 이상적입니다). 이렇게하면 여러 다른 파일, 위치 및 개요가 필요하지 않게됩니다.UML (Enterprise Architect) 파일 (및 기타 파일)을 이미지로 변환

이제 모든 파일을 하나의 진입 점으로 병합하고 싶습니다. 내 생각은 Doxygen을 사용하여 소스 코드 문서가 들어있는 HTML 파일을 생성하고 Doxygen에 개요 문서를 작성하고 (Qt 에서처럼) 다른 파일을 기반으로 이미지를 포함하는 것입니다. 나는 또한 전체 시스템을 자동화하려고 노력 중이다.

지금 내가 찾고있는 것은 이러한 다른 파일을 이미지로 변환하는 방법입니다. 따라서 자동화 된 시스템에서 생성 된 HTML 및 생성 된 QCH (Qt 도움말) 파일에 이러한 이미지를 포함 할 수 있습니다.

PowerPoint의 경우 몇 가지 도구를 발견했지만 올바르게 작동하지 않는 것으로 보입니다. 상용 PPTX 파일의 시험 버전이 일부 PPTX 파일에서 실패합니다.

Enterprise Architect의 경우 이미지 생성을 자동화하는 방법을 찾지 못했습니다.

누구나 Enterprise Architect 파일과 PowerPoint 파일에서 자동으로 이미지를 생성하는 방법을 알고 있습니까?

답변

3

발견.

엔터프라이즈 아키텍트는 Java 아카이브 파일 (eaapi.jar)을 사용하여 Java에서 EAP 파일에 액세스 할 수 있습니다. 이상 그런

org.sparx.Repository repo = new org.sparx.Repository(); 
org.sparx.Project project = repo.GetProjectInterface(); 
repo.OpenFile(args[0]); 
org.sparx.Collection packages = repo.GetModels(); 

루프 : 당신이해야 할 일은

는 저장소를 얻을 파일을 열고 (필자는이 샘플에서 코드를 처리하는 모든 오류를 생략 한) 그것에서 모든 최상위 패키지를 받고있다 모든 패키지와 (당신이 재귀 적으로 자신을 호출 할 필요가 있기 때문에) 자신의 메소드를 호출 재귀 적으로 모든 하위 패키지를 통해

for (short i=0;i<packages.GetCount();i++) 
    { 
    org.sparx.Package pack = (org.sparx.Package)packages.GetAt(i); 
    handlePackage (project, pack, currentdir); 
    } 
모든 다이어그램을 통해 방법 그리고

, 루프 및 이미지를 생성하고, 루프 :

public static void handlePackage (org.sparx.Project project, org.sparx.Package pack, String output) 
    { 
    for (org.sparx.Diagram diagram : pack.GetDiagrams()) 
     { 
     project.PutDiagramImageToFile (diagram.GetDiagramGUID(), output + diagram.GetName() + ".png", 1); 
     } 
    for (org.sparx.Package subpack : pack.GetPackages()) 
     { 
     handlePackage(project,subpack,output); 
     } 
    } 

그게 전부입니다.

일부 함정 :

  • 당신은 OpenFile 방법에 완전한 경로를 통과해야합니다. 파일이 로컬 폴더에 있더라도 전체 경로를 전달해야합니다.
  • 출력 파일과 동일합니다.
+1

원하는 경우 동일한 기능을 제공하는 .NET API가 있습니다. – Uffe

+1

또 다른 함정 : EA는 다이어그램 이름이 고유하지 않아도됩니다. 따라서 작성된 코드에서 프로젝트의 어느 곳에서나 두 다이어그램이 동일한 이름을 가진다면 두 번째 다이어그램의 파일이 첫 번째 파일을 덮어 씁니다.이를 방지하려면 파일 이름에 DiagramID (고유 정수 식별자)를 포함하십시오. – Uffe

+0

의견 주셔서 감사합니다. 이제 Java 응용 프로그램을 사용할 수있게되었으므로 지금은 .Net으로 변환하지 않겠습니다. 그러나 그것이 존재한다는 것을 알고있는 것이 좋습니다. – Patrick