PowerPoint文件字体提取工具

时间:2022-08-01 16:11:28 

很多人工作学习中经常需要做演示报告,如果自己没有笔记本,那么准备好的PPT文件就得手动转移了。这个过程中如果不能将文件中使用的特殊字体一起带走,到演示机器上的效果可能会让你的精心准备大打折扣。正是因为自己碰到过这个问题,所以希望做个简单的小工具将 PPT文件中使用到的字体都提取出来,方便携带到其他机器上安装。

简单介绍一下这个小工具制作的过程~

工作原理设想

很简单,分三步:

1. 解析PPT文件,收集其中的所有文字使用到的字体名称;

2. 通过这些字体名称,去系统的字体文件存放目录将相应的字体文件导出;

3. 生成一个字体安装脚本,以便在目标机器安装这些字体。

具体实现

有了这个简单设计,就用c#去着手实现了,可即使设计这么简单了,还是碰到一些问题:)

1. PPT文件解析

由于.net对office应用已经做了良好封装,这步做起来没有什么困难,基本只要查一查需要的查询接口就可以。只有一点需要注意一下,因为PPT文字格式的任意性,每一个文字都可以设置字体,所以我们需要让字体提取的粒度保持在单个的字符上,这样才不会有所遗漏。

首先在后台模式打开PPT文件:

PowerPoint.ApplicationpptApplication=newPowerPoint.ApplicationClass();
PowerPoint.Presentationpresentation=pptApplication.Presentations.Open2007(
_fileName,
Office.MsoTriState.msoTrue,
Office.MsoTriState.msoTrue,
Office.MsoTriState.msoFalse,
Office.MsoTriState.msoFalse);

然后遍历文字取得字体名,层次顺序是 slide > shape > text > character:

foreach(PowerPoint.Slideslideinpresentation.Slides)
{
foreach(PowerPoint.Shapeshapeinslide.Shapes)
{
if(shape.HasTextFrame==Office.MsoTriState.msoTrue&&
shape.TextFrame.HasText==Office.MsoTriState.msoTrue)
{
PowerPoint.TextRangetextRange=shape.TextFrame.TextRange;
for(inti=0;i<textRange.Length;++i)
{
PowerPoint.Fontfont=textRange.Characters(i,1).Font;
if(!_fontNames.Contains(font.Name))
_fontNames.Add(font.Name);
}
}
}
}

这样就可以获得各种PPT文件中各种形式文本使用的每一个字体名(smartart形式的除外,因为微软没有开放相应的模型数据)。

别忘了关闭文件和PPT程序:

presentation.Close();
pptApplication.Quit();

标签:字体,提取,文件,文字,PPT制作教程
0
投稿

猜你喜欢

  • 微软输入法选字框消失 win10系统输入法不显示选字框怎么解决?

    2023-08-21 01:22:13
  • ​Word如何使粘贴的文字自动符合设立的格式

    2022-10-04 09:07:42
  • XP系统ape格式转换成mp3格式的方法

    2023-04-18 00:42:21
  • word怎么设置单元格大小

    2023-10-01 23:18:55
  • win10的计算器在哪里?win10的计算器位置介绍

    2023-11-03 02:14:56
  • excel 如何实现颜色填充 如何excel表格如何填充上美丽的颜色,一起来学习吧

    2022-09-22 02:44:10
  • 如何快速excel转word

    2023-12-13 03:49:38
  • Win10预览版怎么把慢速版切换到快速版?

    2022-01-22 01:49:37
  • Word 2007边框挡住页眉页脚怎么办

    2023-11-28 05:38:28
  • 小蓝单车如何申请退款 小蓝单车申请退款流程

    2022-02-15 06:21:12
  • Excel序号自动更新功能的设置方法

    2023-06-17 00:02:13
  • PPT幻灯片视频文件播放设置和注意事项

    2023-10-29 20:46:25
  • 为何Excel打印标题的设置区域为灰色?

    2023-05-21 02:28:13
  • Excel常用的三个数据类型的说明

    2023-07-17 19:57:34
  • 怎么清除Excel电子表格宏病毒

    2023-04-29 00:46:48
  • Win10系统如何设置动态锁?Win10动态锁设置教程

    2023-01-07 04:41:30
  • wps office怎么缩进?

    2023-06-20 10:29:13
  • Win7系统电脑设置共享文件夹的操作步骤

    2022-07-16 14:43:55
  • Win10系统Cortana没声音怎么办 语音助手小娜不说话的解决方法

    2022-12-12 17:26:55
  • 由于在创建转储期间出错怎么回事?由于在创建转储期间出错解决方法

    2023-11-05 07:51:54
  • asp之家 电脑教程 m.aspxhome.com