Just nu i M3-nätverket
Gå till innehåll

Wordobjekt


Agge

Rekommendera Poster

Hej!

Jag är desperat!!!!!!! Har försökt hur länge som helst att skapa ett wordobjekt i ASP men det funkar ej!!!! Hjälp mig, snälla!!!

Jag har installerat Word på servern. Jag har gjort så att jag har åkomst till temp-katalogen. Jag har tagit kodsnuttar från nätet som tydligen ska fungera men det funkar ändå inte.

Jag har fått felmeddelanden som: "Objektet är borttaget" och "Call is rejected by callee".

 

Koden jag använt är:

 

<%@ LANGUAGE="VBSCRIPT" %>

<%

Dim MyDoc

Set MyDoc = CreateObject("Word.Document")

MyDoc.Application.Visible = True

MyDoc.content.Font.Bold = True

MyDoc.content.Font.Italic = True

MyDoc.content.Font.Underline = True

MyDoc.content.Font.Name = "Comic Sans MS"

MyDoc.content.Font.Size = 25

MyDoc.content.insertAfter "word1 word2 word3 word4"

MyDoc.content.InsertParagraphAfter

MyDoc.Words(1).Font.Size = 10

MyDoc.Words(1).Font.ColorIndex = 1

MyDoc.Words(2).Font.Size = 20

MyDoc.Words(2).Font.ColorIndex = 2

MyDoc.Words(3).Font.Size = 30

MyDoc.Words(3).Font.ColorIndex = 3

MyDoc.Words(4).Font.Size = 40

MyDoc.Words(4).Font.ColorIndex = 4

MyDoc.PrintOut

Set MyDoc = Nothing

%>

<HTML>

<HEAD>

<TITLE></TITLE>

</HEAD>

<BODY>

 

 

 

</BODY>

</HTML>

 

Snälla kan någon hjälpa mig?!!! Är det något viktigt jag missat???? Ska man kanske göra något speciellt när man installerar word?

 

Jag har också hört att man kan öppna worddokument utan komponenter. Är det någon som vet något om det??

 

Vore jätte-, jätte, jättetcksam för svar!

Agge

Länk till kommentar
Dela på andra webbplatser

Magnus Ahlkvist

Hej hopp,

 

tror att du måste göra:

 

dim myWord

set myWord=CreateObject("Word.Application")

och sen ifrån det objektet öppna ett word-document

 

Länk till kommentar
Dela på andra webbplatser

Magnus Ahlkvist

Har provat din kod, och den funkar klockrent.

Så nu har jag ingen aning om vad som är fel.

Kan du skicka med fullständiga felmeddelanden som du får från servern? Annars är det svårt att hjälpa till.

 

Länk till kommentar
Dela på andra webbplatser

Detta är felmeddelandet:

 

Error Type:

Microsoft Word (0x800A16C1)

Objektet är borttaget.

/japro/word.asp, line 25

 

(Raden 25 som den klagar på är raden MyDoc.Application.Visible=true)

 

/Agge

 

 

 

Länk till kommentar
Dela på andra webbplatser

 

Det andra felmeddelandet som jag fick "Call is rejected by callee", det fick jag innan jag satte rättighter på temp-mappen. Nu får jag inte det felmeddelandet längre. Jag får bar "Objektet är borttaget"

 

 

 

Länk till kommentar
Dela på andra webbplatser

Magnus Nilsson

Har du fixat problemet? Jag såg på nätet att en snubbe fick samma problem när han hade Norton Antivirus på servern. En annan hade löst det med att ha en mall i RTF-format som han öppnade med FSO objektet och sedan ersatte mall-data med riktig data. Hoppas att detta hjälper något åtminstone..

 

/B

 

 

 

Länk till kommentar
Dela på andra webbplatser

Jag har testat med RTF-format men jag kan bara spara filen som text då, och jag behöver ha en bild i filen.

 

Vad menar du med att ersätta mall-data med riktig data?

 

/Agge

 

 

 

Länk till kommentar
Dela på andra webbplatser

Magnus Nilsson

I RTF-dokumentet kan du ju skriva t ex:

Hej %förnamn%!

 

När du sedan öppnar filen med hjälp av FSO objektet så kan du ersätta strängen "%förnamn%" med den relevanta datan.

 

Men vill du ha en bild så är det ju lite svårare, tyvärr..

 

Länk till kommentar
Dela på andra webbplatser

Tack ändå bonka!

 

 

Magnus:

 

Nu har jag testat en kodsnutt som är lite annorlunda. Den innehåller även Set myDoc = MyWord.Documents.Add() och jag har använt mig av with-satser istället.

Nu får jag ett annat felmeddelande:

 

Microsoft Word 0x800A175D

"Kan inte öppna makroarkivet"

(Line 48)

Rad 48 är den raden med

Set myDoc=MyWord.Documents.Add()

 

/Agge

 

 

 

Länk till kommentar
Dela på andra webbplatser

Magnus Gladh
Set myDoc=MyWord.Documents.Add()

 

Nu vet jag inte vad add() gör, men att den skulle ge dig ett object tillbaka tror jag inte.

 

Visa hela koden så kanske det blir lättare att hjälpa dig!

 

- Magnus

----------------------------------------

Självlärd (MSSQL & VB & ASP)

 

Länk till kommentar
Dela på andra webbplatser

Här är hela koden:

 

 

<%

Dim MyWord

Dim MyDoc

Set MyWord = CreateObject("Word.Application")

'MyWord.Visible = True

Set MyDoc = MyWord.Documents.Add()

With MyDoc.content

With .Font

.Name = "Comic Sans MS"

.Bold = True

.Italic = True

.Underline = True

.Size = 25

End With

.insertAfter "word1 word2 word3 word4"

.InsertParagraphAfter

End With

With MyDoc.Words(1).Font

.Size = 10

.ColorIndex = 1

End With

With MyDoc.Words(2).Font

.Size = 20

.ColorIndex = 2

End With

With MyDoc.Words(3).Font

.Size = 30

.ColorIndex = 3

End With

With MyDoc.Words(4).Font

.Size = 40

.ColorIndex = 4

End With

MyDoc.PrintOut

Set MyDoc = Nothing

Set MyWord = Nothing

%>

 

/Agge

 

 

Länk till kommentar
Dela på andra webbplatser

Magnus Gladh

Jag körde din kod på min dator och fick ut ett worddokument i skrivare som skrev ut:

 

word1 word2 word3 word4

 

i olika storlekar och färger. Alltså koden fungerar perfect, är du säker på att du har rätt rättigheter på filen?

 

- Magnus

----------------------------------------

Självlärd (MSSQL & VB & ASP)

 

Länk till kommentar
Dela på andra webbplatser

Jag tror det....

Eftersom jag inte har tillgång till servern själv kan jag inte sätta rättigheterna utan det får nätverksteknikern göra. Jag har försökt förmedla till honom vilka rättigheter han ska sätta men ingenting fungerar.

Enligt honom så har den som ska surfa in på sidan givits alla rättigheter vilket borde fungera tycker jag. Jag vet inte riktigt om det är något annat som jag missat. Vilka rättigheter ska finnas var exakt?

 

/Agge

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

Johan Malm2

Hej, jag har fått det att funka nu, fick oxå det där makromeddelandet först. Det har med rättigheter att göra, som ngn här nämnde.

 

1. Kör först programmet dcomcnfg.exe

2. Under fliken Applications, markera Microsoft Word Document och klicka på Ok.

3. Klicka på Security-fliken.

4. Bocka i Use custom access permissions. Klicka Edit, och sen Add.

5. Lägg till användaren "Network". Klicka Ok.

6. Klicka Identity-fliken och bocka för The interactive user.

7. Klicka Ok, Ok.

 

 

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

DET FUNGERAR!!!!!!!!!!!!!!!!!

 

TACK FÖR ALL HJÄLP ALLA NI SNÄLLA MÄNNISKOR!!!!!!!!!

 

/Agge

 

 

Länk till kommentar
Dela på andra webbplatser

Johan Malm2

En sak till bara: du bör lägga till "MyDoc.Close 0", så här:

 

MyDoc.Close 0

Set MyDoc = Nothing

%>

 

Jag råkade nämligen titta i Taskmanager efter att ha kört din kod, och hade en massa processer med namnet Winword.exe som låg kvar och tog minne och processorkraft, enbart därför att du inte stängt MyDoc-objektet.

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

  • 1 year later...

Jättebra tips, men om man kör XP, var någonstans hittar man inställningen för dcom ändringen?

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...