【发布时间】:2012-06-18 15:06:09
【问题描述】:
我知道如何将纯文本复制到剪贴板:
oascript -e 'set the clipboard to "plain text"'
但问题是如何将 html 内容复制到剪贴板? 例如,如何将以下 html 内容复制到剪贴板:
<b>bold text</b>
这样当我将它粘贴到 TextEdit 中时我会得到粗体文本?
提前感谢您的帮助!
我找到了一个中间解决方案:
echo "<b>bold text</b>" | textutil -stdin -stdout -format html -convert rtf | pbcopy
这工作,到目前为止一切顺利,但不幸的是我发现它不适用于图像标签:
echo "<img src=\"https://www.google.com/images/srpr/logo3w.png\">" | textutil -stdin -stdout -format html -convert rtf | pbcopy
这不能完成我想要的工作,所以有人知道原因吗?
谢谢!
我找到了一个可行的解决方案并将其发布在下面:)
【问题讨论】:
-
img标签不起作用的原因是因为 RTF 文档可能只能使用嵌入的图像,因此无法显示托管在 HTTP 服务器上的图像。 -
我明白了。但是剪贴板似乎可以肯定地保存 html 内容。当我在 Safari 中拖动并复制一些图像,然后使用 'osascript -e "剪贴板"' 命令转储内容时,它显示的数据类似于 '«data HTML3C6D65...binary data...»',而我相信应该有一种方法可以在命令行上做同样的工作。 ;)
-
我相信既然 Safari 已经下载了图片,当你把图片放到剪贴板上时,它会复制图片本身。但是,当您使用上述命令时,会将不兼容的
img标记转换为 RTF 格式,从而导致图像损坏。 -
似乎RTF格式不能包含图片(下载也没有引用),所以我的代码失败了。 (并且 Safari 复制 html 代码,而不是二进制图像。)但是我可以直接使用原始 html 类来实现目标,而无需通过 RTF 类。谢谢你的帮助,迈克尔!
标签: html macos applescript rtf