Genel API Aspose.Diagram 6.6.0'daki değişiklikler

LoadFileFormat sınıfına VSDM, VSSM ve VSTM formatlarını ekler

Bu sürüm, makro özellikli Visio formatlarını okuma desteği ekler.

SaveFileFormat sınıfına VSDM, VSSM ve VSTM formatlarını ekler

Bu sürüm, makro etkin Visio biçimlerini yazma desteği ekler.

Visio Diagram’de VBA Modül Kodunu Değiştirin

Vba, VbaProject ve VbaModule sınıflarını ekledik. Bu sınıflar, VBA projesi üzerinde kontrol sahibi olmanıza yardımcı olur. Geliştiriciler, bu yeni sürüm 6.6.0 veya üzerini kullanarak VBA modül kodunu çıkarabilir ve değiştirebilir. Lütfen bu kod örneğini kontrol edin:

Java

 // mevcut bir Visio diagram'i yükleyin

InputStream girişi = yeni FileInputStream("c:\\temp\\macro.vsdm");

Diagram diagram = yeni Diagram(giriş);

// VBA projesini çıkart

VbaProject v = diagram.getVbaProject();

// Modüller arasında yineleme yapın ve VBA makro kodunu değiştirin

için (int i=0;i< diagram.getVbaProject().getModules().getCount();i++)

{

    VbaModule module =  diagram.getVbaProject().getModules().get(i);

    String code = module.getCodes();

    if (code.contains("This is test message."))

        code = code.replace("This is test message.", "This is Aspose.Diagram message.");

    module.setCodes (code);

}

// save the Visio diagram

diagram.Save("c:\\temp\\out.vssm", SaveFileFormat.VSSM);

ForeignData sınıfına bir getImageData Yöntemi ekler

Bir bayt dizisi olarak ole nesnesinin görüntüsünü temsil eder. Bunun yanı sıra, OLE nesnelerinin işlenmesini de geliştirdik. Geliştiriciler artık Visio diagram’deki bir OLE nesnesini de değiştirebilir. Lütfen şu kod örneğini kontrol edin:

Java

 String DirPath = "c:\\temp\\";

// load a Visio diagram

Diagram diagram = new Diagram(DirPath + "Drawing1.vsdx");

// get page of the Visio diagram by name

Page page = diagram.getPages().getPage("Page-1");

// get shape of the Visio diagram by ID

Shape OLE_Shape = page.getShapes().getShape(2);

// filter shapes by type Foreign

if (OLE_Shape.getType() == TypeValue.FOREIGN)

{

    if (OLE_Shape.getForeignData().getForeignType() == ForeignType.OBJECT)

    {

    	ByteArrayInputStream Ole_stream = new ByteArrayInputStream(OLE_Shape.getForeignData().getObjectData());

        // get format of the OLE file object

        com.aspose.words.FileFormatInfo info = com.aspose.words.FileFormatUtil.detectFileFormat(Ole_stream);

        if (info.getLoadFormat() == com.aspose.words.LoadFormat.DOC || info.getLoadFormat() == com.aspose.words.LoadFormat.DOCX)

        {

            // modify an OLE object

            com.aspose.words.Document doc = new com.aspose.words.Document(new ByteArrayInputStream(OLE_Shape.getForeignData().getObjectData()));

    	    doc.getRange().replace("testing", "Aspose", false, true);

            ByteArrayOutputStream outStream = new ByteArrayOutputStream();

            doc.save(outStream, com.aspose.words.SaveFormat.DOCX);

            // seve an OLE object

            OLE_Shape.getForeignData().setObjectData(outStream.toByteArray());

        }

    }

}

// save Visio diagram

diagram.save(DirPath + "modified.vsdx", SaveFileFormat.VSDX);