Image 图像转化为 PDF 文件

开发中如果有这样的需求把 Image 图像转化为 PDF 文件你会怎么做呢?你可能会在网上狂找资料寻找解决方案,但是事实上网上这方面的资料非常少,有的作者没有给出一个完整的内容或者给出的内容不适合现在的需求、有错误误导读者,本次 Chat 集合了我四五年工作经验的体会,把这个技术分享给大家。

本场 Chat 你能学会的东西:

  1. iText 非常著名的转化为 PDF 第三方框架
  2. Android 存储路径选择
  3. Android 文件转化为 PDF
  4. Android 把文件放入文件夹中任意查看

前言

要把 Image 图像转化为 PDF 文件,一般都会涉及非常著名的第三方库 iText,它是著名的开放项目,是用于生成 PDF 文档的一个 Java 类库。通过 iText 不仅可以生成 PDF 或 rtf 等文档,甚至可以将 XML、HTML 文件转化为 PDF 格式。

接下我会依次介绍以下内容:

  1. iText 框架的使用;
  2. 使用 iText 生成 PDF 文件;
  3. Android 存储路径选择;
  4. Android 把文件放入文件夹中任意查看。

iText 框架的使用

iText 是一个软件开发者平台,用 Java 和 .NET 编写,允许您将 PDF 功能集成到您的应用程序,流程或产品中。其主要优势在于:

  • 为 Java 和 .NET 开发人员提供简单的 PDF 生成和操作;
  • 帮助您减少公司内的手动文档流程和纸张成本。

这里为大家提供下 iText 官网地址官方开发文档网址官方下载地址,供大家进一步了解它。

下面看下官方主页,如下图所示。

enter image description here

在这里对于英文不太好的读者简单的说一下官网的内容(英文好的可以略过)。

  • PRODUCTS:是对 iText 这个产品的介绍,里面包含有老版本的 iText 5 和最新的 iText 7 库,然后分别介绍 iText 5 和 iText 7 各个子模块的内容和效果展示。
  • RESOURCES:里面主要包含 iText 相关的书籍和 API 文档。
  • FOR DEVELOPERS:主要针对开发人员看的,包含各种例子教程和资源下载。

官方下载页面,如下图所示:

enter image description here

这里是对 iText 开源的库文件下载,一般库文件比较大,下载下来比较慢。在这里我介绍另外一种下载方法,大家可以访问这里,通过资源中心在里面搜索你想要的资源(jar包)下载。

enter image description here

官方开发文档页面,如下图所示:

enter image description here

虽然官方文档讲的比较清楚,但是你不通过爬过很多坑,看过密密麻麻的英文和过滤掉一大推对开发无用的文章,你很难很快完全掌握它的,而且官方的文档也是只言片语,集成到应用中还是要花费很多精力和时间,另外最新 iText7 接口是收费的,不可能把整个实现过程公布出来。

使用 iText 框架把 Image 生成 PDF 文件

要想把 Image 图像转化为 PDF 文件,需要先学习下面几个类的用法。

  • com.itextpdf.text.Document:这是 iText 库中最常用的类,它代表了一个 PDF 实例。如果你需要从零开始生成一个 PDF 文件,你需要使用这个 Document 类。首先创建(new)该实例,然后打开(open)它,并添加(add)内容,最后关闭(close)该实例,即可生成一个 PDF 文件。
  • com.itextpdf.text.Paragraph:表示一个缩进的文本段落,在段落中,你可以设置对齐方式,缩进,段落前后间隔等。
  • com.itextpdf.text.Chapter:表示 PDF 的一个章节,培训通过一个 Paragraph 类型的标题和整形章数创建。
  • com.itextpdf.text.Font:这个类包含了所有规范好的字体,包括字体、大小、样式和颜色,所有这些字体都被声明为静态常量。
  • com.itextpdf.text.List:表示一个列表;
  • cocom.itextpdf.text.List:表示一个列表;
  • com.itextpdf.text.Anchor:表示一个锚,类似于 HTML 页面的链接。
  • com.itextpdf.text.pdf.PdfWriter:当这个 PdfWriter 被添加到 PdfDocument 后,所有添加到 Document 的内容将会写入到与文件或网络关联的输出流中。
  • com.itextpdf.text.pdf.PdfReader:用于读取 PDF 文件;

通过这几个类中的方法,先生成一个 Document 对象,然后通过 PdfWriter.getInstance(document, new FileOutputStream(path)) 把 Document 对象写入路径中进去,生成一个空的 PDF 文件,接着 Document 对象把 Image 图像加入进来,最后关闭 Document 对象,Image 图像就加入到了空的 PDF 文件中了。

首先在 Eclipse 中验证代码的准确性。根据官方文档来写的,代码如下:

![enter image description here](http://images.gitbook.cn/b2a41840-1a29-11e8-8451-c901644501d9) /** * Example written by Bruno Lowagie in answer to the following question: * http://stackoverflow.com/questions/40336813/ */package sandbox.stamper;import com.itextpdf.text.DocumentException;import com.itextpdf.text.Image;import com.itextpdf.text.pdf.PdfContentByte;import com.itextpdf.t
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值