前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >网页中如何获取客户端系统已安装的所有字体?

网页中如何获取客户端系统已安装的所有字体?

作者头像
Java架构师必看
发布2021-03-22 15:04:56
7.3K0
发布2021-03-22 15:04:56
举报
文章被收录于专栏:Java架构师必看

如何获取系统字体? 1.首先在需要获取系统字体的网页<body>后加入以下代码: <DIV style="LEFT: 0px; POSITION: absolute; TOP: 0px"> <OBJECT ID="dlgHelper" CLASSID="clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b" WIDTH="0px" HEIGHT="0px"> </OBJECT> <script src="FontFacesMenu.js" language="javascript" type="text/javascript"></script> </DIV>

2.将以下内容保存为:FontFacesMenu.js文件。 // FontFacesMenu.js var fontsArray = new Array(); var fontsIsAdded = false; function fontFacesMenuEnter(fontFacesDropdownList, dlgHelperId) {  if((fontsIsAdded == false )||(fontsArray==''))  {   fontsArray = getSystemFonts(dlgHelperId);   fontsIsAdded = true;   for (var s=1; s < fontsArray.length; s++)   {    newOption = document.createElement("option");    newOption.value = fontsArray[s];    newOption.text = fontsArray[s];    fontFacesDropdownList.add(newOption);   }  } }

function getSystemFonts(dlgHelperId) {  var a = document.all(dlgHelperId).fonts.count;  var fArray = new Array();  for (i = 1;i <= parent.document.all(dlgHelperId).fonts.count;i++){   fArray[i] = parent.document.all(dlgHelperId).fonts(i);  }  return fArray; }

3.在网页需要插入字体下拉菜单的位置处插入以下代码:

系统字体: <SELECT ID="blessingWords_FontFamily_DL" name="blessingWords_FontFamily_DL" onChange="//SetFontFace(this[this.selectedIndex].innerText,this[this.selectedIndex].value);this.selectedIndex=0;" style="width:140px;" οnmοuseenter="fontFacesMenuEnter(this, 'dlgHelper');//updateFontList();"> <OPTION VALUE=""><- 设置字体 -></OPTION>       </SELECT>

OK!看到效果了没有?如果可以,恭喜你了! 注:如果需要加上选中后的事件,在onChange中改变成你自己的相应事件处理即可。 以上对客户端的开发有用,如果需要服务器端的字体,继续往下看,否则略过即可。

4.如何将我的系统字体保存为文件?(对于服务器端开发略有小用) (1)如果你的服务器的字体配置与你现有电脑字体配置一样的话,使用Javascript脚本,然后COPY至写字板或记事本,再保存。 接着上面步骤继续往下做: (续)步骤一:将以下代码放在<Body>区内: <textarea name="FontList" id="FontList" cols="35" rows="20" id="FontList" style="position:absolute; left:0px; top:0px; z-index:10000"></textarea> 步骤二: <Script> // "blessingWords_FontFamily_DL" 需要改成你自己获取系统字体下拉菜单的名字(如果你已经改过的话) var dropDownListName = "blessingWords_FontFamily_DL"; function updateFontList() {  var list="";  var blessingWords_FontFamily_DL = document.all[dropDownListName];  for(i=0; i <blessingWords_FontFamily_DL.options.length; i++)  {   list += '<OPTION VALUE="' + blessingWords_FontFamily_DL.options[i].text + '">'+ blessingWords_FontFamily_DL.options[i].text + '</OPTION>/r/n';  }  document.all("FontList").value = list; } </Script>

步骤三:将上面第3条中最后的"//updateFontList();"中的两个斜杠隐掉,变成: οnmοuseenter="fontFacesMenuEnter(this, 'dlgHelper');updateFontList();"

步骤四:保存你的网页,刷新它,再试试看。在“FontList”的TextArea区域应该已经有了你的所有系统字体了,先复制再贴粘到你需要的地方。 比如:第3条中<OPTION VALUE=""><- 设置字体 -></OPTION>的下面,这样,你就可以将它变成服务器上的相关字体(如果你的服务器的字体配置与你现有电脑字体配置一样的话)了。 (2)使用C#代码获取服务器系统中的字体(暂时略过,有空再写)。它的优点是可以直接获取服务器端的字体,以保持开发的一致性。

本文由来源 21aspnet,由 javajgs_com 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档