zoukankan      html  css  js  c++  java
  • Java PDF页面设置——页面大小、页边距、纸张方向、页面旋转

    下面的示例将介绍通过Java编程来对PDF页面进行个性化设置的方法,包括设置页面大小、页边距、纸张方向、页面旋转等。这里有如下多种页面大小尺寸可供选择;

    同时,设置文档内容旋转时,可支持如下角度进行内容旋转。

    使用工具Free Spire.PDF for Java (免费版)

    关于jar文件引用:

    步骤1:在Java程序中新建一个文件夹可命名为Lib。并将产品包中的2个jar文件复制到新建的文件夹下。

    步骤2复制文件后,添加到引用类库:选中这两个jar文件,点击鼠标右键,选择“Build Path” – “Add to Build Path”。完成引用。

     

    Java示例(供参考)

    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");
        }
      }
    }

    完成代码后,运行程序,生成文档。经过页面设置,效果如下图所示:

     

    (本文完)

     转载请注明出处!

  • 相关阅读:
    苹果一体机发射Wi-Fi
    iphone 屏蔽系统自动更新,消除设置上的小红点
    data parameter is nil 异常处理
    copy与mutableCopy的区别总结
    java axis2 webservice
    mysql 远程 ip访问
    mysql 存储过程小问题
    mysql游标错误
    is not writable or has an invalid setter method错误的解决
    Struts2中关于"There is no Action mapped for namespace / and action name"的总结
  • 原文地址:https://www.cnblogs.com/Yesi/p/10365864.html
Copyright © 2011-2022 走看看