1.创建一个空的PDF

下面的小例子表示如何使用PDFBox来创建一个新的PDF文档。

 // 创建一个空的文档
PDDocument document = new PDDocument(); // 创建一个空的Page然后添加到文档中
PDPage blankPage = new PDPage();
document.addPage( blankPage ); // 保存文档
document.save("BlankPage.pdf"); // 一定要确保最后文档是别关闭的
document.close();

1.1举例说明

	public static void createPDFFile() {

		PDDocument document = null;
PDPage blankPage = null; try {
document = new PDDocument();
blankPage = new PDPage(); document.addPage(blankPage);
document.save("D:" + File.separator + "pdfBox.pdf"); } catch (COSVisitorException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
document.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

2.使用PDF字体的Hello World

// 创建一个文档并且添加一个Page
PDDocument document = new PDDocument();
PDPage page = new PDPage();
document.addPage( page ); // 创建一个FONTT
PDFont font = PDType1Font.HELVETICA_BOLD; // 创建一个待加入的文档流
PDPageContentStream contentStream = new PDPageContentStream(document, page); // 使用选择的字体定义一个文本内容
contentStream.beginText();
contentStream.setFont( font, 12 );
contentStream.moveTextPositionByAmount( 100, 700 );
contentStream.drawString( "Hello World" );
contentStream.endText(); // 关闭内容流
contentStream.close(); // 保存结果并且关闭文档对象
document.save( "Hello World.pdf");
document.close();

2.1举例说明

	public static void usePdfFont() {

		PDDocument document = new PDDocument();
PDPage page = new PDPage();
PDPageContentStream contentStream = null; PDFont font = PDType1Font.HELVETICA_BOLD; try {
document.addPage(page);
contentStream = new PDPageContentStream(document, page);
contentStream.beginText();
contentStream.setFont(font, 12);
contentStream.moveTextPositionByAmount(100, 700);
contentStream.drawString("Hello World");
contentStream.endText();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
contentStream.close();
} catch (IOException e) {
e.printStackTrace();
}
} try {
document.save("D:" + File.separator + "Hello World.pdf");
} catch (COSVisitorException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
document.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

PDFBox之文档创建的更多相关文章

  1. -bash: 无法为立即文档创建临时文件: 设备上没有空间---记一次报错

    故障发生原因 测试环境,之前用该机器做过docker-compose,后来有需要用到该机器上的docker环境,需要将旧的docker容器全部删除,由于之前启动是使用docker-compose启动的 ...

  2. 管理员技术(二): 访问练习用虚拟机、 命令行基础技巧 、 挂载并访问光盘设备、ls列表及文档创建、复制删除移动

    一.访问练习用虚拟机 目标: 学会在教学环境中访问练习用虚拟机,主要完成以下事项: 1> 快速重置教学虚拟机环境       2> 通过“虚拟系统管理器”访问虚拟机       3> ...

  3. 使用Dom4j对XML文档创建与解析

    创建XML文件: public class Dom4jCreateXml { public void testCreatXml() { //创建文档对象 Document document = Doc ...

  4. 第07章:MongoDB-CRUD操作--文档--创建

    ①语法 insert() save()  --有修改没有新增 insertOne() [3.2版本新增]向指定集合中插入一条文档数据 insertMany() [3.2版本新增]向指定集合中插入多条文 ...

  5. dom4j的下载 在线文档 创建用户库

  6. 在C#中创建word文档

    在下面文档中  首先引用word组件:Microsoft.Office.Interop.Word 在头文件中写上 using Word = Microsoft.Office.Interop.Word; ...

  7. lucene全文搜索之三:生成索引字段,创建索引文档(给索引字段加权)基于lucene5.5.3

    前言:上一章中我们已经实现了索引器的创建,但是我们没有索引文档,本章将会讲解如何生成字段.创建索引文档,给字段加权以及保存文档到索引器目录 luncene5.5.3集合jar包下载地址:http:// ...

  8. Elasticsearch 创建、更新、删除文档、处理冲突

    ----创建新文档---- 1._index,_type和_id的组合可以唯一标识一个文档,所以确保一个新文档的最简单的办法就是,使用索引请求的POST形式让elsticsearch自动生成唯一_id ...

  9. XMLHelper类 源码(XML文档帮助类,静态方法,实现对XML文档的创建,及节点和属性的增、删、改、查)

    以下是代码: using System; using System.Collections.Generic; using System.Linq; using System.Web; using Sy ...

随机推荐

  1. Android笔记 之 旋转木马的音乐效果

    一.前言-- 大家一定在百度音乐上在线听过歌,有没有注意到那个旋转唱片-- 就上面那个,当音乐在播放的时候,那个光碟轮子在转,就想旋转木马一般.感觉好好玩啊. 碰巧想起前阵子做音乐播放器,哎,那这个也 ...

  2. 具体说明 Flume介绍、安装和配置

    社论: 本文总结"Hadoop生态系统"中的当中一员--Apache Flume 写在前面二: 所用软件说明: 一.什么是Apache Flume 官网:Flume is a di ...

  3. windows cmd命令行下创建文件和文件夹

    在window下无法通过 右键=>新建 命令来创建以点开头的文件和文件夹 比如 .log ,会提示必须输入文件名. 可以通过命令行来创建 新建文件夹 mkdir .vs 新建文件 type NU ...

  4. 四、Linux/UNIX操作命令积累【chmod、chown、tail】

    正在使用Linux/UNIX下一个.经常使用文本界面来设置系统或操作系统,笔者也是在指挥这方面工作的过程中不断的接触.因此,为了此特酝酿.准备.開始了本文的编写.本文主要记录自己平时遇到的一些Linu ...

  5. extjs每一个组件要设置唯一的ID

    extjs每一个组件要设置唯一的ID,否则会造成各种错误 EXTJS基本上是靠ID来识别组件的,假如你在panel1中有个ID:"keyword"的textfield,而panel ...

  6. 新秀学习SSH(十四)——Spring集装箱AOP其原理——动态代理

    之前写了一篇文章IOC该博客--<Spring容器IOC解析及简单实现>,今天再来聊聊AOP.大家都知道Spring的两大特性是IOC和AOP. IOC负责将对象动态的注入到容器,从而达到 ...

  7. B/S 类项目改善

    B/S 类项目改善的一些建议   要分享的议题 性能提升:在访问量逐渐增大的同时,如何增大单台服务器的 PV2 上限,增加 TPS3 ? RESTful:相较于传统的 SOAP1,RESTful 风格 ...

  8. android 拍照注意问题

    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, reqCode) ...

  9. Android 4.4(KitKat)表格管理子系统 - 骨架

    原文地址:http://blog.csdn.net/jinzhuojun/article/details/37737439 窗体管理系统是Android中的主要子系统之中的一个.它涉及到App中组件的 ...

  10. 第10章 外观模式(Façade Pattern)

    原文   第10章 外观模式(Façade Pattern) 概述:   在软件开发系统中,客户程序经常会与复杂系统的内部子系统之间产生耦合,而导致客户程序随着子系统的变化而变化.那么如何简化客户程序 ...