跟这里《文字竖排工具的Firefox扩展安装包(支持横竖互换)》用的是相同的核心代码.
http://yeahoo.iteye.com/blog/214518
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>文字竖排转换工具(本地版)</title>
<style type="text/css">
*{margin:0; padding:0}
select{padding:3px;}
body,textarea{padding:5px; font:14px/20px '宋体';}
</style>
<script type="text/javascript">
/**
* 文字竖排转换工具
* @author [email]yeahoo2000@gmail.com[/email]
*/
var vPost={
style:[
['┏', '━┓', '━┯', '┗', '━┛', '━┷', '┃', '┆']
,['╔', '═╗', '═╤', '╚', '═╝', '═╧', '║', '┆']
,['┌', '─┐', '─┬', '└', '─┘', '─┴', '│', '┆']
,['', '', '', '', '', '', '┃', '┆']
,['', '', '', '', '', '', '║', '┆']
,['', '', '', '', '', '', '│', '┆']
],
replaces: [
' ',' ', '\\(', '︵', '\\)','︶', '\\[','︻', '\\]', '︼', '\\{','︷', '\\}','︸', '《','︽', '》','︾', '\\^','︿', '—','|', ':','‥', ':','‥', '<','︿', '>','﹀' ,'‘','﹁', '’','﹂', '“','﹃', '”','﹄', '…','┇'
],
/**
* 一些特殊字符的替换操作
* @param string text 内容
* @return string
*/
replace: function(text){
text = text.replace(/\r\n/g, '\n');
text = text.replace(/\n\n/g, '\n');
for(var i=0; i<vPost.replaces.length; i+=2){
text = text.replace(new RegExp(vPost.replaces[i], 'g'), vPost.replaces[i+1]);
}
return text;
},
/**
* 去除头尾的空白字符
* @param string text 内容
* @return string
*/
trim: function(text){
return text.replace(/(^\s*)|(\s*$)/g, '')
},
/**
* 横排文字转成竖排
* @parm string text 内容
* @parm int r 行数
* @parm int c 列数
* @parm int sty 风格
* @return string
*/
convertV: function(text, r, c, sty){
text = vPost.replace(vPost.trim(text));
if(0 == c){ //如果用户选了自动列,则计算列数
c = text.length % r ? parseInt(text.length / r) + 1 : parseInt(text.length / r);
}
do{ //处理换行
var n = text.indexOf('\n');
if(-1 != n){
if(n%r){
var s = '';
for(var i=0; i<(r - n%r); i++){
s += ' ';
}
}
text = text.substr(0, n) + s + text.substr(n+1);
}
}while(-1 != n);
var s = sh = sf = '';
if(vPost.style[sty][0]){
for(var i=0; i<=c; i++){ //处理边框
sh += 0 == i? vPost.style[sty][0]: (c == i ? vPost.style[sty][1] : vPost.style[sty][2]);
sf += 0 == i? vPost.style[sty][3] : (c == i ? vPost.style[sty][4] : vPost.style[sty][5]);
}
}
var p = text.length % (r * c) ? parseInt(text.length / (r * c)) + 1 : parseInt(text.length / (r * c)); //需要分成多少部份?
for(var i=0; i<p; i++){ //处理内容
s += sh? sh + '\n' : '';
for(var j=0; j<r; j++){
for(var k=0; k<c; k++){
s += 0 == k? vPost.style[sty][6] : '';
var t = text.substr(i * c * r + ((c-1)-k) * r + j, 1);
var cc = t.charCodeAt(0);
t = cc < 127? String.fromCharCode(cc + 65248) : t; //将一些特殊字符转换为全角
s += t? t : ' ';
s += c-1 == k? vPost.style[sty][6] :vPost.style[sty][7];
}
s += '\n';
}
s += sf? sf + '\n\n' : '\n';
}
return s.substring(0, s.length -2); //去除最后的两个换行
},
/**
* 竖排文字转成横排
* @parm string text 内容
* @return string
*/
convertH: function(text){
if(!text) return '';
text = text.replace(/\r\n/g, '\n');
text = vPost.trim(text);
var blocks = text.split('\n\n');
var t = blocks[0];
var t = t.split('\n');
var r = t.length;
var c = t[0].length;
var hasHeader = true;
var border = t[0][1];
for(var i=1; i<c - 2; i += 2){ //判断在竖排格式中是否带有头脚边框
if( t[0][i] != border
|| t[0][i] != t[0][i+2]
|| t[r-1][i] != border
|| t[r-1][i] != t[r-1][i+2]
){
hasHeader = false;
break;
}
}
//alert('blocks='+blocks.length + " : r=" + r + ' : c=' + c + ' : isV='+isV+ ' : hasHeader=' + hasHeader);
var isV = true;
var i = hasHeader? 1 : 0;
try{
var split = t[i][2];
for(var j=2; j<c-3; j+=2){ //判断是否竖排格式
if(t[i][j] != split || t[i][j] != t[i][j+2]){
isV = false;
break;
}
}
}catch(e){
isV = false;
}
var s = '';
if(isV){
r = hasHeader? r-1 : r;
for(var i=0; i<blocks.length; i++){
for(var j=c-2; j>0; j-=2){
var k = hasHeader? 1 : 0;
for(; k<r; k++){
var t = blocks[i].substr(k * (c+1) + j, 1)
var cc = t.charCodeAt(0);
t = cc>65248 && cc<65248+127? String.fromCharCode(cc - 65248) : t; //将一些全角字符转换为半角
s += t;
}
}
}
for(var i=0; i<vPost.replaces.length; i+=2){
var rp = vPost.replaces[i].replace(/\\/g, '');
s = s.replace(new RegExp(vPost.replaces[i+1], 'g'), rp);
}
return vPost.trim(s);
}else{
return text;
}
}
}
</script>
</head>
<body>
<textarea id="input" style="width:650px; height:180px;"></textarea>
<p style="font:12px/20px '宋体'; color:#666;">在竖排转横排时,如果待转换的文字是有多块组成的,那么块与块之间必须要有一个空行隔开,否则无法正常转换.</p>
<p style="margin:5px 0;">
<select id="r">
<option value="5">5行</option>
<option value="8">8行</option>
<option value="10" selected="selected">10行</option>
<option value="15">15行</option>
<option value="20">20行</option>
<option value="25">25行</option>
<option value="30">30行</option>
<option value="50">50行</option>
</select>
<select id="c">
<option value="0">自动计算列</option>
<option value="5">5列</option>
<option value="8">8列</option>
<option value="10">10列</option>
<option value="15">15列</option>
<option value="20">20列</option>
<option value="25">25列</option>
<option value="30">30列</option>
<option value="50">50列</option>
</select>
<select id="sty">
<option value="0">粗实线边框</option>
<option value="1">双实线边框</option>
<option value="2">细实线边框</option>
<option value="3">无边框粗实线</option>
<option value="4">无边框双实线</option>
<option value="5">无边框细实线</option>
</select>
<input type="button" onclick="document.getElementById('output').value = vPost.convertV(document.getElementById('input').value, document.getElementById('r').value, document.getElementById('c').value, document.getElementById('sty').value)" value="横排转竖排" style="width:120px; height:28px;" />
<input type="button" onclick="document.getElementById('output').value = vPost.convertH(document.getElementById('input').value)" value="竖排转横排" style="width:120px; height:28px;" />
</p>
<textarea id="output" style="width:650px; height:400px;"></textarea>
</body>
</html>
- 描述: 界面
- 大小: 41.1 KB
分享到:
相关推荐
赛音蒙文网页排版转换工具便支持这种竖排布局,使得用户可以在电子文档中重现这种独特的文字呈现方式,这对于保留和传承民族文化具有重要意义。 工具的亮点之一是其提供了多种蒙文输入法的转换功能。蒙古文有多种...
示例可能使用了图标字体库,如Font Awesome或Ionicons,它们将图标表示为文字,可以像普通字体一样缩放和着色,且兼容性好,适用于各种浏览器。 7. ARIA属性: 为了增强无障碍性(Accessibility),可以使用ARIA...
然后,它将识别出的字符与内部字库进行比较,找出最接近的匹配,从而将图像中的字符转换为可编辑的文本格式。 这款特定的日语OCR工具是基于Java开发的,从文件列表中的"KanjiTomo.jar"可以看出,这是一个Java ...
实时的同步预览,编辑器同步滚动,预览区同步滚动,更提供了markdown文件与转换后的html文件sourceMap映射功能 多种主题选择 用户可以选择多达20多种系统内置的主题 竖排写作 专门针对CJK字符进行了优化,并实现...
1. **创建文本**:在Photoshop中,可以使用“文字工具”(T图标)来创建横排或竖排的文本。点击画布并输入文本,即可创建一个新的文本图层。 2. **格式化文本**:可以调整字体、大小、颜色、对齐方式、行距、字距等...
最后,示例中还提供了几个在线的文字特效工具链接,包括在线特效文字、彩色文字生成工具、CSS样式工具、仿古书排版文字竖排转换工具以及线条字生成工具,这些工具可以帮助开发者快速创建各种文本特效。 总结一下,...
文字转换为表格 删除行末空格 块粘帖 数字排序(升序) 数字排序(降序) 字符排序(升序) 字符排序(降序) 查找左括号 查找右括号 自动复制 自动完成 自动追加 左对齐 右对齐 居中 转为竖排 ...
例如,当屏幕宽度小于600px时,将横排导航栏转换为竖排: ```css @media (max-width: 600px) { .navbar { flex-direction: column; /* 使元素垂直堆叠 */ } .nav-item { float: none; clear: none; } } ``...
- **技术原理**:通过文本处理技术,将现代横排文字转换为古书竖排格式,增加传统文化氛围。 - **用户界面**:提供文本输入框及转换按钮,便于用户操作。 ### 9. 在线钢琴演奏 - **技术实现**:利用HTML5 Audio API...
3. 转换文本为SmartArt:将第2张幻灯片的文本转换为SmartArt图形,布局为“基本循环”,设置样式为“白色轮廓”,颜色为“渐变范围-强调文字颜色1”。 4. 超链接设置:为目录幻灯片的文本标题添加超链接,链接到...
OCR(Optical Character Recognition)技术是一种将图像中的文字转换为可编辑文本的计算机技术。它通过扫描、图像处理等步骤,将纸质文档、图片中的文字信息转化为可搜索、编辑的电子文本。Python作为一种强大的编程...
而`itext5-xmlworker-5.5.11.jar`则用于将HTML和CSS转换为PDF,这在生成基于网页内容的PDF文档时非常有用。这些asc文件则是GPG签名,用于验证下载的jar文件的完整性和安全性。 利用iTextAsian,开发者可以轻松地在...
15. **Word文本框操作**:Word提供了横排和竖排两种类型的文本框,可以在文本框中插入图片,并可以通过改变文字方向实现横排和竖排的转换。 16. **精确设置段落缩进**:在Word中,使用段落对话框可以精确设置段落...
竖排单元格文字 Word表格每一个单元格都可以独立设置段落格式。只要选中并右击某一单元格,再选择“文字方向”,并在打开的“文字方向-表格单元格”对话框中选择一种排列方式即可。 制作属于自己的报纸 利用Word...
3. Caption属性:在VB(Visual Basic)中,Caption属性用于设置控件的标题或文字显示。 4. VB事件:在VB中,Click事件表示用户点击对象时触发的事件。 5. RAM:Random Access Memory,随机访问存储器,断电会丢失...
16.lash能将ASCII代码转换成对应的字符,也可以返回字符对应的ASCII码。Chr表示什么? A. 转换ASCII码为字符 B. 转换字符为ASCII码 C. 转换字符为海明码 D. 转换海明码为字符 17.Flash 菜单File→Print的快捷...