Quicker
主页
下载
专业版
分享
动作库
子程序
扩展热键
文本指令
动作单
应用程序
文档
文档中心首页
软件使用手册
组合动作开发
知识库
版本更新
版本更新(归档)
异常反馈
讨论
外观
登录
注册
动作库
动作
PS文本格式刷
讨论
话题详情
为啥我复制以后赋予后的文字变大了好多倍,170变成了700多的字
使用问题
·
222 次浏览
用户Dm2k91sRAwA
创建于 2025-06-13 15:45
为啥我复制以后赋予后的文字变大了好多倍,170变成了700多的字
添加评论
回复
请绑定手机号后发表评论
回复内容
北京林或西
2025-06-13 22:20
#
1
上传调试日志。
回复
回复
请绑定手机号后发表评论
失落叶子云养猫
6天12小时前
#
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面板的空白按钮上点右键粘贴。
已复制到剪贴板。