View Full Version : نمایش فایل pdf ذخیره شده در دیتابیس
sam3610
جمعه 13 مهر 1397, 22:28 عصر
با سلام خدمت دوستان گرامی:
من یک فایل pdf رو که در ابزار gtPDFViewer1 کامپوننت pdftoolkit نمایش داده شده بود با کد :
procedure TForm1.Button2Click(Sender: TObject); var
blob: TBlobField;
TempStrm: TStream;
begin
ADOTable1.Open;
ADOTable1.Last;
ADOTable1.Insert;
blob := TBlobField(ADOTable1.FieldByName('P')); // ensure it ís a blob
TempStrm := ADOTable1.CreateBlobStream(blob, bmWrite);
try
gtPDFDocument1.SaveToStream(TempStrm);
finally
TempStrm.Free;
ADOTable1.Post;
ADOTable1.Close;
ShowMessage('ok');
gtPDFDocument1:=nil;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from table1');
ADOQuery1.Open;
end;
end;
در دیتا بیس ذخیره کردم
حالا چجور می تونم مجددا این فایل رو نمایش در gtPDFViewer1 بدم؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
ممنون میشم اگه راهنمایی بفرمایید.
sam3610
شنبه 14 مهر 1397, 15:43 عصر
اساتید ، دوستان کسی تجربه ای در این خصوص نداره>؟
hp1361
جمعه 20 مهر 1397, 02:54 صبح
با سلام خدمت دوستان گرامی:
من یک فایل pdf رو که در ابزار gtPDFViewer1 کامپوننت pdftoolkit نمایش داده شده بود با کد :
procedure TForm1.Button2Click(Sender: TObject); var
blob: TBlobField;
TempStrm: TStream;
begin
ADOTable1.Open;
ADOTable1.Last;
ADOTable1.Insert;
blob := TBlobField(ADOTable1.FieldByName('P')); // ensure it ís a blob
TempStrm := ADOTable1.CreateBlobStream(blob, bmWrite);
try
gtPDFDocument1.SaveToStream(TempStrm);
finally
TempStrm.Free;
ADOTable1.Post;
ADOTable1.Close;
ShowMessage('ok');
gtPDFDocument1:=nil;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from table1');
ADOQuery1.Open;
end;
end;
در دیتا بیس ذخیره کردم
حالا چجور می تونم مجددا این فایل رو نمایش در gtPDFViewer1 بدم؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
ممنون میشم اگه راهنمایی بفرمایید.
سلام
فیلد رو باید در قالب Stream بخونید(و مثلا درون یک متغیر از جنس Stream بریزید)
با استفاده از TgtCustomPDFDocument.LoadFromStream Method نمایشش بدید
مثالش در آدرس زیر هست:
https://www.gnostice.com/docs/pdftoolkit_vcl/frames.html?frmname=topic&frmfile=gtCstPDFDoc_TgtCustomPDFDocument_LoadFromS tream@TStream@String.html
sam3610
شنبه 21 مهر 1397, 18:08 عصر
سلام
فیلد رو باید در قالب Stream بخونید(و مثلا درون یک متغیر از جنس Stream بریزید)
با استفاده از TgtCustomPDFDocument.LoadFromStream Method نمایشش بدید
مثالش در آدرس زیر هست:
https://www.gnostice.com/docs/pdftoolkit_vcl/frames.html?frmname=topic&frmfile=gtCstPDFDoc_TgtCustomPDFDocument_LoadFromS tream@TStream@String.html
ممنون از شما بررسی میکنم نتیجه رو همینجا اعلام میکنم
sam3610
شنبه 21 مهر 1397, 18:45 عصر
دوست عزیز من کد رو به این نحو نوشتم :
procedure TForm1.Button3Click(Sender: TObject);var
gtPDFDocument1: TgtPDFDocument;
MemoryStream1: TMemoryStream;
begin
MemoryStream1 := TMemoryStream.Create;
MemoryStream1.LoadFromFile(ADOQuery1.FieldValues['p']);
gtPDFDocument1 := TgtPDFDocument.Create(Nil);
try
gtPDFDocument1.LoadFromStream(MemoryStream1);
finally
ShowMessage('ok');
if gtPDFDocument1.IsLoaded then
begin
gtPDFViewer1.Active := True;
end;
MemoryStream1.Free;
end;
end;
این ارور رو میده :
149076
hp1361
چهارشنبه 25 مهر 1397, 19:57 عصر
دوست عزیز من کد رو به این نحو نوشتم :
procedure TForm1.Button3Click(Sender: TObject);var
gtPDFDocument1: TgtPDFDocument;
MemoryStream1: TMemoryStream;
begin
MemoryStream1 := TMemoryStream.Create;
MemoryStream1.LoadFromFile(ADOQuery1.FieldValues['p']);
gtPDFDocument1 := TgtPDFDocument.Create(Nil);
try
gtPDFDocument1.LoadFromStream(MemoryStream1);
finally
ShowMessage('ok');
if gtPDFDocument1.IsLoaded then
begin
gtPDFViewer1.Active := True;
end;
MemoryStream1.Free;
end;
end;
این ارور رو میده :
149076
سلام
تابع LoadFromFile یک فایل موجود بر روی دیسک رو لود میکنه. شما نیاز دارید که از Memory لود کنید
به این شکل باید بنویسید
var
BlobStream: TStream;
begin
if (not ADOQuery1.FieldByName('p').IsNull) then
begin
BlobStream := TStream.Create;
BlobStream := ADOQuery1.CreateBlobStream(ADOQuery1.FieldByName(' p'), bmRead);
try
gtPDFDocument1 := TgtPDFDocument.Create(Nil);
gtPDFDocument1.LoadFromStream(BlobStream);
finally
ShowMessage('ok');
if gtPDFDocument1.IsLoaded then
begin
gtPDFViewer1.Active := True;
end;
BlobStream.Free;
end;
end;
end;
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.