Domino 9 und frühere Versionen > ND6: Entwicklung

Dateigröße abfragen (RTF)

<< < (4/6) > >>

koehlerbv:
Keine Ahnung. Ich habe ein normales RTF in einem Dokument, welches in einem Fenster zum Bearbeiten geöffnet ist. In einem anderen Fenster lungert der Explorer herum. Aus diesem ziehe ich nun ein PDF-File und lasse es ins RTF im anderen Fenster fallen ... und habe ein eingebettetes PDF-Objekt (was dann zu $Files und $OLEOBJINFO im Doc führt.

Bernhard

Axel:
Ich hab's auch noch mal mit einem PDF probiert. Bei mir gibt's blos ein $Files und die Abfrage nach EMBED_ATTACHMENT ergibt wahr. Ist auch nur ein normales RTF-Feld in einem einfachen Dokument. Eine spezielle Einstellung, die so was regelt habe ich auch nicht gefunden.

Seltsam.   :-:

Aber was soll's, getreu dem Motto meines früheren Ausbilders:


--- Zitat ---Alles was ihr nicht versteht müsst ihr als gegeben hinnehmen.
--- Ende Zitat ---


Axel

koehlerbv:
Jo, das müssen wir wohl als gegeben hinnehmen ... Ich erinnere mich noch daran, dass ich Ende der 90er in eine Applikation eine Grössenprüfung für eingefügte Bilder extra deswegen noch erweitern musste, weil es immer wieder Spezies fertig brachten, per Drag&Drop Objekte (!) in dem RTF für Bilder zu erzeugen (die dann natürlich sichtbar waren und auf den ersten Blick wie importierte Images aussahen).

Ich hab' jetzt extra nochmal nachgeschaut:

--- Code: --- If docCurrent.HasItem ("$OLEOBJINFO") Then
Set itemToRemove = docCurrent.GetFirstItem ("$OLEOBJINFO")
While Not (itemToRemove Is Nothing)
Call itemToRemove.Remove
Set itemToRemove = docCurrent.GetFirstItem ("$OLEOBJINFO")
Wend
End If

--- Ende Code ---

Wäre interessant zu wissen, welche Einstellung zu Anhängen und welche zu OLE Objekten führt ...

Bernhard

Andreas Huhn:
Hallo,

ich nochmal mit 2 kleinen Problemen.


[1] Wenn im RT mal keine Datei ist und das Dokument gespeichert wird (kommt ja auch mal vor) dann kommt die Fehlermeldung "Type Missmatch"

[2] Ich hab versucht eine Größenabfrage einzubauen, damit die Warnung nur angezeigt wird wenn die Datei mehr als 3MB groß ist. Aber das funktioniert nicht, die "Then"-Bedingung wird nicht mehr durchlaufen.

Der Code:


--- Code: ---Sub Postsave(Source As Notesuidocument)
Dim doc As NotesDocument
Dim rtitem As Variant
Dim object As NotesEmbeddedObject
Dim sizeInBytes As Long

'...set value of doc...
Set doc = source.Document


Set rtitem = doc.GetFirstItem( "A1" )

If rtitem.Type = RICHTEXT Then
Forall objects In rtitem.EmbeddedObjects
Messagebox objects.FileSize
If objects.Type = EMBED_ATTACHMENT And objects.FileSize > 3145728 Then ' 3MB Grenze
Messagebox "Achtung: Die Datei " & objects.Name & " ist " & Trim(Str(Round(objects.FileSize / 1048576 ,2))) & _
"MB groß!" &  _
|
(Falls möglich sollte eine Konvertierung in ein speicherschonenderes Format erwogen werden. Z.B. BMP -> JPEG)|, 0+64,"Hinweis"
End If
End Forall
End If

End Sub

--- Ende Code ---

Könnt ihr mir sagen wo meine Fehler liegen?

Andreas

Axel:
Hi,

zu [1]

du kannst mit doc.HasEmbedded abfragen, ob es im Dokument eingebettete Objekte oder Dateianhänge gibt.

If doc.HasEmbedded Then
   If rtitem.Type = RICHTEXT Then
                ...

End If
....


zu [2]

Wie hat denn deine If-Abfrage ausgesehen?


Axel


Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln