竖排文字生成器
把横排文本转成传统竖排:每行一列、列间空格对齐,支持从右往左(传统)与从左往右两种读序、半角与全角两种列距。输出仍是普通文本字符,直接粘贴到微信、备忘录就能保持竖排外观。
古籍、日签、海报上的文字是从上往下读的,但聊天框和备忘录只认横排。本工具把每行文本转成一列:第一行变成最右一列(传统读序),第二行在它左边,逐行往左排;列与列之间用空格对齐,短的列补空位保持整齐。转换结果仍是普通文本字符——没有图片、没有特殊符号,粘贴到微信、备忘录、文档里都能保持竖排外观。
两个选项适配不同场景:读序可选从右往左(古典诗词、日签的惯例)或从左往右(现代阅读习惯);列距可选普通空格(紧凑)或全角空格(与汉字等宽,对齐更整齐)。中文标点按原样放置不旋转,逗号句号在竖排里的方向需要的话先替换成合适的形式。
这个工具解决你的问题了吗?
提交后会把工具名、你的输入与当前结果发送到服务器;请勿填写身份证号、手机号等隐私信息。
AI 助手 会结合你当前的输入与结果回答
追问会再次把当前输入与结果发送到服务器;请勿填写隐私信息。
使用步骤
- 每行输入一句:一行将变成一列。
- 选读序:从右往左(传统)或从左往右。
- 选列距:普通空格或全角空格(更整齐)。
- 复制结果,直接粘贴到微信、备忘录即可。
计算原理与示例
每行一列的转换规则
竖排的规则是「每行一列」:输入的第一行变成一列文字,第二行变成左边一列(从右往左读序),以此类推;所有列对齐到最长列的高度,短列末尾补空格。转换输出的是普通文本字符——没有图片、没有私有 Unicode 符号,任何能显示多行文本的地方(微信、备忘录、文档)都原样保持竖排外观。
读序与列距的选择
读序二选一:从右往左是古籍、诗词、日签的传统(第一句在最右,从右往左读);从左往右贴近现代习惯。列距也有两档:普通空格紧凑省宽度,全角空格(U+3000)与汉字等宽、在等宽字体下各列严丝合缝。手机竖屏里建议每列 5~10 字,太长的列要滚动才能看全。
混排与标点的处理
中英文混排时英文按原样竖着放(一个字母一格),数字同理;中文标点不旋转,竖排排版惯例里逗号句号应旋转 90 度或换用竖排形式,需要的话先在原文里替换好再转换。生成后点复制按钮,到聊天框粘贴即可发送。
代码示例
CSS 竖排首选 writing-mode(真排版,可选中可复制)
/* 竖排不是「每个字换行」:writing-mode 会顺带处理标点避头尾、数字横排等东亚排版规则 */
.vertical {
writing-mode: vertical-rl; /* 从右往左(中文/日文传统);从左往右用 vertical-lr */
text-orientation: upright; /* 拉丁字母与数字也立起来(默认 mixed 会横躺) */
letter-spacing: 0.1em;
line-height: 1.6;
}
/* 标点与混排微调 */
.vertical p {
text-combine-upright: digits 2; /* 两个数字合成一格(如「25」竖排占一格) */
hanging-punctuation: allow-end; /* 行末标点悬挂,避免右侧空一格 */
}
JavaScript canvas 逐字排版(要出图时)
// canvas 没有竖排支持,只能自己逐字下移;size 是字号,也是每格的边长
function drawVertical(ctx, text, x, y, size) {
const chars = [...text]; // 按码点切,emoji 才不会被拆开
ctx.font = size + 'px serif';
ctx.textAlign = 'center';
ctx.textBaseline = 'middle';
chars.forEach((ch, i) => {
// 标点要挪到格子右上,否则视觉上会「贴着上一字」
const isPunct = /[,。、;:!?]/.test(ch);
ctx.fillText(ch, x + (isPunct ? size * 0.3 : 0), y + i * size + size / 2);
});
}
ctx.fillStyle = '#111';
drawVertical(ctx, '竖排文字示例。', 40, 20, 28);
常见问题
生成的竖排文字粘贴到微信会乱吗?
不会。输出仍是普通文本字符,只是每行一列、用空格对齐模拟竖排外观,任何能显示多行文本的地方(微信、备忘录、文档)都原样保持,不依赖图片或特殊字体。
从右往左是什么意思?
传统竖排从上到下读、列从右往左排:输入的第一行显示在最右一列,第二行在它左边,与古书排版一致。习惯现代阅读的话可以切换成从左往右。
两列长短不一时怎么对齐?
所有列统一对齐到最长列的高度,短的列在末尾补空格占位。这样每行文本的列位置固定,等宽字体下看是整齐的方阵。
全角空格和普通空格有什么区别?
全角空格(U+3000)与汉字等宽,列间距均匀、对齐效果最好;普通空格宽度是汉字的一半,在非等宽字体下各列会稍微错位。追求整齐用全角,追求紧凑用普通。
标点符号会自动旋转吗?
不会,按原样放置。竖排里逗号、句号习惯上要旋转 90 度或换成竖排专用形式,本工具不做旋转——需要的话先把「,」换成「、」或调整标点位置再转换。
一列最多放多少字?
没有硬性限制,但聊天窗口高度有限,列太长要滚动才能看全,观感也差。建议每列 5~10 字——一句五言、七言诗正好一列。
英文和数字能竖排吗?
能。字母与数字按原样一个字符一格参与竖排,等宽字体下与汉字对齐最好;比例字体里西文会稍窄,对齐略有偏差属正常现象。
延伸阅读
来自本站原创文章,讲清这个工具背后的算法与口径。