C++ API to Convert DOCM to ODP or Online App

Export DOCM to ODP within your C++ applications without using Microsoft Word® or PowerPoint

DOCM Conversion via Python DOCM Conversion via C# .NET DOCM Conversion via Java DOCM Conversion in Android Apps

 

Why to Convert

The DOCM file format is a Microsoft Office Word document with macros enabled. It is used to store documents with embedded macros that can be used to automate tasks. However, the OpenDocument Presentation (ODP) format is an open standard for presentations that is supported by many applications, including LibreOffice and OpenOffice. Therefore, it is often necessary to convert DOCM files to ODP in order to make them compatible with other applications.

How Aspose.Total Helps for DOCM to ODP Conversion

Aspose.Total for C++ is a suite of powerful file automation APIs that can be used to automate the conversion of DOCM to ODP. It consists of two APIs: Aspose.Words for C++ and Aspose.Slides for C++. Aspose.Words for C++ can be used to load the DOCM file and convert it to HTML. Aspose.Slides for C++ can then be used to load the HTML and create a new presentation, which can then be saved as an ODP file. This process can be automated using the APIs provided by Aspose.Total for C++, making it easy to convert DOCM files to ODP.

DOCM to ODP Conversion on C++

  1. Open DOCM file using Document class reference
  2. Convert DOCM to HTML by using Save member function
  3. Initialize a new Presentation object
  4. Add an AutoShape in your slide, and add AddTextFrame in it
  5. Load the HTML content and write it in your Presentation file
  6. Save the document to ODP format using Save method and set Odp as SaveFormat

Get Started with C++ File Format APIs

Install from command line as nuget install Aspose.Total.Cpp or via Package Manager Console of Visual Studio with Install-Package Aspose.Total.Cpp.

Alternatively, get the offline MSI installer or DLLs in a ZIP file from downloads .

// load DOCM file with an instance of Document
Document document = new Document("template.docm");
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"sourceFile.docm");
// save the document in HTML file format
doc->Save(u"HtmlOutput.HTML");
// load the desired the presentation
SharedPtr<Presentation> pres = MakeObject<Presentation>();
// access first slide
SharedPtr<ISlide> sld = pres->get_Slides()->idx_get(0);
// add an AutoShape of Rectangle type
SharedPtr<IAutoShape>  ashp = sld->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 10, 10, 700, 500);
// reset default fill color
ashp->get_FillFormat()->set_FillType(FillType::NoFill);
// add TextFrame to the Rectangle
ashp->AddTextFrame(u" ");
// access the text frame
SharedPtr<ITextFrame>  txtFrame = ashp->get_TextFrame();
// get Paragraphs collection
SharedPtr<Aspose::Slides::IParagraphCollection>ParaCollection = txtFrame->get_Paragraphs();
// clear all paragraphs in added text frame
ParaCollection->Clear();
// load the HTML file using stream reader
SharedPtr<System::IO::StreamReader>  tr = MakeObject<System::IO::StreamReader>(HtmlOutput.HTML);
// add text from HTML stream reader in text frame
ParaCollection->AddFromHtml(tr->ReadToEnd());
// save presentation as Odp
pres->Save(output.odp, Aspose::Slides::Export::SaveFormat::Odp);                  

Free Online Converter for DOCM to ODP

Load Password Protected DOCM Document via C++

Apart from document conversion, Aspose.Words for C++ API allows tons of document manipulation features for C++ developers. In case your Microsoft Word DOCM file format is password protected, you can still open it using the API. In order to load the encrypted document, you can use a special constructor overload, which accepts a LoadOptions object. This object contains the Password property, which specifies the password string.

// when loading password protected document, the password is passed to the document's constructor using a LoadOptions object.
auto options = MakeObject<LoadOptions>(u"docPassword");
// load the document from the local file system by filename:
SharedPtr<Document> doc = MakeObject<Document>(u"Encrypted.docm", options);

Add Comments in ODP Document via C++

While saving DOCM as ODP, you can also use Aspose.Slides for C++ to add further features in your ODP document. For instance, you can add comments in your presentation. The presentation slide comment are associated with a particular author. The Presentation class holds the collection of authors in ICommentAuthorCollection that are responsible for adding slide comments. For each author, there is a collection of comments in ICommentCollection.

// instantiate Presentation class
SharedPtr<Presentation>pres = MakeObject<Presentation>();
// access first slide
SharedPtr<ILayoutSlide>layout = pres->get_LayoutSlides()->idx_get(0);
// add empty slide
pres->get_Slides()->AddEmptySlide(layout);
// adding Author
SharedPtr<ICommentAuthor> author = pres->get_CommentAuthors()->AddAuthor(u"John Doe", u"MF");
// set position of comments
System::Drawing::PointF point = System::Drawing::PointF(0.2f, 0.2f);
// add slide comment for an author on slide 1
author->get_Comments()->AddComment(u"Hello John, this is a slide comment", pres->get_Slides()->idx_get(1), point, DateTime::get_Now());
// access ISlide 1
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
// save presentation as Odp
pres->Save(output.odp, Aspose::Slides::Export::SaveFormat::Odp);  

FAQ

  • How can I convert DOCM to ODP Online?
    You can find the online app for DOCM conversion above. To start the conversion process, you can add the DOCM file either by dragging and dropping it or by clicking inside the white area to import the document. Once you have added the file, you can simply click the "Convert" button. After the DOCM to ODP conversion is completed, you can download your converted file with just one click.
  • How long does it take to convert DOCM?
    The speed of this online converter depends largely on the size of the DOCM file being converted. Small DOCM files can be converted to ODP in just a few seconds. If you are using the conversion code within a C++ application, the conversion speed will depend on how well you have optimized your application.
  • Is it safe to convert DOCM to ODP using free Aspose.Total converter?
    Of course! After your DOCM file is converted to ODP using our online converter, the download link for the ODP file will be immediately available. We take the security and privacy of your uploaded files seriously and delete them 24 hours after the conversion process is complete. Rest assured, no one will have access to your files. Our conversion process, including DOCM conversion, is completely safe. We provide a free app for testing purposes so that you can verify the results before integrating the code.
  • What browser should I use to convert DOCM?
    For online DOCM conversion, you can use any modern browser, such as Google Chrome, Firefox, Opera, or Safari. However, if you're developing a desktop application, Aspose.Total DOCM Conversion API is recommended for smooth performance.

Explore DOCM Conversion Options with C++

Convert DOCM to CSV (Comma Seperated Values)
Convert DOCM to DIF (Data Interchange Format)
Convert DOCM to EXCEL (Spreadsheet File Formats)
Convert DOCM to FODS (OpenDocument Flat XML Spreadsheet)
Convert DOCM to JSON (JavaScript Object Notation File)
Convert DOCM to ODS (OpenDocument Spreadsheet)
Convert DOCM to POT (Microsoft PowerPoint Template Files)
Convert DOCM to POTM (Microsoft PowerPoint Template File)
Convert DOCM to POTX (Microsoft PowerPoint Template Presentation)
Convert DOCM to PPTX (Open XML presentation Format)
Convert DOCM to PPS (PowerPoint Slide Show)
Convert DOCM to PPSM (Macro-enabled Slide Show)
Convert DOCM to PPSX (PowerPoint Slide Show)
Convert DOCM to PPT (PowerPoint Presentation)
Convert DOCM to PPTM (Macro-enabled Presentation File)
Convert DOCM to PPTX (Open XML presentation Format)
Convert DOCM to SXC (StarOffice Calc Spreadsheet)
Convert DOCM to TSV (Tab-separated Values)
Convert DOCM to XLAM (Excel Macro-Enabled Add-In)
Convert DOCM to XLS (Microsoft Excel Binary Format)
Convert DOCM to XLSB (Excel Binary Workbook)
Convert DOCM to XLSM (Macro-enabled Spreadsheet)
Convert DOCM to XLSX (Open XML Workbook)
Convert DOCM to XLT (Excel 97 - 2003 Template)
Convert DOCM to XLTM (Excel Macro-Enabled Template)
Convert DOCM to XLTX (Excel Template)