iText简介:

iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。 iText的安装非常方便,下载iText.jar文件后,只需要在系统的CLASSPATH中加入iText.jar的路径,在程序中就可以使用iText类库了。

iText使用版本:5.5.4

方法简介:根据关键字keyword定位出keyword所在页和具体坐标,在keyword所在位置处可以插入图片文字==

 import java.io.IOException;
import com.itextpdf.awt.geom.Rectangle2D.Float;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.parser.ImageRenderInfo;
import com.itextpdf.text.pdf.parser.PdfReaderContentParser;
import com.itextpdf.text.pdf.parser.RenderListener;
import com.itextpdf.text.pdf.parser.TextRenderInfo; public class Demo
{
// 定义关键字
private static String KEY_WORD = "KEYWORD";
// 定义返回值
private static float[] resu = null;
// 定义返回页码
private static int i = 0; /*
* 返回关键字所在的坐标和页数 float[0] >> X float[1] >> Y float[2] >> page
*/
private float[] getKeyWords(String filePath)
{
try
{
PdfReader pdfReader = new PdfReader(filePath);
int pageNum = pdfReader.getNumberOfPages();
PdfReaderContentParser pdfReaderContentParser = new PdfReaderContentParser(
pdfReader); // 下标从1开始
for (i = 1; i < pageNum; i++)
{
pdfReaderContentParser.processContent(i, new RenderListener()
{ @Override
public void renderText(TextRenderInfo textRenderInfo)
{
String text = textRenderInfo.getText();
if (null != text && text.contains(KEY_WORD))
{
Float boundingRectange = textRenderInfo
.getBaseline().getBoundingRectange();
resu = new float[3];
resu[0] = boundingRectange.x;
resu[1] = boundingRectange.y;
resu[2] = i;
}
} @Override
public void renderImage(ImageRenderInfo arg0)
{
// TODO Auto-generated method stub } @Override
public void endTextBlock()
{
// TODO Auto-generated method stub } @Override
public void beginTextBlock()
{
// TODO Auto-generated method stub }
});
}
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return resu;
} }

最新文章

  1. [APUE]UNIX进程的环境(上)
  2. unity3d 第三人称视角的人物移动以及相机控制
  3. Android 开发技巧 - Android 6.0 以上权限大坑和权限检查基类封装
  4. halcon的算子列表
  5. Intent官方教程(3)各属性介绍
  6. sublime text 3 扩展插件SideBarEnhancements用法教程
  7. Codeforces 577B Modulo Sum
  8. ACM-ICPC北京赛区(2017)网络赛_Minimum
  9. PHP基础入门(三)【PHP中的数组】
  10. angularjs MVC、模块化、依赖注入详解
  11. Docker Compose 之进阶篇
  12. 前端入门10-JavaScript语法之对象
  13. 科学计算和可视化(numpy及matplotlib学习笔记)
  14. topcoder srm 697 div1 -3
  15. Web墨卡托坐标与WGS84坐标互转
  16. Socket模型(二):完成端口(IOCP)
  17. 重拾IP路由选择:CCNA学习指南中的IP路由选择
  18. 内核线程和用户线程(SMP)
  19. Java 异常Exception e中e的getMessage()和toString()方法的区别
  20. VMware上安装CenterOS

热门文章

  1. 求a和b的最大公约数
  2. 有关linux标准输出、标准输入、标准错误的重定向问题
  3. 【LeetCode】22. Generate Parentheses (I thought I know Python...)
  4. hdu 2824 The Euler function(欧拉函数)
  5. HDU 2045 不容易系列之(3)—— LELE的RPG难题(递归/动态规划)
  6. 啥数据类型set补充、深浅拷贝与函数
  7. memcache学习和分析
  8. mysql 保存emoji时报,数据库报错:Caused by: java.sql.SQLException: Incorrect string value: &#39;\xF0\x9F\x98\x82\xF0\x9F...&#39; for column &#39;review&#39; at row 1
  9. CodeForces 708B Recover the String
  10. vimtutor基础教程