本教程展示了如何使用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");
    }
}效果图如下:

 



 
					



