![]() |
Datenbank: Firebird • Version: 2,5,5 • Zugriff über: IBO / IBExpert
PDF Datei in Firebird Tabelle speichern
Hallo,
ich möchte eine PDF Datei in eine Tabelle speichern und im OLE Container öffnen. Ich kann zwar die Datei speichern aber sie wird nicht im OLE Container angezeigt. Ich weiß nicht warum. Hier mein Code zum Speichern der PDF Datei.
Delphi-Quellcode:
Ergänzung: In IBExpert kann ich die Datei als pdf lesen.
Seite_Qry.Edit;
blob:= Seite_Qry.CreateBlobStream(Seite_Qry.FieldByName('DATA'), bmWrite); try blob.Seek(0,soFromBeginning); datei := TFileStream.Create(extractFilePath(Application.ExeName) + 'DSGVO.pdf', fmOpenRead or fmShareDenyWrite); try blob.CopyFrom(datei,datei.Size); Seite_Qry.Post; finally datei.Free; end; finally blob.Free; end; Kann mir jemand helfen. |
AW: PDF Datei in Firebird Tabelle speichern
Hallo,
Zitat:
Oder mache zum Test ein SaveToFile. |
AW: PDF Datei in Firebird Tabelle speichern
Adobe Reader als Viewer im OLE-Control? Oder ein Embedded Chromium? Soweit ich weiß ist der Adobe Reader doof wie Bohnenstroh, der kann nur aus Dateien und nicht aus Streams lesen.
|
AW: PDF Datei in Firebird Tabelle speichern
Hallo,
mag sein, das der Reader doof ist, aber es fehlt hier vom TE immer noch der Code des "Lade PDF aus DB", ob das in einem Stream oder als Datei an den Container übergeben wird, ist ja erst mal egal. |
AW: PDF Datei in Firebird Tabelle speichern
Hallo, war 2 Tage außer Haus darum erst jetzt meine Antwort.
Gelöst habe ich das Problem folgendermaßen, Komponente TIB_OLEContainer hinzugefügt mit Name: edOle. Dann folgenden Code:
Delphi-Quellcode:
Dann kann ich alles sehen und mit dem Reader ausdrucken.
Seite_OLEQry.Edit;
PDFFile :=(extractFilePath(Application.ExeName) + 'DSGVO.pdf'); edOle.CreateObjectFromFile(PDFFile,False); edOle.AutoDisplay := True; Seite_OLEQry.Post; |
AW: PDF Datei in Firebird Tabelle speichern
[QUOTE=Walter Landwehr:
Gelöst habe ich das Problem folgendermaßen, Komponente TIB_OLEContainer hinzugefügt ... [/QUOTE] Die Komponente "TIB_OLEContainer" ist wohl eine Interbase-Kompo? In meiner Toolpalette finde ich diese Komponente nicht. Woher kommt sie? Ich werde über Kurz oder Lang auch vor dem selben Problem stehen, eine PDF-Datei anzuzeigen. Mit Gruß NoName1 |
AW: PDF Datei in Firebird Tabelle speichern
Ich gehe da einen Umweg über Temp Verz. und überlasse Windows das öffnen (aller Dateien)
Delphi-Quellcode:
ext:=DataModule2.Dokumente.FieldByName('Endung').AsString ;
Datei:= DataModule2.Dokumente.FieldByName('Dateiname').AsString; TBlobField(DataModule2.Dokumente.FieldByName('Dokument')).SaveToFile(GetDirTemp+'\'+Datei+ext); DataModule2.Dokumente.Close; if ShellExecute(Application.Handle,'open',PChar(GetDirTemp+'\'+Datei+ext),nil, nil, SW_NORMAL) <= 32 then ShowMessage('Dokument: '+Datei+ext+' kann nicht geöffnet werden'); |
AW: PDF Datei in Firebird Tabelle speichern
Die Komponente TIB_OLEContainer hab ich auch nicht. Evtl. nur bei Delphi Enterprise? So wie ich den Codeschnipsel verstehe wird da aber aus einer Datei geladen und nicht aus einem DB-Blob? Oder machst du da nur einen Umweg über eine temporäre Datei? Wenn ja dann wird das mit dem hier gezeigten Pfad Probleme geben wenn die Anwendung nicht mit Adminrechten läuft.
|
AW: PDF Datei in Firebird Tabelle speichern
Zitat:
|
AW: PDF Datei in Firebird Tabelle speichern
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz