- Performs the conversion using the specified XSLT file;
- Opens the new document as text;
- Selects the converted text and copies it to the clipboard;
- Reopens the original file;
- Informs the user that the clipboard contains converted text, ready to be pasted into Blogger or MediaWiki.
Here is the source code for the macros:
Sub SaveAsWiki()
'
' SaveAsWiki Macro
' Save Word document as Wiki markup
'
ConvertWithXSL "createWikiMarkup.xsl"
MsgBox "The Wiki Markup is on the clipboard", vbOKOnly, "Done"
End Sub
Sub SaveAsBlogger()
'
' SaveAsBlogger: save word document as blogger-optimized HTML markup
'
ConvertWithXSL "createBloggerMarkup.xsl"
MsgBox "The Blogger Markup is on the clipboard", vbOKOnly, "Done"
End Sub
Sub ConvertWithXSL(XSLFile As String)
'
' ConvertWithXSL: converts the Word document with specified XSL
'
Dim XPath, DocName, TxtPath
XPath = ActiveDocument.AttachedTemplate.Path & _
Application.PathSeparator & XSLFile
TxtPath = Environ("TEMP")
If TxtPath <> "" Then TxtPath = TxtPath & "\"
TxtPath = TxtPath & "wmk.txt"
DocName = ActiveDocument.FullName
If MsgBox("The conversion process will lose all changes you've made. " & _
"You have to save the document before running the conversion. " & _
"Did you do it?", vbYesNo, "Warning") <> vbYes Then Exit Sub
With ActiveDocument
.XMLSaveDataOnly = False
.XMLUseXSLTWhenSaving = True
.XMLSaveThroughXSLT = XPath
.XMLHideNamespaces = False
.XMLShowAdvancedErrors = False
.XMLSchemaReferences.HideValidationErrors = False
.XMLSchemaReferences.AutomaticValidation = True
.XMLSchemaReferences.IgnoreMixedContent = False
.XMLSchemaReferences.AllowSaveAsXMLWithoutValidation = True
.XMLSchemaReferences.ShowPlaceholderText = False
End With
ActiveDocument.SaveAs _
FileName:=TxtPath, FileFormat:=wdFormatXML, _
AddToRecentFiles:=False
ActiveDocument.Close
Documents.Open FileName:=TxtPath, ConfirmConversions:=False, _
ReadOnly:=False, AddToRecentFiles:=False, _
Format:=wdOpenFormatAuto, Encoding:=65001
Selection.WholeStory
Selection.Copy
ActiveDocument.Close
Documents.Open FileName:=DocName
End Sub
No comments:
Post a Comment