天天看點

java生成pdf旋轉_Java 設定PDF頁面大小/旋轉、紙張方向、頁邊距

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 PageSettings_PDF {

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) {

//設定新文檔第一頁的頁面寬、高為原來的1.2倍

float scale = 1.2f;

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) {

//設定新文檔第二頁的頁邊距為左右100、上下100

PdfMargins margins = new PdfMargins(100,100);

//設定新文檔第二頁的頁面大小為A3

PdfPageBase newPage = newDoc.getPages().add(PdfPageSize.A3, margins);

//調整畫布,設定内容也根據頁面的大小進行縮放

double wScale = (PdfPageSize.A3.getWidth() - 10) / PdfPageSize.A3.getWidth();

double hScale = (PdfPageSize.A3.getHeight() - 10) / PdfPageSize.A3.getHeight();

newPage.getCanvas().translateTransform(wScale, hScale);

//複制原文檔的内容到新文檔

newPage.getCanvas().drawTemplate(page.createTemplate(), new Point2D.Float());

}

if (i == 2) {

//設定新文檔第三頁的頁邊距為左右240,上下50

PdfMargins margins = new PdfMargins(240, 50);

//設定新文檔第三頁的頁面大小為A3, 頁面旋轉角度為0,紙張方向為水準

PdfPageBase newPage = newDoc.getPages().add(PdfPageSize.A3, margins, PdfPageRotateAngle.Rotate_Angle_0, PdfPageOrientation.Landscape);

//調整畫布,設定内容也根據頁面的大小進行縮放

double wScale = PdfPageSize.A4.getHeight() / page.getSize().getWidth();

double hScale = PdfPageSize.A4.getWidth() / page.getSize().getHeight();

newPage.getCanvas().translateTransform(wScale, hScale);

//複制原文檔的内容到新文檔

newPage.getCanvas().drawTemplate(page.createTemplate(), new Point2D.Float());

}

//儲存PDF

newDoc.saveToFile("pdfPageSetting.pdf");

}

}

}