OFD板式文件创建JAVA工具-EASYOFD 四、文字 Text
JAVA版本的OFD板式文件创建工具easyofd.
功能包含了图像、 图像、 文字、和模版页功能。同时也支持OFD文件的数字签名及验签,电子签章及验签。
本JAVA版本的easyofd使用原生方式创建板式文件,不依赖JAVA的SWT库。
项目地址:http://wiki.easyofd.cn/zh/JAVA
浏览器查看OFD文件控件地址: http://www.easyofd.cn
代码地址:https://github.com/11627685/easyofd-java
本章节介绍OFD文件怎么添加字体,使用文字。
一、基础文字
1.1 默认文字
与图形和图形一样,直接利用Page对象的addText方法就可以添加文字,该基本方法只需要三个参数,需要展示的文字text,x轴和y轴坐标(baseline)。
-
addText
public CTPageBlock.TextObject addText(java.lang.String text,double x,double y)
在默认Body层 x y坐标增加文字,该文字为默认宋体,横向展示。 该函数会根据字符的宽度和高度计算展示的矩形边界,内部的X,Y会被重新计算
参数:
text- 展示的文本x- 第一个字型绘制点在对象坐标系下的 X 坐标。计算后都是相对于Boundary的x。y- 注意是baseline的地方 ;第一个字型绘制点在对象坐标系下的 y 坐标。计算后都是相对于Boundary的y。返回:
CTPageBlock.TextObject对象
另请参阅:
OFD标准指南-文字-11.2 文字对象 Text
样例代码如下:
/*默认字体*/
page.addText("默认字体:宋体",20.0,20.0);
Copy
1.2 文字大小
文字的大小可以调用另外一个方法,该方法的fontSize可以指定文字的大小(单位:MM)。也可利用1.1的方法利用返回的CTPageBlock.TextObject对象在设置文字的大小。
-
addText
public CTPageBlock.TextObject addText(java.lang.String text,double x,double y,double fontSize)
在默认Body层 x y坐标增加文字,该文字为默认宋体,横向展示。 该函数会根据字符的宽度和高度计算展示的矩形边界,内部的X,Y会被重新计算
参数:
text- 展示的文本x- 第一个字型绘制点在对象坐标系下的 X 坐标。计算后都是相对于Boundary的x。y- 注意是baseline的地方 ;第一个字型绘制点在对象坐标系下的 y 坐标。计算后都是相对于Boundary的y。fontSize- 字体大小返回:
CTPageBlock.TextObject对象
另请参阅:
OFD标准指南-文字-11.2 文字对象 Text
样例代码如下:
page.addText("默认字体:宋体,5MM大小",20,30,5);
Copy
1.3 文字颜色
文字的填充颜色可设置fillColor参数。
-
addText
public CTPageBlock.TextObject addText(java.lang.String text,double x,double y,double fontSize,CTColor fillColor,CTColor strokeColor)
在默认Body层 x y坐标增加文字,该文字为默认宋体,横向展示。 该函数会根据字符的宽度和高度计算展示的矩形边界,内部的X,Y会被重新计算
参数:
text- 展示的文本x- 第一个字型绘制点在对象坐标系下的 X 坐标。计算后都是相对于Boundary的x。y- 注意是baseline的地方 ;第一个字型绘制点在对象坐标系下的 y 坐标。计算后都是相对于Boundary的y。fontSize- 字体大小fillColor- 字体填充颜色strokeColor- 字体勾边颜色返回:
CTPageBlock.TextObject对象
另请参阅:
OFD标准指南-文字-11.2 文字对象 Text
样例代码如下:
CTColor color=new CTColor();
color.setValue("255 0 0");
page.addText("字体颜色",100,40,8,color,null);
Copy
1.4 文字勾边
文字的勾边颜色可设置strokeColor参数。方法同1.4文字颜色
样例代码如下:
CTColor color=new CTColor();
color.setValue("255 0 0");CTColor color3=new CTColor();
color3.setValue("0 255 0");page.addText("字体勾边颜色",80,100,18,color3,color);
Copy
1.5 文字方向
文字方向可以设置 readDirection参数。
-
addText
public CTPageBlock.TextObject addText(java.lang.String text,double x,double y,double fontSize,java.lang.Integer readDirection)
在默认Body层 x y坐标增加文字,该文字为默认宋体,横向展示。 该函数会根据字符的宽度和高度计算展示的矩形边界,内部的X,Y会被重新计算
参数:
text- 展示的文本x- 第一个字型绘制点在对象坐标系下的 X 坐标。计算后都是相对于Boundary的x。y- 注意是baseline的地方 ;第一个字型绘制点在对象坐标系下的 y 坐标。计算后都是相对于Boundary的y。fontSize- 字体大小readDirection- 阅读方向,指定了文字排列的方向, 默认值为0 目前只支持 0 90返回:
CTPageBlock.TextObject对象
另请参阅:
OFD标准指南-文字-11.2 文字对象 Text
样例代码如下:
/*阅读方向设定*/
page.addText("阅读方向",20,40,5,90);
Copy
readDirection的参数可以参考:wiki.easyofd.cn/OFD标准/文字的表47 文字排列方向、阅读方向说明
1.6 文件效果
OFD软件展示结果如下图:

二、设置字体
注意:不建议通过注册字体方式使用字体,在第七小结(关于字体的一些说明)会详细说明。
2.1 注册字体
与图片一样,通过OFDocument类的getOfdCommonData()就可以获取功OFD公共资源存储的管理类。该类除了字体存储功能外,还有其他指定该文档页面区域的默认大小和位置、模版页序列等功能,具体见OFD标准指南-7.5.1 文档公共数据结构
-
registerFont
public int registerFont(java.lang.String FontName,java.lang.String fontPath)
注册需要使用的字体文件,注册后字体文件会被打包到OFD文件中 不建议使用
参数:
FontName- 字体的文件,注意是字体的名称,建议字体文件名称和字体名称一致fontPath- 字体的存放路径返回:
ID 返回-1 说明字体已经注册或添加字体出错 ,其他组成后的ID
样例代码如下:
/**
* 注册字体,该字体文件会被打包到ofd文件内
*/
int fontcalibriID=ofDocument.getOfdCommonData().registerFont("Calibri","font/Calibri.ttf");
Copy
2.2 使用字体
样例代码如下:
int fontcalibriID=ofDocument.getOfdCommonData().registerFont("Calibri","font/Calibri.ttf");/*设置默认字体*/
double fontSize=5;
Font font=new Font("Calibri",Font.PLAIN,(int) Util.mmToPoints((float)fontSize));
page.addText("Calibri:abcdefghijklmnopqrstuvwxyz",20,30,fontSize,fontcalibriID,font,null,null,null,null,null,null,null);
page.addText("Calibri:中文展示情况",110,30,fontSize,fontcalibriID,font,null,null,null,null,null,null,null);
Copy
2.3 使用系统字体
-
addFont
public int addFont(java.lang.String fontName)
字型 不需要注册的字体,可以直接使用,系统默认已经集成的
参数:
fontName- 字型名 eg:楷体返回:
ID 返回-1 说明字体已经注册
样例代码如下:
//ofd生成操作系统和展示系统都已经有的字体情况int fontyaheiID=ofDocument.getOfdCommonData().addFont("微软雅黑");
Font font3=new Font("微软雅黑",Font.PLAIN,(int) Util.mmToPoints((float)fontSize));
page.addText("微软雅黑:abcdefghijklmnopqrstuvwxyz",20,60,fontSize,fontyaheiID,font3,null,null,null,null,null,null,null);
page.addText("微软雅黑:中文展示情况",110,60,fontSize,fontyaheiID,font3,null,null,null,null,null,null,null);
Copy
2.4 文件效果
OFD软件展示结果如下图:

三、图元
3.1 字体/图元制作
字体和图元的制作可以通过市面流行的字体工具进行,主要有FontCreator、Glyphs等。通过字体设计软件保留部分图元。例如湖北省的增值税发票就利用这种模式。
该字体文件的的结果如图:

3.2 注册字体
与一般字体注册类似,我们也通过公共资源注册字体。同2.1注册字体。
样例代码如下:
/*** 注册字体,该字体文件会被打包到ofd文件内*/
int fontKaiTiID=ofDocument.getOfdCommonData().registerFont("KaiTi","font/KaiTi.ttf");
/*设置字体*/
double fontSize=5;
File file = new File("font/KaiTi.ttf");
Font font2 = Font.createFont(Font.TRUETYPE_FONT, file);
int size=(int) Util.mmToPoints((float)fontSize);
font2 = font2.deriveFont((float)size); // 设置字体大小
Copy
3.2 使用图元
图元相关的字体文件注册完成后,我们就可以使用该字体下的图元了。
需要注意的是,我们不能在text参数内输入自己想要的文字了,必须把对应字体图元的Unicode值码给下面参数:
例如3.1 字体/图元制作的图片中“01234”的Unicode值对应的中文分别是“开日期校验”。
在传入参数是使用“01234”。
-
addTextGlyph
public CTPageBlock.TextObject addTextGlyph(java.lang.String text,double x,double y,double fontSize,long fontID,java.awt.Font font)
在默认Body层 x y坐标增加文字图元 该函数会根据字符的宽度和高度计算展示的矩形边界,内部的X,Y会被重新计算
参数:
text- 展示的文本x- 第一个字型绘制点在对象坐标系下的 X 坐标。y- 注意是baseline的地方 ;第一个字型绘制点在对象坐标系下的 y 坐标。fontSize- 字号,单位为毫米fontID- 引用资源文件中定义的字型的标识font- 字体返回:
CTPageBlock.TextObject对象
另请参阅:
OFD标准指南-文字-11.2 文字对象 Text
样例代码如下:
CTPageBlock.TextObject textObject= page.addTextGlyph("\uE001\uE00A !\"#$%&'()*+,-./0123456789:<=>?@",20,30,fontSize,fontKaiTiID,font2);
Copy
3.3 图元颜色和勾边
通过设置fillColor和strokeColor来设置图元的填充、勾边颜色。
-
addTextGlyph
public CTPageBlock.TextObject addTextGlyph(java.lang.String text,double x,double y,double fontSize,long fontID,java.awt.Font font,CTColor fillColor,CTColor strokeColor)
在默认Body层 x y坐标增加文字图元 该函数会根据字符的宽度和高度计算展示的矩形边界,内部的X,Y会被重新计算
参数:
text- 展示的文本x- 第一个字型绘制点在对象坐标系下的 X 坐标。y- 注意是baseline的地方 ;第一个字型绘制点在对象坐标系下的 y 坐标。fontSize- 字号,单位为毫米fontID- 引用资源文件中定义的字型的标识font- 字体fillColor- 填充颜色strokeColor- 勾边颜色返回:
CTPageBlock.TextObject对象
另请参阅:
OFD标准指南-文字-11.2 文字对象 Text
样例代码如下:
CTColor color=new CTColor();
color.setValue("255 0 0");
CTPageBlock.TextObject textObject2= page.addTextGlyph("ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abc;",20,50,fontSize,fontKaiTiID,font2,color,null);
Copy
3.4 文件效果

四、圆形文字跟随
4.1 圆形文字
在OFD文件中增加圆形文字,只需要使用addTextCircleAndTrans方法。该方法的参数如下:
-
addTextCircleAndTrans
public CTPageBlock.TextObject[] addTextCircleAndTrans(java.lang.String text,double x,double y,double r,double startAngle,double endAnagel,int direction)
增加圆形文字
参数:
text- 文字x- 圆形X坐标y- 圆形Y坐标r- 园的半径startAngle- 开始角度 eg:90endAnagel- 结束角度,结束角度必须大于开始角度 ,如果开始度数为180度 结束可以为360+90度direction- 绘制方向 1-顺时针绘制 2逆时针绘制返回:
CTPageBlock.TextObject[]数组
另请参阅:
OFD标准指南-文字-11.2 文字对象 Text
样例代码如下:
page.addTextCircleAndTrans("某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某",140,50,24,90,440,1);
Copy
上述代码是圆心在(140,50),圆半径为24的圆线上绘制文字,开始度数是90度,结束度数是360+80 =440度。
4.2 逆时针文字
只需要设置上述参数的 direction为2就可以逆时针绘制文字。
样例代码如下:
page.addTextCircleAndTrans("0123456789",140,120,24,45,135,2);
Copy
4.3 文字大小
emsp; 设置文字大小、字体、颜色都可以通过一下参数来设置。
-
addTextCircleAndTrans
public CTPageBlock.TextObject[] addTextCircleAndTrans(java.lang.String text,double x,double y,double r,double startAngle,double endAnagel,int direction,float fontSize,int fontID,java.awt.Font font,CTColor fillColor,CTColor strokeColor,java.lang.Integer weight,java.lang.Boolean italic)
增加圆形文字
参数:
text- 文字x- 圆形X坐标y- 圆形Y坐标r- 园的半径startAngle- 开始角度endAnagel- 结束角度,结束角度必须大于开始角度direction- 绘制方向 1-顺时针绘制 2逆时针绘制fontSize- 字体大小fontID- 资源中的字形IDfont- java中的字体fillColor- 填充颜色strokeColor- 勾边颜色weight- 文字对象的粗细值;可选取值为100,200,300,100,500,600,700,800,900 默认值为400italic- 是否是斜体样式 默认fasle返回:
CTPageBlock.TextObject[]数组
另请参阅:
OFD标准指南-文字-11.2 文字对象 Text
样例代码如下:
CTColor color=new CTColor();
color.setValue("255 0 0");
float fontSize= Util.FontSize ;
Font font=new Font("宋体",Font.PLAIN,(int)Util.mmToPoints((float)fontSize));
int fontID = ofDocument.getOfdCommonData().getDefaultFontid();page.addTextCircleAndTrans("某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某",70,50,24,90,440,1,fontSize,fontID,font,color,null,null,null);
Copy
4.4 文字颜色
emsp; 参考4.3 文字大小设置文字大小、字体、颜色。
样例代码如下:
CTColor color=new CTColor();
color.setValue("255 0 0");
float fontSize= Util.FontSize ;
Font font=new Font("宋体",Font.PLAIN,(int)Util.mmToPoints((float)fontSize));
int fontID = ofDocument.getOfdCommonData().getDefaultFontid();page.addTextCircleAndTrans("某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某",70,50,24,90,440,1,fontSize,fontID,font,color,null,null,null);
Copy
4.5 文件效果

