Domino 9 und frühere Versionen > ND7: Entwicklung

Darstellung von PDF und Volltextsuche

<< < (2/3) > >>

jBubbleBoy:
Inhalte aus PDF extrahieren geht, ist aber wahrscheinlich nicht das was ihr wollt, da die Übernahme des Layouts ein Probleme bereiten wird.
Ein Lösung wäre zu unterscheiden ob das Notes- oder das PDF-Dokument geöffnet werden soll. D.h. direkt das PDF öffnen und das Dokument nur als Container zum Verwalten benutzen.
Nur eine Idee, wenn der andere Weg auch geht, dann wäre das ja schon eine Lösung.

Demian:
Moin,moin,

ich weiß nicht, ob dir das weiterhilft, zumal es reine Code-Akrobatik ist. Ich habe eine Maske in der die PDF-Dateien ganz normal angehängt werden,über die Büroklammer.

Wenn auf dieses Dok doppelklickt, wird die Datei mit Adobe geöffnet und das Dok selbst nicht angezeigt. Wie das mit dem Index ist, kann ich dir im Moment nicht sagen, noch nicht getestet.


Folgender Code:


--- Code: ---Declarations
Dim WScript As Variant
Dim fso As Variant
--- Ende Code ---


--- Code: ---Sub Initialize
Set WScript = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
End Sub
--- Ende Code ---


--- Code: ---Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
     '**********************************************************************************************************************
'Hier wird der Start des Dateianhangs ausgeführt, indem der Anhang auf der Platte gespeichert und mittels
'WScript aufgerufen wird. Gleichzeitig werden 2 Batchdateien erstellt, die dafür sorgen, dass die geöffnete
'Datei beim nächsten Neustart gelöscht werden.
'Hierfür wird eine der Batchdateien im Autostart-Ordner des Users gespeichert. Diese löscht die zwischen-
'gespeicherte Datei, und ruft die 2 Batchdatei im LNData-Verzeichnis des Users auf, und übergibt ihr den
'Pfad zu sich selbst. Die 2. Batchdatei löscht dann übergebene Datei im Autostart-Ordner
'**********************************************************************************************************************
'Allgemein
Dim s As  New NotesSession
Dim doc As NotesDocument
Dim item As NotesRichTextItem
Dim obj As NotesEmbeddedObject
Dim Dateipfad As String
Dim Dateiname As String
'**********************************************************************************************************************
If Not IsNewDoc Then
Set doc = source.Document
Set item = doc.GetFirstItem("Dateianhang")
Set obj = doc.GetAttachment(item.EmbeddedObjects(0).name)

'Prüfen ob G:\LNdata\tmp vorhanden, sonst erstellen
If Not fso.FolderExists("G:\LNdata\tmp") Then Mkdir "G:\LNdata\tmp"

'Pfad für Zwischenspeichern setzen
Dateipfad = "G:\LNdata\tmp\" & item.EmbeddedObjects(0).name

'evtl. befindet sich die Datei noch auf der Festplatte
If fso.FileExists(Dateipfad) Then
WScript.run(|"| & "G:\LNdata\tmp\" & item.EmbeddedObjects(0).name & |"|)
Else
'Zwischenspeichern und Öffnen des Anhangs
Call obj.ExtractFile(Dateipfad)
WScript.run(|"| & "G:\LNdata\tmp\" & item.EmbeddedObjects(0).name & |"|)
End If

'Batchdateien für die Löschung des Anhangs  erstellen
'Dateiendung rausfiltern
Dateiname = Mid(item.EmbeddedObjects(0).name,1,Len(item.EmbeddedObjects(0).name) - 4)

'WScript.SpecialFolders("Startup") gibt bei Citrix-Anwendungen das Laufwerk des Servers (hier V:\) mit dem jeweiligen
'Benutzerprofil zurück. Bei den Usern ist der Autostart-Ordner immer auf C:\
Call BatchFile_Create( "C" & Mid(WScript.SpecialFolders ("Startup"),2,Len(WScript.SpecialFolders ("Startup")) -1),Dateipfad,Dateiname)

'das Notesdokument soll nicht angezeigt werden
Continue = False
End If
End Sub
--- Ende Code ---


