A wait message appeared: it took the converter about 30 seconds to save the document. OK, so I decided to save my current document as ODF. So instead of just clicking Save, users have to save twice, first as. Please save your document before exporting to ODF. If you have a new document, and choose ODF – Save As, you get the following error: As far as I can tell, this is not possible with this version 1.0 release. What you want to do is to fiddle with Group Policy and have Word default to opening and saving ODT (Open Document Text). Imagine you are an organization that has decided to mandate ODF for your documents, but to continue using Microsoft Office. Not ideal in terms of integration, but never mind. A separate top-level entry for ODF with Open and Save As menu items. Puzzled, I looked again at the Home menu in Word 2007. I went to Home – Save As, and looked for Open Document in the list of document types. This is just under 800 words long and contains no graphics. Then I opened Word, and opened the document I was working on, which happens to be called Using DigiKam.docx. I downloaded the Word 2007 add-in and ran the setup. I like to try things out before writing about them, so here’s what I did. Great news for interoperability – or is it? ' the code will raise an exception back to the caller.ĭim newFileName = Path.ChangeExtension(fileName, ".The first full release of the Open XML to Open Document Format translator is available for download. ' If anything goes wrong in this file handling, ' Track that the document has been changed. WordprocessingDocument.Open(fileName, True) Using document As WordprocessingDocument = Public Sub ConvertDOCMtoDOCX(ByVal fileName As String) ' project, reset the document type, and save the document with a new name. docm file (with macro storage), remove the VBA If it already exists, it will be deleted! Var newFileName = Path.ChangeExtension(fileName, ".docx") the code will raise an exception back to the caller. If anything goes wrong in this file handling, Track that the document has been changed. Var docPart = document.MainDocumentPart ? throw new ArgumentNullException("MainDocumentPart is null.") Using (WordprocessingDocument document = WordprocessingDocument.Open(fileName, true)) Static void ConvertDOCMtoDOCX(string fileName) project, reset the document type, and save the document with a new name. Therefore, you must have some way to indicate to the code after the block that you have modified the file: The fileChanged Boolean variable tracks this information for you. The using block closes the file at the end of the block. However, you cannot do that while the file is open. The Open XML SDK provides a way to perform this task: You can call the document ChangeDocumentType method and indicate the new document type (in this case, supply the WordProcessingDocumentType.Document enumerated value). You must also convert the document type, internally. It is not enough to delete the part from the document. ' Delete the vbaProject part and then save the document. Delete the vbaProject part and then save the document. The code then retrieves a reference to the Document part by using the MainDocumentPart property of the word processing document. The code starts by opening the document by using the Open method and indicating that the document should be open for read/write access (the final true parameter). Renames the document so that it uses the. The code deletes the part, it changes the document type internally and The document contains a vbaProject part, and deleting the part. The sample code modifies the document that you specify, verifying that The task of converting a macro enabled document to one that is not macroĮnabled therefore consists largely of removing the vbaProject part from The Open XML SDK Productivity Tool for Microsoft Office shows theĭocument parts in a sample document that contains a macro. The following image from the Document Explorer in When you create and save a VBA macro in a document, Word adds a newīinary part named vbaProject that contains the internal representation For more information about the Open Packaging Conventions, zip files is called the Open PackagingĬonventions. A part has a particular content type, and canĬontain content equivalent to an external XML file, binary file, imageįile, and so on, depending on the type. You can think of each part as being similar String filename = filename As String = "C:\Users\Public\Documents\WithMacros.docm"Ī word processing document package such as a file that has a.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |