Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将Arial Unicode MS添加到CKEditor

将Arial Unicode MS添加到CKEditor
EN

Stack Overflow用户
提问于 2015-05-28 14:20:42
回答 3查看 1.3K关注 0票数 12

我的web应用程序允许用户在CKEditor中编写富文本,然后使用飞碟类库将结果导出为PDF。

因为他们需要写希腊字符,所以我选择将Arial Unicode MS添加到可用的字体中,方法如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
config.font_names = "*several fonts...*; Arial Unicode MS/Arial Unicode MS, serif";

该字体现在可以在CKEditor菜单中正确显示,但是当我将该字体应用于任何元素时,我会得到以下结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<span style="font-family:arial unicode ms,serif;"> some text </span>

如您所见,我丢失了UpperCase字符。这在PDF导出期间有相当糟糕的效果,因为are无法识别字体,因此使用不支持Unicode字符的Helvetica,因此希腊字符不会显示在PDF中。

如果我从代码源中手动更改

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<span style="font-family:arial unicode ms,serif;"> some text </span>

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<span style="font-family:Arial Unicode MS,serif;"> some text </span>

然后它就可以正常工作了,希腊字符就会显示出来。

以前有没有人遇到过这个问题?有没有办法避免将UpperCase字符更改为LowerCase?我真的想避免做任何类型的后处理,比如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
htmlString = htmlString.replace("arial unicode ms", "Arial Unicode MS");
EN

回答 3

Stack Overflow用户

发布于 2015-06-06 20:32:45

我同意你解决这个问题除了飞碟R8。尽管取决于您的工作流程,但允许CKEditor预处理和验证完整的HTML编码文件(首先将整个文档呈现为HTML )是否会更有效率?

没有一个CKEditor支持标签指明了问题的真正来源,所以我建议您自己确认是(A)样式问题,(B) CSS处理问题,还是(C)特殊的CKEditor解析问题。

一种可能的解决方法:复制所需的unicode字体,然后将其导入Type 3.2 (适用于Mac和Windows)。

http://www.cr8software.net/type.html

将重复的字体集重命名为全小写字体。

限制您的字体选择

config.font_names =“此处自定义字体名称”;

单独应用样式(下面的unicode字体很棒),看看是否能得到想要的结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var s = CKEDITOR.document.$.createElement( 'style' );
s.type = 'text/css';
cardElement.$.appendChild( s );

s.styleSheet.cssText =
'@font-face {' +
'font-family: \'GreatVibes\';' +
'src: url(\'' + path +'fonts/GreatVibes-Regular.eot\');' +
'}' +
style;

如果上面的方法不起作用,你可以尝试修改xmas plugin.js (也使用unicode字体,在输出之前做各种很酷的操作),所以可能值得尝试修改它,而不是从头开始:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
'<style type="text/css">' +
'@font-face {' +
'font-family: "GreatVibes";' +
'src: url("' + path +'fonts/GreatVibes-Regular.ttf");' +
'}' +
style +
'</style>' )

无论您尝试哪种方法,目标都是测试各种样式,并查看CKEditor是否会再次默认回到Helvetica。

最后,CKEditor软件开发工具包有很好的支持,所以如果你有时间和精力,你可以写一个插件。我知道这听起来令人生畏,但请注意/ plugin.js /font目录中的插件如何具有大小属性的优先级。

如果您对制作自己的插件不感兴趣,我建议您联系多产的ckeditor插件作者。

doksoft

(在他们的网站和他自己的网站上都列出),并要求演示他的商业插件"CKEditor特殊符号“,具有广泛的unicode功能。希望这会有帮助,ClaireW

票数 4
EN

Stack Overflow用户

发布于 2015-06-03 22:42:23

我没有找到任何使用飞碟R8的方法,但是你可以使用飞碟R9来实现它。

ITextResolver.addFont(String path, String fontFamilyNameOverride, String encoding, boolean embedded, String pathToPFB)方法允许您添加具有特定名称的fond。

代码示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  ITextRenderer renderer = new ITextRenderer();
  // Adding fonts
  renderer.getFontResolver().addFont("fonts/ARIALUNI.TTF", "arial unicode ms", BaseFont.IDENTITY_H, BaseFont.EMBEDDED, null);
  renderer.getFontResolver().addFont("fonts/ARIALUNI.TTF", "Arial Unicode MS", BaseFont.IDENTITY_H, BaseFont.EMBEDDED, null);

  String inputFile = "test.html";
  renderer.setDocument(new File(inputFile));
  renderer.layout();

  String outputFile = "test.pdf";
  OutputStream os = new FileOutputStream(outputFile);
  renderer.createPDF(os);
  os.close();

你可以在Maven上找到飞碟R9。

票数 2
EN

Stack Overflow用户

发布于 2015-06-07 10:04:54

最简单的解决方案(直到CKEditor修复了这个bug)是进行后处理。

你可以在服务器上做这件事(非常简单,你已经有了代码)或者用一个小的CKEditor插件,但这会给你你想要的解决方案,除非你需要添加更多的字体,否则它将不需要任何进一步的更改就能工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30509301

