我知道如何将纯文本复制到剪贴板上:
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
这做不到我想做的工作,所以谁知道原因?
谢谢!
我找到了一个可行的解决方案,并在下面发布:)
发布于 2012-06-18 18:55:02
我找到了一个解决方案,想法是直接使用HTML类而不是RTF类。(TextEdit或web编辑器可以处理这个HTML以及RTF类数据)
您所要做的就是将您的html代码转换为原始的十六进制代码。
完整的代码如下:
hex=`echo -n "your html code here" | hexdump -ve '1/1 "%.2x"'`
osascript -e "set the clipboard to «data HTML${hex}»"
当然,你可以把它们合并成一个句子。
希望这能帮助到有兴趣的人。:)
发布于 2020-03-20 04:18:26
如果输入HTML太大,@k的解决方案将无法工作,您可能会遇到一些错误消息,如下所示:
/usr/bin/osascript: Argument list too long
我对@k的解决方案做了一些改进,将其转换为可执行文件并通过管道处理数据。我希望这也能帮上忙。
可执行文件
~/bin/pb写:
#!/bin/sh
printf "set the clipboard to «data HTML$(cat $@ | hexdump -ve '1/1 "%.2x"')»" | osascript -
用法
从管道
$ printf '# title\n\n- list\n- list' | cmark | ~/bin/pbcopyhtml
$ osascript -e 'the clipboard as record'
«class HTML»:«data HTML3C68313E7469746C653C2F68313E0A3C756C3E0A3C6C693E6C6973743C2F6C693E0A3C6C693E6C6973743C2F6C693E0A3C2F756C3E0A»
从档案
$ printf '# title\n\n- list\n- list' | cmark > sample.html
$ ~/bin/pbcopyhtml sample.html
$ osascript -e 'the clipboard as record'
«class HTML»:«data HTML3C68313E7469746C653C2F68313E0A3C756C3E0A3C6C693E6C6973743C2F6C693E0A3C6C693E6C6973743C2F6C693E0A3C2F756C3E0A»
发布于 2015-12-31 18:50:08
在Yosemite的这个线程中,我无法使用任何其他解决方案。当将RTF内容放入剪贴板时,将内容粘贴到TextEdit中是有效的,而将RTF内容粘贴到Chrome中则不起作用(我想用脚本粘贴到Google电子表格中)。最终我才能让它发挥作用:
set rawHTML to "<a href=\"" & gmailURL & "\">" & myTitle & "</a>"
set escapedData to do shell script "echo " & (quoted form of rawHTML) as «class HTML»
set the clipboard to escapedData
https://stackoverflow.com/questions/11085654
复制相似问题