| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> Delphi安卓创建PDf文件并打开 -> 正文阅读 |
|
[移动开发]Delphi安卓创建PDf文件并打开 |
uses Androidapi.JNI.GraphicsContentViewText, Androidapi.JNI.JavaTypes, ? Androidapi.JNI.Net, Androidapi.Helpers, System.IOUtils, FMX.Helpers.android, ? FMX.surfaces; 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.btCreatePDFClick(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('Page 1'), 10, 50, Paint); ? ? 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 := TJRect.JavaClass.init; ? ? Rect.&set(15, 50, 65, 100); ? ? Recto := TJRect.JavaClass.init; ? ? Recto.&set(0, 0, Image1.Bitmap.Width, Image1.Bitmap.Height); ? ? Paint.setARGB($FF, $FF, 0, $FF); ? ? NativeBitmap := TJBitmap.JavaClass.createBitmap(Image1.Bitmap.Width, ? ? ? Image1.Bitmap.Height, TJBitmap_Config.JavaClass.ARGB_8888); ? ? sBitMap := TBitmapSurface.create; ? ? sBitMap.Assign(Image1.Bitmap); ? ? SurfaceToJBitmap(sBitMap, NativeBitmap); ? ? Canvas.drawBitmap(NativeBitmap, Recto, Rect, 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; |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年3日历 | -2025/3/10 14:59:08- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |