Файли Visio можуть містити фігури, з’єднувачі, зображення або текст для зображення різних діаграм, які використовуються для створення діаграм, як-от організаційних діаграм, блок-схем тощо. У певних сценаріях вам може знадобитися знайти та замінити текст у форматі VSD або VSDX Діаграма Visio. Відповідно, у цій статті пояснюється, як програмно знайти та замінити текст у малюнках Visio у Java.
- Пошук і заміна тексту на діаграмі Visio – встановлення Java API
- Програмний пошук і заміна тексту на схемі Visio у Java
Пошук і заміна тексту на діаграмі Visio – встановлення Java API
API Aspose.Diagram for Java підтримує роботу з різними форматами файлів Visio, включаючи VSD, VSDX, VSDM, VSSX тощо. Ви можете завантажити файли JAR із розділу Завантаження або скористатися наступним конфігурації у файлі pom.xml вашого проекту, щоб отримати доступ до API із Aspose Repository:
Репозиторій:
<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>
Програмний пошук і заміна тексту на схемі Visio у Java
Ви можете знайти та замінити текст у файлі Visio у форматі VSD VSDX, виконавши наведені нижче дії.
- Створіть колекцію рядків для пошуку та заміни тексту.
- Завантажте вихідний файл діаграми Visio і перегляньте текст у кожній фігурі.
- Запишіть вихідний файл діаграми Visio.
Зразок коду нижче показує, як знайти та замінити текст у файлі Visio програмним шляхом за допомогою Java:
// Завантажте вхідну діаграму
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. Ви можете відвідати розділ документація, щоб дізнатися про кілька інших функцій для маніпулювання або конвертування файлів MS Visio. Якщо вам потрібно обговорити будь-які ваші проблеми чи вимоги, зв’яжіться з нами на форумі.