1

私は数年間 Doxygen を使用していますが、ドキュメントの作成には、PowerPoint ファイル、Word ファイル、UML ファイルなど、他にも多くの方法が使用されています。どのファイル タイプにも利点がありますが (たとえば、PowerPoint は簡単に作成でき、プレゼンテーションに最適です)、すぐにさまざまなファイルがさまざまな場所にあり、概要がわかりません。

これらすべてのファイルを 1 つのエントリ ポイントにマージしたいと考えています。私の考えは、Doxygen を使用してソース コード ドキュメントを含む HTML ファイルを生成し、(Qt と同様に) Doxygen で概要ドキュメントを作成し、他のファイルに基づく画像を含めることです。また、システム全体を自動化しようとしています。

私が今探しているのは、これらの他のファイルを画像に変換する方法です。そのため、私の自動化されたシステムは、これらの画像を生成された HTML (そして最終的に生成された QCH (Qt ヘルプ) ファイル) に含めることができます。

PowerPoint 用のツールをいくつか見つけましたが、無料のものは正しく動作しないようです。商用ツールの試用版は、一部の PPTX ファイルで失敗します。

Enterprise Architect の場合、画像の生成を自動化する方法が見つかりませんでした。

Enterprise Architect ファイルと PowerPoint ファイルから画像を自動的に生成する方法を知っている人はいますか?

4

1 に答える 1

3

それを見つけた。

エンタープライズ アーキテクトには、Java から EAP ファイルにアクセスするために使用できる Java アーカイブ (eaapi.jar) があります。

必要なことは、リポジトリを取得し、ファイルを開き、そこからすべての最上位パッケージを取得することです (このサンプルではすべてのエラー処理コードを省略しました)。

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 メソッドに完全修飾パスを渡す必要があります。ファイルがローカル フォルダーにある場合でも、フル パスを渡す必要があります。
  • 出力ファイルも同様
于 2012-10-05T13:51:53.467 に答える