![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#5
|
|||
|
|||
![]() Смирился с тем и загрузил приложение на телефон, но вот такая ошибка:
java.lang.lllegal.StateException:Current page not finished! Как я понимаю изображение не влезло в лист а4, но вроде оно не таких больших размеров. Вот код конечный: Код:
uses Androidapi.JNI.GraphicsContentViewText, Androidapi.JNI.JavaTypes, Androidapi.JNI.Net, Androidapi.Helpers, System.IOUtils,FMX.Surfaces,FMX.Helpers.Android,Androidapi.JNI.App; procedure TFormMain.ButtonCreatePdfClick(Sender: TObject); var Document: JPdfDocument; PageInfo: JPdfDocument_PageInfo; Page: JPdfDocument_Page; Canvas: JCanvas; Paint: JPaint; Rect: JRectF; FileName: string; OutputStream: JFileOutputStream; Intent: JIntent; mBitmap:JBitmap; Surface: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); Surface.Assign(Image1.Bitmap); SurfaceToJBitmap(Surface, mBitmap); Canvas.drawBitmap(mBitmap,0,0,Paint); Surface.Free; Document.finishPage(Page); // create page 2 PageInfo := TJPageInfo_Builder.JavaClass.init(100, 100, 2).create; Page := Document.startPage(PageInfo); Canvas := Page.getCanvas; Paint := TJPaint.JavaClass.init; Paint.setARGB($FF, $FF, 0, 0); Canvas.drawLine(10, 10, 90, 10, Paint); Paint.setStrokeWidth(1); Paint.setARGB($FF, 0, $FF, 0); Canvas.drawLine(10, 20, 90, 20, Paint); Paint.setStrokeWidth(2); Paint.setARGB($FF, 0, 0, $FF); Canvas.drawLine(10, 30, 90, 30, Paint); Paint.setARGB($FF, $FF, $FF, 0); Canvas.drawRect(10, 40, 90, 60, Paint); Rect := TJRectF.JavaClass.init; Rect.&set(10, 70, 90, 90); Paint.setARGB($FF, $FF, 0, $FF); Canvas.drawRoundRect(Rect, 5, 5, Paint); Document.finishPage(Page); // write PDF document to file FileName := TPath.GetSharedDocumentsPath + PathDelim + '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; Вторую страницу я накидал заранее для проверки. Она нормально идет В чем ошибка. По вашему вопросу:Искал на форумах, чтобы можно было без компонентов, вот и нашёл на java |