Najít Nahradit Visio Java

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

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ů:

  1. Vytvořte kolekci řetězců pro vyhledávání a nahrazování textu.
  2. Načtěte zdrojový soubor diagramu aplikace Visio a procházejte text v každém obrazci.
  3. 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.

Viz také

Převést soubor Visio VSD nebo VSDX do XAML v Javě