Localizar Substituir Visio Java

Os arquivos do Visio podem incluir formas, conectores, imagens ou texto para representar diferentes diagramas usados para criar diagramas como organogramas, fluxogramas etc. Em determinados cenários, talvez você queira localizar e substituir algum texto em um formato VSD ou VSDX Diagrama do Visio. Assim, este artigo explica como localizar e substituir texto em desenhos do Visio programaticamente em Java.

Pesquisar e substituir texto no diagrama do Visio – Instalação da API Java

Aspose.Diagram for Java API suporta trabalhar com diferentes formatos de arquivo do Visio, incluindo VSD, VSDX, VSDM, VSSX, etc. Você pode baixar os arquivos JAR da seção Downloads ou usar o seguinte configurações no arquivo pom.xml do seu projeto para acessar a API do Repositório Aspose:

Repositório:

 <repositories>
    <repository>
        <id>AsposeJavaAPI</id>
        <name>Aspose Java API</name>
        <url>http://repository.aspose.com/repo/</url>
    </repository>
</repositories>

Dependência:

 <dependencies>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-diagram</artifactId>
        <version>22.4</version>
        <classifier>jdk16</classifier>
    </dependency>
</dependencies>

Localizar e substituir texto no diagrama do Visio programaticamente em Java

Você pode localizar e substituir o texto em um arquivo do Visio no formato VSD VSDX com as etapas abaixo:

  1. Crie uma coleção de strings para pesquisar e substituir texto.
  2. Carregue o arquivo de diagrama do Visio de origem e faça um loop pelo texto em cada forma.
  3. Grave o arquivo de diagrama de saída do Visio.

O exemplo de código abaixo mostra como localizar e substituir texto em um arquivo do Visio programaticamente usando Java:

// Carregar o diagrama de entrada
Diagram diagram = new Diagram("FindReplaceText.vsdx");

DateFormat dateFormat = new SimpleDateFormat("dd/MMMM/yyyy");
Date myDate = new Date(System.currentTimeMillis());
Calendar cal = Calendar.getInstance();

// Preparar uma coleção de texto antigo e novo
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()));

// Iterar pelas formas de uma página
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))
            {
                // Localizar e substituir o texto de uma forma
                tx.setText(tx.getText().replace(key, replacements.get(key)));
            }
        }
    }
}

// Salve o diagrama
diagram.save("FindReplaceText_Out.vsdx", SaveFileFormat.VSDX);

Conclusão

Concluindo, você entendeu como localizar e substituir texto em diagramas do Visio. Você também pode improvisar o trecho de código para trabalhar com outras sobrecargas do método de substituição. Por exemplo, substituindo todas as instâncias de texto correspondente ou apenas a primeira ocorrência do termo de pesquisa no arquivo do Visio. Você pode visitar o espaço documentação para aprender vários outros recursos para manipular ou converter arquivos do MS Visio. Caso você precise discutir alguma de suas preocupações ou requisitos, entre em contato conosco no fórum.

Veja também

Converter arquivo VSD ou VSDX do Visio em XAML em Java