基于Java实现PDF文本旋转倾斜

本文介绍通过Java程序在PDF文档中设置文本旋转、倾斜的方法。设置文本倾斜时,通过定义方法TransformText(page);并设置page.getCanvas().skewTransform(float angleX, float angleY);
来实现文本倾斜;设置文本旋转时,通过定义方法RotateText(page);并设置page.getCanvas().rotateTransform(float angle);来实现文本旋转。详细代码示例参考以下内容。

注:需要使用PDF类库工具Spire.PDF for Java,可下载jar包,并解压将lib文件夹下载Jar包并解压,并解压将lib文件夹下的jar文件导入java程序;或者也可以通过Maven仓库下载导入。

Java示例

import com.spire.pdf.*;
import com.spire.pdf.graphics.*;

import java.awt.*;

public class TextStyle {
  public static void main(String[] args) {
    //创建PDF文档,添加一页
    PdfDocument pdf = new PdfDocument();
    PdfPageBase page = pdf.appendPage();

    //设置文本倾斜
    TransformText(page);

    //旋转文本
    RotateText(page);

    //保存文档
    pdf.saveToFile("DrawText.pdf",FileFormat.PDF);
    pdf.close();
  }

  //自定义方法在页面添加文本,并设置文本偏移
  private static void TransformText(PdfPageBase page)
  {
    PdfGraphicsState state = page.getCanvas().save();//保存画布状态
    PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 18f);//创建字体,包括字体、字号等

    //创建三个画刷,并指定颜色
    PdfSolidBrush brush1 = new PdfSolidBrush(new PdfRGBColor(new Color(60,179,113)));
    PdfSolidBrush brush2 = new PdfSolidBrush(new PdfRGBColor(new Color(139,0,139)));
    PdfSolidBrush brush3 = new PdfSolidBrush(new PdfRGBColor(new Color(205,92,92)));

    page.getCanvas().translateTransform(20,120);//设置文本在画布中的坐标位置
    page.getCanvas().scaleTransform(1f,1f);//设置文本大小(scaleX值越大,文本越向右横向拉伸;scaleY值越大,文本越向上纵向拉伸)
    page.getCanvas().skewTransform(-10,0);//设置文本偏转角度(angleX值为文本整体偏移角度,angleY值为字符偏移角度)
    page.getCanvas().drawString("Go! Turn Around! Go! Go! Go!", font, brush1, 0, 0);//绘制文本

    page.getCanvas().skewTransform(10, 10);
    page.getCanvas().drawString("Go! Turn Around! Go! Go! Go!", font, brush2, 0, 0);//绘制文本

    page.getCanvas().scaleTransform(1f, -2f);
    page.getCanvas().drawString("Go! Turn Around! Go! Go! Go!", font, brush3, 0, -2 * 18);//绘制文本

    //再次保存画布状态
    page.getCanvas().restore(state);
  }

  //自定义方法在页面添加文本,并设置文本旋转
  private static void RotateText(PdfPageBase page)
  {
    PdfGraphicsState state = page.getCanvas().save();//保存画布状态

    PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 10f);//创建字体
    PdfSolidBrush brush4 = new PdfSolidBrush(new PdfRGBColor(139,69,19));//创建画刷4

    PdfStringFormat centerAlignment = new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Middle);//设置文本对齐方式

    //指定文本在画布中的坐标位置
    float x = (float) (page.getCanvas().getClientSize().getWidth()/2);
    float y = 390;
    page.getCanvas().translateTransform(x,y);

    //循环绘制12条文本内容,并设置每条文本内容间隔30度,即每一条文本内容以绘制的上一文本内容旋转30度(这里如只需绘制单个文本,直接指定旋转角度即可)
    for (int i = 0; i < 12; i++) {
      page.getCanvas().rotateTransform(30);
      page.getCanvas().drawString("Go! Turn Around! Go! Go! Go!", font, brush4, 20, 0, centerAlignment);
    }

    //再次保存画布状态
    page.getCanvas().restore(state);
  }
}

设置结果:

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

(0)

