Soubory Visio mohou obsahovat tvary, spojnice, obrázky nebo text k zobrazení různých diagramů, které se používají k vytváření diagramů, jako jsou organizační diagramy, vývojové diagramy atd. V určitých scénářích můžete chtít najít a nahradit nějaký text ve formátu VSD nebo VSDX Diagram aplikace Visio. V souladu s tím tento článek vysvětluje, jak najít a nahradit text ve výkresech Visia programově v jazyce Java.
- Hledání a nahrazování textu v diagramu aplikace Visio – Instalace Java API
- Najít a nahradit text v diagramu Visio Programově v Javě
Hledání a nahrazování textu v diagramu aplikace Visio – Instalace Java API
Aspose.Diagram for Java API podporuje práci s různými formáty souborů Visio včetně VSD, VSDX, VSDM, VSSX atd. Soubory JAR si můžete stáhnout ze sekce Ke stažení nebo použijte následující konfigurace v souboru pom.xml vašeho projektu za účelem přístupu k API z Aspose Repository:
úložiště:
<repositories>
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
</repositories>
Závislost:
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-diagram</artifactId>
<version>22.4</version>
<classifier>jdk16</classifier>
</dependency>
</dependencies>
Najít a nahradit text v diagramu Visio Programově v Javě
Text v souboru Visio ve formátu VSD VSDX můžete najít a nahradit pomocí následujících kroků:
- Vytvořte kolekci řetězců pro vyhledávání a nahrazování textu.
- Načtěte zdrojový soubor diagramu aplikace Visio a procházejte text v každém obrazci.
- Napište výstupní soubor diagramu aplikace Visio.
Níže uvedená ukázka kódu ukazuje, jak najít a nahradit text v souboru Visio programově pomocí Java:
// Načtěte vstupní schéma
Diagram diagram = new Diagram("FindReplaceText.vsdx");
DateFormat dateFormat = new SimpleDateFormat("dd/MMMM/yyyy");
Date myDate = new Date(System.currentTimeMillis());
Calendar cal = Calendar.getInstance();
// Připravte sbírku starého a nového textu
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()));
// Procházejte tvary stránky
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))
{
// Najít a nahradit text tvaru
tx.setText(tx.getText().replace(key, replacements.get(key)));
}
}
}
}
// Uložte diagram
diagram.save("FindReplaceText_Out.vsdx", SaveFileFormat.VSDX);
Závěr
Na závěr jste pochopili, jak najít a nahradit text v diagramech aplikace Visio. Fragment kódu můžete také improvizovat, aby fungoval s jinými přetíženími metody nahrazení. Například nahrazení všech výskytů shodného textu nebo pouze prvního výskytu hledaného výrazu v souboru Visio. Můžete navštívit prostor dokumentace, kde se dozvíte několik dalších funkcí pro manipulaci nebo převod souborů MS Visio. V případě, že potřebujete prodiskutovat jakékoli své obavy nebo požadavky, kontaktujte nás na fóru.