学习Qoppa jPDFWriter的科学实践(二)
Qoppa
admin 发布于:2025-06-10 08:46:47
阅读:loading
Qoppa Software是一家专注于PDF处理和数字文档解决方案的公司,提供丰富的Java、.NET和Web平台的组件。其产品广泛应用于企业、ZF*、金融、医疗等行业,旨在简化PDF和数字文档的处理、管理和集成。特别说明:只为单纯的学习摸索与自我突破,商业软件请勿直接使用于生产环境(购买商业授权)
jPDFWriter是一款免费 Java PDF 创建库。在一些常规需求应用开发中也常会遇到对PDF文件进行操作,对应的开发库也是比较多的,本期跟大家分享的是“Qoppa Software”推出的Java开发库,可用于PDF文档的创建、编辑、预览、格式转换等等多种场景。
(1)jPDFWriter 是一个 Java 类库,允许您直接从 Java 程序创建 PDF 文档,而无需安装任何第三方驱动程序或软件。jPDFWriter 模拟标准 Java 类来打印和绘制图形,以减少使用该库时的学习曲线并重用现有代码;
(2)jPDFWriter 可免费用于商业用途,无需支付任何许可费用。该库采用jPDFWriter 许可证进行授权;
(3)如果您需要比创建 PDF 文档更多的功能,Qoppa Software 还提供了一个名为jPDFProcess 的库,可以打开、操作和打印现有的 PDF 文档;
(4)Qoppa Software 作为面向开发人员的 Java™ PDF SDK API,提供了不同的免费的组件和商业试用组件,试用组件会生成文档水印和插入DEMO等对应的文本字样。
创建方式
(1)使用 jPDFWriter 非常简单的 API 即可直接创建 PDF 文件。只需创建一个 PDFDocument 对象,根据需要创建多个 PDFPage 对象,在页面上绘制字符串、图形或任何其他 Graphics2D 支持的元素,然后保存文档即可。
(2)jPDFWriter 还扩展了标准 Java PrinterJob,以便您可以像使用物理打印机一样创建 PDF 文件。这允许重用现有的打印代码,并允许应用程序在运行时决定将输出发送到打印机还是 PDF 文件。
(3)PDF 文件可以保存到磁盘上的文件中,写入 java.io.OutputStream 或直接写入 javax.servlet.ServletOutputStream 以在 J2EE 应用程序服务器中工作时显示在浏览器中。
(4)jPDFWriter 完全用 Java 编写,因此应用程序的可移植性和操作系统独立性不会受到影响。jPDFWriter 已经在 Windows、Linux、Unix(Solaris、HP UX、IBM AIX)和 Max OS X 上进行了测试。
主要特点
(1)模拟 Java 图形和打印类,从而最大限度地减少代码更改和培训。
(2)允许运行时决定转到打印机或 PDF 文件。
(3)支持 PDF 压缩,以减小文档大小。
(4)支持PDF加密和权限。
(5)支持嵌入字体。
(6)支持所有图像类型,包括 JBIG2 和 JPEG 2000。
(7)适用于 Windows、Linux、Unix 和 Mac OS X(100% Java)。
(8)在 JDK 1.4.2 及以上版本上测试。
(9)部署应用程序时无需安装或配置额外的驱动程序或软件。
public class SampleWriter {
public static void main(String[] args) throws Exception {
PDFDocument document = new PDFDocument();
//设置PDF文档属性
DocumentInfo documentInfo = new DocumentInfo();
documentInfo.setProducer("cn.unrivalied");
document.setDocumentInfo(documentInfo);
//创建文档内容
PDFPage page = document.createPage(new PageFormat());
Graphics2D graphics = page.createGraphics();
graphics.setFont(PDFGraphics.HELVETICA.deriveFont(24f));
graphics.setColor(Color.RED);
//绘制文本
graphics.drawString("Hello 汉字" , 120 , 120);
graphics.setStroke(new BasicStroke(2));
graphics.drawRoundRect(80 , 80 , 300 , 220 , 10 , 10);
//绘制图片
graphics.drawImage(ImageIO.read(new File("resources/input/hello.jpg")) , 100 , 150 , null);
document.addPage(page);
document.saveDocument("resources/output/jPDFWriter_HelloWorld.pdf");
}
}
(示例输出)
(制作工具)
(1)示例使用了jPDFWriter创建输出PDF文档;
(2)示例中演示创建了文本内容、图片内容;
(3)示例中演示了文本样式:字体、颜色、大小、边框等;
(1)Qoppa Software推出了15款Java集成开发组件库,其中jPDFWriter属于免费可商用的组件;
(2)更多的组件需要使用License注册,使用试用版本将会有对应的试用提示信息,比如插入文字水印、图片中被插入水印、内容中被插入DEMO字样的文本,所以科学使用的目的在于单纯使用对应的工具库,不需额外关注License,又不改动Jar文件中的class,同时又恰好没有水印和文本混乱的限制。特别说明:只为单纯的学习摸索与自我突破,商业软件请勿直接使用于生产环境(购买商业授权);
(3)官网提供了对应各个组件的示例代码和组件库的Jar文件下载,未找到有试用Maven库管理组件的形式,需要自行下载相关的组件;
(4)官网的某些页面资料中也有说明还包含上述产品组件范围之外的其它组件,如:OCR等,没有找到详细的示例使用介绍,不作为本次学习摸索的重点;
(5)官网提供的试用组件的Jar文件中的class有经过加密混淆,从class部分入门则难道比较高,本次对于系列组件的摸索在于科学使用方面,对于组件提供的功能广度与深度应用不作过多的摸索;
(6)对各个组件学习摸索的时间并不算太多,发现这么多组件应该不能同时作用于同一个项目中,因为它们不同的组件Jar中提供的class类文件路径存在同名或同类的,存在互相冲突的场景,不知道是否有说明白,以jPDFWriter与jPDFWeb两个组件Jar的截图如下:
(7)相关示例输出文件下载:《jPDFWriter.zip》;
点赞
发表评论
评论列表
留言区
- 学习Qoppa Software整体介绍(一)
- 学习Qoppa jPDFWeb的科学实践(三)
- 学习Qoppa jPDFText的科学实践(四)
- 学习Qoppa jPDFSecure的科学实践(五)
- 学习Qoppa jPDFPrint的科学实践(六)
- 学习Qoppa jPDFPreflight的科学实践(七)
- 学习Qoppa jPDFOptimizer的科学实践(八)
- 学习Qoppa jPDFImages的科学实践(九)
- 学习Qoppa jPDFFields的科学实践(十)
- 学习Qoppa jPDFAssemble的科学实践(十一)
- 学习Qoppa jPDFProcess的科学实践(十二)
- 学习Qoppa jOfficeConvert的科学实践(十三)
- 学习Qoppa jPDFViewer的科学实践(十四)
- 学习Qoppa jPDFNotes的科学实践(十五)
- 学习Qoppa jPDFEditor的科学实践(十六)