本文介绍通过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);

}

}

设置结果:

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

java实现pdf旋转_基于Java实现PDF文本旋转倾斜相关推荐

  1. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  2. java生成pdf旋转_基于Java实现PDF文本旋转倾斜

    本文介绍通过Java程序在PDF文档中设置文本旋转.倾斜的方法.设置文本倾斜时,通过定义方法TransformText(page);并设置page.getCanvas().skewTransform( ...

  3. 大学生java项目创意申请表_基于java ee的大学生作品展示系统.pdf

    基于java ee的大学生作品展示系统.pdf 还剩 4页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 第34卷第3期 2015年6月 南昌工程学院学 ...

  4. java 开源 cms系统_基于Java的开源CMS系统选择(转)

    CMS概述 对于网站CMS系统而言,基于PHP的是主流,如Drupal/Joomla在各个主流虚拟机提供商上都是标准配置,也被广泛使用. 但如果你拥有Java团队,或者项目目标是想建立一个企业网使用的 ...

  5. java cms 开源系统_基于Java的开源CMS系统选择

    CMS概述 对于网站CMS系统而言,基于PHP的是主流,如Drupal/Joomla在各个主流虚拟机提供商上都是标准配置,也被广泛使用. 但如果你拥有Java团队,或者项目目标是想建立一个企业网使用的 ...

  6. java农产品查询系统_基于java的农产品销售系统的设计与实现论文.docx

    基于java的农产品销售系统的设计与实现论文.docx 分类号_______________ 密级________________ UDC _______________ 学号_毕业设计(论文)论文题 ...

  7. java的cms系统_基于Java的开源CMS系统选择

    CMS概述 对于网站CMS系统而言,基于PHP的是主流,如Drupal/Joomla在各个主流虚拟机提供商上都是标准配置,也被广泛使用. 但如果你拥有Java团队,或者项目目标是想建立一个企业网使用的 ...

  8. java 计算移动平均线_基于Java语言开发的个性化股票分析技术:移动平均线(MA)...

    基于Java语言开发的个性化股票分析技术:移动平均线(MA) 基于 Java 语言开发的个性化股票分析技术:移动平均线(MA)移动平均线(MA)是以道·琼斯的"平均成本概念"为理论 ...

  9. java 静态对象赋值_基于Java class对象说明、Java 静态变量声明和赋值说明(详解)...

    先看下JDK中的说明: java.lang.Object java.lang.Class Instances of the class Class represent classes and inte ...

  10. java线程卡住排查_基于 Java 线程栈 排查问题

    除日志外,还有没有别的方式跟踪线上服务问题呢?或者,跟踪并排除日志里无法发现的问题? 方法当然是有的,就是通过现场快照定位并发现问题.我们所说的现场,主要指这两方面: Java 线程栈.线程栈是Jav ...

最新文章

  1. nodejs配置nginx 以后链接mongodb数据库
  2. 阿里发布千亿参数规模AI模型,可设计30多种物品高清图像
  3. python读取 application_python PyQt5.QtWidgets.QApplication类(sys.argv)(app应用对象类)...
  4. 《简明 Python 教程》笔记
  5. 在Spring中了解事务注释
  6. 原生Java高仿抖音短视频APP双端源码
  7. androidsdcard挂载目录_获取android手机的自带存储路径和sdcard存储路径
  8. Java Redis 做分布式锁
  9. FreeMarker循环
  10. [Python] itertools.islice(iterable, start, stop[, step]) 创建迭代器并返回所选元素
  11. ruby操作常用数据库 - 使用DBI[翻译 转帖]
  12. 3.5英寸万转硬盘的末路(万转“偏瘫”记连载二)
  13. 我经常逛的技术网站,个个经典
  14. 浏览器同源策略及其规避方法
  15. 关于stm32优先级大小的理解
  16. Excel单个单元格内逗号分割的字符串去重
  17. drozer 找不到java_自己安装drozer时出现各种问题的解决
  18. html修改文本框样式,HTML实用文本框样式
  19. 纺织品行业——瑞士蓝标Bluesign认证
  20. Transformer对接公司需求的调研报告

热门文章

  1. Android之常见UI控件
  2. 台式计算机的cpu,CPU天梯图2018年9月最新版 九月台式电脑CPU性能排行 (全文)
  3. 互联网运营常用8大数据分析模型
  4. veeam安装和部署_Veeam Backup Replication 8 安装配置
  5. 206、3分钟学会路由器的无线桥接,超实用
  6. 人工神经网络概念梳理与实例演示
  7. highcharts在Vue项目中使用去水印方法
  8. 网络流量分析系统的价值
  9. 小妙招:教你如何查询获取企业工商数据
  10. 跑深度模型的显卡_人工智能研究者应该选择哪款显卡?