我目前的工作需要用投影片解釋 Arduino 程式, 最理想的結果就是可以貼上和 Arduino 開發環境中同樣顏色標示語法的程式碼, 所需的步驟如下。
先在 Arduino 開發環境中選取要貼到 PowerPoint 的程式段落, 然後按滑鼠右鍵選取『當作 HTML 進行複製』, 這個功能會用 HTML 碼描繪所要複製的程式碼:
接著, 可以將複製的 HTML 碼貼到文字檔中, 然後用瀏覽器開啟檢視, 或是使用線上的 HTML 檢視器 (例如:http://codebeautify.org/htmlviewer/) 直接貼上 HTML 碼後檢視, 然後複製瀏覽器上 HTML 碼的顯示結果:
再將複製的內容貼到 Word 中,這個步驟看起來好像多餘, 但如果你直接把從瀏覽器複製的內容貼到 PowerPoint, 雖然程式碼的語法顏色都會正常顯示, 但是會變成沒有斷行的一長串文字, 像是這樣:
因此, 要先貼到 Word 中, 再從 Word 中複製一次內容:
最後, 再將從 Word 複製的內容用『選擇性貼上』的方式:
再選取『格式化文字 (RTF)』:
就可以貼上保留語法顏色標示的程式碼了:
highlight.js
星期六, 6月 11, 2016
星期日, 12月 27, 2015
將語法標示好的程式碼貼到 PowerrPoint 投影片的方法
要將程式碼貼到 PowerPoint 上, 又想要有語法標示的效果, 有很簡單的方法,如果是使用 Visual Studio, 可以直接從程式編輯器複製程式碼, 然後以『保持來源格式』的方法貼到 PowerPoint 上。如果沒有安裝 Visual Studio, 也可以使用 Notepad++這個程式碼編輯器,預設安裝有 NppExport 外掛,可以使用『外掛模組/NppExport/Copy RTF To Clipboard』功能表指令將編輯中的程式碼以 RTF 格式複製到剪貼簿上, 就可以貼到 PowerPoint 了。
不過上述方式貼到 PowerPoint 的程式碼, 雖然可以正確保留語法標示的顏色, 可是每個單字都會加上白色螢光筆的強調效果, 如果你的投影片背景不是白色, 就會造成像是以下的狀況:
這些白色的底就是螢光筆效果造成的, 可是遺憾的是在 PowerPoint 中, 並沒有操控螢光筆效果的工具, 因此無法直接移除螢光筆效果。要解決這個問題, 有兩種作法, 一種是先將程式碼貼到 Word 中, 利用 Word 的螢光筆工具先將螢光筆顏色改為『無色彩』:
之後在重新複製到剪貼簿上, 回到 PowerPoint 貼上即可。另一種作法則是在 PowerPoint 安裝善心人士開發的 Lightsaber 增益集, 即可在 PowerPoint 中新增螢光筆工具, 直接選取剛剛貼上的程式碼, 再取消附加在上面的螢光筆效果即可:
取消螢光筆效果後, 在 PowerPoint 中看到的就是正常的文字了:
不過上述方式貼到 PowerPoint 的程式碼, 雖然可以正確保留語法標示的顏色, 可是每個單字都會加上白色螢光筆的強調效果, 如果你的投影片背景不是白色, 就會造成像是以下的狀況:
這些白色的底就是螢光筆效果造成的, 可是遺憾的是在 PowerPoint 中, 並沒有操控螢光筆效果的工具, 因此無法直接移除螢光筆效果。要解決這個問題, 有兩種作法, 一種是先將程式碼貼到 Word 中, 利用 Word 的螢光筆工具先將螢光筆顏色改為『無色彩』:
之後在重新複製到剪貼簿上, 回到 PowerPoint 貼上即可。另一種作法則是在 PowerPoint 安裝善心人士開發的 Lightsaber 增益集, 即可在 PowerPoint 中新增螢光筆工具, 直接選取剛剛貼上的程式碼, 再取消附加在上面的螢光筆效果即可:
取消螢光筆效果後, 在 PowerPoint 中看到的就是正常的文字了:
星期三, 12月 10, 2014
取得 PPT 投影片中的所有文字
PowerPoint中似乎沒有方便的工具可以取出投影片上所有的文字,搜尋之後, 找到了高手的 VBA 程式, 簡單修改加上存成文字檔的功能後, 就可以使用了。完整程式碼如下:
它會把所有投影片中的文字取出後, 存在與 PPT 檔相同資料夾下,與 PPT 檔同名的 .TXT 文字檔中。
Sub 取出文字()
Dim p As Presentation: Set p = ActivePresentation
Dim s As Slide
Dim sh As Shape
FName = ActivePresentation.FullName 'Word檔名
txtFname = Left(FName, Len(FName) - 4) & "_shapes.txt" 'txt檔名
Set objStream = CreateObject("ADODB.Stream")
objStream.Open
objStream.Position = 0
objStream.Charset = "UTF-8"
For Each s In p.Slides
For Each sh In s.Shapes
If sh.HasTextFrame Then
If sh.TextFrame.HasText Then
objStream.WriteText sh.TextFrame.TextRange.Text
End If
End If
Next
Next
objStream.SaveToFile txtFname, 2
objStream.Close
End Sub
它會把所有投影片中的文字取出後, 存在與 PPT 檔相同資料夾下,與 PPT 檔同名的 .TXT 文字檔中。
星期日, 8月 17, 2014
訂閱:
文章 (Atom)










