AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi PDF Datei in Firebird Tabelle speichern
Thema durchsuchen
Ansicht
Themen-Optionen

PDF Datei in Firebird Tabelle speichern

Ein Thema von Walter Landwehr · begonnen am 28. Aug 2018 · letzter Beitrag vom 30. Aug 2018
Antwort Antwort
Seite 1 von 2  1 2      
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
384 Beiträge
 
Delphi 10.4 Sydney
 
#1

PDF Datei in Firebird Tabelle speichern

  Alt 28. Aug 2018, 12:52
Datenbank: Firebird • Version: 2,5,5 • Zugriff über: IBO / IBExpert
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:
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;
Ergänzung: In IBExpert kann ich die Datei als pdf lesen.

Kann mir jemand helfen.
Walter Landwehr
Mfg

Walter

Geändert von Walter Landwehr (28. Aug 2018 um 14:15 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: PDF Datei in Firebird Tabelle speichern

  Alt 28. Aug 2018, 16:14
Hallo,
Zitat:
und im OLE Container öffnen
Dann zeig uns doch mal den "hole aus Tabelle"-Code.
Oder mache zum Test ein SaveToFile.
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: PDF Datei in Firebird Tabelle speichern

  Alt 29. Aug 2018, 09:57
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.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: PDF Datei in Firebird Tabelle speichern

  Alt 30. Aug 2018, 08:18
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.
Heiko
  Mit Zitat antworten Zitat
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
384 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: PDF Datei in Firebird Tabelle speichern

  Alt 30. Aug 2018, 10:16
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:
    Seite_OLEQry.Edit;
    PDFFile :=(extractFilePath(Application.ExeName) + 'DSGVO.pdf');
    edOle.CreateObjectFromFile(PDFFile,False);
    edOle.AutoDisplay := True;
    Seite_OLEQry.Post;
Dann kann ich alles sehen und mit dem Reader ausdrucken.
Walter Landwehr
Mfg

Walter
  Mit Zitat antworten Zitat
NoName1

Registriert seit: 8. Mär 2018
191 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: PDF Datei in Firebird Tabelle speichern

  Alt 30. Aug 2018, 10:44
[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
  Mit Zitat antworten Zitat
RSF

Registriert seit: 13. Mär 2008
150 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: PDF Datei in Firebird Tabelle speichern

  Alt 30. Aug 2018, 13:48
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');
Ronald
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: PDF Datei in Firebird Tabelle speichern

  Alt 30. Aug 2018, 13:51
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.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
RSF

Registriert seit: 13. Mär 2008
150 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

AW: PDF Datei in Firebird Tabelle speichern

  Alt 30. Aug 2018, 14:11
So wie ich den Codeschnipsel verstehe wird da aber aus einer Datei geladen und nicht aus einem DB-Blob?
Ganz unabhängig von TIB_OLEContainer. Er speichert die PDF doch in ein Blob-Feld. (Siehe #1)
Ronald

Geändert von RSF (30. Aug 2018 um 14:13 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: PDF Datei in Firebird Tabelle speichern

  Alt 30. Aug 2018, 14:19
Hier kann man sich das fehlende TIB_OLEContainer besorgen. Laut Anzeige ist es *free of charge*
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz