Quicker
主页
下载
2.0
专业版
分享
动作库
子程序
扩展热键
文本指令
动作单
应用程序
文档
文档中心首页
软件使用手册
组合动作开发
知识库
版本更新
版本更新(归档)
异常反馈
讨论
外观
登录
注册
动作库
动作
PS文本格式刷
讨论
话题详情
为啥我复制以后赋予后的文字变大了好多倍,170变成了700多的字
使用问题
·
615 次浏览
用户Dm2k91sRAwA
创建于 2025-06-13 15:45
为啥我复制以后赋予后的文字变大了好多倍,170变成了700多的字
添加评论
回复
请绑定手机号后发表评论
回复内容
北京林或西
2025-06-13 22:20
#
1
上传调试日志。
回复
回复
请绑定手机号后发表评论
失落叶子云养猫
2025-12-01 14:54
#
2
我好像也是这个问题
折叠全部
展开全部
Win-10.0.22631.0 Quicker-1.44.31.0 动作ID:17193377-8fe6-4b66-a8d0-2ad01840436a 来源动作:c36b2569-519f-4ed9-f194-08dd10b8461d v7
Log文件路径:C:\Users\EDY\AppData\Local\Temp\quicker_PS文本格式刷_025241-461_log.html
定位文件
复制文件
上传并复制网址
开始执行动作:PS文本格式刷 2025-12-01 14:52:41
3
动作初始化
[状态]
结果
文本图层内容:买厨电享至高6期分期购
\n
字体名称:FZLTZHJW--GB1-0
\n
字号:51.56
\n
行距:自动
\n
字符间距:50
\n
基线偏移:0.0
\n
水平缩放:100%
\n
垂直缩放:100%
\n
文本颜色:#FFFFFF
\n
是否启用粗体:false
\n
是否启用斜体:true
\n
是否启用下划线:false
\n
是否启用删除线:false
\n
是否启用全部大写:false
[状态]
文本图层内容
买厨电享至高6期分期购
[状态]
字体名称
FZLTZHJW--GB1-0
[状态]
字号
51.56
[状态]
行距
null
[状态]
字符间距
50
[状态]
基线偏移
0.0
[状态]
水平缩放
100
[状态]
垂直缩放
100
[状态]
文本颜色
#FFFFFF
[状态]
是否启用粗体
false
[状态]
是否启用斜体
true
[状态]
是否启用下划线
false
[状态]
是否启用删除线
false
[状态]
是否启用全部大写
false
-
+
3
0
运行子程序“动作更新提示 v2”
[in]
失败后停止
【值/表达式】
True
[in]
子程序
【值/表达式】
@@3d38252c-367e-4781-0f63-08d948b298ac@2@动作更新提示
[in]
跳过调试输出
【值/表达式】
True
[in]
窗口标题
【值/表达式】
更新内容
[in]
版本标识
【值/表达式】
002
[in]
更新内容
【值/表达式】
2025年5月28日11:45:43
\r
\n
\r
\n
1)优化赋予图层的架构,从DOM改成AM,减少遍历的时间,提高了设置图层的速度。
[in]
字体大小
【值/表达式】
12
耗时:4ms
7
1
步骤组
传参使用(2024年12月11日13:50:56)
[in]
忽略错误
【值/表达式】
False
[in]
使用多线程
【值/表达式】
False
[in]
调试运行时不输出调试内容
【值/表达式】
False
-
+
7
1.0
如果
判断条件:$= {quicker_in_param} == "获取文本属性"
[in]
如果
【值/表达式】
False
不符合条件,跳过。
7
1.1
如果
判断条件:$= {quicker_in_param} == "赋予文本属性"
[in]
如果
【值/表达式】
False
不符合条件,跳过。
7
2
等待时间
等待 100 ms
[in]
等待时间
【值/表达式】
100
[in]
等待窗口关闭时取消
【值/表达式】
False
耗时:104ms
111
3
显示菜单
获取文本属性 赋予文本属性 编辑属性
[in]
失败后停止
【值/表达式】
True
[in]
等待菜单关闭
【值/表达式】
True
[in]
字体大小
【值/表达式】
12
[in]
图标大小
【值/表达式】
16
[in]
占用焦点
【值/表达式】
False
[in]
最大高度
【值/表达式】
0
[in]
菜单数据
【值/表达式】
获取文本属性
\r
\n
赋予文本属性
\r
\n
编辑属性
[in]
菜单数据
【值/表达式】
获取文本属性
\r
\n
赋予文本属性
\r
\n
编辑属性
[out]
选择的菜单项数据=>选择的项
获取文本属性
耗时:1008ms
1118
4
如果
判断条件:$= String.Equals({选择的项}, "获取文本属性")
[in]
如果
【值/表达式】
True
执行 True 分支, 共 3 步骤
-
+
1120
4.0
步骤组
获取文本属性
[in]
忽略错误
【值/表达式】
False
[in]
使用多线程
【值/表达式】
False
[in]
调试运行时不输出调试内容
【值/表达式】
False
-
+
1120
4.0.0
步骤组
初始化文本
[in]
忽略错误
【值/表达式】
False
[in]
使用多线程
【值/表达式】
False
[in]
调试运行时不输出调试内容
【值/表达式】
False
-
+
1120
4.0.0.0
注释
通过这一步将文本图层初始化,避免出错的发生。
耗时:0ms
1120
4.0.0.1
Adobe系列软件控制
初始化文本图层
[in]
失败后停止
【值/表达式】
True
[in]
软件名称
【值/表达式】
Photoshop.Application
[in]
操作类型
【值/表达式】
dojavascript
[in]
等待执行结束
【值/表达式】
True
[in]
最长等待时间(ms)
【值/表达式】
200000
[in]
接口失败后,尝试使用程序exe运行脚本文件
【值/表达式】
False
[in]
脚本内容
【值/表达式】
// 检查是否有选中的图层
\r
\n
if (app.activeDocument && app.activeDocument.activeLayer) {
\r
\n
// 获取当前活动的图层
\r
\n
var layer = app.activeDocument.activeLayer;
\r
\n
\r
\n
// 检查是否为文本图层
\r
\n
if (layer.kind === LayerKind.TEXT) {
\r
\n
// 获取当前文本内容
\r
\n
var originalText = layer.textItem.contents;
\r
\n
\r
\n
// 将文本内容重新设置为相同的内容
\r
\n
layer.textItem.contents = originalText;
\r
\n
\r
\n
// 输出成功信息到变量 v
\r
\n
var v = true; // 表示操作成功
\r
\n
} else {
\r
\n
// 如果选中的图层不是文本图层,返回 false
\r
\n
var v = false; // 表示没有操作
\r
\n
}
\r
\n
} else {
\r
\n
// 如果没有选中的图层,返回 false
\r
\n
var v = false; // 表示没有操作
\r
\n
}
\r
\n
\r
\n
// 输出变量 v
\r
\n
v;
\r
\n
[out]
脚本输出=>output
true
耗时:89ms
1209
4.0.1
步骤组
获取文本属性参数
[in]
忽略错误
【值/表达式】
False
[in]
使用多线程
【值/表达式】
False
[in]
调试运行时不输出调试内容
【值/表达式】
False
1209
4.0.1.0
Adobe系列软件控制
获取文本图层参数信息
[in]
失败后停止
【值/表达式】
True
[in]
软件名称
【值/表达式】
Photoshop.Application
[in]
操作类型
【值/表达式】
dojavascript
[in]
等待执行结束
【值/表达式】
True
[in]
最长等待时间(ms)
【值/表达式】
200000
[in]
接口失败后,尝试使用程序exe运行脚本文件
【值/表达式】
False
[in]
脚本内容
【值/表达式】
#target photoshop
\r
\n
\r
\n
// 检查是否选定文本图层
\r
\n
if (app.activeDocument.activeLayer.kind == LayerKind.TEXT) {
\r
\n
var textLayer = app.activeDocument.activeLayer;
\r
\n
\r
\n
// 获取字号大小的函数
\r
\n
function getTextSize() {
\r
\n
var ref = new ActionReference();
\r
\n
ref.putEnumerated(charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt"));
\r
\n
var desc = executeActionGet(ref).getObjectValue(stringIDToTypeID('textKey'));
\r
\n
var textSize = desc.getList(stringIDToTypeID('textStyleRange')).getObjectValue(0).getObjectValue(stringIDToTypeID('textStyle')).getDouble(stringIDToTypeID('size'));
\r
\n
\r
\n
// 检查是否有缩放变换
\r
\n
if (desc.hasKey(stringIDToTypeID('transform'))) {
\r
\n
var mFactor = desc.getObjectValue(stringIDToTypeID('transform')).getUnitDoubleValue(stringIDToTypeID("yy"));
\r
\n
textSize *= mFactor; // 根据缩放因子调整字号
\r
\n
}
\r
\n
\r
\n
return textSize;
\r
\n
}
\r
\n
\r
\n
// 获取文本图层的文本内容
\r
\n
var textContent = textLayer.textItem.contents;
\r
\n
\r
\n
// 获取文本图层的字体名称
\r
\n
var fontName = textLayer.textItem.font;
\r
\n
\r
\n
// 获取文档分辨率(DPI)
\r
\n
var documentResolution = app.activeDocument.resolution;
\r
\n
\r
\n
// 获取文本图层的行距
\r
\n
function getLineSpacing() {
\r
\n
var ref = new ActionReference();
\r
\n
ref.putEnumerated(charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt"));
\r
\n
var desc = executeActionGet(ref).getObjectValue(stringIDToTypeID('textKey'));
\r
\n
var textStyle = desc.getList(stringIDToTypeID('textStyleRange')).getObjectValue(0).getObjectValue(stringIDToTypeID('textStyle'));
\r
\n
\r
\n
// 检查是否有行距属性
\r
\n
if (textStyle.hasKey(stringIDToTypeID('leading'))) {
\r
\n
var leadingValue = textStyle.getDouble(stringIDToTypeID('leading'));
\r
\n
\r
\n
// 如果存在变换(如缩放),调整行距
\r
\n
if (desc.hasKey(stringIDToTypeID('transform'))) {
\r
\n
var mFactor = desc.getObjectValue(stringIDToTypeID('transform')).getUnitDoubleValue(stringIDToTypeID("yy"));
\r
\n
leadingValue *= mFactor; // 调整行距为缩放后的值
\r
\n
}
\r
\n
\r
\n
return leadingValue; // 返回调整后的行距
\r
\n
} else {
\r
\n
return -1; // -1 表示自动行距
\r
\n
}
\r
\n
}
\r
\n
\r
\n
// 获取文本图层的字符间距
\r
\n
function getLetterSpacing() {
\r
\n
var ref = new ActionReference();
\r
\n
ref.putEnumerated(charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt"));
\r
\n
var desc = executeActionGet(ref).getObjectValue(stringIDToTypeID('textKey'));
\r
\n
var textStyle = desc.getList(stringIDToTypeID('textStyleRange')).getObjectValue(0).getObjectValue(stringIDToTypeID('textStyle'));
\r
\n
\r
\n
// 检查是否有字符间距属性
\r
\n
if (textStyle.hasKey(stringIDToTypeID('tracking'))) {
\r
\n
return textStyle.getDouble(stringIDToTypeID('tracking')); // 返回字符间距值
\r
\n
} else {
\r
\n
return 0; // 默认字符间距为 0
\r
\n
}
\r
\n
}
\r
\n
\r
\n
// 获取基线偏移
\r
\n
function getBaselineShift() {
\r
\n
var ref = new ActionReference();
\r
\n
ref.putEnumerated(charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt"));
\r
\n
var desc = executeActionGet(ref).getObjectValue(stringIDToTypeID('textKey'));
\r
\n
var textStyle = desc.getList(stringIDToTypeID('textStyleRange')).getObjectValue(0).getObjectValue(stringIDToTypeID('textStyle'));
\r
\n
\r
\n
// 获取基线偏移值
\r
\n
if (textStyle.hasKey(stringIDToTypeID('baselineShift'))) {
\r
\n
var baselineShift = textStyle.getDouble(stringIDToTypeID('baselineShift'));
\r
\n
\r
\n
// 如果存在变换(如缩放),调整基线偏移
\r
\n
if (desc.hasKey(stringIDToTypeID('transform'))) {
\r
\n
var mFactor = desc.getObjectValue(stringIDToTypeID('transform')).getUnitDoubleValue(stringIDToTypeID("yy"));
\r
\n
baselineShift *= mFactor; // 根据缩放因子调整基线偏移
\r
\n
}
\r
\n
\r
\n
return baselineShift;
\r
\n
} else {
\r
\n
return 0; // 如果没有设置基线偏移,返回0
\r
\n
}
\r
\n
}
\r
\n
\r
\n
// 判断是否启用了粗体(fauxBold)
\r
\n
function isBold() {
\r
\n
var textItem = textLayer.textItem;
\r
\n
return textItem.fauxBold; // 判断是否为粗体
\r
\n
}
\r
\n
\r
\n
// 判断是否启用了斜体(fauxItalic)
\r
\n
function isItalic() {
\r
\n
var textItem = textLayer.textItem;
\r
\n
return textItem.fauxItalic; // 判断是否为斜体
\r
\n
}
\r
\n
\r
\n
// 判断是否启用了下划线
\r
\n
function isUnderline() {
\r
\n
var textItem = textLayer.textItem;
\r
\n
return textItem.underline != UnderlineType.UNDERLINEOFF; // 判断是否为下划线
\r
\n
}
\r
\n
\r
\n
// 判断是否启用了删除线
\r
\n
function isStrikethrough() {
\r
\n
var textItem = textLayer.textItem;
\r
\n
return textItem.strikeThru != StrikeThruType.STRIKEOFF; // 判断是否为删除线
\r
\n
}
\r
\n
\r
\n
// 判断是否启用了全部大写
\r
\n
function isAllCaps() {
\r
\n
var textItem = textLayer.textItem;
\r
\n
return textItem.capitalization == TextCase.ALLCAPS; // 判断是否为全部大写
\r
\n
}
\r
\n
\r
\n
// 获取文本图层的颜色(RGB格式)
\r
\n
function getTextColor() {
\r
\n
var color = textLayer.textItem.color.rgb;
\r
\n
var r = color.red;
\r
\n
var g = color.green;
\r
\n
var b = color.blue;
\r
\n
\r
\n
// 转换为十六进制颜色值
\r
\n
function rgbToHex(r, g, b) {
\r
\n
return "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1).toUpperCase();
\r
\n
}
\r
\n
\r
\n
return rgbToHex(r, g, b); // 返回十六进制色值
\r
\n
}
\r
\n
\r
\n
// 获取水平和垂直缩放值
\r
\n
var horizontalScale = textLayer.textItem.horizontalScale;
\r
\n
var verticalScale = textLayer.textItem.verticalScale;
\r
\n
\r
\n
// 获取字号并进行四舍五入
\r
\n
var fontSize = getTextSize();
\r
\n
var roundedFontSize = fontSize.toFixed(2);
\r
\n
\r
\n
// 获取行距、字符间距和基线偏移
\r
\n
var lineSpacing = getLineSpacing();
\r
\n
var letterSpacing = getLetterSpacing();
\r
\n
var baselineShift = getBaselineShift(); // 获取基线偏移值
\r
\n
var bold = isBold(); // 判断是否启用了粗体
\r
\n
var italic = isItalic(); // 判断是否启用了斜体
\r
\n
var underline = isUnderline(); // 判断是否启用了下划线
\r
\n
var strikethrough = isStrikethrough(); // 判断是否启用了删除线
\r
\n
var allCaps = isAllCaps(); // 判断是否启用了全部大写
\r
\n
\r
\n
// 如果行距为 -1,表示自动行距
\r
\n
var roundedLineSpacing = lineSpacing === -1 ? "自动" : lineSpacing.toFixed(2);
\r
\n
\r
\n
// 四舍五入基线偏移到小数点后 1 位
\r
\n
var roundedBaselineShift = baselineShift.toFixed(1);
\r
\n
\r
\n
// 获取文本颜色
\r
\n
var textColor = getTextColor();
\r
\n
\r
\n
// 输出结果
\r
\n
var v = "文本图层内容:" + textContent +
\r
\n
"\n字体名称:" + fontName +
\r
\n
"\n字号:" + roundedFontSize +
\r
\n
"\n行距:" + roundedLineSpacing + "" +
\r
\n
"\n字符间距:" + letterSpacing +
\r
\n
"\n基线偏移:" + roundedBaselineShift + "" +
\r
\n
"\n水平缩放:" + (horizontalScale === 100 ? "100%" : horizontalScale + "%") +
\r
\n
"\n垂直缩放:" + (verticalScale === 100 ? "100%" : verticalScale + "%") +
\r
\n
"\n文本颜色:" + textColor +
\r
\n
"\n是否启用粗体:" + bold +
\r
\n
"\n是否启用斜体:" + italic +
\r
\n
"\n是否启用下划线:" + underline +
\r
\n
"\n是否启用删除线:" + strikethrough +
\r
\n
"\n是否启用全部大写:" + allCaps;
\r
\n
\r
\n
v; // 输出结果
\r
\n
} else {
\r
\n
var v = "当前选中的图层不是文本图层"; // 如果不是文本图层,给出提示
\r
\n
v;
\r
\n
}
\r
\n
[out]
脚本输出=>结果
文本图层内容:买厨电享至高6期分期购
\n
字体名称:FZLTZHJW--GB1-0
\n
字号:51.56
\n
行距:自动
\n
字符间距:50
\n
基线偏移:0.0
\n
水平缩放:100%
\n
垂直缩放:100%
\n
文本颜色:#FFFFFF
\n
是否启用粗体:false
\n
是否启用斜体:true
\n
是否启用下划线:false
\n
是否启用删除线:false
\n
是否启用全部大写:false
耗时:148ms
1357
4.1
步骤组
提示——复制+编辑操作。
[in]
忽略错误
【值/表达式】
False
[in]
使用多线程
【值/表达式】
False
[in]
调试运行时不输出调试内容
【值/表达式】
False
-
+
1357
4.1.0
自定义窗口
提示
[in]
失败后停止
【值/表达式】
True
[in]
操作类型
【值/表达式】
ShowAndWaitClose
[in]
窗口标识
【值/表达式】
yoyo12
[in]
窗口XAML代码
【值/表达式】
<qk:FadeOutWindow
\r
\n
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
\r
\n
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
\r
\n
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
\r
\n
xmlns:local="clr-namespace:QuickerSampleProject"
\r
\n
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
\r
\n
xmlns:qk="https://getquicker.net"
\r
\n
Title="MessageWindow"
\r
\n
Width="900"
\r
\n
Height="50"
\r
\n
AllowsTransparency="True"
\r
\n
Background="Transparent"
\r
\n
Foreground="White"
\r
\n
SizeToContent="WidthAndHeight"
\r
\n
Topmost="True"
\r
\n
WindowStartupLocation="CenterScreen"
\r
\n
WindowStyle="None"
\r
\n
ShowActivated="False"
\r
\n
ShowInTaskbar="False"
\r
\n
mc:Ignorable="d">
\r
\n
\r
\n
<Window.Resources>
\r
\n
<!-- 定义按钮的样式 -->
\r
\n
<Style x:Key="ButtonStyle" TargetType="Button">
\r
\n
<!-- 设置按钮的模板 -->
\r
\n
<Setter Property="Template">
\r
\n
<Setter.Value>
\r
\n
<ControlTemplate TargetType="Button">
\r
\n
<!-- 定义按钮的外观 -->
\r
\n
<Border Padding="10" Background="#99000000" BorderBrush="Transparent" BorderThickness="0" CornerRadius="30">
\r
\n
<!-- 使用水平布局来排列图像和文本 -->
\r
\n
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center">
\r
\n
<!-- 图像区域,调整图标与文本的间距 -->
\r
\n
<Image Source="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Tag}" Width="50" Height="50" VerticalAlignment="Center" Margin="3"/>
\r
\n
<!-- 文本区域,文本字号设置为30px,减小文本和图标之间的空隙 -->
\r
\n
<TextBlock Text="{TemplateBinding Content}" HorizontalAlignment="Center" FontFamily="微软雅黑" FontWeight="Regular" FontSize="20" Foreground="White" VerticalAlignment="Center" Margin="5,0,0,0"/>
\r
\n
</StackPanel>
\r
\n
</Border>
\r
\n
</ControlTemplate>
\r
\n
</Setter.Value>
\r
\n
</Setter>
\r
\n
<!-- 设置按钮的宽度和高度 -->
\r
\n
</Style>
\r
\n
</Window.Resources>
\r
\n
\r
\n
<!-- 窗口的主内容区域 -->
\r
\n
<Grid Margin="10">
\r
\n
<!-- 定义外部边框,设置圆角为30,透明度为60% -->
\r
\n
<Border Padding="1" Background="#99000000" CornerRadius="30">
\r
\n
<!-- 使用Grid布局来自动调整按钮大小 -->
\r
\n
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
\r
\n
<!-- 按钮,确保按钮拉伸并填充整个窗口,同时保持圆角一致 -->
\r
\n
<Button x:Name="button1" qk:Att.Action="close:miadododo" BorderThickness="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0"
\r
\n
Tag="https://files.getquicker.net/_icons/C27659110706C6672BA52C9DC91136409FFF0723.png"
\r
\n
Content="已获取并保存。点击此处可查看其文本属性。" Style="{StaticResource ButtonStyle}"/>
\r
\n
</Grid>
\r
\n
</Border>
\r
\n
</Grid>
\r
\n
</qk:FadeOutWindow>
\r
\n
[in]
窗口位置
【值/表达式】
BottomCenter
[in]
数据映射
【值/表达式】
[in]
辅助C#代码
【值/表达式】
[in]
窗口尺寸/位置
【值/表达式】
[in]
激活模式
【值/表达式】
NotActivated
[in]
事件
【值/表达式】
[in]
自动关闭时间(S)
【值/表达式】
3
[in]
失去焦点后关闭窗口
【值/表达式】
false
[out]
窗口结果=>自定义窗口按钮
耗时:3494ms
4852
4.1.1
步骤组
按钮
[in]
忽略错误
【值/表达式】
False
[in]
使用多线程
【值/表达式】
False
[in]
调试运行时不输出调试内容
【值/表达式】
False
4852
4.1.1.0
如果
判断条件:$= !String.IsNullOrEmpty({自定义窗口按钮})
[in]
如果
【值/表达式】
False
不符合条件,跳过。
4852
4.2
停止(return)
默认:停止动作或从子程序返回 (标记为出错:0)
[in]
操作类型
【值/表达式】
default
[in]
提示消息
【值/表达式】
[in]
标记为出错
【值/表达式】
False
[in]
返回值
【值/表达式】
停止动作:停止动作(默认)
耗时:0ms
检测到了中止标志(StopFromCode),停止后续步骤执行。
检测到了中止标志(StopFromCode),停止后续步骤执行。
动作结束。耗时:4853.0301ms
回复
回复
请绑定手机号后发表评论
回复主贴
相关资源
已复制到剪贴板,请在Quicker面板的空白按钮上点右键粘贴。
已复制到剪贴板。