提问人:lussco 提问时间:10/27/2023 最后编辑:lussco 更新时间:11/6/2023 访问量:56
将 Markdown 文本复制并粘贴到 PowerPoint 演示文稿中格式正确的文本
Copy and paste markdown text to correctly formatted text in a PowerPoint presentation
问:
我有以下 Markdown 格式的文本。
Hello, check out [this link](https://learn.microsoft.com/en-us/powershell/).
Here is a list of things
- Eggs
- Tomatoes
- Ship
我想将其复制并粘贴到 PowerPoint 演示文稿中,以便链接和未编号列表以目标 PowerPoint 样式正确格式化。这将是预期的结果。https://i.stack.imgur.com/X8oFY.png
但是,通过简单的复制粘贴,我得到了这样的东西。https://i.stack.imgur.com/9Kktt.png
如何在PowerPoint中将Markdown转换为格式化文本?
目前,我正在使用以下方法来实现此目的:
- 将 markdown 文件转换为使用 pandoc。
.docx
- 在 Word 中打开文件
docx
- 将内容复制粘贴到 Powerpoint。
这完全有效,但这是一项乏味的工作。有什么方法可以自动化吗?
例如,我想在剪贴板中将一些文本从 Markdown 文本转换为格式化文本,我可以将其粘贴到 PowerPoint 演示文稿中我想要的某个位置。
我尝试在 Powershell 中使用以下单行代码:
pandoc -i myfile.md -t docx -o - | Set-Clipboard
但是当我粘贴到 Powerpoint 中时,我得到一个奇怪的结果,看起来像这样。https://i.stack.imgur.com/zWYGl.png
感谢您的想法和帮助!
2023-11-01 编辑: 我使用 Powershell 和 Pandoc 搜索解决方案,最终得到了以下几乎可以工作的 powershell 脚本。
$tempfile = ".\deleteme.rtf"
Get-Clipboard | pandoc -t rtf -o $tempfile
Add-Type -AssemblyName "System.Windows.Forms"|Out-Null
[Windows.Forms.Clipboard]::SetDataObject([Windows.Forms.DataObject]::new([Windows.Forms.DataFormats]::Rtf,(Get-Content -Raw $tempfile)))
Remove-Item $tempfile
只有当复制的 Markdown 文本超过一行时,它才会按预期工作:它只会转换第一行。但是看起来没问题,所以我想知道我在命令或同一行的其他地方做错了什么。tempfile
Get-Content
答:
我找到了一个简单的解决方案来解决我的问题。以下命令将剪贴板中的 Markdown 文本转换为 HTML 格式的文本,并用它设置剪贴板。
Get-Clipboard | pandoc -t html -o - | Set-Clipboard -AsHtml
然后,我可以将剪贴板中的 HTML 文本粘贴到我的 PowerPoint 演示文稿中。
需要注意的是,项目符号的渲染效果不佳,但总体上获得了所需的结果。它也适用于剪贴板中存在的任何多行文本。
评论