五、椭圆文字跟随
5.1 椭圆文字
在OFD文件中增加椭圆文字,只需要使用addTextEllipseAndTrans方法。该方法的参数如下:
-
addTextEllipseAndTrans
public CTPageBlock.TextObject[] addTextEllipseAndTrans(java.lang.String text,double x,double y,double a,double b,double startAngle,double endAnagel,int direction)
参数:
text- 绘制的文本x- 椭圆的心X坐标y- 椭圆的心Y坐标a- 椭圆的长轴b- 椭圆的短轴startAngle- 开始角度endAnagel- 结束角度,结束角度必须大于开始角度direction- 绘制方向 1-顺时针绘制 2逆时针绘制返回:
CTPageBlock.TextObject[]
另请参阅:
OFD标准指南-文字-11.2 文字对象 Text
样例代码如下:
float fontSize= Util.FontSize ;
Font font=new Font("宋体",Font.PLAIN,(int)Util.mmToPoints((float)fontSize));
int fontID = ofDocument.getOfdCommonData().getDefaultFontid();
page.addTextEllipseAndTrans("某某某某某某某某某某某某某某某",40,30,20,15,90,450,1,fontSize,fontID,font,color2,null,null,null);
Copy
5.2 逆时针文字
只需要设置上述参数的 direction为2就可以逆时针绘制文字
5.3 文字大小
emsp; 设置文字大小、字体、颜色都可以通过一下参数来设置。
-
addTextEllipseAndTrans
public CTPageBlock.TextObject[] addTextEllipseAndTrans(java.lang.String text,double x,double y,double a,double b,double startAngle,double endAnagel,int direction,double fontSize,long fontID,java.awt.Font font,CTColor fillColor,CTColor strokeColor,java.lang.Integer weight,java.lang.Boolean italic)
参数:
text- 绘制的文本x- 椭圆的心X坐标y- 椭圆的心Y坐标a- 椭圆的长轴b- 椭圆的短轴startAngle- 开始角度endAnagel- 结束角度,结束角度必须大于开始角度direction- 绘制方向 1-顺时针绘制 2逆时针绘制fontSize- 字体大小fontID- 资源中的字形IDfont- java中的字体fillColor- 填充颜色strokeColor- 勾边颜色weight- 文字对象的粗细值;可选取值为100,200,300,100,500,600,700,800,900 默认值为400italic- 是否是斜体样式 默认fasle返回:
CTPageBlock.TextObject[]
另请参阅:
OFD标准指南-文字-11.2 文字对象 Text
样例代码如下:
float fontSize= Util.FontSize ;
Font font=new Font("宋体",Font.PLAIN,(int)Util.mmToPoints((float)fontSize));
int fontID = ofDocument.getOfdCommonData().getDefaultFontid();
page.addTextEllipseAndTrans("某某某某某某某某某某某某某某某",40,30,20,15,90,450,1,fontSize,fontID,font,color2,null,null,null);
Copy
5.4 文字颜色
emsp; 参考5.3 文字大小设置文字大小、字体、颜色。
样例代码如下:
float fontSize= Util.FontSize ;
Font font=new Font("宋体",Font.PLAIN,(int)Util.mmToPoints((float)fontSize));
int fontID = ofDocument.getOfdCommonData().getDefaultFontid();
page.addTextEllipseAndTrans("某某某某某某某某某某某某某某某",40,30,20,15,90,450,1,fontSize,fontID,font,color2,null,null,null);
Copy
5.5 文件效果

六、设置默认字体
默认字体的配置在Util类的静态变量中。默认代码如下:
/*** 默认字体大小五号,单位3.7MM 14像素*/public static float FontSize= 3.70f;/*** 默认字体 宋体*/public static String FontName="宋体";/*** 默认的字体 宋体 五号,单位3.7MM 14像素*/public static Font font=new Font(FontName,Font.PLAIN,14);
Copy
注意:一定要再使用文字前设置好你的默认字体。
七、关于字体的一些说明
7.1 字体文件
字体文件ttf或ttc文件的中文字体一般情况下都是有点大的。如果把相应的字体文件也打包到OFD文件中,就会增加OFD文件的大小,因此是不建议这么操作的。
建议方式是在产生OFD文件的系统和查看的客户端都安装要使用的字体。如果不想在客户端安装字体,可以考虑通过图元方式,减少字体文件的大小,只把固定使用的字保存在字体ttf或ttc文件中,不过该方式支持的字体数量是有限的。
注意一:本软件默认字体为宋体,大小为14PT,3.70MM。请确保你使用的系统是有该字体。
注意二:本文中所有的单位除特殊说明外都MM。
7.2 系统支持字体清单
系统支持的字体清单可以通过一下程序获取。
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();Font[] allFonts = ge.getAllFonts();List<String> chineseFonts = new ArrayList<>();for (Font font : allFonts) {System.out.println(font.getFontName());// // 检查字体名称是否包含中文字符
// if (font.getName().matches(".*[\u4e00-\u9fa5]+.*")) {
// chineseFonts.add(font.getFontName());
// }}// 输出所有找到的中文字体名称for (String fontName : chineseFonts) {System.out.println(fontName);}
Copy
¶7.3 系统字体安装
这里本文就不在熬述了,无论是windows系统还是其他unix系统都有相应的文章。无论如何,要正确使用和度量字体都要确保你使用的系统是注册且可以正确使用你要使用的字体。
相关文章:
OFD板式文件创建JAVA工具-EASYOFD 四、文字 Text
JAVA版本的OFD板式文件创建工具easyofd. 功能包含了图像、 图像、 文字、和模版页功能。同时也支持OFD文件的数字签名及验签,电子签章及验签。 本JAVA版本的easyofd使用原生方式创建板式文件,不依赖JAVA的SWT库。 项目地址:http://…...
【概念速通】李群 lie group
李群 lie group 概念速通 快速示例介绍:【引入】单位复数 (The unit complex numbers) 是李群 (lie group) 最简单的例子之一【进一步】SO(2): The 2D rotation matrices【Typical uses】SE(2): Pose of a robot in the plane Group & Lie Group 定义࿱…...
day_39
198. 打家劫舍 class Solution:def rob(self, nums: List[int]) -> int:if len(nums) 1:return nums[0]dp [0] * len(nums)dp[0], dp[1] nums[0], max(nums[0], nums[1])for i in range(2, len(nums)):dp[i] max(dp[i - 1], dp[i - 2] nums[i])return dp[len(nums) - …...
计算机系统层次结构
1.计算机系统的组成 计算机系统的组成硬件系统软件系统 2.计算机的硬件部分 2.1冯诺依曼机的结构特点: 图示: 1.五大部分由运算器(ALU),控制器(CU),存储器(主存辅存),输入设备,输出设备五大部分组成2.指…...
java语言特点
Java语言是一种广泛使用的编程语言,它具有以下几个显著的特点: 面向对象:Java是一种纯面向对象的语言,它支持类的封装、继承和多态等特性。面向对象的设计使得Java程序更加模块化,易于维护和扩展。 平台无关性…...
单元测试注解:@ContextConfiguration
ContextConfiguration注解 ContextConfiguration注解主要用于在Spring框架中加载和配置Spring上下文,特别是在测试场景中。 它允许开发者指定要加载的配置文件或配置类的位置,以便在运行时或测试时能够正确地构建和初始化Spring上下文。 基本用途和工…...
大数据-72 Kafka 高级特性 稳定性-事务 (概念多枯燥) 定义、概览、组、协调器、流程、中止、失败
点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…...
MySQl 中对数据表的增删改查(基础)
MySQl 中对数据表的增删改查(基础) 新增演示插入一条数据插入多条数据 查询全列查询部分列查询查询关于列名的表达式查询时用别名查询去重后的结果查询排序后的结果条件查询比较运算符和逻辑运算符 分页查询 修改删除 黑白图是在命令行里的,彩…...
LVS知识点整理及实践
LVS知识点整理及实践 LVSlvs集群概念lvs概念lvs集群类型lvs-nat模型数据逻辑: lvs-DR模式数据传输和过程:特点: lvs-tun模式数据传输过程:特点: lvs-fullnet模式数据传输过程 lvs调度算法lvs调度算法类型lvs静态调度算法lvs动态调度算法4.15版本内核以后新增调度算法 ipvsadm命…...
Ubuntu gnome WhiteSur-gtk-theme类mac主题正确安装和卸载方式
目录 摘要目的安装和卸载特别说明 Ubuntu gnome WhiteSur-gtk-theme类mac主题正确安装和卸载方式 摘要 Ubuntu版本:ubuntu24.04 主题下载地址:https://github.com/vinceliuice/WhiteSur-gtk-theme 参考的安装教程:https://blog.51cto.com/u_…...
计算机毕业设计选题推荐-办公用品管理系统-Java/Python项目实战
✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…...
计算机毕业设计选题推荐-网上考试系统-Java/Python项目实战
✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…...
白骑士的Matlab教学基础篇 1.4 函数与脚本
系列目录 上一篇:白骑士的Matlab教学基础篇 1.3 控制流 函数和脚本是 MATLAB 编程中的基本组成部分,它们使得代码更加模块化、可重用和组织化。通过理解函数的定义与调用、参数与返回值,以及 MATLAB 脚本与批处理,可以显著提高编…...
Qt——多线程
一、QThread类 如果要设计多线程程序,一般是从QThread继承定义一个线程类,并重新定义QThread的虚函数 run() ,在函数 run() 里处理线程的事件循环。 应用程序的线程称为主线程,创建的其他线程称为工作线程。主线程的 start() 函数…...
技术周总结 08.05-08.11周日(scala git回滚)
文章目录 一、08.06 周二1.1) 问题01 mac安装 scala:1. 使用 Homebrew2. 使用 SDKMAN!其他注意事项1. 确认 Scala 安装位置2. 设置 PATH 环境变量对于 zsh (macOS Catalina 及更高版本默认使用 zsh):对于 bash (如果您使用的是 bash shell): 3. 验证安装 二、08.09 周五2.1&…...
ffmpeg 命令图片和视频转换
1、截图 ffmpeg -i d:\input.mp4 -ss 0:0:10 d:\output.jpg //指定输出分辨率 ffmpeg -i d:\input.mp4 -y -f image2 -ss 0:0:10 -vframes 1 -s 640x360 d:\output.jpg 2、视频分拆图片 ffmpeg -r 输入帧率 -i d:\input.mp4 -r 输出帧率 "d:\outputDir\frame_%04d.jp…...
力扣 | 动态规划 | 在字符串的应用 | 最长回文子串、最长回文子序列、单词拆分、编辑距离
文章目录 1.最长回文子串2.最长回文子序列3.单词拆分4.编辑距离5. 共同点和思路6. 各个问题的思路和扩展1. 最长回文子串2. 最长回文子序列3. 单词拆分4. 编辑距离 在解答字符串动态规划的应用时,我们需要非常注意一个问题: 有时候我们定义 d p [ i …...
【docker】docker容器部署常用服务
1、容器部署nginx,并且新增一个页面 docker run -d -p 81:80 --name nginx2 nginx docker exec -it nginx2 /bin/bashcd /usr/share/nginx/html/ echo "hello world">>hello.html2、容器部署redis,成功部署后向redis中添加一条数据 do…...
CentOS 7.6 安装 Weblogic
注:本教程是以虚拟机作为安装环境,如果您公司需要安装 Weblogic 服务器,请先以虚拟机模拟安装一遍,否则出现失误,概不负责😁。 一、环境 虚拟机:VMware Workstation 16 Linux:Cent…...
一键清除电脑隐私痕迹,Privacy Eraser助你轻松搞定!
前言 在数字时代,隐私就像是我们手中的细沙,不经意间就可能从指缝间溜走;你是否也曾担心,自己的每一次点击、每一次浏览,都可能成为别人眼中的“秘密”?别急,今天小江湖就要带你走进一款神秘的…...
AI大模型应用开发全攻略:从入门到精通,掌握LLM、RAG、Agent核心技能!“
本文全面介绍了AI大模型应用开发的核心技术和实践。从大模型API交互基础,到关键参数Messages和Tools的作用,深入解析了RAG、ReAct、Agent等应用范式。文章还探讨了Fine-tuning微调和Prompt提示词工程的重要性,强调工程实践与业务需求相结合。…...
Python基础语法:常用内置函数
round():四舍五入 # 省略 ndigits print(round(3.14)) # 输出 3(int) print(round(3.66)) # 输出 4# 指定 ndigits print(round(3.14159, 2)) # 输出 3.14(float) print(round(3.666, 2)) # 输出 3.67# …...
如何高效批量下载音乐歌词:智能歌词管理完整指南
如何高效批量下载音乐歌词:智能歌词管理完整指南 【免费下载链接】ZonyLrcToolsX ZonyLrcToolsX 是一个能够方便地下载歌词的小软件。 项目地址: https://gitcode.com/gh_mirrors/zo/ZonyLrcToolsX ZonyLrcToolsX 是一款专业的跨平台歌词下载工具,…...
别再只测accuracy!DeepSeek集成测试必须监控的5个隐性指标(P99首token延迟、context bleed率、tool-call schema漂移)
更多请点击: https://intelliparadigm.com 第一章:DeepSeek集成测试的核心范式演进 DeepSeek大模型的工程化落地对集成测试提出了全新挑战:传统基于接口响应码与字段校验的测试范式已难以覆盖语义一致性、推理链鲁棒性、上下文敏感度等高阶质…...
别再死记硬背了!用5个生活化比喻彻底搞懂Linux进程的fork、exec和wait
别再死记硬背了!用5个生活化比喻彻底搞懂Linux进程的fork、exec和wait想象你正在厨房准备一顿大餐。菜谱上写着"切菜"、"炒菜"、"装盘"等步骤,但突然发现需要同时处理多道菜品——这时候,你会本能地让家人分工…...
【深度解析】AI Coding 模型竞速:从 Claude Mythos 安全编码到 GPT-5.6 传闻,如何落地代码审查智能体
摘要 AI 编码模型正在从“代码补全”进入“复杂代码库理解、漏洞发现与自动修复”阶段。本文结合 Claude Mythos、Claude Opus 4.8 与 GPT-5.6 相关信息,解析新一代 Coding Agent 的技术趋势,并给出基于大模型 API 的代码安全审查实战方案。背景介绍&…...
长期使用Token Plan套餐在项目开发中的成本观察
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 长期使用Token Plan套餐在项目开发中的成本观察 在AI驱动的项目开发中,成本控制与预算管理是团队负责人必须面对的现实…...
基于Arduino与nRF24L01+的无线传感器平台设计与部署指南
1. 项目概述与设计思路如果你和我一样,喜欢在阳台或者小院子里种点蔬菜瓜果,那你肯定也遇到过这样的烦恼:出门几天,心里总惦记着家里的番茄苗是不是缺水了,小温室里的温度会不会太高。传统的温湿度计只能让你在现场读数…...
PCL 基于强度的双边滤波【2026最新版】
目录 一、算法原理 1、计算步骤 2、算法源码 3、函数解析 4、参考文献 二、代码实现 三、结果展示 四、滤波后未发生变化的原因 五、解决办法 六、结果展示 七、相关链接 本文由CSDN点云侠原创,博客长期更新,本文最近一次更新时间为:2026年5月24日。 一、算法原理 1、计算…...
NBTExplorer:让Minecraft数据编辑从专业工具变成人人可用的可视化平台
NBTExplorer:让Minecraft数据编辑从专业工具变成人人可用的可视化平台 【免费下载链接】NBTExplorer A graphical NBT editor for all Minecraft NBT data sources 项目地址: https://gitcode.com/gh_mirrors/nb/NBTExplorer 你是否曾经面对Minecraft世界文件…...
