10-09-2020, Saat: 00:40
Merhaba android de bulunan projemde pdf dosyası oluşturmaya çalışıyorum bir örnek buldum ama onda hatalar alıyorum bu konu ile deneyimi olan arkadaslardan yardım bekliyorum
bulduğum kod
Aldığım hata exposed beyond app through intent.GetData()
bulduğum kod
unit GeradorPDF; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation, FMX.StdCtrls, FMX.Objects; type TForm1 = class(TForm) Image1: TImage; btGerarPDF: TButton; procedure btGerarPDFClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses Androidapi.JNI.GraphicsContentViewText, Androidapi.JNI.JavaTypes, Androidapi.JNI.Net, Androidapi.Helpers, System.IOUtils, FMX.Helpers.android, FMX.surfaces; {$R *.fmx} function FileNameToUri(const FileName: string): Jnet_Uri; var JavaFile: JFile; begin JavaFile := TJFile.JavaClass.init(StringToJString(FileName)); Result := TJnet_Uri.JavaClass.fromFile(JavaFile); end; procedure TForm1.btGerarPDFClick(Sender: TObject); var Document: JPdfDocument; PageInfo: JPdfDocument_PageInfo; Page: JPdfDocument_Page; Canvas: JCanvas; Paint: JPaint; Recto: JRect; Rect: JRect; FileName: string; OutputStream: JFileOutputStream; Intent: JIntent; NativeBitmap: JBitmap; sBitMap: TBitmapSurface; begin // create Pdf document Document := TJPdfDocument.JavaClass.init; try // create page 1 PageInfo := TJPageInfo_Builder.JavaClass.init(100, 100, 1).create; Page := Document.startPage(PageInfo); Canvas := Page.getCanvas; Paint := TJPaint.JavaClass.init; Paint.setARGB($FF, 0, 0, $FF); Canvas.drawText(StringToJString('Página 1'), 10, 50, Paint); Document.finishPage(Page); // write PDF document to file FileName := TPath.Combine(TPath.GetSharedDocumentsPath, 'demo.pdf'); OutputStream := TJFileOutputStream.JavaClass.init (StringToJString(FileName)); try Document.writeTo(OutputStream); finally OutputStream.close; end; finally Document.close; end; // start PDF viewer Intent := TJIntent.JavaClass.init; Intent.setAction(TJIntent.JavaClass.ACTION_VIEW); Intent.setDataAndType(FileNameToUri(FileName), StringToJString('application/pdf')); Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NO_HISTORY or TJIntent.JavaClass.FLAG_ACTIVITY_CLEAR_TOP); SharedActivity.StartActivity(Intent); end;
Aldığım hata exposed beyond app through intent.GetData()