نمایش فایل pdf ذخیره شده در دیتابیس
با سلام خدمت دوستان گرامی:
من یک فایل 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 بدم؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
ممنون میشم اگه راهنمایی بفرمایید.
نقل قول: نمایش فایل pdf ذخیره شده در دیتابیس
اساتید ، دوستان کسی تجربه ای در این خصوص نداره>؟
نقل قول: نمایش فایل pdf ذخیره شده در دیتابیس
نقل قول:
نوشته شده توسط
sam3610
با سلام خدمت دوستان گرامی:
من یک فایل 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/pdftoo...am@String.html
نقل قول: نمایش فایل pdf ذخیره شده در دیتابیس
نقل قول:
نوشته شده توسط
hp1361
ممنون از شما بررسی میکنم نتیجه رو همینجا اعلام میکنم
1 ضمیمه
نقل قول: نمایش فایل pdf ذخیره شده در دیتابیس
دوست عزیز من کد رو به این نحو نوشتم :
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
نقل قول: نمایش فایل pdf ذخیره شده در دیتابیس
نقل قول:
نوشته شده توسط
sam3610
دوست عزیز من کد رو به این نحو نوشتم :
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;