--- Code: ---Sub BatchFile_Create(Autostart As String,Dateipfad As String,Dateiname As String)
'**********************************************************************************************************************
'Batch1 = Batchdatei im LNData-Verzeichnis, die die übergebene Batch im Autostart-Ordner löscht
'Batch2 = Batchdatei im Autostart-Ordner, die die zwischengespeicherte Datei löscht und Batch1
'mit dem PFad zu sich selbst aufruft
'**********************************************************************************************************************
Dim Batch1 As Integer, Batch2 As Integer
Dim Befehl As String

Batch1 = Freefile()
Batch2 = Freefile()

'Batch1 im LNData erstellen
Open "G:\LNData\AutostartLöschen.bat"  For Output Access Write As Batch1
Print #Batch1, "@echo off"
Print #Batch1,"REM der Schalter chcp 1252 sorgt dafür, dass Umlaute (hier ü und ö) richtig interpretiert werden"
Print #Batch1, "chcp 1252"
Print #Batch1, "REM %1 ist der Pfad zu der aufrufenden Batch im Autostartordner."
Print #Batch1, "del %1"
     'Erstellte Datei schließen
Close Batch1

'Batch2 im 'Autostart erstellen
Open Autostart & "\" & Dateiname & ".bat"   For Output Access Write As Batch2
Print #Batch2, "@echo off"
Print #Batch2,"REM der Schalter chcp 1252 sorgt dafür, dass Umlaute (hier ü) richtig interpretiert werden"
Print #Batch2, "chcp 1252"
Print #Batch2,"REM die zwischengespeicherte Datei löschen"
Print #Batch2, "del " & |"| & Dateipfad &|"|
Print #Batch2, "REM Die Datei im LNData Verzeichnis aufrufen und den Pfad zu sich selbst übergeben"
Befehl = "G:\LNData\AutostartLöschen.bat " & |"| & Autostart & "\" & Dateiname & ".bat" & |"|
Print #Batch2, Befehl
     'Erstellte Datei schließen
Close Batch2
End Sub
--- Ende Code ---


Gruß
Demian

Legolas:
Hallo Zusammen,

danke erst mal für die Rückmeldungen.

Das ist aber nicht ganz das, wohin ich will.
Ich möchte das PDF in einem Richtext-Light Feld innerhalb des Notesdokumens anzeigen. Der Anwender soll die Möglichkeit besitzten über Notes noch diverse Informationen zum Vorfall einzutragen.

Daher wäre eine Lösung in der ich die PDF Datei "normal" an ein RichtextFeld anhänge und evt. dieses Attachment dann wiederum in einem Richtext-Light Feld anzeige OK.

Gibt es die Möglichkeit, dies dirkt umzusetzen?

Ein Workaround wäre natürlich auch, das PDF beim Open des Notesdokuments zu lösen und über das RichText-Light Feld zu importieren. Aber... ist eben nur ein Workaround!

Gruß Bernd

Demian:
Ich hätte ja gedacht, dass die EmbedObject Methode von Richtextitem mit Typ EMBED_OBJECT (1453) dasselbe ist wie über das Menü Erstellen->Objekt->aus Datei.

Wenn man das über das Menü macht, erscheint kurzzeitig ein grauer Kasten in dem "Acrobat Document" steht, bevor dann das pdf angezeigt wird.

Macht man das mit o.g. Methode erscheint auch ein grauer Kasten in dem "Adobe Acrobat Dokument" steht. Allerdings bleibt es auch bei dem Kasten ????

Legolas:
Hallo Forum,

ein PDF automatisiert programmgesteuert mit dem Acrobat Reader zu öffnen funktioniert ja auch.
Nur geht hier eben der PDF Reader als eigenes Fenster auf.

Da aber das PDF in (z.B. einem Richtext Feld) innerhalb es Notesdokuments erscheinen soll habe ich versucht dies über ein Richtext-Light Feld zu lösen.  Jedoch ohne Erfolg.
Gibt es bzw. kennt jemand eine Möglichkeit, programmatisch ein RichText-Light Feld anzusprechen um eine PDF Datei zu übergeben oder
kennt jemand noch eine weiter mögliche Lösung?

Danke im Voraus für die fielen Rückmeldungen die sicherlich kommen werden!  ;)

Gruß Bernd

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln