Please take a look at the following code snippet:
import com.aspose.diagram.Diagram;
import com.aspose.diagram.SaveFileFormat;
import com.aspose.imaging.Image;
import com.aspose.imaging.fileformats.emf.MetaImage;
import org.apache.commons.io.FileUtils;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.InputStream;
String visioPath = "Microsoft_Visio_Drawing.vsdx";
String emfPath = "Microsoft_Visio_Drawing.emf";
byte[] bytes = null;
try(ByteArrayOutputStream baos = new ByteArrayOutputStream())
{
Diagram diagram = new Diagram(visioPath);
diagram.save(baos, SaveFileFormat.EMF);
bytes = baos.toByteArray();
}
catch (Exception e)
{
e.printStackTrace();
}
try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
InputStream is = new ByteArrayInputStream(bytes);
MetaImage metaImage = (MetaImage) Image.load(is))
{
metaImage.save(baos);
FileUtils.writeByteArrayToFile(new File(emfPath), baos.toByteArray());
}
catch (Exception e)
{
e.printStackTrace();
}
The code converts following VSDX file: Microsoft_Visio_Drawing.zip (333.5 KB)
There is some missing content in the EMF target file: Microsoft_Visio_Drawing-emf.zip (277.1 KB)