2012-12-07 4 views
2

J'essaie d'enregistrer un fichier word en html en utilisant java. Enregistrer un fichier Word au format XML et son travail pour moiEnregistrer le fichier word en html dans java

Runtime rt1 = Runtime.getRuntime(); 
rt1.exec("C:/Program Files/Microsoft Office/Office12/WINWORD.EXE /msaveasxml C:/myfolder/AB_00040.doc"); 

Il sauve mon fichier doc sous forme de fichier XML dans le dossier spécifique C:/myfolder et je considère que le fichier xml C: /myfolder/AB_00040.xml

Si je veux enregistrer le même fichier que html que puis-je faire. Toute une aide

rt1.exec("C:/Program Files/Microsoft Office/Office12/WINWORD.EXE /msaveas??? C:/myfolder/AB_00040.doc"); 

Merci à l'avance

+0

Je pense que cela est plus d'une question MS Word que java . Avez-vous essayé "msaveashtml"? –

+0

Cela peut vous aider ... http: //office.microsoft.com/en-us/word-help/command-line-switches-for-microsoft-office-word-2007-HP010164010.aspx –

+0

Celui-ci aussi. ..http: //support.microsoft.com/kb/210565 –

Répondre

4

J'ai trouvé la réponse avec le soupçon de Zack Macomber j'utiliser une macro pour convertir le fichier de texte dans le fichier html. Je donne le code pour cette macro. Enregistrez le nom de macro "saveashtml"

Sub saveashtml() 
Dim xmlname As String 
xmlname = ActiveDocument.FullName 
xmlname = Replace(xmlname, ".docx", ".html", , , vbTextCompare) 
xmlname = Replace(xmlname, ".doc", ".html", , , vbTextCompare) 
ActiveDocument.SaveAs FileName:=xmlname, FileFormat:=wdFormatHTML, LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:=False 
Application.Quit 
End sub 

Vous pouvez exécuter cette macro par

Runtime rt1 = Runtime.getRuntime(); 
rt1.exec("C:/Program Files/Microsoft Office/Office12/WINWORD.EXE /msaveashtml C:/myfolder/AB_00040.doc"); 

saveasxml codage macro

Sub saveasxml() 
Dim xmlname As String 
xmlname = ActiveDocument.FullName 
xmlname = Replace(xmlname, ".docx", ".xml", , , vbTextCompare) 
xmlname = Replace(xmlname, ".doc", ".xml", , , vbTextCompare) 
ActiveDocument.SaveAs FileName:=xmlname, FileFormat:=wdFormatFlatXML, LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:=False 
End Sub 
+1

J'utilise votre solution dans une application Web où l'utilisateur télécharge un document Word dans le client et j'appelle winword avec macro pour convertir en HTML sur le côté serveur. Mais il y a un problème avec cette approche. Si le document Word est corrompu, ou en lecture seule etc, et lorsque le serveur exécute la commande winword, l'invite winword comme "Doc est corrompu, Voulez-vous toujours ouvrir?", "Doc est en lecture seule, Voulez-vous ouvrir?" etc. et se bloque pour toujours en mémoire, parce que winword attend une entrée de l'utilisateur et le programme ne peut pas fournir cette entrée. Connaissez-vous une solution à cela? – Fayaz

Questions connexes