Visioファイルには、組織図やフローチャートなどの図を作成するために使用されるさまざまな図を表す形状、コネクタ、画像、またはテキストを含めることができます。特定のシナリオでは、VSDまたはVSDX形式のテキストを検索して置き換えることができます。 Visio図。したがって、この記事では、JavaでプログラムによってVisio図面のテキストを検索して置き換える方法について説明します。
Visioダイアグラムのテキストの検索と置換–JavaAPIのインストール
Aspose.Diagram for Java APIは、VSD、VSDX、VSDM、VSSXなどのさまざまなVisioファイル形式の操作をサポートしています。JARファイルはダウンロードセクションからダウンロードするか、以下を使用できます。 AsposeリポジトリからAPIにアクセスするためのプロジェクトのpom.xmlファイルの構成:
リポジトリ:
<repositories>
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
</repositories>
依存:
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-diagram</artifactId>
<version>22.4</version>
<classifier>jdk16</classifier>
</dependency>
</dependencies>
JavaでプログラムによるVisioダイアグラムのテキストの検索と置換
VSD VSDX形式のVisioファイルのテキストを見つけて、次の手順で置き換えることができます。
- 文字列のコレクションを作成して、テキストを検索および置換します。
- ソースVisioダイアグラムファイルをロードし、各図形のテキストをループします。
- 出力Visioダイアグラムファイルを書き込みます。
以下のコードサンプルは、Javaを使用してプログラムでVisioファイル内のテキストを検索および置換する方法を示しています。
// 入力図をロードします
Diagram diagram = new Diagram("FindReplaceText.vsdx");
DateFormat dateFormat = new SimpleDateFormat("dd/MMMM/yyyy");
Date myDate = new Date(System.currentTimeMillis());
Calendar cal = Calendar.getInstance();
// 新旧のテキストのコレクションを準備する
Hashtable<String, String> replacements = new Hashtable<String, String>();
replacements.put("[[CompanyName]]", "Research Society of XYZ");
replacements.put("[[CompanyName]]", "Research Society of XYZ");
replacements.put("[[EmplyeeName]]", "James Bond");
replacements.put("[[SubjectTitle]]", "The affect of the internet on social behavior in the industrialize world");
cal.setTime(myDate);
cal.add(Calendar.YEAR, -1);
System.out.println(dateFormat.format(cal.getTime()));
replacements.put("[[TimePeriod]]", dateFormat.format(cal.getTime()) + " -- " + dateFormat.format(myDate));
cal.setTime(myDate);
cal.add(Calendar.DAY_OF_MONTH, -7);
System.out.println(dateFormat.format(cal.getTime()));
replacements.put("[[SubmissionDate]]", dateFormat.format(cal.getTime()));
replacements.put("[[AmountReq]]", "$100,000");
cal.setTime(myDate);
cal.add(Calendar.DAY_OF_MONTH, 1);
System.out.println(dateFormat.format(cal.getTime()));
replacements.put("[[DateApproved]]", dateFormat.format(cal.getTime()));
// ページの形を繰り返します
for (Shape shape : (Iterable<Shape>) diagram.getPages().getPage("Page-1").getShapes())
{
Set<String> keys = replacements.keySet();
for(String key: keys)
{
for (FormatTxt txt : (Iterable<FormatTxt>) shape.getText().getValue())
{
Txt tx = (Txt)((txt instanceof Txt) ? txt : null);
if (tx != null && tx.getText().contains(key))
{
// 図形のテキストを検索して置換する
tx.setText(tx.getText().replace(key, replacements.get(key)));
}
}
}
}
// ダイアグラムを保存する
diagram.save("FindReplaceText_Out.vsdx", SaveFileFormat.VSDX);
結論
結論として、Visioダイアグラムでテキストを検索して置き換える方法を理解しました。コードスニペットを即興で作成して、replaceメソッドの他のオーバーロードを処理することもできます。たとえば、一致するテキストのすべてのインスタンスを置き換えるか、Visioファイルで最初に出現する検索語のみを置き換えます。 ドキュメントスペースにアクセスして、MSVisioファイルを操作または変換するための他のいくつかの機能を学ぶことができます。懸念事項や要件について話し合う必要がある場合は、フォーラムまでご連絡ください。