当前位置: 首页 > news >正文

PDF换行的难度,谁能解决?

换行的时候确认不了长度:


import java.awt.*;public class Test {public static void main(String[] args) {String str1 = "淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘";String str2 = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";String str4 = "cccccccccccccccccccccccccccccccccccccccccccccccccccc";String str3 = "111111111111111111111111111111111111111111111111111111111111111";FontMetrics fontMetrics = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration().createCompatibleImage(1, 1, Transparency.TRANSLUCENT).getGraphics().getFontMetrics();int width1 = fontMetrics.stringWidth(str1);int width2 = fontMetrics.stringWidth(str2);int width3 = fontMetrics.stringWidth(str3);int width4 = fontMetrics.stringWidth(str4);System.out.println("宽度 str1: " + width1);System.out.println("宽度 str2: " + width2);System.out.println("宽度 str3: " + width3);System.out.println("宽度 str4: " + width4);}}

运行结果:

宽度 str1: 444
宽度 str2: 364
宽度 str3: 441
宽度 str4: 312

这些长度在pdf里面都是一样的,但是这里运行的宽度确实不同的,目前这个问题还解决不了。

相关文章:

PDF换行的难度,谁能解决?

换行的时候确认不了长度: import java.awt.*;public class Test {public static void main(String[] args) {String str1 "淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘";String str2 "AAAAAAAAAAAAAAAAAAAAAAAAA…...

山东布谷科技直播程序源码使用Redis进行服务器横向扩展

当今,直播程序源码平台作为新媒体时代主流,受到了世界各地人民的喜爱,这也使得直播程序源码平台用户数量的庞大,也难免会出现大量用户同时访问服务器,使服务器过载的情况,当服务器承受不住的时候&#xff0…...

symfony3.4中根据角色不同跳转不同页面

在Symfony 3.4中,可以使用安全组件来实现控制不同角色跳转到不同页面的功能。 首先,确保你已经安装了Symfony的安全组件,并配置了安全相关的配置文件。这些文件通常是 security.yml 和 security.yml。 在配置文件中,你可以定义不…...

Dockerfile部署golang,docker-compose

使用go镜像打包,运行在容器内 redis和mysql用外部的 项目目录结构 w1go项目: Dockerfile # 这种方式是docker项目加上 本地的mysql和redis环境 # go打包的容器 FROM golang:alpine AS builder# 为我们镜像设置一些必要的环境变量 ENV GO111MODULEon …...

什么是Linux,如何在Windows操作系统下搭建Linux环境,远程连接Linux系统

文章目录 什么是LinuxLinux的诞生及发展为什么要学习LinuxLinux内核Linux发行版什么是虚拟机如何在VMware虚拟机中搭建Linux系统环境远程连接 Linux 系统Linux 帮助网站 什么是Linux Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户…...

Ubuntu下RabbitMQ安装与简单使用

一:RabbitMQ基本安装 1.更新依赖包(提前更新依赖包避免出现报错) sudo apt-get update 2.由于rabbitMq使用erlang语言开发,在安装rabbitMq之前需要安装erlang sudo apt-get install erlang 3.查看erlang是否安装成功 sudo erl 安装成功会出现下面的提示…...

力扣62.不同路径(动态规划)

/*** 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。* 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。* 问总共有多少条不同的路径? *…...

TypeScript 泛型的概念和基本使用

什么是TypeScript 泛型? 在定义函数,接口,类的时候不能预先确定使用的数据类型,而是在调用使用这些函数,接口,类的时候才能确定的数据类型; 1,单个泛型的参数 例如通过使用any这种…...

redis的事务和watch机制

这里写目录标题 第一章、redis事务和watch机制1.1)redis事务,事务的三大命令语法:开启事务 multi语法:执行事务 exec语法:取消事务 discard 1.2)redis事务的错误和回滚的情况1.3)watch机制语法&…...

objectMapper.getTypeFactory().constructParametricType 方法的作用和使用

在使用 Jackson 库进行 JSON 数据的序列化和反序列化时,经常会使用到 ObjectMapper 类。其中,objectMapper.getTypeFactory().constructParametricType 方法用于构造泛型类型。 具体作用和使用如下: 作用: 构造泛型类型&#x…...

【websocket - Tornado】简易聊天应用

1、背景 项目测试的过程中需要自己搭建一个webscoket站点,确保此类服务接入后台系统后访问不受影响。python的服务框架常用的有Flask、Django、Tornado,每个框架的侧重点不同,导致使用的场景就会有所差异。 Flask轻量级,采用常规的同步编程方式,需要安装其他模块辅助,主…...

TCP 三次握手,四次挥手

1、三次握手 第一次握手 SYN 等于1,SeqX 第二次握手 SYN等于1 ACK等于1,SeqY,AckX1 第三次SYN等于0 ACK等于1,SeqX1,AckY1 ackRow都是对应请求seqraw,三次握手后,Seq就是服务器前一个包中的ac…...

Nginx之Rewrite重定向

常见的Nginx正则表达式 ^:匹配输入字符串的起始位置 $:匹配输入字符串的结束位置 *:匹配前面的字符零次或多次。如“ol*”能匹配“o”及“ol”、“oll” :匹配前面的字符一次或者多次。如“ol”能匹配"ol"及“oll”、&q…...

uni-app微信小程序开发自定义select下拉多选内容篇

分享-2023年高级前端进阶:前端登顶之巅-最全面的前端知识点总结站点 *分享一个使用比较久的🪜 技术框架公司的选型:uni-app uni-ui vue3 vite4 ts 需求分析:微信小程序-uni-ui内容 1、创建一个自定义的下拉,支持多…...

VUE+view table.exportCsv()导出.csv文档时如何防止数据格式为科学计数

当使用table.exportCsv()方法导出数据时,出现科学计数法问题,像电话号码,身份证号码等,当数据大于15位后面的会用0替代。 针对这一问题,解决方法如下:就是再数字前加上制表符“\t”注意双引号,…...

Java基础练习六(排序)

排序 1. 第n大数 给定一个整数数组,输入一个值 n, 输出数组中第 n 大的数。 import java.util.Arrays; import java.util.Scanner;public class Work0801 {public static void main(String[] args) {int[] arr {2,3,1,8,3,9,6};// 冒泡排序,第n大数for (int i 0; …...

【Go】Go数据操作 - 处理JSON文件

目录 何为JSON 编码JSON 实践时刻 解码JSON 实践时刻 延伸拓展 何为JSON JSON (JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式。JSON最初是JavaScript的一部分,后由于便于快速编写的特性,被开发者独立出来。基本上所有的语…...

服务器之LNMP

lnmp的构成 L:linux系统,操作系统。 N:nginx网站服务,前端,提供前端的静态页面服务。同时具有代理,转发的作用。 转发:主要是转发后端请求。转发到PHP。nginx没有处理动态资源的功能,他有可以支持转发动态请求的模块。 M&…...

恒运资本:定向增发一般多久完成?

随着现代企业的不断发展壮大,企业需求的资金也越来越多,而定向增发成为了企业融资的一个不可或缺的方法之一。那么,定向增发一般需求多长时刻来完结呢?本文将从多个角度进行剖析,以期对此问题有更深化的了解。 一、 定…...

mysql进阶篇(二)

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄,vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…...

SEO优化行业未来市场需求如何

SEO优化行业未来市场需求如何 在当今数字化时代,搜索引擎优化(SEO)已经成为各行各业不可或缺的一部分。随着互联网的快速发展,市场竞争愈发激烈,SEO优化行业的未来市场需求也在不断演变。SEO优化行业未来的市场需求究…...

碧蓝航线自动化工具:解放双手的智能管理完整方案

碧蓝航线自动化工具:解放双手的智能管理完整方案 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研,全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript 【玩家痛点】现…...

当CANopen遇上EtherCAT:用倍福EL6751网关连接伺服驱动器的实战心得

当CANopen遇上EtherCAT:用倍福EL6751网关连接伺服驱动器的实战心得 在工业自动化领域,EtherCAT凭借其高实时性和拓扑灵活性已成为主流总线协议,而CANopen则因其成熟稳定在中小型设备中广泛应用。当需要将支持CANopen协议的伺服驱动器&#xf…...

Pixel Mind Decoder 构建自动化工作流:与Zapier/Make等工具集成

Pixel Mind Decoder 构建自动化工作流:与Zapier/Make等工具集成 1. 为什么需要自动化情绪分析 在日常业务运营中,企业每天都会收到大量来自客户的反馈信息。客服邮件、社交媒体评论、产品评价等渠道产生的文本数据,往往蕴含着客户真实的情绪…...

REX-UniNLU C++高性能集成:模型推理加速方案

REX-UniNLU C高性能集成:模型推理加速方案 1. 为什么在C里跑NLU模型是个现实需求 很多做企业级文本处理的朋友都遇到过类似情况:业务系统用C写的,性能要求高、响应要快、不能随便加新语言栈。这时候突然需要接入一个中文NLP能力——比如从客…...

RNA-seq数据归一化实战:DESeq2 median of ratios方法详解与避坑指南

RNA-seq数据归一化实战:DESeq2 median of ratios方法详解与避坑指南 当你第一次看到RNA-seq数据时,可能会被那些庞大的数字矩阵吓到。每个数字代表着一个基因在特定样本中的表达量,但这些数字真的可以直接比较吗?答案是否定的。就…...

从零开始:风电功率预测方向博士生的选刊投稿实战指南(附LetPub/SJR使用心得)

风电功率预测领域SCI期刊投稿策略:从工具使用到精准匹配的进阶指南 刚转入风电功率预测领域的博士生常面临一个现实困境:手头的研究成果究竟该投向哪本期刊?这个问题看似简单,实则暗藏玄机。我曾见过同实验室的师兄将一篇深度学习…...

揭秘MiniMax-Remover:如何通过两阶段优化实现视频物体移除的高效与精准

1. MiniMax-Remover:视频编辑领域的"魔法橡皮擦" 想象一下,你刚拍完一段完美的旅行vlog,却发现画面角落有个碍眼的垃圾桶;或者你下载了一段珍贵的纪录片,却被平台水印破坏了观影体验。传统视频编辑软件处理这…...

从模型到引擎:手把手教你用 trtexec 和 C++ API 在 Ubuntu 上部署 YOLOv8

从模型到引擎:手把手教你用 trtexec 和 C API 在 Ubuntu 上部署 YOLOv8 在计算机视觉领域,YOLOv8 凭借其卓越的实时检测性能成为工业界的热门选择。但训练好的模型要真正落地,还需要经过关键的部署环节。本文将带你深入探索两种主流部署路径…...

AD22103K温度传感器驱动库:ADC线性映射与工业级滤波校准

1. AD22103K温度传感器驱动库技术解析1.1 器件物理特性与电气接口设计原理AD22103K是Analog Devices公司推出的单片集成式温度传感器,采用TO-92封装,其核心优势在于将热敏元件、信号调理电路、电压基准和输出缓冲器全部集成于单一硅片。该器件输出为模拟…...