Går det att i ASP konvertera flera doc-filer till html i samma veva?
Servern har word 2000 installerat.
...eller finns det nån freeware-programvara som klarar det, eller nån kod VBScript eller VB...?
14 svar · 232 visningar · startad av ironhead
Går det att i ASP konvertera flera doc-filer till html i samma veva?
Servern har word 2000 installerat.
...eller finns det nån freeware-programvara som klarar det, eller nån kod VBScript eller VB...?
Jo det ska gå. Jag vet bara inte exakt hur. Jag tror att det finns en inbyggd komponent i ASP men jag är inte säker.
Det finns flera inlägg här i forumet som tar upp ämnet. Prova att söka på "Word".
/JANspeed
Jag har kommit fram till detta:
<%
Function WordToHTML(strWordDoc, strHTMLDoc)
On Error Resume Next
Dim objWord
Set objWord = CreateObject("Word.Application")
objWord.Visible = False
objWord.Documents.Open(strWordDoc)
objWord.DisplayAlerts = False
If Err.Number <> 0 Then
WordToHTML = Err.Description
Else
Dim FileFormat
Dim LockComments
Dim Password
Dim AddToRecentFiles
Dim WritePassword
Dim ReadOnlyRecommended
Dim EmbedTrueTypeFonts
Dim SaveNativePictureFormat
Dim SaveFormsData
Dim SaveAsAOCELetter
FileFormat = 8
LockComments = False
Password = ""
AddToRecentFiles = False
WritePassword = ""
ReadOnlyRecommended = False
EmbedTrueTypeFonts = True
SaveNativePictureFormat = True
SaveFormsData = False
SaveAsAOCELetter = False
objWord.ActiveDocument.SaveAs strHTMLDoc, FileFormat, LockComments, Password, AddToRecentFiles, WritePassword, ReadOnlyRecommended, EmbedTrueTypeFonts,SaveNativePictureFormat, SaveFormsData, SaveAsAOCELetter
objWord.ActiveDocument.Close
objWord.Quit
Set objWord = Nothing
If Err.Number <> 0 Then
WordToHTML = Err.Description
Else
WordToHTML = "Konvertering genomförd"
End If
End If
End Function
Response.write WordToHTML("c:\inetpub\wwwroot\word2html\chapter1.doc","c:\inetpub\wwwroot\word2html\chapter1.htm")
%>
..men får ett felmeddelande:
error '80010105'
The server threw an exception.
/word2html/konvert.asp, line 6
Kan det vara att man försöker skapa objektet flera gånger eller? hur kommer man förbi detta?
Synd! Tror nog många skulle ha nytta av detta...
Halloj! För mig fungerar det perfekt nuförtiden att konvertera word till html genom servern. Men tro mig att det har inte varit en lätt väg dit! Jag använder typ samma kodning som du gör och för mig ser det ut som om det har med någon konfiguration av word att göra och inte själva koden.
Du kan inte skriva
Set objWord = CreateObject("Word.Application")
om funktionen ska köras på servern.
Skriv istället:
Set objWord = Server.CreateObject("Word.Application")
------------------
En eller annan godbit från pannan
Herman:Detta är ett exempel gjort i VisualBasic, därav create och inte server.create.
JANspeed:Tycker jag får så kryptiska förklaringar hos MS ;)
Verkar ändå vara som Daniel78 säger, nån konfigurering med word.
Kan man kolla om objektet redan är aktiverat, eller kört eller nåt sånt?
Daniel78: Du har inte lust att dela med dig av lite kod och erfarenheter, konfigurationer till oss oerfarna...
[Redigerat av ironhead den 22 aug 2001]
so? försöker du köra det på servern kan du inte använda bara create. Vad är ditt problem egentligen? Är det inte att du inte kan skapa objektet?? Har du provat att ändra till server.c
------------------
En eller annan godbit från pannan
Sorry Herman, jag trodde jag hade skrivit Server.CreateObject...ber 1000ggr om ursäkt.
Fick nu detta fel:
Server object error 'ASP 0177 : 80010105'
Server.CreateObject Failed
/word2html/konvert.asp, line 6
The server threw an exception.
Jag hade ett liknande problem (men ett annat felmeddelande), och då visade det sig att man måste göra en inställning på servern för att ge den tillstånd att köra exe.filer från asp-script.
Här finns diverse info om detta:
http://support.microsoft.com/support/kb/articles/Q184/6/82.ASP
Jag kollade lite mer på MSDN och hittade följande ang. det felmeddelande du får. I denna artikel låter det som om det kan ha med rättigheter att göra.
http://support.microsoft.com/support/kb/articles/Q175/8/04.ASP
Det är ju inte säkert att detta hjälper dig, men det kanske är en början.
/Henrik
Jag vet inte exakt vad felet är men du kan ju testa med följande kod:
On error resume next
Set oApplication = GetObject( ,"word.application")
if err.number = 429 then
err.clear
Set oApplication = CreateObject("word.application")
End if
On Error Goto 0
Eftersom Word är en out-of-process-komponent så kan man inte köra flera instanser av det vilket gör att man måste kolla om Word-objektet redan finns aktiverat, vilket ovanstående kod gör.
Du kan ju testa om det fungerar iaf. :)
------------------
/ Torbjörn Hansson, webbutvecklare
Endero Sverige
Måste inte Office vara installerat på servern för att "Word.application" ska finnas ?
Brukar väl inte direkt vara vanligt att installera Office på servrar, har ju inget där att göra egentligen.
Office 2000 är installerat på servern