找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 769|回复: 12

[求助] 【已解决】C# 怎么判断字体是形文件,还是字体文件

[复制链接]
发表于 2021-1-23 16:20:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 kip3000 于 2021-4-5 20:49 编辑

怎么用代码去区分SHX字体是形文件,还是字体文件
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 19个

财富等级: 恭喜发财

发表于 2021-1-24 00:14:35 | 显示全部楼层
你用SHX文件设置下字体样式,看看返回码是否成功,成功就是字体文件。不用再删除样式
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 914个

财富等级: 财运亨通

发表于 2021-1-25 05:31:20 | 显示全部楼层
我也一直搞不清楚
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2021-1-27 00:06:35 | 显示全部楼层
文件格式   
shx.png
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2021-1-27 00:50:15 | 显示全部楼层
本帖最后由 marting 于 2021-1-27 01:18 编辑

形文件头格式:
微信截图_20210127004705.png



英文字体头文件格式:

微信截图_20210127004800.png

汉字SHX头文件格式:

微信截图_20210127004739.png

写两个函数:
  1. (defun xd::shx:isfont (fn / ishead isfont)
  2.   (setq str (XD::FILE:ReadBinary fn 0 32))
  3.   (setq
  4.     ishead (= "AutoCAD-86"
  5.               (apply 'strcat (mapcar 'chr (xd::list:nth++ str 0 10)))
  6.            )
  7.   )
  8.   (setq
  9.     isfont (= "font"
  10.               (apply 'strcat (mapcar 'chr (xd::list:nth++ str 14 4)))
  11.            )
  12.   )
  13.   (setq
  14.     isshx (= "shapes"
  15.              (apply 'strcat (mapcar 'chr (xd::list:nth++ str 11 6)))
  16.           )
  17.   )
  18.   (and ishead isfont)
  19. )
  20. (defun xd::shx:isshape (fn / str ishead isshx)
  21.   (setq str (XD::FILE:ReadBinary fn 0 32))
  22.   (setq
  23.     ishead (= "AutoCAD-86"
  24.               (apply 'strcat (mapcar 'chr (xd::list:nth++ str 0 10)))
  25.            )
  26.   )
  27.   (setq
  28.     isshx (= "shapes"
  29.              (apply 'strcat (mapcar 'chr (xd::list:nth++ str 11 6)))
  30.           )
  31.   )
  32.   (and ishead isshx)
  33. )



命令: (xd::shx:isfont (findfile "txt.shx"))
T
命令: (xd::shx:isfont (findfile "ltypeshp.shx"))
nil
命令: (xd::shx:isshape (findfile "ltypeshp.shx"))
T


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-30 20:39:49 | 显示全部楼层
marting 发表于 2021-1-27 00:50
形文件头格式:

这个方法不是很严谨,在文字样式还是会有些加载到有文字shapes,只有带图形的shepes才不会被文字样式加载到,主要目的是排除不带文字的形字体,我是想用C#代码来区分,排除不带字体形文件 形文件1.png 形文件2.png
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2021-1-30 20:52:39 | 显示全部楼层
kip3000 发表于 2021-1-30 20:39
这个方法不是很严谨,在文字样式还是会有些加载到有文字shapes,只有带图形的shepes才不会被文字样式加载 ...

文件头应该是最根本的识别方式,你把各种条件都找到就好了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-31 15:02:27 | 显示全部楼层

【已解决】C# 怎么判断字体是形文件,还是字体文件

已经找到答案 谢谢大家

点评

找到答案编辑下帖子,告诉下大家啊  详情 回复 发表于 2021-1-31 15:22
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2021-1-31 15:22:14 | 显示全部楼层
kip3000 发表于 2021-1-31 15:02
已经找到答案 谢谢大家

找到答案编辑下帖子,告诉下大家啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 42个

财富等级: 招财进宝

发表于 2021-2-5 14:54:54 | 显示全部楼层
我也想知道怎么解决的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2021-2-5 15:12:13 | 显示全部楼层
scone 发表于 2021-2-5 14:54
我也想知道怎么解决的


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2021-2-5 15:58:40 | 显示全部楼层
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 57个

财富等级: 招财进宝

发表于 2021-3-1 10:27:59 | 显示全部楼层
了解一下,学习
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-17 21:21 , Processed in 0.212814 second(s), 58 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表