当前位置: 首页 > news >正文

网站浮动窗口代码网络公司网页设计

网站浮动窗口代码,网络公司网页设计,wordpress老文章,阆中网站建设最近项目rust生成PDF组件printpdf需要内嵌完整字体导致生成的PDF很大,需要做压缩,但是rust的类库allsorts::subset::subset不支持windows,所以做了一些windows下字体子集化的尝试 方案一:node.js做子集化 fontmin 缺点是也需要集…

最近项目rust生成PDF组件printpdf需要内嵌完整字体导致生成的PDF很大,需要做压缩,但是rust的类库allsorts::subset::subset不支持windows,所以做了一些windows下字体子集化的尝试

方案一:node.js做子集化
fontmin 缺点是也需要集成node环境,很多网络下载的字体都不支持

方案二:python做子集化
fontTools库的subset工具,兼容性最好的子集化工具,参数也最丰富
缺点:需要软件集成mini python环境,在低端电脑执行速度特别慢
pip install fonttools
可以直接用命令行执行
pyftsubset 原始字体文件路径 --text=需要保留的字符 --output-file=输出子集字体文件路径
完整的参数使用查看源码

from fontTools.subset import subsetdef create_font_subset(input_font, output_font, characters):subset_options = {'glyphs': characters}subset(input_font, output_font, subset_options)input_font_path = 'path/to/input_font.ttf'
output_font_path = 'path/to/output_font.ttf'
characters_to_include = 'abcdefghijklmnopqrstuvwxyz'create_font_subset(input_font_path, output_font_path, characters_to_include)

方案三:C#做子集化
Microsoft.Extensions.FontSubset 库

using System;
using System.IO;
using Microsoft.Extensions.FontSubset;class Program
{static void Main(string[] args){string fontPath = "path/to/font.ttf"; // 字体文件路径string[] characters = new string[] { "A", "B", "C" }; // 需要包含在子集中的字符列表string outputPath = "output.ttf"; // 输出文件路径using (FileStream outputStream = File.Create(outputPath)){FontSubset.BuildSubset(fontPath, characters, outputStream);}}
}

有一个fontsubset已经编译好可以直接用
fontsubset-console -c <字符集目录> -r <字符集文件匹配规则> -a -s <输入字体文件> <输出的字体文件>

方案四:java做子集化
拷贝了一个韩国人的项目,放到自己的仓库
启动一个java http服务,通过入参生成子集,第一次要400ms左右,后面执行越来越快几十ms
缺点:生成的字体仍然有1.3M;需要集成jre环境;放弃

import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.FontSubsetGenerator;import java.io.IOException;public class SubFontByItextPdf {public static boolean subFont(String sourceFontFile, String destFontFile, String text) {long startTime = System.currentTimeMillis();try {String path = FontSubsetGenerator.GEN(sourceFontFile, destFontFile, text);System.out.println("result: "+path);} catch (DocumentException e) {e.printStackTrace();System.out.println("error");return false;} catch (IOException e) {System.out.println("error");e.printStackTrace();return false;}System.out.println("cost" + (System.currentTimeMillis() - startTime) + "ms");System.out.println("done");return true;}
}

方案五:用harfbuzz的工具类hb-subset
调用命令行直接执行,下载地址
hb-subset.exe --output-file=dest.otf C:\source.otf 你好呀
执行速度很快,字体子集化结果也比较理想
参数使用查看源码,也可以hb-subset.exe --help-all查看所有参数

http://www.hengruixuexiao.com/news/31723.html

相关文章:

  • 比较多人用什么网站做推广北京建设网站公司
  • 网站浏览器图标怎么做软文300字案例
  • 济南建网站市场怎么做一个网站的步骤
  • 网站建设单页人工智能培训师
  • 厦门关键词seo排名网站他达那非片能延时多久
  • 网站建设的步骤过程seo网站优化课程
  • 做数学题的网站有吗广州seo网络推广员
  • 如何做公司建网站方案给公司网络营销的八大职能
  • 成都网站建设培训经典品牌推广文案
  • 英文外贸网站制作百度指数搜索热度大学
  • 加强政府门户网站建设通知重庆网络推广外包
  • 台州企业网站搭建特点搜索引擎排名查询
  • 优秀的vi设计案例宁波网络推广优化公司
  • 做环评需要关注哪些网站百度推广河南总部
  • 做网站必须要买服务器吗福州seo按天付费
  • 搭建企业网站流程百度推广关键词优化
  • 珠海企业网站制作费用福州网站排名推广
  • 沈阳网站建设哪家便宜2022近期重大新闻事件10条
  • 建设银行境外购物网站推广平台app
  • 东莞市长安镇做网站seo优化的主要任务包括
  • 男女做暧昧视频网站美区下载的app怎么更新
  • 西安大型网站设计公司免费推广的途径与原因
  • 最新企业网站模板seo优化中商品权重主要由什么决定
  • 专业做刀具网站的公司广州市口碑seo推广
  • 中小企业网站建设湖南网站建站系统哪家好
  • 风景网站模板企业培训课程种类
  • 汉高建设公司网站如何关闭2345网址导航
  • 智通人才网招聘信息对网站外部的搜索引擎优化
  • 兰州网络公司网站如何推广普通话的建议6条
  • app开发公司 上海揭阳seo推广公司