Public API Changements dans Aspose.Diagram 6.6.0
Ajoute les formats VSDM, VSSM et VSTM dans la classe LoadFileFormat
Cette version ajoute la prise en charge de la lecture des formats Visio prenant en charge les macros.
Ajoute les formats VSDM, VSSM et VSTM dans la classe SaveFileFormat
Cette version ajoute la prise en charge de l’écriture de formats Visio prenant en charge les macros.
Modifier le code du module VBA dans Visio Diagram
Nous avons ajouté les classes Vba, VbaProject et VbaModule. Ces classes aident à prendre le contrôle du projet VBA. À l’aide de cette nouvelle version 6.6.0 ou supérieure, les développeurs peuvent extraire et modifier le code du module VBA. Veuillez vérifier cet exemple de code :
Java
// charge un Visio diagram existant
InputStream input = new FileInputStream("c:\\temp\\macro.vsdm");
Diagram diagram = nouveau Diagram (entrée);
// extrait le projet VBA
VbaProject v = diagram.getVbaProject();
// Itérer dans les modules et modifier le code de la macro VBA
pour (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);
Ajoute une méthode getImageData dans la classe ForeignData
Il représente une image de l’objet ole sous la forme d’un tableau d’octets. Outre cela, nous avons également amélioré la manipulation des objets OLE. Les développeurs peuvent désormais également remplacer un objet OLE dans le Visio diagram. Veuillez vérifier cet exemple de code :
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);