相关推荐

  • Java 读取PDF中的文本和图片的方法

    本文将介绍通过Java程序来读取PDF文档中的文本和图片的方法.分别调用方法extractText()和extractImages()来读取. 使用工具:Free Spire.PDF for Java(免费版) Jar文件获取导入: 方法1:通过官网下载jar文件包.下载后,解压文件,并将lib文件夹下的Spire.Pdf.jar文件导入java程序.导入后如下图: 方法2: 可通过maven仓库安装导入. Java代码示例 import com.spire.pdf.*; import java

  • Java 在PDF中添加条形码的两种方法

    条形码,是由宽度不等的多个黑条和空白所组成,用以表达一组信息的图形标识符.通过给文档添加条形码,可以直观,快捷地访问和分享一些重要的信息.本文就将通过使用Java程序来演示如何在PDF文档中添加Codebar.Code128A和Code39条形码.除此之外,还可支持创建Code11.Code128B.Code32.Code39 Extended .Code93和Code93 Extended条形码. 使用工具:Free Spire.PDF for Java(免费版) Jar文件获取及导入: 方法

  • Java实现Word/Pdf/TXT转html的实例代码

    引言: 最近公司在做一个教育培训学习及在线考试的项目,本人主要从事网络课程模块,主要做课程分类,课程,课件的创建及在线学习和统计的功能,因为课件涉及到多种类型,像视频,音频,图文,外部链接及文档类型.其中就涉及到一个问题,就是文档型课件课程在网页上的展示和学习问题,因为要在线统计学习的课程,学习的人员,学习的时长,所以不能像传统做法将文档下载到本地学习,那样就不受系统控制了,所以最终的方案是,在上传文档型课件的时候,将其文件对应的转换成HTML文件,以便在网页上能够浏览学习 下边主要针对word

  • 如何实用Java实现合并、拆分PDF文档

    前言 处理PDF文档时,我们可以通过合并的方式,来任意组几个不同的PDF文件或者通过拆分将一个文件分解成多个子文件,这样的好处是对文档的存储.管理很方便.下面将通过Java程序代码介绍具体的PDF合并.拆分的方法. 工具:Free Spire.PDF for Java 2.0.0 (免费版) 注:2.0.0版本的比之前的1.1.0版本在功能上做了很大提升,支持所有收费版的功能,只是在文档页数上有一定限制,要求不超过10页,但是对于常规的不是很大的文件,这个类库就非常实用. jar文件导入: 方法

  • Java实现Word/Excel/TXT转PDF的方法

    引言: 前段时间公司做的教育系统,系统需要实时记录用户学习课程的情况和时间,所以对一些除视频课程之外,对一些文本文档型课件同样如此,初次的方案是讲office相关类型的文件进行转换Html文件,然后展示对应的html文件,PC端差不多没问题了,但是个别文件再转换html之后,样式出现了错乱,即时做了编码转换处理,但是还是有个别乱码,最后改变方案,最后统一将文件转为pdf,然后通过流的方式在前端展示,其中包括Word Excel PPT TXT PDF等文件,代码如下: 备注:本来是可以直接展示p

  • Java PDF 添加数字签名的实现方法

    经过数字签名的文档,能够使作者之外的人无法对其进行修改.因此,在PDF文档中添加数字签名可以保证其安全性和真实性.同时根据添加内容的差异性,数字签名可分为文本数字签名.图片数字签名.图片及文本数字签名.本文将通过Spire.PDF for Java来演示如何在PDF文档中添加数字签名. 使用工具:Spire.PDF for Java 2.11.4 Jar文件获取及导入: 方法1:通过官网下载获取Jar包.下载后,解压文件,并将lib文件夹下的Spire.Pdf.jar文件导入Java程序.(如下

  • Java基于Spire Cloud Excel把Excel转换成PDF

    Spire.Cloud.Excel Sdk 提供GeneralApi接口和WorkbookApi接口,支持将本地Excel和云端Excel文档转换为ODS, PDF, XPS, PCL, PS等格式.本文以将Excel表格转为PDF为例,介绍实现格式转换的步骤及方法. 所需工具:Spire.Cloud.Excel.Sdk 必要步骤: 步骤1:Jar文件下载及导入.可通过"下载中心"下载获取jar:或者通过maven仓库安装导入,具体参考安装方法. 步骤2:ID及Key获取.需要在云端创

  • Java使用itext5实现PDF表格文档导出

    最近拿到一个需求,需要导出PDF文档,市面上可以实现的方法有很多,经过测试和调研决定使用itext5来实现,话不多说,说干就干. 1.依赖导入 <!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> &l

  • 基于Java实现PDF文本旋转倾斜

    本文介绍通过Java程序在PDF文档中设置文本旋转.倾斜的方法.设置文本倾斜时,通过定义方法TransformText(page);并设置page.getCanvas().skewTransform(float angleX, float angleY); 来实现文本倾斜:设置文本旋转时,通过定义方法RotateText(page);并设置page.getCanvas().rotateTransform(float angle);来实现文本旋转.详细代码示例参考以下内容. 注:需要使用PDF类库

  • java使用itext导出PDF文本绝对定位(实现方法)

    jar:itext-4.2.1.jar 在很多公文的落款处都需要绝对定位,所以记录此代码如下: PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("test.pdf")); PdfContentByte cb = writer.getDirectContent(); BaseFont bf= BaseFont.createFont("STSong-Light", "

  • 基于java文本复制的7种方式总结

    如下所示: package copy; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutput

  • java根据富文本生成pdf文件过程解析

    这篇文章主要介绍了java根据富文本生成pdf文件过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 public class PdfUtil { /* * 生成pdf工具类 * wmy 12:40 2019/8/9 * @Param [guideBook, pdfPath] * @return java.lang.Boolean **/ public static Boolean htmlToPdf(GuideBook guideBook

  • Java 基于Spire.Cloud.SDK for Java在PDF中绘制形状

    Spire.Cloud.SDK for Java提供了pdfPathApi接口可用于在PDF文档中绘制形状(或图形),如绘制线条形状drawLine().绘制矩形形状drawRectanglef(),下面将介绍如何通过Java示例和步骤来实现: 一.导入jar文件.(有2种方式) 创建Maven项目程序,通过maven仓库下载导入.以IDEA为例,新建Maven项目,在pom.xml文件中配置maven仓库路径,并指定spire.cloud.sdk的依赖,如下: <repositories>

  • 利用Java设置Word文本框中的文字旋转方向的实现方法

    Java设置Word文本框中的文字旋转方向 本次程序测试环境如下: Word测试文档版本:.docx 2013 Word Jar包工具:free spire.doc.jar 3.9.0 代码编译工具:IDEA Jdk版本:1.8.0 导入操作文档所需的jar包工具,如图结果: Java import com.spire.doc.*; import com.spire.doc.documents.*; import com.spire.doc.fields.TextBox; import com.

  • 基于Python实现PDF区域文本提取工具

    目录 功能简介 开发代码 功能简介 打开软件后界面如下: 点击打开文件按钮打开之前的PDF文件后效果如下: 框选区域后,标题栏会自动显示当前框选的区域提取到的文字,还可以左右按钮切换: 实际我们需要提取文字的区域可能不止这一个,所以程序支持多区域框选: 完成区域框选后就可以点击保存文件,将PDF每页提取到的文本保存到一个csv文件中,当前选区的保存结果如下: 可以看到已经按框选顺序依次保存了每一个区域的字符串. 如果选择区域时发现提取结果不准确,可以撤销后重新选择: 保存图片则会将PDF的每页的

  • Java给PDF加水印并合并多个文件

    目录 前言 准备环境 代码 添加依赖 工具类 测试 测试加水印与背景 测试pdf合并 总结 前言 本文基于itext7实现pdf加水印和合并的操作.实际上在我们实际项目应用中,对于pdf的操作也是比较常见的,我上一个项目中就有将结果转成pdf导出的需求. 准备环境 jdk8,idea2020.1.1,maven3 代码 添加依赖 <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all&

  • 基于Java生成图片验证码的方法解析

    目录 使用Java生成图片验证码完全解析 注意事项 如何加入噪点 如何生成干扰线 什么样的算法生成噪点比较好 验证码如何避免被ocr识别 如何斜放文本 四位图形验证码 调整噪点的透明度 使用Java生成图片验证码完全解析 在 Java 中开发图片验证码功能,您可以使用 Java 图形处理库,比如 Java Advanced Imaging (JAI) 或者 Java2D,来生成图片并将文本写入图片.具体实现方法如下: 创建一个 BufferedImage 对象,并设置图片的宽度和高度. 获取图片

随机推荐