最近项目需要,在调研如何在pdf中增加标识字样,用来区分版本.最后确定用itext来实现 .

itext的官网是:http://www.itextpdf.com/

代码如下:

Java代码  收藏代码
  1. /**
  2. * authory kingviker
  3. * time : 2012-12-12
  4. */
  5. import java.io.FileOutputStream;
  6. import java.io.IOException;
  7. import com.itextpdf.text.DocumentException;
  8. import com.itextpdf.text.Font;
  9. import com.itextpdf.text.Image;
  10. import com.itextpdf.text.pdf.BaseFont;
  11. import com.itextpdf.text.pdf.PdfArray;
  12. import com.itextpdf.text.pdf.PdfContentByte;
  13. import com.itextpdf.text.pdf.PdfDictionary;
  14. import com.itextpdf.text.pdf.PdfName;
  15. import com.itextpdf.text.pdf.PdfObject;
  16. import com.itextpdf.text.pdf.PdfReader;
  17. import com.itextpdf.text.pdf.PdfStamper;
  18. public class AddContentToPDF {
  19. public static void main(String[] args) throws IOException, DocumentException {
  20. //创建一个pdf读入流
  21. PdfReader reader = new PdfReader("C:/help.pdf");
  22. //根据一个pdfreader创建一个pdfStamper.用来生成新的pdf.
  23. PdfStamper stamper = new PdfStamper(reader,
  24. new FileOutputStream("C:/help2.pdf"));
  25. //这个字体是itext-asian.jar中自带的 所以不用考虑操作系统环境问题.
  26. BaseFont bf = BaseFont.createFont("STSong-Light",
  27. "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); // set font
  28. //baseFont不支持字体样式设定.但是font字体要求操作系统支持此字体会带来移植问题.
  29. Font font = new Font(bf,10);
  30. font.setStyle(Font.BOLD);
  31. font.getBaseFont();
  32. //页数是从1开始的
  33. for (int i=1; i<=reader.getNumberOfPages(); i++){
  34. //获得pdfstamper在当前页的上层打印内容.也就是说 这些内容会覆盖在原先的pdf内容之上.
  35. PdfContentByte over = stamper.getOverContent(i);
  36. //用pdfreader获得当前页字典对象.包含了该页的一些数据.比如该页的坐标轴信息.
  37. PdfDictionary p = reader.getPageN(i);
  38. //拿到mediaBox 里面放着该页pdf的大小信息.
  39. PdfObject po =  p.get(new PdfName("MediaBox"));
  40. System.out.println(po.isArray());
  41. //po是一个数组对象.里面包含了该页pdf的坐标轴范围.
  42. PdfArray pa = (PdfArray) po;
  43. System.out.println(pa.size());
  44. //看看y轴的最大值.
  45. System.out.println(pa.getAsNumber(pa.size()-1));
  46. //开始写入文本
  47. over.beginText();
  48. //设置字体和大小
  49. over.setFontAndSize(font.getBaseFont(), 10);
  50. //设置字体颜色
  51. over.setColorFill(BaseColor.RED);
  52. //设置字体的输出位置
  53. over.setTextMatrix(107540);
  54. //要输出的text
  55. over.showText("我要加[终稿]字样 " + i);
  56. over.endText();
  57. //创建一个image对象.
  58. Image image = Image.getInstance("c:/1.jpg");
  59. //设置image对象的输出位置pa.getAsNumber(pa.size()-1).floatValue() 是该页pdf坐标轴的y轴的最大值
  60. image.setAbsolutePosition(0,pa.getAsNumber(pa.size()-1).floatValue()-100);//0, 0, 841.92, 595.32
  61. over.addImage(image);
  62. //画一个圈.
  63. over.setRGBColorStroke(0xFF0x000x00);
  64. over.setLineWidth(5f);
  65. over.ellipse(250450350550);
  66. over.stroke();
  67. }
  68. stamper.close();
  69. }
  70. }

jar我下载的都是2012-12-12的最新版

  • itextpdf-5.3.4.jar (1.7 MB)
  • 下载次数: 19
  • itext-asian.jar (2.1 MB)
  • 下载次数: 23

java利用itext编辑pdf相关推荐

  1. java 填写pdf_新知识:Java 利用itext填写pdf模板并导出(昨天奋战到深夜四点,知道今天两点终于弄懂)...

    标签: 废话少说,不懂itext干啥用的直接去百度吧. ***************制作模板******************* 1.先用word做出界面 2.再转换成pdf格式 3.用Adobe ...

  2. java中利用itext编辑pdf

    最近项目需要,在调研如何在pdf中增加标识字样,用来区分版本.最后确定用itext来实现. itext的官网是:http://www.itextpdf.com/ 代码如下: Java代码   /** ...

  3. java 修改pdf_java中利用itext编辑pdf

    最近项目需要,在调研如何在pdf中增加标识字样,用来区分版本.最后确定用itext来实现. itext的官网是:http://www.itextpdf.com/ 代码如下: Java代码 /** * ...

  4. java利用iText写pdf并上传阿里云OSS并下载

    iText是用于生成pdf的一个类库,通过它可以生成pdf或者将XML , HTML转换城pdf模版:阿里云的oss对象存储存储的类型比较多了,可以存储音频 图片 pdf excel 等资源,oss本 ...

  5. JAVA程序修改PDF内容,使用Java和Itext编辑PDF文本

    Is there a way I can edit a PDF document text? like find and replace specific text ? I have a PDF do ...

  6. 利用itext操作pdf从数据库导出大量数据--添加水印(四)

    [原始需求] 通过SQL及JDBC模式导出各类业务数据,以PDF文件格式存放,要求该文件只能查看和打印(不能编辑和篡改),文件要有公司相关标志和水印功能. [需求分析] 1. 通过SQL及JDBC模式 ...

  7. 利用itext操作pdf从数据库导出大量数据--功能汇总(一)

    [原始需求] 通过SQL及JDBC模式导出各类业务数据,以PDF文件格式存放,要求该文件只能查看和打印(不能编辑和篡改),文件要有公司相关标志和水印功能. [需求分析] 1. 通过SQL及JDBC模式 ...

  8. 使用Itext编辑PDF(可处理后保存本地,也可只处理文件流后返回文件流实现文件不落地)

    使用Itext编辑PDF(使用文件流及临时文件实现最终文件不落地) 话不多说上代码: 下面实体类: 下面是调用测试: 话不多说上代码: import com.itextpdf.text.BaseCol ...

  9. Java使用itext生成Pdf

    Java使用itext生成Pdf 背景 所需依赖 解决jpedal-lgpl jar包问题 示例代码 生成带图片的PDF(使用本地文件系统图片) 生成带图片的PDF(使用网络图片) 背景 在某些业务场 ...

最新文章

  1. html css背景图片精灵技术,HTML入门学习笔记--CSS背景和精灵图(5)
  2. python处理数据的优势-Python与其他语言相比有哪些优势?
  3. 把之前写的几个项目放到了github上
  4. matlab 填充数组,Matlab自动将数组类型从复数转换为double
  5. 【慎思堂】之JS牛腩总结
  6. mysql命令4类_【Mysql】mysql数据库的一些常用命令
  7. python建模仿真 matlab_清华大学出版社-图书详情-《仿真建模与MATLAB实用教程》
  8. jquery $.get()、$.ajax()与后台servlet交互方法
  9. linux系统编程 传智播客,传智播客王保明Linux培训系列教程全120集
  10. STL容器与拷贝构造函数
  11. OTA,一个万亿市场的风口
  12. 一文弄懂调节器的PID自整定原理和方法
  13. python批量处理图片颜色反转_Python批量处理图片
  14. 计算机两个硬盘的作用,电脑装2个硬盘有什么好处与坏处
  15. 4个基本不等式的公式高中_高中数学基本不等式知识点
  16. vue + elemen可远程搜索select选择器的封装(思路及源码分享)
  17. 点击输入框,标题上移
  18. UBT5:ubuntu安装GIMP
  19. Exception: D:\Unity\Editor\Data\il2cpp/build/il2cpp.exe did not run properly!
  20. SQLSERVER CDC相关

热门文章

  1. corelDraw 的CDR格式解析
  2. 人工智能和机器学习方面重要会议
  3. Android AsyncTask的使用及泛式参数
  4. 817考研c语言程序设计,2018年沈阳航空航天大学计算机院817C程序设计考研核心题库...
  5. jqGrid----下拉列表框下拉联动,dataEvents回调函数。
  6. Node.js内置模块 events的基本使用
  7. 用verilog 蜂鸣器的演奏乐曲
  8. 配置Exchange Server 2010多种邮件客户端收发电子邮件
  9. 计算机视觉 python 解图片数独题
  10. sRGB和scRGB的区别