设置页面大小及页边距(参数都是float型):
Rectangle pagesize = new Rectangle(200f, 800f); //设置页面 200*800 单位是用户显示单元,默认是1/72英寸。
Document document = new Document(pagesize, 20f, 20f ,20f ,20f); //页边距,顺序是左右上下。
自定义用户显示单元大小:
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("HelloWorld.pdf"));
writer.setUserunit(72f); //这和上面的配合可以更改实际的页面大小和边距。
使用标准页面格式:
Document document = new Document(PageSize.LETTER); //在 PageSize 类中,包括A0-A10,B0-B10,LETER,LEGAL,LEDGER,TABLOID。
设置大小边距等属性的另一种方式:
document.setMargins(10f, 20f, 10f, 20f);//上下左右顺序同上
document.setPageSize(PageSize.A5);
模仿实体书横版边距对称(即奇数页边距同 setMargins 中的设置,偶数页的左右边距对调,上下边距不变),或纵版边距对称:
document.setMarginMirroring(true);
document.setMarginMirroringTopBottom(true);
先写进内存,最后再输出:
public static void main(String args[]) throws DocumentException, IOException{
Document document = new Document();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PdfWriter.getInstance(document, baos);
document.open();
document.add(new Paragraph("Hello World!"));
document.close();
FileOutputStream fos = new FileOutputStream("Hello.pdf");
fos.write(baos.toByteArray());
fos.close();
}
另一种方式:
public static void main(String args[]) throws DocumentException,
IOException {
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document,
new FileOutputStream("HelloWorld1.pdf"));
document.open();
PdfContentByte canvas = writer.getDirectContentUnder();
writer.setCompressionLevel(0);//设置压缩等级,0为不压缩,可以用文本编辑器直接看到内容。
canvas.saveState();
canvas.beginText();
canvas.moveText(30, 180);//文本初始位置左偏移和上偏移
canvas.setFontAndSize(BaseFont.createFont(), 12);
canvas.showText("Hello world!");
canvas.endText();
canvas.restoreState();
document.close();
}
将“Hello world!”作为短语插入(效果同上):
public static void main(String args[]) throws DocumentException,
IOException {
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document,
new FileOutputStream("HelloWorld1.pdf"));
document.open();
PdfContentByte canvas = writer.getDirectContentUnder();
writer.setCompressionLevel(0);// 设
Phrase hello = new Phrase("Hello world!");
//下面这句的意思是将短句 hello 变量中的文字,以左对齐的方式,添加到画布 canvas 变量中,
//坐标位置为(30,180),旋转角度为0。
ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, hello, 30, 180, 0);
document.close();
}
创建 n 个文档并将它们保存到压缩包中:
public static void main(String args[]) throws DocumentException,
IOException {
ZipOutputStream zip = new ZipOutputStream(new FileOutputStream(
"test.zip"));
for (int i = 0; i < 3; i++){
ZipEntry entry = new ZipEntry("hello" + i + ".pdf");
zip.putNextEntry(entry);
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, zip);
writer.setCloseStream(false);//如果不这么做,在第一次循环中就会自动关闭zip的输出流。
document.open();
document.add(new Paragraph("Hello world " + i));
document.close();
zip.closeEntry();
}
zip.close();
}
没有评论:
发表评论