复制
相关文章
CKEditor使用
https://ckeditor.com/ckeditor-4/download/
码客说
2022/09/19
2.5K0
CKEditor使用
将Sublime添加到鼠标右键
2、找到 HKEY_CLASSES_ROOT/*/shell 目录,在此目录下操作。
新码农
2020/03/05
3K0
将Windows Terminal添加到鼠标右键
导读 非常实用的小技巧。 下载Windows Terminal图标,右键另存为。 [WindowsTerminal图标] 保存至'C:\Users\Administrator\AppData\Local\Terminal\Terminal.ico'。 win+R输入'regedit',打开注册表。 找到'HKEY_CLASSES_ROOT\Directory\Background\shell'目录,在此目录下操作。 新建项'wt',双击右边'默认',更改右键文字显示内容'Windows Terminal H
新码农
2020/08/05
3.6K0
将Windows Terminal添加到鼠标右键
将Emoji表情添加到项目中 顶
选择完需要的表情,点击消息预览就可以看到效果了,有一个微笑表情是QQ表情~~ 可以不用管它。
linapex
2019/03/26
1.8K0
将Emoji表情添加到项目中
                                                    顶
dart - 将 orElse 函数添加到 firstWhere 方法
我正在尝试将 onElse 函数添加到 iterator.firstWhere 方法,但我无法获得正确的语法。 我试过类似的东西
徐建国
2021/08/31
1.6K0
将程序添加到右键菜单快速启动
打开注册表编辑器:按下 Win + R 键,输入 regedit,然后按回车键打开注册表编辑器。
浪漫主义狗
2023/09/04
4610
将程序添加到右键菜单快速启动
将 Fedora Linux 系统添加到企业域中
在企业互联网场景中,一般情况下最广泛使用的基于 Linux 的操作系统是 Red Hat Enterprise Linux(RHEL),它主要用于服务器,但也可以用作工作站。Fedora linux 其实也是工作站系统的一个很好的选择,它提供了许多在企业环境中工作的特性,使管理成为一项简单的任务。
用户1880875
2021/09/06
1.6K0
Windows下将cmd命令添加到右键菜单
将下列文本复制到文件,保存为 *.reg 格式: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\cmd_here] @="在此处打开cmd" "Icon"="cmd.exe" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\cmd_here\command] @="\"C:\
Daotin
2020/12/14
2K0
OpenStack命令将卷添加到虚拟机上
首先加载权限 [root@controller ~]# . admin-openrc
院长技术
2020/06/15
1.5K0
Java将内容追加/添加到现有文件
如果您希望代码创建一个新文件并删除以前的现有文件,则FileWriter可以轻松代替它。要替换现有文件中的所有内容,请使用以下命令:
用户7886150
2021/04/28
3.1K0
如何使用ReconAIzer将OpenAI添加到Burp中
ReconAIzer是一款功能强大的Burp Suite扩展,该工具基于Jython开发,可以为Burp Stuite添加OpenAI能力,并利用OpenAI来优化和增强渗透测试过程中的网络侦查任务。该工具专为漏洞猎人和渗透测试人员设计,支持以自动化的形式执行多种网络安全任务,可以帮助广大安全研究人员以简单快速的形式识别和利用漏洞。
FB客服
2023/08/08
2960
如何使用ReconAIzer将OpenAI添加到Burp中
解决将Editplus添加到鼠标右键的问题
以管理员身份运行EditPlus 一次点击–>工具–>首选项–>常规–>勾选将EditPlus添加到系统右键菜单选项
别团等shy哥发育
2023/02/25
1.4K0
解决将Editplus添加到鼠标右键的问题
技术分享 | 将GreatSQL添加到系统systemd服务
systemd 是Linux系统启动和服务器守护进程管理器,负责在系统启动或运行时,激活系统资源,服务器进程和其它进程,systemd被设计用来改进原来sysvinit中的多个缺点。
老叶茶馆
2021/07/09
1.3K0
只需三步:在CKEditor4富文本编辑器中集成错别字在线检测
JCJC错别字检测已经可以集成在各种编辑器中了,这篇文章主要用来讲解如何与:CKEditor编辑器集成错别字在线检测功能。
田春峰-JCJC错别字检测
2019/11/26
1.4K0
只需三步:在CKEditor4富文本编辑器中集成错别字在线检测
如何将WebRTC播放协议添加到EasyCVR?
自2020年浏览器的发展和兼容性发生了变化,WebRTC的延时性、安全性得到了提升和保护,尤其是疫情爆发后,实时视频的需求比之前增长了30倍,这更刺激了WebRTC产品的持续快速发展。因此我们也在EasyGBS、EasyDSS等平台内实现了WebRTC协议的播放。
TSINGSEE青犀视频
2021/11/23
1.4K0
将普通用户添加到sudo组
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
suveng
2019/09/18
2.2K0
将 Docker 镜像安全扫描,添加到 CI/CD 管道
如今,镜像安全扫描变得越来越流行。这个想法是分析一个Docker镜像并基于CVE数据库寻找漏洞。这样,我们可以在使用镜像之前知道其包含哪些漏洞,因此我们只能在生产中使用“安全”镜像。
我的小碗汤
2023/03/19
2.5K0
将 Docker 镜像安全扫描,添加到 CI/CD 管道
将多个Celery定时任务添加到Systemd
当多个celery定时任务都需要开机自动启动,所以都需要添加到systemd,但在/etc/conf.d/下只有一个配置文件,肯定不可能多个定时任务共用同一个配置文件.
Python碎片公众号
2021/02/26
1.3K0
将多个Celery定时任务添加到Systemd
点击加载更多

相似问题

Arial Unicode MS未在Jtree中对齐

10

等效于Arial Unicode MS的字体

21

在JavaFX中使用Arial Unicode MS粗体

176

如何设置Arial Unicode Ms Font for Crystal Report Chart?

22

Oracle SQL Developer: Arial Unicode MS和其他字体不可用

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文