標籤:

開發之路

很多人問我,我是怎麼學習的PPT開發,今天就隨便扯扯吧。

寫在前面

我的大學專業是生物工程,主修發酵工程。是的,沒錯,你沒有聽錯,我就是干這個的。如果沒有跳出這行,說不定此刻的我還在某酒廠釀酒呢。

不過我打心眼裡還是很感謝我的大學的,畢竟給我了大把時間用來自學編程。

VB

在入大學之前,我一直想要讀軟體工程之類的,但是在家人的阻攔下,我成功了選擇了生物工程這門神奇的學科。

化學渣的我在各種生物化學,物理化學,有機化學,無機化學等等,各種化學把我壓得死死的。

終於有一天,我接觸到了VB,這門大一的必修課。

你能想像么,我當時遇到計算機的那種激動勁,學習編程的時候特別賣力。

最終,儘管學科考試分數不高,但是我卻對編程產生了極大的興趣。

PPT

我看到的第一份讓我震撼的PPT是天好的《驚變》,那種神級別的動畫至今仍然是經典,我自此就踏上了研究PPT動畫的不歸路。

而,恰好大學的時候,需要一堆PPT彙報,於是我就成了所謂的PPT高手。

之後,又從VBA開始著手,研究起了PPT的開發。

先是寫過一些小的代碼,比如,什麼讓形狀繞著別的形狀的路徑運動等等,都是在這個時間段做出來的。

PPT動畫大師

隨著對PPT自身動畫的不斷深入,我發現了越來越多的隱藏參數,可以讓PPT動畫變得更加強大。

在2011年的那個春節前夕,我放寒假回到老家,當時老家拆遷,寄居在親戚家的一個小房間里,完成了PPT動畫大師的全部代碼。

想想當年自己也是夠拼的,因為VBA的介面裡面有很多神奇的設置。

比如,對於FilterEffect來說,有Type和Subtype屬性,但是這兩個屬性的設置是有對應關係的,而且設置的先後,可能會導致不可預料的BUG。

最後,在一堆P圈大牛的幫助測試下,終於上線了PPT動畫大師。

Nordri Tools

在我就職的第一家公司,Nordri。

看公司內部很多操作其實是可以批量操作以提供效率的,所以就想出一個工具來提高內部效率。然後差不多完善了半年的樣子,在2014年中的時候,就上線了NT的內部測試版本。之後,就慢慢上線到了公司層面的工具。

剛開始的時候,還是用我熟悉的VB.NET+VSTO寫的,後來發現VB.NET有一些地方操作不了,比如unsafe等等。於是,強制自己用C#重寫了一次NT。

後來又發現,VSTO很多時候會報錯,又用一個開源的.Net Office 重寫了一次。

但是後來公司業務調整,NT的開發逐漸被擱淺了,最終的版本鎖定在了2014年,也是比較遺憾的事情。

iSlide 插件

在這麼久的經驗積累後,我開始慢慢熟悉C#開發。

但是,還是還堅定的做一款PPT插件,於是就和劉浩一起開始開發iSlide插件,主打資源庫功能。

一年過去了,插件終於上線。

插件中很多功能模塊,為了擴展,為了解耦,我嘗試了很多解決方案,使用MVVM,MEF等技術最終實現了完全模塊化的插件開發。

當時還有很多技術難點,比如當時為了研究圖形替換功能,我就反覆嘗試了一個月的樣子。

寫在最後

貌似廢話有點多了,我開設這個專欄的目的只是為了分享技術,沒有別的了,感謝已經關注的4位小夥伴。

至於為什麼選擇知乎專欄,可能我覺得這個比較符合我強迫症的編輯器吧。

之前用過簡書,現在上面大約不再更新了,是時候重新開始了不是么?

之後的分享思路,大約是簡單的說說VBA的學習途徑,然後就是VSTO的一些開發技巧和我遇到的坑,最後還有高層級的OpenXML相關技術。

感謝所有幫助過我的人,@天好,@laose,@mllm,@儒道佛,@劉浩,@All...


推薦閱讀:

雜談:APP到幻燈片的淺談之層級邏輯
如何找到高精度的圖片素材
如何在PPT中畫出這樣的曲線與形狀?
趕時間如何還能做出像蘋果發布會一樣的PPT?

TAG:PPT |