大家好,今天周末了,也许大家还在睡觉没起床,今天我有来码字了,又来给大家分享技术文章了,让关注我的朋友不失望,大家一起进步技术,在新的一年里更高一层。
早上7点就起床了来到了公司,最近赶项目所以加班赶项目,虽然从北京回到了重庆,但是工作还是一如既往的要进行。写代码走到哪里都一样,如果公司允许就好了,在家办公,因为我们程序员只需要有台电脑一杯咖啡就能坚持很久的坐那儿,可以忘记吃饭,忘记上厕所,不停的编写程序,这就是程序员。
回到重庆上班一样是坐地铁上班,只是重庆的叫法不一样,叫做轻轨在我眼里其实都是一样,在轻轨里面座位跟北京的地铁还不一样,那就是重庆的座位可能坐不稳。特别滑,毕竟重庆是一座山城,歪来歪去的。
好了今天废话不说那么多吧,也是公司需求需要编写一个pdf查看器,而是用Flutter来编写程序,开始是自己用dart来写,后来发现有很多问题,就去github上面找了一圈,用了一下还行。今天就分享给大家吧。谢谢。
本头条核心宗旨
技术刚刚好经历
近几年,移动端跨平台开发技术层出不穷,从Facebook家的ReactNative,到阿里家WEEX,前端技术在移动端跨平台开发中大展身手,技术刚刚好作为一名Android开发,经历了从Reactjs到Vuejs的不断学习。而在2018年,我们的主角变成了Flutter,这是Goolge开源的一个移动端跨平台解决方案,可以快速开发精美的移动App。希望跟大家一起学习,一起进步!
这个Flutter库分为两个部分:
它可以使用TrueType字体创建包含图形,图像和文本的多页PDF文档,便于使用和阅读,
PDF文档
使用printing包
https://pub.dev/packages/printing 进行完整的打印和共享操作。
坐标系使用内部Pdf单位:
使用例子
final pdf = Document();pdf.addPage(Page( pageFormat: PdfPageFormat.a4, build: (Context context) { return Center( child: Text("Hello World"), ); // Center })); // Page
要加载图像,可以使用Flutter库图像:
final img = decodeImage(File('test.webp').readAsBytesSync());final image = PdfImage( pdf.document, image: img.data.buffer.asUint8List(), width: img.width, height: img.height,);pdf.addPage(Page( build: (Context context) { return Center( child: Image(image), ); // Center })); // Page
要使用TrueType字体:
final Uint8List fontData = File('open-sans.ttf').readAsBytesSync();final ttf = Font.ttf(fontData.buffer.asByteData());pdf.addPage(Page( pageFormat: PdfPageFormat.a4, build: (Context context) { return Center( child: Text('Hello World', style: TextStyle(font: ttf, fontSize: 40)), ); // Center })); // Page
目前这个库已经开发到1.4.0版本了,还算比较稳定,希望大家喜欢,由于不能发链接,需要的可以看看评论,谢谢大家了。
谢谢观看技术刚刚好的文章,技术刚刚好是个人维护,每天至少更新一篇Flutter技术文章,实时为大家播 Flutter最新消息。如果你刚好也在关注Flutter这门技术,那就跟我一起学习进步吧,你的赞,收藏,转发是对我个人最大的支持,维护不易, 。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!