本教程展示了如何使用spire.pdf for java 来进行pdf的页面设置,包括设置页边距,页面大小以及纸张的方向。原文档是一个三页的pdf,每页均是页边距为0,纵向的a4纸张。现在依次对三个页面进行不同的页面设置。
import com.spire.pdf.*;
import com.spire.pdf.graphics.pdfmargins;
import java.awt.*;
import java.awt.geom.dimension2d;
import java.awt.geom.point2d;
public class pdfpagesetting {
public static void main(string[] args) {
//创建pdfdocument实例
pdfdocument originaldoc = new pdfdocument();
//加载pdf文件
originaldoc.loadfromfile("input.pdf");
//创建一个新的pdfdocument实例
pdfdocument newdoc = new pdfdocument();
//遍历所有pdf 页面
dimension2d dimension2d = new dimension();
for (int i = 0; i < originaldoc.getpages().getcount(); i ) {
pdfpagebase page = originaldoc.getpages().get(i);
if (i == 0) {
float scale = 1.2f;
//设置新文档第一页的页面宽高为原来的1.2倍
float width = (float) page.getsize().getwidth() * scale;
float height = (float) page.getsize().getheight() * scale;
dimension2d.setsize(width, height);
//设置新文档第一页的页边距为左右50,上下100
pdfmargins margins = new pdfmargins(50, 100);
pdfpagebase newpage = newdoc.getpages().add(dimension2d, margins);
//复制原文档的内容到新文档
newpage.getcanvas().drawtemplate(page.createtemplate(), new point2d.float());
}
if (i == 1) {
//设置新文档第二页的页边距为10
pdfmargins margins = new pdfmargins(10);
//设置新文档第二页的页面大小为a2
pdfpagebase newpage = newdoc.getpages().add(pdfpagesize.a2, margins);
//调整画布,设置内容也根据页面的大小进行缩放
double wscale = (pdfpagesize.a2.getwidth() - 20) / pdfpagesize.a4.getwidth();
double hscale = (pdfpagesize.a2.getheight() - 20) / pdfpagesize.a4.getheight();
newpage.getcanvas().scaletransform(wscale, hscale);
//复制原文档的内容到新文档
newpage.getcanvas().drawtemplate(page.createtemplate(), new point2d.float());
}
if (i == 2) {
//设置新文档第三页的页边距为左右10,上下0
pdfmargins margins = new pdfmargins(10, 0);
//设置新文档第三页的页面大小不变,但是纸张方向为水平
pdfpagebase newpage = newdoc.getpages().add(page.getsize(), margins, pdfpagerotateangle.rotate_angle_0, pdfpageorientation.landscape);
//调整画布,设置内容也根据页面的大小进行缩放
double wscale = (pdfpagesize.a4.getheight() - 20) / page.getsize().getwidth();
double hscale = pdfpagesize.a4.getwidth() / page.getsize().getheight();
newpage.getcanvas().scaletransform(wscale, hscale);
//复制原文档的内容到新文档
newpage.getcanvas().drawtemplate(page.createtemplate(), new point2d.float());
}
}
//保存pdf
newdoc.savetofile("pdfpagesetting.pdf");
}
}
效果图如下: