Autor Thema: Inhalte von .pdf und .doc in rtf-feld anzeigen  (Gelesen 17144 mal)

Offline Smash

  • Frischling
  • *
  • Beiträge: 15
  • Ich liebe dieses Forum!
Inhalte von .pdf und .doc in rtf-feld anzeigen
« am: 27.03.04 - 10:17:54 »
Hallo @all,
ich benötige Hilfe oder eine Idee, wie ich den Inhalt von .pdf oder .doc-dateien in Notes importieren kann, so dass der Inhalt im neuen Notes-Dok direkt sichtbar wird. Also ich möchte keine Attachments oder Objects im Notes-Dok haben.
Hat irgendeiner Erfahrungen damit??
Danke in Voraus
Smash

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Inhalte von .pdf und .doc in rtf-feld anzeigen
« Antwort #1 am: 27.03.04 - 10:37:52 »
Dot Doc kannst Du doch über File - Import importieren? Wo ist das Problem?

PDF ist nicht so einfach, weil Format für einen Import nicht vorgesehen ist.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Smash

  • Frischling
  • *
  • Beiträge: 15
  • Ich liebe dieses Forum!
Re:Inhalte von .pdf und .doc in rtf-feld anzeigen
« Antwort #2 am: 01.04.04 - 09:32:02 »
Nun, vielleicht hätte ich erwähnen sollen, dass dieser Import im Zuge eines Background-Agenten geschehen soll, und da konnte ich bisher nur den File als EmbeddedObject einfügen. Ich möchte aber den Inhalt des Files direkt im RTF-Feld anzeigen lassen.

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Inhalte von .pdf und .doc in rtf-feld anzeigen
« Antwort #3 am: 01.04.04 - 09:36:21 »
Wie wäre es damit:


Call notesUIDocument.Import( [ filter$ , filename$ ] )
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Smash

  • Frischling
  • *
  • Beiträge: 15
  • Ich liebe dieses Forum!
Re:Inhalte von .pdf und .doc in rtf-feld anzeigen
« Antwort #4 am: 03.04.04 - 09:03:06 »
Ja, habe ich auch schon dran gedacht, aber da ich mich Backend bewege und nicht im Frontend wird das wohl nicht gehen. Werde das aber nochmal austesten.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Inhalte von .pdf und .doc in rtf-feld anzeigen
« Antwort #5 am: 03.04.04 - 11:12:56 »
Das funktioniert garantiert NICHT im Backend. Und PDF kann m.E. überhaupt nicht importiert werden, auch nicht im Frontend.

Bernhard

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:Inhalte von .pdf und .doc in rtf-feld anzeigen
« Antwort #6 am: 03.04.04 - 13:06:50 »
wenn ich mich nicht irre, dann kannst du dir was aus der OfficeLibrary abschauen.

da sind z.b. Worddokumente auch als eingebette Objekte in NotesDokumenten gespeichert, werden aber beim Öffnen eines Notes Doks "aktiviert". also der Inhalt wird angezeigt

aber ich bin mir nicht wirklich sicher, ob das stimmt.
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Alternative.....
« Antwort #7 am: 03.04.04 - 15:03:31 »
Eine Alternative wäre es, dass Du das PDF direkt im Notes-Client anzeigst (ohne eigenes Fenster).




Ich hab mal eine Beispiel-DB attached.....

Matthias


** Edit **
Beispiel-DB gelöscht, hier ist die aktuelle DB:
http://www.atnotes.de/index.php?board=9;action=display;threadid=15076
« Letzte Änderung: 03.04.04 - 20:23:06 von TMC »
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Inhalte von .pdf und .doc in rtf-feld anzeigen
« Antwort #8 am: 03.04.04 - 15:08:34 »
Interessantes Phänomen: Wenn ich das Dokument in Deiner DB im Lesenmodus öffne, ist es leer. Öffne ich es im Bearbeiten-Modus, sehe ich ein PDF-Attachment darin.

Was läuft da schief ?

Bernhard

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Inhalte von .pdf und .doc in rtf-feld anzeigen
« Antwort #9 am: 03.04.04 - 15:15:30 »
Hängt vielleicht der Acrobat (Reader) noch irgendwie im Taskmanager drin?

Versuche bitte mal folgendes:
- Notes-Client schließen
- Adobe (Acrobat) abschiessen im Taskmanager
- Notes-Client starten
- Nochmal versuchen (Dok doppelklicken)

Ich selbst habe das noch nicht produktiv eingesetzt, wusste nur dass es da was gibt :-)

Die PDF-Datei im Anhang wird btw im Windows-Temp-Verzeichnis gespeichert.......
Die PDF sollte im Lese-Modus angezeigt werden, im Bearbeiten-Modus nicht (sondern das Attachment).

Matthias
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Inhalte von .pdf und .doc in rtf-feld anzeigen
« Antwort #10 am: 03.04.04 - 15:21:53 »
Bernhard, ich konnte gerade denselben Fehler feststellen (Fenster bleibt leer).

Wenn ich dann 3 Msgboxes hinzufüge im Postopen, dann geht es.

Code
Sub Postopen(Source As Notesuidocument)
   Dim doc As NotesDocument   
   Dim adobe As Variant
   Dim rtItem As Variant
   Dim strWinTemp As String
   Dim strStartPDF As String
   
   If Source.EditMode = True Then Exit Sub 'Exit wenn Dok in Bearbeitung
   
   Set doc= Source.Document
   Set adobe = Source.GetObject("Acrobat Control for ActiveX")
   Set rtItem = doc.GetFirstItem("PDF")
   
   strWinTemp = WinTemp 'see function.....
   Msgbox "strWinTemp"
   
   Forall obj In rtItem.EmbeddedObjects
      If (obj.Type=Embed_Attachment) Then
         Call obj.ExtractFile(strWinTemp & "\" & obj.Source)
         Msgbox "Extrahiert"         
         adobe.LoadFile(strWinTemp & "\" & obj.Name)
         Msgbox "Geladen"
      End If
   End Forall
   
End Sub

Wohl ein Timing-Problem? Vielleicht sollte man einen sleep einbauen..... ??

Matthias
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Inhalte von .pdf und .doc in rtf-feld anzeigen
« Antwort #11 am: 03.04.04 - 15:30:03 »
AFAICS: Sleep bringt nix. Die Massage-Kiste
Msgbox "Extrahiert"
ist der Punkt - diese alleine reicht, um das Ding zum Laufen zu bringen.
Mystisch, aber schon mal ein Ansatz ;-)

Bernhard

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:Inhalte von .pdf und .doc in rtf-feld anzeigen
« Antwort #12 am: 03.04.04 - 16:15:30 »
nur ne Idee, ohne die Syntax zu kennen:

If obj.ExtractFile then
...
End if
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Inhalte von .pdf und .doc in rtf-feld anzeigen
« Antwort #13 am: 03.04.04 - 16:23:41 »
Hmm, Problem ist ja, dass das File immer extrahiert wird. Das klappt also.

Nur eben ohne Msgbox geht es nicht immer.
Habe es gerade auch unter R6.5 getestet, da verhält es sich genau so.

Kann man denn eine geöffnete Msgbox per Befehl schliessen? Dies wäre dann zumindest ein Workaround.....

Matthias
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline Axel_Janssen

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 769
Re:Inhalte von .pdf und .doc in rtf-feld anzeigen
« Antwort #14 am: 03.04.04 - 16:29:38 »
was ist hiermit?
« Letzte Änderung: 03.04.04 - 16:30:23 von Axel_Janssen »
... design patterns are abstract designs that help identify the structure and elements involved in a specific design solution. From this, a concrete implementation can be produced.
Kyle Brown

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Inhalte von .pdf und .doc in rtf-feld anzeigen
« Antwort #15 am: 03.04.04 - 16:34:02 »
Axel, genau habe ich in meiner Beispiel-DB verwendet  :)

Matthias
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline Axel_Janssen

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 769
Re:Inhalte von .pdf und .doc in rtf-feld anzeigen
« Antwort #16 am: 03.04.04 - 16:44:56 »
:outsch:  ;D
vielleicht ist das Internet Explorer plug-in irgendwie stabiler.
... design patterns are abstract designs that help identify the structure and elements involved in a specific design solution. From this, a concrete implementation can be produced.
Kyle Brown

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Inhalte von .pdf und .doc in rtf-feld anzeigen
« Antwort #17 am: 03.04.04 - 16:45:11 »
Ich kriege einen Klaps - das ActiveX-Control will wirklich, dass vorher irgendwas im FrontEnd passiert !
Mit folgendem Code im PostOpen geht es sich - dazu muss man sich noch eine Maske "(DummyForm") basteln, und die Adobe-Maske sollte die Vorgabemaske sein.

Code
Sub Postopen(Source As Notesuidocument)
   Dim ws As New NotesUIWorkspace   
   Dim session As New NotesSession
   Dim dbCurrent As NotesDatabase
   Dim docTemp As NotesDocument
   Dim uidocTemp As NotesUIDocument
   
   Dim doc As NotesDocument   
   Dim adobe As Variant
   Dim rtItem As NotesRichTextItem
   Dim strWinTemp As String
   Dim strStartPDF As String
   
   On Error Goto ErrorRoutine
   
   If Source.EditMode = True Then Exit Sub 'Exit wenn Dok in Bearbeitung
   
   Set doc= Source.Document
   Set adobe = Source.GetObject("Acrobat Control for ActiveX")
   Set rtItem = doc.GetFirstItem ("PDF")
   
   strWinTemp = WinTemp 'see function.....
   'Msgbox "strWinTemp"
   
   Forall obj In rtItem.EmbeddedObjects
      If (obj.Type=Embed_Attachment) Then
         Call obj.ExtractFile(strWinTemp & "\" & obj.Source)
         'Sleep (5)
         'Msgbox "Extrahiert" 
         Set dbCurrent = session.CurrentDatabase
         Set docTemp = dbCurrent.CreateDocument
         docTemp.Form = "(DummyForm)"
         Set uidocTemp = ws.EditDocument (False, docTemp, True)
         Call uidocTemp.Close
         
         adobe.LoadFile(strWinTemp & "\" & obj.Name)
         'Msgbox "Geladen"
      End If
   End Forall
   
   Exit Sub
   
ErrorRoutine:
   Msgbox "An error occured: " & Error$ & " (in line " & Cstr (Erl) & ")"
   Exit Sub
   
End Sub

Mal sehen, ob dafür einer eine logische Begründung findet ...

By the way: Hilft das eigentlich bei der ursprünglichen Frage dieses Threads ? Unschön ist auch die Bedienung, um aus dem PDF wieder back to Notes zu kommen - die meisten Anwender werden da wohl aus Versehen Notes schliessen anstatt Adobe Acrobat Reader (mit Babelfish: "Lehmziegel Turner Leser" ;-) zu schliessen. Aber die Idee an sich hat was.

Ciao,
Bernhard

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Inhalte von .pdf und .doc in rtf-feld anzeigen
« Antwort #18 am: 03.04.04 - 16:59:42 »
Nachtrag:
An sich wäre es ja nett, wenn man die sowieso vorhandene Form "Adobe" für NotesUIWorkspace.EditDocument gleich verwenden könnte. Aber hier gilt:
"Wer ander'n eine Gräbe grubt,
sich selber in die Nase pupt !"
Damit wird ja gleich wieder das PostOpen der zu öffnenden Maske ausgeführt ... Würde Notes da nicht nach einer Weile selber streiken, wäre dies: "'In Ewigkeit - Amen !', sprach die Endlosschleife ..."

Wegen letzterem: Jeeeeeeeeens !

Ciao,
Bernhard

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Inhalte von .pdf und .doc in rtf-feld anzeigen
« Antwort #19 am: 03.04.04 - 17:13:34 »
An sich wäre es ja nett, wenn man die sowieso vorhandene Form "Adobe" für NotesUIWorkspace.EditDocument gleich verwenden könnte. Aber hier gilt:
"Wer ander'n eine Gräbe grubt,
sich selber in die Nase pupt !"
Damit wird ja gleich wieder das PostOpen der zu öffnenden Maske ausgeführt ...

Geht schon:
Code
Sub Postopen(Source As Notesuidocument)
   On Error Goto errHandler
   
   Dim ws As New NotesUIWorkspace
   Dim session As New NotesSession
   Dim dbCurrent As NotesDatabase
   Dim docTemp As NotesDocument
   Dim uidocTemp As NotesUIDocument
   Dim doc As NotesDocument
   Dim adobe As Variant
   Dim rti As NotesRichTextItem
   Dim strWinTemp As String
   Dim strStartPDF As String
   Dim oFirst As NotesEmbeddedObject
   
   If Source.EditMode = True Then Exit Sub 'Exit wenn Dok in Bearbeitung
   
   
   Set doc= Source.Document
   
   If source.FieldGetText("TempFlag")  = "1"   Then Exit Sub
   
   Set adobe = Source.GetObject("Acrobat Control for ActiveX")
   Set rti = doc.GetFirstItem("PDF")
   
   Set oFirst = rti.EmbeddedObjects(0)
   
   If oFirst Is Nothing Then
      Msgbox "No embedded object in document"
      Exit Sub
   End If
   
   strWinTemp = WinTemp 'see function.....
   
   Call oFirst.ExtractFile(strWinTemp & "\" & oFirst.Source)
   
   Set dbCurrent = session.CurrentDatabase
   Set docTemp = dbCurrent.CreateDocument
   docTemp.Form = "Adobe"
   docTemp.TempFlag = "1"
   Set uidocTemp = ws.EditDocument (False, docTemp, True)
   Call uidocTemp.Close
   adobe.LoadFile(strWinTemp & "\" & oFirst.Name)
   
exitScript:
   Exit Sub
   
errHandler:
   Msgbox "An error occured." & Chr(10)  & Chr(10) _
   & "Error text: " & Error$ & Chr(10) _
   & "Error number: " & Err & Chr(10) _
   & "Line: " & Erl & Chr(10) _
   ,64,"Error"
   Resume exitScript
   
End Sub

Bitte nicht erschrecken, ist mein Baustellen-Code zum testen :-)

Ich habe in der Maske ein Hidden-Field "TempFlag".

So klappt es jetzt lt. den ersten Tests :)

Matthias
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz