第二章 PDF 马达启动-2.1.1

这章包含:

Hello World, Hello iText

5步创建一个PDF

操作 PDF: 基础

 

如果你是一个iText的新用户,读这章的意义如同你获得一个新的工作的第一天,有人会和你说这个建筑, 和你不认识的人握手,你视图记住每个人的名字.在这天结束的时候你会发现你根本没有做任何事情, 但是你确实做了一些事情, 你和每一个人说了:hello.

在这个章节, 你将利用5个步骤来创建一个PDF,你也会学习如何扩展每一步:增加一些内容,你也会学到如何使用一些iText classes去获得和操作PDF文件.

尽管前一个章节我用一些PDF的截屏给你234章的的一个总览,这个章节将呈现一些iText的真是的案例, 每个例子你都将得到一些PDF“装置”。
2.1 5 步创建一个 PDF 文件

按照没有学会走不能学飞的道理,我们将由一个简单的PDF文件开始,图2.1 展现了一个“hello world”的pdf文件。

这些产生“Hello World” PDF 的代码如下所示

/* chapter02/HelloWorld.java */
Document document 
=   new  Document();
try  ... {
PdfWriter.getInstance(document,
new FileOutputStream("HelloWorld.pdf"));
document.open();
document.add(
new Paragraph("Hello World"));
}
  catch  (Exception e) ... {
// handle exception
}

document.close();

我们来将这个代码划分一些

l         Step 1 创建一个Document对象

l         Step 2 获得一个 DocWriter 实例 (这个例子是一个 PdfWriter 实例)

l         Step 3 打开那个Docment对象

l         Step 4  增加Document的内容.

l         Step 5 关闭 Document.对象

在每一个小节, 我们将讨论重点放在一个不同的步骤上,我们针对每一步做一些改动,你将创建一些微小的改动的PDF文件

你现在可以处理不同版本的Hello WorldPDF文件了, 你可以变换字体, 是否粗体(是否斜体), 然后去发现这些源码的相似和不同之处,在最后一个小节, 我们将着重讲解如何按照MVC模式来使用iText

2.1.1 创建一个新的Document对象
    Document 对象是你用它来增加内容:包含文字和元数据的, document对象上, 你可以定义页面大小,页面的颜色, 页边距等等。

在上述的例子里面, 那个Document是一个包含缺省属性的对象, 你可以使用com.lowagie.text.Rectangle 这个类来定义页面的尺寸,

/**//* chapter02/HelloWorldNarrow.java */
Rectangle pageSize 
=   new  Rectangle(216f, 720f);
Document document 
=   new  Document(pageSize);

在这个代码中的那两个实数表示了未来页面的宽和高,这个实数的单位可以由用户自己定义, 默认的单位是象素点, 一英寸 包含72个点, 上文中我们定义了一个宽 3 英寸 10 英寸 的页面, 你运行这个代码, 再打开这个PDF文件, 点击文件>文件属性>描述,你会发现这个文件的尺寸确实是3X 10 英寸

页面尺寸

理论上, 你可以创建任何尺寸的文件, 但是不同版本的PDF文件对文件大小是有约定的, PDF1.3里面, 最小的文件尺寸是72X72象素点, 最大是3,240 x 3,240象素点,最新的版本的PDF规范里面, 这个尺寸的限制为:3 x 314,400 x 14,400.

我们也在第3章讨论PDF其他的一些限制

FAQ是否Itext包含了一些方法, 可以让英寸和象素之间, 象素和米制单位的转换方法呢?

没有,你会发现在iText里面都是用象素点为单位的, 极少的情况页会用到千象素点。如果你要做这些转换, 你得自己写一些程序, 记住 1 in = 2.54 cm = 72 points.

大部分时间, 你可以使用标准尺寸, 譬如你写信, 你可以使用标准信纸得尺寸。你可以这样调用这写标准

/* chapter02/HelloWorldLetter.java */

Document document 
=   new  Document(PageSize.LETTER);

这样得话, 你创建出来得PDF将是8.5 x 11 in ,而默认的第一个程序是采用A4大小作为文档的页面大小的(8.26 x 11.69 in or 210 x 297 mm ).

PageSize对象是为了您写程序方便而创建的一个对象,它里面只有一些标准的尺寸,从A0

A10, B0 B5, 信件,, _11x17, 便条, ARCH_A ARCH_E

默认的文档是竖排的, 当然你可以o改变成横排的方式

/* chapter02/HelloWorldLandscape2.java */

Document document 
=   new  Document( new  Rectangle( 792 612 ));
也可以直接定义长大于高的方式来实现横排

/* chapter02/HelloWorldLandscape.java */

Document document 
=   new  Document(PageSize.LETTER.rotate());

尽管这两个方法在你打开PDF文件的时候, 看起来是一样的, 但是他们是有细微区别的:

第一个文件, 第一个文件的宽是小于高的, 但是旋转了90

第二个文件是没有旋转的。

当你处理这些文件的时候, 你会发现这些不同点会给你带来一丝的麻烦。

页面颜色
如果你使用一个Rectangle作为PageSize的参数,你也可以改变这个页面的背景颜色
在接下来的例子里面,你可以调用RectanglesetBackgroundColor()方法来将背景改成浅蓝色:
/* chapter02/HelloWorldBlue.java */
Rectangle pagesize 
=   new  Rectangle( 612 792 );
pagesize.setBackgroundColor(
new  Color( 0x64 0x95 0xed ));
Document document 
=   new  Document(pagesize);
在这个例子里面,你使用的是java.awt.Color这个颜色是用RGB的方式来设置的如果你习惯于使用CMYK的颜色来设置你可以使用com.lowagie.text.pdf.ExtendedColor对象。你可以在附录A的第8节了解iText的类结构,在11章你可以阅读有关颜色的内容, iTextAPI包含了第3种的Document对象的构建函数,不仅包含了一个Rectangle, 4Float的参数,我们在这里不再详述了。
页边距
在例子的第4步,我们让Document对象增加了一个段落:Paragraph,这个段落包含一段文字:hello world,但是,iText怎么知道把这个文字放在页面的那个地方呢?这个答案相当简单:当我们增加段落,短语或者区块到Document对象的时候,iText设定相同的上下左右空间,这个就是页边距,你之前创建的“Hello World”例子里面,iText使用默认的页边距,半英寸,让我们来改变这个数字:
/* chapter02/HelloWorldMargins.java */
Document document 
=   new  Document(PageSize.A5,  36 72 108 180 );

PDF文档的左边距是36PT,右边距是72PT上边距是108PT,下边距是180PT

你也可以这样设置奇偶页面边距的对称性:
/**//* chapter02/HelloWorldMirroredMargins.java */
document.setMarginMirroring(
true );

在这个例子里面,所有的奇数页面的左边距是36PT右边距是72pt,而偶数页面,刚好相反。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值