将 Markdown 文本复制并粘贴到 PowerPoint 演示文稿中格式正确的文本

Copy and paste markdown text to correctly formatted text in a PowerPoint presentation

提问人:lussco 提问时间:10/27/2023 最后编辑:lussco 更新时间:11/6/2023 访问量:56

问:

我有以下 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转换为格式化文本?

目前,我正在使用以下方法来实现此目的:

  1. 将 markdown 文件转换为使用 pandoc。.docx
  2. 在 Word 中打开文件docx
  3. 将内容复制粘贴到 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 文本超过一行时,它才会按预期工作:它只会转换第一行。但是看起来没问题,所以我想知道我在命令或同一行的其他地方做错了什么。tempfileGet-Content

Windows Markdown PowerPoint 复制粘贴

评论

0赞 Martin Packer 10/27/2023
你可能会对我的这个项目感兴趣。它将整个 Markdown 文件转换为完整的演示文稿。github.com/MartinPacker/md2pptx
1赞 Steve Rindsberg 10/27/2023
>> “但是当我粘贴到 Powerpoint 中时,我得到一个奇怪的结果,看起来像这样。i.stack.imgur.com/zWYGl.png“ FWIW,这是因为您将文件的内容粘贴到 PPT 中,就好像它是文本字符串一样;事实并非如此。DOCX 是一个 zip 文件。您看到的 PK 始终是任何 zip 文件的前几个字节。
0赞 lussco 10/30/2023
感谢您的反馈@SteveRindsberg,我明白了,现在有意义了。
1赞 lussco 10/30/2023
@MartinPacker这是一个有趣的项目,但就我而言,我只想将文本粘贴到已经存在的 PowerPoint 中。也就是说,我使用 markdown 的原因是因为我使用了 Obsidian,我认为您的项目将是 Obsidian 的一个非常有趣的补充!;)obsidian.md/plugins?search=powerpoint
0赞 Martin Packer 10/30/2023
您的模板演示文稿可能是您要添加幻灯片的演示文稿 - 使用 md2pptx。但我并不是要把它推上去。但感谢您对黑曜石的指导 - 我在很大程度上避免了(作为 Drafts 用户)。

答:

0赞 lussco 11/6/2023 #1

我找到了一个简单的解决方案来解决我的问题。以下命令将剪贴板中的 Markdown 文本转换为 HTML 格式的文本,并用它设置剪贴板。

Get-Clipboard | pandoc -t html -o - | Set-Clipboard -AsHtml

然后,我可以将剪贴板中的 HTML 文本粘贴到我的 PowerPoint 演示文稿中。

需要注意的是,项目符号的渲染效果不佳,但总体上获得了所需的结果。它也适用于剪贴板中存在的任何多行文本。