我有一个带有一些图表的企业架构师项目。我想将它们添加到外部 Word 文档(无法使用 EA 生成)。而且,其他人可能需要在没有EA项目的情况下编辑这个word文档。所以这就是我所做的:
我创建了一个 EA JavaScript 文件,它生成 rtf 文件(每个图表 1 个 .rtf 文件)。 在我的主 Word 文档中,每当我想要插入图表时,我都会添加一个指向先前生成的特定 rtf 文件的链接。 一切工作正常,除了一段时间后,我无法再生成 rtf 文件(当 运行 docGenerator.SaveDocument),它告诉我“无法保存输出文件”。
生成RTF:
function OnProjectBrowserScript()
{
// Get the type of element selected in the Project Browser
var treeSelectedType = Repository.GetTreeSelectedItemType();
switch ( treeSelectedType )
{
case otPackage :
{
// Code for when a package is selected
[...]
packageDiagrams = thePackage.Diagrams; // Collection of all the Diagrams
for ( var i = 0 ; i < packageDiagrams.Count ; i++ ) {
var currentElement as EA.Diagram;
currentDiagram = packageDiagrams.GetAt( i );
// Document Generation using docGenerator
var docGenerator as EA.DocumentGenerator;
docGenerator = Repository.CreateDocumentGenerator();
docGenerator.NewDocument("")
docGenerator.DocumentDiagram(currentDiagram.DiagramID,1,"Diagram Report");
var diagramName = currentDiagram.Name + ".rtf";
//Save diagram into rtf document
var saveSuccess = docGenerator.SaveDocument( diagramName, EA.DocumentType.dtRTF );
if ( saveSuccess ) {
Session.Prompt( "Documentation complete!", promptOK );
} else {
// -- > Error message saying file cannot be saved <--
Session.Prompt( "Error saving file " + diagramName + " : " + docGenerator.GetLastError(), promptOK );
}
}
break;
}
[...]
这个“问题”是我的RTF文件在另一个文档中使用/链接(如果我不在另一个文件中使用它们作为链接,我可以生成任意多次的rtf文件)。
此外,我从来没有用Word打开生成的rtf文件(因为我不想让Word锁定它们......)。 另外,生成rtf文件时,我的主word文档也被关闭。 我认为问题来自 EA rtf 文件生成,因为我已经将这种方法与另一个生成 rtf 的工具一起使用,并且没有遇到任何问题。
如何在写入rtf文件时绕过保护? 是否有另一种方法可以从 EA 导出文件而不是使用 docGenerator?