import java.io.File;

import java.io.FileOutputStream;

import com.itextpdf.text.*;

import com.itextpdf.text.pdf.PdfWriter;

public class CreatePDF {

public static void main(String[] args) throws Exception {

Document pdfDoc = new Document();

// 将要生成的 pdf 文件的路径输出流

FileOutputStream pdfFile = new FileOutputStream(new File(

"F:firstPdf.pdf"));

// pdf 文件中的一个文字段落

Paragraph paragraph = new Paragraph(

"My first PDF file with an image ...");

Image image = Image.getInstance("images/pdftest.png");

// 用 Document 对象、File 对象获得 PdfWriter 输出流对象

PdfWriter.getInstance(pdfDoc, pdfFile);

pdfDoc.open(); // 打开 Document 文档

// 添加一个文字段落、一张图片

pdfDoc.add(paragraph);

pdfDoc.add(image);

pdfDoc.close();

}

}

import java.io.File;

import java.io.FileOutputStream;

import com.itextpdf.text.Element;

import com.itextpdf.text.Image;

import com.itextpdf.text.pdf.BaseFont;

import com.itextpdf.text.pdf.PdfArray;

import com.itextpdf.text.pdf.PdfContentByte;

import com.itextpdf.text.pdf.PdfDictionary;

import com.itextpdf.text.pdf.PdfName;

import com.itextpdf.text.pdf.PdfObject;

import com.itextpdf.text.pdf.PdfReader;

import com.itextpdf.text.pdf.PdfStamper;

public class CAPdf{

public static void main(String[] args) throws Exception {

FileUtil.fileChannelCopy(new File("F:\\firstPdf.pdf"),new File("f:\\firstPdf_temp.pdf"));

PdfReader reader = new PdfReader("f:firstPdf.pdf");

PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("f:firstPdf_temp.pdf"));

PdfContentByte overContent = stamper.getOverContent(1);

//添加文字

BaseFont font = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);

overContent.beginText();

overContent.setFontAndSize(font, 10);

overContent.setTextMatrix(200, 200);

overContent.showTextAligned(Element.ALIGN_CENTER,"需要添加的文字",180,530,0);

overContent.endText();

//添加图片

PdfDictionary pdfDictionary = reader.getPageN(1);

PdfObject pdfObject = pdfDictionary.get(new PdfName("MediaBox"));

PdfArray pdfArray = (PdfArray) pdfObject;

Image image = Image.getInstance("images/pdftest.png");

image.setAbsolutePosition(100,100);

overContent.addImage(image);

//添加一个红圈

overContent.setRGBColorStroke(0xFF, 0x00, 0x00);

overContent.setLineWidth(5f);

overContent.ellipse(250, 450, 350, 550);

overContent.stroke();

stamper.close();

}

}

.pdf文件通过java拷贝,java复制pdf而且往pdf文件中添加内容相关推荐

  1. java file move_Java复制、移动和删除文件

    Java复制.移动和删除文件 2019-02-05 编程之家收集整理的这篇文章主要介绍了Java复制.移动和删除文件,编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考. 复制文件: File ...

  2. 扫描型PDF转成可搜索可复制的文字型PDF,使用PDF24 OCR 程序报“下载需要的文件时出现一个错误”

    1.PDF工具 -- PDF24 需要找一个将扫描型的PDF转换成可搜索可复制的PDF文件的工具,搜到的大部分工具我都试用了,要么转换出来样式不行,要么收费.然后找到了一个下图所示的PDF24 的工具 ...

  3. java文档打印_java 如何读取文档中的内容 并打印

    java 如何读取文档中的内容 并打印 关注:230  答案:2  信息版本:手机版 电脑版 解决时间 2021-01-25 16:31 提问者非莪莫属 2021-01-25 04:31 java 如 ...

  4. mac u盘文件过大 拷贝不进去_使用mac时文件太大无法拷贝怎么办

    高新科技的不断发展,我们对文件储存需求越来越大,无论是手机还是电脑文件的存储经常会非常大,那么对于这些大文件的拷贝,我们常常会遇到文件太大无法拷贝的问题,下面小编就针对mac用户来教大家如何解决这一问 ...

  5. u盘无法复制文件进去_U盘无法复制超过4GB的大文件怎么办?

    相信许多朋友经常通过U盘复制文件来转移数据,但可能会碰到下面的情况:U盘上明明还有大于4GB的空间,但只要复制超过4G大小的文件就提示文件太大而无法复制,是什么问题呢?该如何解决?下面IT技术资料分享 ...

  6. java 直接用复制的安全路径 打开文件错误,手动输入后错误消失

    直接复制路径,然后运行,会发生错误. 错误如下,不知为啥. 之后,重新输入一样的路径,错误消失. 错误的代码 package try_a_package;import java.io.File; im ...

  7. java 用于xcopy复制_java调用copy复制子文件夹及文件到指定目录(非xcopy)

    因为作所以烦因为烦所以快乐...(为什么不先查一下有没有现成的命令,后悔啊!!) 不知道有xcopy这个命令就自己想写个复制子目录和文件的功能...以下故事诞生了 是这样的,昨天在学校弄的半成品,半成 ...

  8. java异常的总接口_重构:Java特别的接口修改:在throws子句中添加一个异常?

    我用具体的代码来解释下吧 接口A,有方法X public interface A { public void methodX() throws IOException; } 在用户模块有这样一段调用 ...

  9. Java定义一个数组,并向该数组中添加一个值或对象

    1.对于向HTML的JS数组,比较简单. let arr=[]; arr.push(3); arr.push(5); 2.JAVA中,一般数组是不能添加元素的,因为他们在初始化时就已经定好了长度,不能 ...

  10. 【Java之轨迹】SpringBoot 实现动态往数据库中添加时间点,使程序在规定的时间点执行任务(定时任务变形应用,附实战:动态日程提醒任务调度)

    -- 目录 -- 1. 需求产生背景 2. 实现思路 3. 具体实现(实战) ① 示范建表(只想看逻辑的可以跳过) ② 自定义任务调度器(重 - 参考与改造) ② 自定义装载任务(重 - 初始化任务调 ...

最新文章

  1. 自定义本地Maven 仓库 配置
  2. 获取dbgrid的行索引
  3. boost::math模块使用 non_finite_num facet 的一个非常简单的例子
  4. 导出oracle sequences,利用数据泵只导出序列
  5. Linux 火狐浏览器安装Flash插件
  6. android 动态申请权限_你真的了解Android权限机制吗?
  7. 【21】基于java的旅游信息管理系统
  8. Amos24程序安装及注意事项
  9. Python 数值求解偏微分方程(含两个示例)
  10. 树莓派 vnc Cannot currently show the desktop
  11. 4入4出Modbus RTU继电器模块说明书
  12. 掠食细菌—蛭弧菌B. bacteriovorus,可以对抗革兰氏阴性感染?
  13. iOS 开发的一些奇巧淫技
  14. 英文简历中地址应该怎么翻译?
  15. SQL数据库基本语句
  16. 引入echarts的js文件报错——Cannot read properties of null (reading ‘getAttribute‘)
  17. 用 Flutter 实现 PageView 指示器
  18. 网站搜索引擎优化指南
  19. linux图形框架DRI
  20. MySQL: 1366 incorrect string value

热门文章

  1. html 随机 小游戏代码,html小游戏代码#(精选.)(3页)-原创力文档
  2. 抛出 java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to andr异常
  3. ABIs [armeabi] are not supported for platform. Supported ABIs are [arm64-v8a, armeabi......
  4. 遍历Map集合的四种方式
  5. 我的新书《Android App开发从入门到精通》终于出版啦
  6. U盘PE装系统-CGI一键还原备份安装方法
  7. html js把json转化为excel,json转换Excel
  8. linux mysql更改表字段_MySQL 修改表字段优化方案
  9. Spring Boot内嵌的tomcat日志
  10. Android机顶盒网络地址端口连通性测试