日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

很多人工作學(xué)習(xí)中經(jīng)常需要做演示報(bào)告,如果自己沒有筆記本,那么準(zhǔn)備好的PPT文件就得手動(dòng)轉(zhuǎn)移了。這個(gè)過程中如果不能將文件中使用的特殊字體一起帶走,到演示機(jī)器上的效果可能會(huì)讓你的精心準(zhǔn)備大打折扣。正是因?yàn)樽约号龅竭^這個(gè)問題,所以希望做個(gè)簡(jiǎn)單的小工具將 PPT文件中使用到的字體都提取出來,方便攜帶到其他機(jī)器上安裝。

  簡(jiǎn)單介紹一下這個(gè)小工具制作的過程~

  工作原理設(shè)想

  很簡(jiǎn)單,分三步:

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

  2. 通過這些字體名稱,去系統(tǒng)的字體文件存放目錄將相應(yīng)的字體文件導(dǎo)出;

  3. 生成一個(gè)字體安裝腳本,以便在目標(biāo)機(jī)器安裝這些字體。

  具體實(shí)現(xiàn)

  有了這個(gè)簡(jiǎn)單設(shè)計(jì),就用c#去著手實(shí)現(xiàn)了,可即使設(shè)計(jì)這么簡(jiǎn)單了,還是碰到一些問題:)

  1. PPT文件解析

  由于.net對(duì)office應(yīng)用已經(jīng)做了良好封裝,這步做起來沒有什么困難,基本只要查一查需要的查詢接口就可以。只有一點(diǎn)需要注意一下,因?yàn)镻PT文字格式的任意性,每一個(gè)文字都可以設(shè)置字體,所以我們需要讓字體提取的粒度保持在單個(gè)的字符上,這樣才不會(huì)有所遺漏。

  首先在后臺(tái)模式打開PPT文件:

PowerPoint.Application pptApplication = new PowerPoint.ApplicationClass();
PowerPoint.Presentation presentation = pptApplication.Presentations.Open2007(
    _fileName,
    Office.MsoTriState.msoTrue,
    Office.MsoTriState.msoTrue,
    Office.MsoTriState.msoFalse,
    Office.MsoTriState.msoFalse);

  然后遍歷文字取得字體名,層次順序是 slide > shape > text > character:

foreach (PowerPoint.Slide slide in presentation.Slides)
{
    foreach (PowerPoint.Shape shape in slide.Shapes)
    {
        if (shape.HasTextFrame == Office.MsoTriState.msoTrue &&
            shape.TextFrame.HasText == Office.MsoTriState.msoTrue) 
        {
            PowerPoint.TextRange textRange = shape.TextFrame.TextRange;
            for (int i = 0; i < textRange.Length; ++i)
            {
                PowerPoint.Font font = textRange.Characters(i, 1).Font;
                if (!_fontNames.Contains(font.Name))
                    _fontNames.Add(font.Name);
            }
        }
    }
}

  這樣就可以獲得各種PPT文件中各種形式文本使用的每一個(gè)字體名(smartart形式的除外,因?yàn)槲④洓]有開放相應(yīng)的模型數(shù)據(jù))。

  別忘了關(guān)閉文件和PPT程序:

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

分享到:
標(biāo)簽:字體 提取 文件 文字 PPT制作教程
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定