通过Java实现对PDF页面的详细设置

前言

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

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

使用工具:Free Spire.PDF of Java 2.2.2(免费版)

方法1:通过官网下载并引用jar,如下步骤:

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

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

方法2:通过maven 安装。

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) {
        //设置新文档第三页的页边距为左右200,上下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");
  }
 }
}

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java实现PDF打印的解决方案

    1.Java Print Service Java Print Service是Java自带的打印框架,所在的包javax.print.PrintService;. 实现PDF打印的代码流程如下 //1.得到一个文件的输入流 FileInputStream fiStream; try { psStream = new FileInputStream("./sample.PDF"); } catch (FileNotFoundException ffne) { } if (psStrea

  • java根据模板动态生成PDF实例

    一.需求说明: 根据业务需要,需要在服务器端生成可动态配置的PDF文档,方便数据可视化查看. 二.解决方案: iText+FreeMarker+JFreeChart生成可动态配置的PDF文档 iText有很强大的PDF处理能力,但是样式和排版不好控制,直接写PDF文档,数据的动态渲染很麻烦. FreeMarker能配置动态的html模板,正好解决了样式.动态渲染和排版问题. JFreeChart有这方便的画图API,能画出简单的折线.柱状和饼图,基本能满足需要. 三.实现功能: 1.能动态配置P

  • java实现在pdf模板的指定位置插入图片

    本文实例为大家分享了java在pdf模板的指定位置插入图片的具体代码,供大家参考,具体内容如下 java操作pdf有个非常好用的库itextpdf,maven: <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.6</version> </dependency> <!--

  • java实现PDF转图片的方法

    本文实例为大家分享了java实现PDF转图片的具体代码,供大家参考,具体内容如下 1.首先利用maven引入所需jar包 <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>fontbox</artifactId> <version>2.0.1</version> </dependency> <dependency> <g

  • Java在PDF中添加表格过程详解

    前言 本文将介绍通过Java编程在PDF文档中添加表格的方法.添加表格时,可设置表格边框.单元格对齐方式.单元格背景色.单元格合并.插入图片.设置行高.列宽.字体.字号等. 使用工具:Free Spire.PDF for Java (免费版) Jar文件获取及导入: 方法1:通过官网下载jar文件包.下载后,解压文件,将lib文件夹下的Spire.Pdf.jar文件导入Java程序. 方法2:通过maven仓库安装导入. Java 代码示例 Java代码 import com.spire.pdf

  • 详解Java生成PDF文档方法

    最近项目需要实现PDF下载的功能,由于没有这方面的经验,从网上花了很长时间才找到相关的资料.整理之后,发现有如下几个框架可以实现这个功能. 1. 开源框架支持 iText,生成PDF文档,还支持将XML.Html文件转化为PDF文件: Apache PDFBox,生成.合并PDF文档: docx4j,生成docx.pptx.xlsx文档,支持转换为PDF格式. 比较: iText开源协议为AGPL,而其他两个框架协议均为Apache License v2.0. 使用PDFBox生成PDF就像画图

  • 通过Java实现对PDF页面的详细设置

    前言 下面的示例将介绍通过Java编程来对PDF页面进行个性化设置的方法,包括设置页面大小.页边距.纸张方向.页面旋转等.这里有如下多种页面大小尺寸可供选择: 同时,设置文档内容旋转时,可支持如下角度进行内容旋转: 使用工具:Free Spire.PDF of Java 2.2.2(免费版) 方法1:通过官网下载并引用jar,如下步骤: 步骤1:在Java程序中新建一个文件夹可命名为Lib.并将产品包中的jar文件(如下图)复制到新建的文件 夹下. 步骤2:复制文件后,添加到引用类库:选中这个j

  • java实现对map的字典序排序操作示例

    本文实例讲述了java实现对map的字典序排序操作.分享给大家供大家参考,具体如下: java中对map的字典序排序,算法验证比对微信官网https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115&token=&lang=zh_CN,搜索关键字"附录1-JS-SDK使用权限签名算法" import java.util.ArrayList; import java.util.Collectio

  • 利用Java实现在PDF中添加工具提示

    目录 导入jar包 添加工具提示ToolTip 本文,将介绍如何通过Java后端程序代码在PDF中创建工具提示.添加工具提示后,当鼠标悬停在页面上的元素时,将显示工具提示内容. 导入jar包 本次程序中使用的是 Free Spire.PDF for Java,具体导入jar文件的方法参考如下内容. 两种方法可导入jar到程序: 方法1. 通过Maven仓库下载导入.在pom.xml配置: <repositories> <repository> <id>com.e-ice

  • java实现对Hadoop的操作

    基本操作 import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.*; import org.junit.Test; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.runner.RunWith; import org.junit.runners.JUnit

  • java实现对excel文件的处理合并单元格的操作

    一.依赖引入 <dependency> <groupId>net.sourceforge.jexcelapi</groupId> <artifactId>jxl</artifactId> <version>2.6.12</version> </dependency> 二.表格操作 1.读取xls文件 测试文件为: 代码: public void test() throws IOException, BiffEx

  • 详解如何用Java实现对m3u8直播流抽帧

    目录 什么是抽帧 什么是 FFmpeg 什么是 JavaCV 最简单的抽帧 抽帧算法 什么是抽帧 抽帧(frame extraction)是指从视频流中提取一些特定的帧,通常是关键帧或者随机帧,以供后续处理.对于m3u8直播流,可以使用Java中的FFmpeg库来实现抽帧功能. 什么是 FFmpeg FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.采用LGPL或GPL许可证.它提供了录制.转换以及流化音视频的完整解决方案. 什么是 JavaCV JavaCV

  • 用定制标签库和配置文件实现对JSP页面元素的访问控制

    控制客户端访问是开发一个基于B/S的架构的系统的开发者必须考虑的问题.JSP或SERVLET规范的基于配置文件的安全策略对资源的控制是以文件为单位的,即只可以定义某个视图全部可以或全部不能被访问.一个比较复杂的系统往往要要求对视图的一部分(如JSP页面里的一个按钮)提供访问控制,只允许被某种角色的用户访问.如果采用可编程的安全策略,因为对用户角色和操作的定义在开发时不能定义,而且这种策略加大了程序员的工作量,它可能不是一种好的办法. 我采用定制标签库和和配置文件来解决这个问题:把要权限控制的JS

  • 基于Python实现对PDF文件的OCR识别

    最近在做一个项目的时候,需要将PDF文件作为输入,从中输出文本,然后将文本存入数据库中.为此,我找寻了很久的解决方案,最终才确定使用tesseract.所以不要浪费时间了,我们开始吧. 1.安装tesseract 在不同的系统中安装tesseract非常容易.为了简便,我们以Ubuntu为例. 在Ubuntu中你仅仅需要运行以下命令: 这将会安装支持3种不同语言的tesseract. 2.安装PyOCR 现在我们还需要安装tesseract的Python接口.幸运的是,有许多出色的Python接

  • java基于dom4j包实现对XML解析的方法

    本文实例讲述了java基于dom4j包实现对XML解析的方法.分享给大家供大家参考,具体如下: 本例中的xml文件内容如下: <?xml version = "1.0" encoding="UTF-8"?> <!-- Copyright 难免有错 这是注释--> <自定义的> <!-- iloveyou --> <你喜欢的名字就好> <who a = "i"></who

随机推荐