木辛老师来了,本节课咱们一起来看看如何在Flutter中图片转PDF功能吧!
请点击右上角“关注”按钮关注我们哟:跟着木辛老师学习Flutter基础编程知识,变身快乐的编程达人吧~
PDF大家都用过吧(用过的都说好,谁用谁知道),它是一种很流行的格式,全称叫做便携式文档格式。
(没用过?不知道是啥?不好用?)
那好吧,萝卜白菜各有所爱,如果你需要那种不用修改内容,但是需要更好的分享以及打印效果的话,强烈推荐你使用PDF。试过就会爱上,爱上就不会丢弃!
既然,很有可能你会爱上PDF,那么今天通过这个教案就来看一下如何制作PDF把。
有这么两种方法:
第一种,逐个字符的将内容敲进文本文档或者MS word里边
第二种,或者使用今天我们讲到的知识点,直接对文档进行拍照,然后使用今天学习的代码直接转成PDF文件。
第一种还是第二种,怎么选择就看你咯。
好啦,来看看我们的方法。
使用pdf插件
pdf是一个flutter的扩展包,他被分成两个部分
第一个部分,一个底层的负责pdf生成的库
第二部分,想Flutter一样的组件系统,是一个简单易用的创建pdf的工具
据我局限的知识存量来说,它的使用是非常简单。它可以创建包括图形、图片、文本等等组织形式的多页文档,是全方位立体式的强有力的工具,并且用TrueType字体渲染。
如此牛牛的扩展包怎么用捏?
第一步:装他、装他、还是装他在你的项目根目录下,修改pubspec.yaml文件内容:
dependencies:
pdf: ^3.6.5
同步!
你也可以使用如下命令直接安装它的最新版本
flutter pub add pdf第二步:写代码
用之前要先导入
import 'package:pdf/pdf.dart';
import 'package:pdf/widgets.dart' as pw;
然后实例化
final pdf = pw.Document();
最后,就可以往这个文档中添加一页内容。同时,要指定这个文档的页面格式,在指定位置构建内容。
pdf.addPage(pw.Page(
pageFormat: PdfPageFormat.a4,
build: (pw.Context context) {
return pw.Center(
child: pw.Text("Hello World"),
); // Center
})); // Page
如果你想使用一张图片,那么还需要实例化MemoryImage,并读取文件图片数据。
final image = pw.MemoryImage(
File('test.webp').readAsBytesSync(),
);
之后,就可将这个图片数据添加到PDF文档中了,就像下方代码那样:
pdf.addPage(pw.Page(build: (pw.Context context) {
return pw.Center(
child: pw.Image(image),
); // Center
})); // Page
你也可以指定ttf(TrueType Font)
final Uint8List fontData = File('open-sans.ttf').readAsBytesSync();
final ttf = pw.Font.ttf(fontData.buffer.asByteData());
pdf.addPage(pw.Page(
pageFormat: PdfPageFormat.a4,
build: (pw.Context context) {
return pw.Center(
child: pw.Text('Hello World', style: pw.TextStyle(font: ttf, fontSize: 40)),
); // Center
})); // Page
写完了,一定不要忘记保存文件
// On Flutter, use the [path_provider](https://pub.dev/packages/path_provider) library:
// final output = await getTemporaryDirectory();
// final file = File("${output.path}/example.pdf");
final file = File("example.pdf");
await file.writeAsBytes(await pdf.save());
好了,在木辛老师的讲义中,知识就是这么简单!通过这些简单有趣的知识,你就可以创造出很多功能强大的工具或者软件,还等什么,赶紧去干起来吧!
请大家关注木辛老师的课程哟,获取更多编程知识和编程技巧。接下来,木辛老师和大家一步一步地学习Flutter知识吧。
快乐编程,快乐成长!
咱们下节课再见,88~
【博君一肖】重生之我可以爱你么?08
————
肖骁是被易柏的忽然……弄醒的,他迷迷糊糊的,易柏更起劲起来…
这集也写嗨了,省略一千字…
————
肖骁看着镜中的自己,…………他有点恍惚,
浴室中……
一辆水上快艇开过…
————
“宝贝好乖…”他抚着他汗湿的头发,亲他的额头…
他浑身脱力的对着他笑,这一切都是他自愿的,被囚禁也好,被控制也好,上辈子是他推开了他,这辈子他只想爱着他。只是,为什么他有点痛苦,因为他不相信他,他那么疯狂,又小心翼翼,他就像一个要糖吃的孩子,用奇怪的方法留着他,他要怎么让他看清他的心,让他相信自己不会推开他了,不会反悔了。他要怎么做?他又流眼泪了。这让易柏又开始慌起来,以为他是不愿的,是痛苦的。越是占有,越想占有,越是占有,越不想放他离开半步。他好痛苦,他想要爱他,想要他爱他,可是他要怎么做,他不敢放开他,他怕他一放开,他就消失不见了,那个高冷傲娇的肖公子,又回去了。
他搂住他亲,把眼泪吻去,心中挣扎,难道真的错了,他让他伤心了。他会想离开么?有点害怕,但是还是下定了决心。
“今天我们出去玩,好不好。”
“?”肖骁的眼睛睁大了一点,有点疑惑。
“怎么今天想出去了?”
“嗯,带你出去。”他轻轻亲他柔软的唇,然后沉默了许久,缓慢的,开始解他的锁链,像点了慢动作,一点一点的解开,一点一点的松开。然后,他又盯着解开的肖骁的手腕,脚腕看了好久。
肖骁也是没有动,只任由他解开,看着他满满的解,慢慢的发呆,慢慢的带着不舍的神情把那些锁链放下。
然后两人相视而笑,却都带着说不出的心情。
他给他穿衣服,整理半个月没剪有点变长的头发,然后一起吃午饭,站在窗边拥抱了一会,接了个吻,牵着手,出门了。
————
重生之我可以爱你么? 09
————
他带他去了最热闹的地方,想,如果他想逃,那么,便趁着这热闹的人流离开吧,然后他就把这一切当成无意的走散,在明天去学校时,在以后再次遇到时,就好像一切什么都没有发生过,那些发出去的照片,视频,也由他出来澄清,就说,他们在拍一个短剧,一切都是演的,一切都是假的。他一直看着他,只想着,在这么近的多看他一会。他曾经多疯狂的占有他,现在就有多胆怯的陪着他。可是,半天过去了,他还在他身边,他的手始终没有放开他。
他们一起牵手走过热闹的步行街,一起穿过儿童游乐场,他们在公园的鱼池边喂了一会鱼,坐在角落里亲吻,肖肖一直都乖得让他觉得不真实。
经过超市的时候,他忽然停下来,
“易柏~我们去逛超市吧?”
他开心的对着他笑,又马上怯生生的补了一句,
“好不好?”
一个半月的囚禁他还是对他有那么一点点的怕,那看着他征求他同意的表情,就跟鼻子一动一动的小兔子一样,让他忍不住亲了一小口。
“好。”
“那走吧!”
是错觉么?他很开心,他没有紧张兮兮的计划着逃跑,没有左顾右盼观察时机,也没有故意往人多的地方挤,而是一只和他十指交握着,是不是还要捏一捏自己的手。
他们买了一大堆的食材,肖肖说,晚上的晚餐他要做,还挑了件可爱的围裙,易柏只是看着他笑,心里希望着这样的相处能更长久一点。
两人又是在超市了逛了好一会,温馨的,有说有笑的,让易柏开始相信,他的肖肖也许不会逃了,他是真的会留下来。
他选了一对杯子,又给他挑了件睡衣,开始想象以后在一起的日子。
在要离开商场的时候,肖肖拉住他,亲了亲他的脸颊,
“我要去下厕所,你要不要一起去?”
不知道为什么,易柏的心抖了一下,然后他握了握他的手,亲了亲,摇了摇头,
“你去吧,我在这等你。”
“那你不许乱跑,要等我哦。”肖肖调皮的笑,真好看。易柏刮了刮他的鼻子。
“好,去吧。”
然后,时间一点一点的过去了,商场里的人由热闹非凡到变得冷冷清清,他一个人提着大包小包的东西,一直站在那里,
他说,不许乱跑,要等他,他笑得很好看,又调皮又可爱,他说晚餐要做一个他肯定没吃过的特殊料理,他说,他最会切胡萝卜了,他说,围裙买两件,一件他的,一件他的,他做饭,他要在一旁帮忙,他说,杯子的图案要一个狮子一个兔子,他说睡衣买连体的好玩,他还说……………
他一动不动的看着那些东西,等着他出现,可是,那个方向却再也没有人走出来。
————
肖肖醒来时,嘴巴被封着,眼睛也蒙着黑布。他挣扎着想动一动,发现自己被绑得紧紧的,迷药的副作用让他头痛欲裂。
这是哪?我明明上完厕所要回去找易柏,易柏…易柏他会怎么样?他会不会以为自己逃了,他…他有点不敢想,他好不容易在他脸上看到一点放心的表情,现在
又会怎样?是谁?是谁把他绑起来了?
不行,他得去找他,可是他连眼睛也被蒙起来了,他更剧烈的挣扎,一个重心不稳,摔了下去。
————