Pliki programu Visio mogą zawierać kształty, łączniki, obrazy lub tekst przedstawiający różne diagramy używane do tworzenia diagramów, takich jak schematy organizacyjne, schematy blokowe itp. W niektórych scenariuszach może być konieczne znalezienie i zastąpienie tekstu w formacie VSD lub VSDX Schemat Visio. W związku z tym w tym artykule wyjaśniono, jak znaleźć i zamienić tekst w rysunkach programu Visio programowo w Javie.
- Wyszukaj i zamień tekst na diagramie programu Visio — instalacja interfejsu Java API
- Znajdź i zamień tekst na diagramie programu Visio Programowo w Javie
Wyszukaj i zamień tekst na diagramie programu Visio — instalacja interfejsu Java API
Aspose.Diagram for Java API obsługuje pracę z różnymi formatami plików Visio, w tym VSD, VSDX, VSDM, VSSX itp. Możesz pobrać pliki JAR z sekcji Downloads lub skorzystać z następującego konfiguracje w pliku pom.xml Twojego projektu w celu uzyskania dostępu do API z Aspose Repository:
Magazyn:
<repositories>
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
</repositories>
Zależność:
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-diagram</artifactId>
<version>22.4</version>
<classifier>jdk16</classifier>
</dependency>
</dependencies>
Znajdź i zamień tekst na diagramie programu Visio Programowo w Javie
Możesz znaleźć i zamienić tekst w pliku Visio w formacie VSD VSDX, wykonując poniższe czynności:
- Utwórz kolekcję ciągów do wyszukiwania i zastępowania tekstu.
- Załaduj źródłowy plik diagramu programu Visio i przejrzyj tekst w każdym kształcie.
- Zapisz wyjściowy plik diagramu programu Visio.
Poniższy przykładowy kod pokazuje, jak programowo znaleźć i zamienić tekst w pliku programu Visio przy użyciu języka Java:
// Załaduj diagram wejściowy
Diagram diagram = new Diagram("FindReplaceText.vsdx");
DateFormat dateFormat = new SimpleDateFormat("dd/MMMM/yyyy");
Date myDate = new Date(System.currentTimeMillis());
Calendar cal = Calendar.getInstance();
// Przygotuj zbiór starych i nowych tekstów
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()));
// Iteruj przez kształty strony
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))
{
// Znajdź i zamień tekst kształtu
tx.setText(tx.getText().replace(key, replacements.get(key)));
}
}
}
}
// Zapisz schemat
diagram.save("FindReplaceText_Out.vsdx", SaveFileFormat.VSDX);
Wniosek
Podsumowując, wiesz już, jak znajdować i zastępować tekst na diagramach programu Visio. Możesz również zaimprowizować fragment kodu, aby działał z innymi przeciążeniami metody replace. Na przykład zastąpienie wszystkich wystąpień pasującego tekstu lub tylko pierwszego wystąpienia wyszukiwanego terminu w pliku programu Visio. Możesz odwiedzić dokumentację, aby poznać kilka innych funkcji służących do manipulowania lub konwertowania plików MS Visio. Jeśli chcesz omówić swoje wątpliwości lub wymagania, skontaktuj się z nami na forum.