PDF文本操作
来源:互联网 发布:临床医学英国留学 知乎 编辑:程序博客网 时间:2024/06/09 20:28
1.块操作
Chunk (块),是PDF文档中描述的最小原子元素。
块可以用于构建其他基础元素如短句、段落、锚点等,块是一个有确定字体的字符串,要添加块到文档中时,其他所有布局变量均要被定义。
1.1 定义一个基本的Chunk块
下面一行中,我们创建了一个内容为“hello World”、红色、斜体、COURIER字体、尺寸20的一个块:
Chunk chunk = new Chunk("Hello world", FontFactory.getFont(FontFactory.COURIER, 20, Font.ITALIC, new Color(255, 0, 0)));
1.2 修改块的背景
使用方法setBackground(Color color). 如下所示:
chunk .setBackground(new Color(0xFF, 0xFF, 0x00));
1.3 通过Chunk换行
doc.add(Chunk.NEWLINE);
2. 字体
2.1 下划线/删除线
文字添加下划线或删除线,代码如下
Chunk chunk1 = new Chunk("This text is underlined", FontFactory.getFont(FontFactory.HELVETICA, 12, Font.UNDERLINE));
Chunk chunk2 = new Chunk("This font is of type ITALIC | STRIKETHRU", FontFactory.getFont(FontFactory.HELVETICA, 12, Font.ITALIC | Font.STRIKETHRU));
2.2 上标/下标
通过 setTextRise(float f)设置上标或下标。
2.3 块的背景
修改块的背景,使用方法setBackground(Color color).代码如下:
chunk.setBackground(new Color(0xFF, 0xFF, 0x00));
2.4 更改分割符
当文本不能放在一行时,文本将被分割成不同的部分,iText首先会查找分割符,如果没有找到,文本将在行尾被截断。有一些预定的分割符如“ ”空格和“-”连字符,但是你可以使用setSplitCharacter方法来覆盖这些默认值。
3.短句(Phrases)
短句是一系列以特定间距(两行之间的距离)作为参数的块,一个短句有一个主字体,但短句中的一些块具有不同于主字体的字体,你可以创建短句去完成。
3.1 字体的延续
字体(非默认字体)创建一个短句或者段落后再添加更多内容时,初始对象的字体风格将被延续。
Phrase myPhrase = new Phrase("Hello 2! ", new Font(Font.TIMES_NEW_ROMAN, 8, Font.BOLD));
myPhrase.Add(new Phrase("some other font ", new Font(Font.HELVETICA, 8, Font.ITALIC)));
myPhrase.Add(new Phrase("This is the end of the sentence.\n", new Font(Font.TIMES_NEW_ROMAN, 8, Font.ITALIC)));
document.Add(myPhrase);
我们由Times New Roman 粗体字开始,添加一些文本使用Helvetica字体而不指定风格,我们发现文本被改变成了粗体,当我们再加一些文本使用Times New Roman字体和斜体风格,结果变成了粗斜体。
如果我们使用FontFactory来创建字体,字体风格不会被延续,因为FontFactory使用了另外的技术构建一个字体:
myPhrase = new Phrase("Hello 1bis! ", FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 8, Font.BOLD));
myPhrase.Add(new Phrase("some other font ", FontFactory.getFont(FontFactory.HELVETICA, 8, Font.ITALIC)));
myPhrase.Add(new Phrase("This is the end of the sentence.\n", FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 8, Font.ITALIC)));
document.Add(myPhrase);
4.段落
段落是一系列块和(或)短句。同短句一样,段落有确定的间距。用户还可以指定缩排;在边和(或)右边保留一定空白,段落可以左对齐、右对齐和居中对齐。添加到文档中的每一个段落将自动另起一行。
有几种办法建立一个段落,如:
Paragraph p1 = new Paragraph(new Chunk("This is my first paragraph.", FontFactory.getFont(FontFactory.HELVETICA, 12)));
Paragraph p2 = new Paragraph(new Phrase("This is my second paragraph.", FontFactory.getFont(FontFactory.HELVETICA, 12)));
Paragraph p3 = new Paragraph("This is my third paragraph.", FontFactory.getFont(FontFactory.HELVETICA, 12));
所有有些对象将被添加到段落中:
p1.add("you can add strings, ");
p1.add(new Chunk("you can add chunks "));
p1.add(new Phrase("or you can add phrases."));
说明:一个段落有一个且仅有一个间距,如果你添加了一个不同字体的短句或块,原来的间距仍然有效,你可以通过SetLeading来改变间距,但是段落中所有内容将使用新的中的间距。
转载于:http://blog.chinaunix.net/uid-122937-id-3052592.html
Chunk (块),是PDF文档中描述的最小原子元素。
块可以用于构建其他基础元素如短句、段落、锚点等,块是一个有确定字体的字符串,要添加块到文档中时,其他所有布局变量均要被定义。
1.1 定义一个基本的Chunk块
下面一行中,我们创建了一个内容为“hello World”、红色、斜体、COURIER字体、尺寸20的一个块:
Chunk chunk = new Chunk("Hello world", FontFactory.getFont(FontFactory.COURIER, 20, Font.ITALIC, new Color(255, 0, 0)));
1.2 修改块的背景
使用方法setBackground(Color color). 如下所示:
chunk .setBackground(new Color(0xFF, 0xFF, 0x00));
1.3 通过Chunk换行
doc.add(Chunk.NEWLINE);
2. 字体
2.1 下划线/删除线
文字添加下划线或删除线,代码如下
Chunk chunk1 = new Chunk("This text is underlined", FontFactory.getFont(FontFactory.HELVETICA, 12, Font.UNDERLINE));
Chunk chunk2 = new Chunk("This font is of type ITALIC | STRIKETHRU", FontFactory.getFont(FontFactory.HELVETICA, 12, Font.ITALIC | Font.STRIKETHRU));
2.2 上标/下标
通过 setTextRise(float f)设置上标或下标。
2.3 块的背景
修改块的背景,使用方法setBackground(Color color).代码如下:
chunk.setBackground(new Color(0xFF, 0xFF, 0x00));
2.4 更改分割符
当文本不能放在一行时,文本将被分割成不同的部分,iText首先会查找分割符,如果没有找到,文本将在行尾被截断。有一些预定的分割符如“ ”空格和“-”连字符,但是你可以使用setSplitCharacter方法来覆盖这些默认值。
3.短句(Phrases)
短句是一系列以特定间距(两行之间的距离)作为参数的块,一个短句有一个主字体,但短句中的一些块具有不同于主字体的字体,你可以创建短句去完成。
3.1 字体的延续
字体(非默认字体)创建一个短句或者段落后再添加更多内容时,初始对象的字体风格将被延续。
Phrase myPhrase = new Phrase("Hello 2! ", new Font(Font.TIMES_NEW_ROMAN, 8, Font.BOLD));
myPhrase.Add(new Phrase("some other font ", new Font(Font.HELVETICA, 8, Font.ITALIC)));
myPhrase.Add(new Phrase("This is the end of the sentence.\n", new Font(Font.TIMES_NEW_ROMAN, 8, Font.ITALIC)));
document.Add(myPhrase);
我们由Times New Roman 粗体字开始,添加一些文本使用Helvetica字体而不指定风格,我们发现文本被改变成了粗体,当我们再加一些文本使用Times New Roman字体和斜体风格,结果变成了粗斜体。
如果我们使用FontFactory来创建字体,字体风格不会被延续,因为FontFactory使用了另外的技术构建一个字体:
myPhrase = new Phrase("Hello 1bis! ", FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 8, Font.BOLD));
myPhrase.Add(new Phrase("some other font ", FontFactory.getFont(FontFactory.HELVETICA, 8, Font.ITALIC)));
myPhrase.Add(new Phrase("This is the end of the sentence.\n", FontFactory.getFont(FontFactory.TIMES_NEW_ROMAN, 8, Font.ITALIC)));
document.Add(myPhrase);
4.段落
段落是一系列块和(或)短句。同短句一样,段落有确定的间距。用户还可以指定缩排;在边和(或)右边保留一定空白,段落可以左对齐、右对齐和居中对齐。添加到文档中的每一个段落将自动另起一行。
有几种办法建立一个段落,如:
Paragraph p1 = new Paragraph(new Chunk("This is my first paragraph.", FontFactory.getFont(FontFactory.HELVETICA, 12)));
Paragraph p2 = new Paragraph(new Phrase("This is my second paragraph.", FontFactory.getFont(FontFactory.HELVETICA, 12)));
Paragraph p3 = new Paragraph("This is my third paragraph.", FontFactory.getFont(FontFactory.HELVETICA, 12));
所有有些对象将被添加到段落中:
p1.add("you can add strings, ");
p1.add(new Chunk("you can add chunks "));
p1.add(new Phrase("or you can add phrases."));
说明:一个段落有一个且仅有一个间距,如果你添加了一个不同字体的短句或块,原来的间距仍然有效,你可以通过SetLeading来改变间距,但是段落中所有内容将使用新的中的间距。
转载于:http://blog.chinaunix.net/uid-122937-id-3052592.html
0 0
- PDF文本操作
- C# 读取pdf文本
- CAJViewer 提取pdf 文本
- CAJViewer 提取pdf 文本
- 在Asp.Net中操作PDF – iTextSharp -利用块,短语,段落添加文本
- 通过intent action指定类型操作(打开文本,网页,pdf,word,分享...)过滤处理
- java 操作pdf模板(向指定域添加文本内容和图片)
- 文本操作
- Python PDFMiner 解析pdf 文本
- 文本导出到pdf文件
- python转pdf到文本
- itextsharp操作pdf
- pdf操作全攻略
- itextsharp操作pdf
- C#操作 PDF文件
- Pdf 的操作
- java操作pdf
- PHP操作PDF文档
- Intel开发者手册《翻译附录A-C》
- 网上选课系统设计书
- 源码分析之jQuery.merge函数
- AndroidStudio第一次构建出现Buiding 'Project Name' Gradle project info长时间等待
- 兼容火狐浏览器,jq animate backgroundPosition
- PDF文本操作
- XUtils框架的使用
- [MySQL分享]--MySQL体系结构(InnoDB引擎)
- 机器学习中的算法(1)-决策树模型组合之随机森林与GBDT
- Cannot find class 'org.junit.Test' on project build path
- Eclipse如何创建并部署web project
- XAMPP+TestLink安装步骤
- Android教程-03 常见布局的总结
- ajax传json的方法(附list转json方法)