首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Apple :如何将html内容复制到剪贴板上?

Apple :如何将html内容复制到剪贴板上?
EN

Stack Overflow用户
提问于 2012-06-18 15:06:09
回答 6查看 5.9K关注 0票数 13

我知道如何将纯文本复制到剪贴板上:

代码语言:javascript
运行
复制
oascript -e 'set the clipboard to "plain text"'

但问题是如何将html内容复制到剪贴板上?例如,如何将以下html内容复制到剪贴板:

代码语言:javascript
运行
复制
<b>bold text</b>

这样,当我将它粘贴到TextEdit中时,就可以得到粗体文本了吗?

谢谢你提前提供帮助!

我找到了一个中间解决方案:

代码语言:javascript
运行
复制
echo "<b>bold text</b>" | textutil -stdin -stdout -format html -convert rtf | pbcopy

到目前为止,这是有效的,但不幸的是,我发现它不适用于图像标记:

代码语言:javascript
运行
复制
echo "<img src=\"https://www.google.com/images/srpr/logo3w.png\">" | textutil -stdin -stdout -format html -convert rtf | pbcopy

这做不到我想做的工作,所以谁知道原因?

谢谢!

我找到了一个可行的解决方案,并在下面发布:)

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-06-18 18:55:02

我找到了一个解决方案,想法是直接使用HTML类而不是RTF类。(TextEdit或web编辑器可以处理这个HTML以及RTF类数据)

您所要做的就是将您的html代码转换为原始的十六进制代码。

完整的代码如下:

代码语言:javascript
运行
复制
hex=`echo -n "your html code here" | hexdump -ve '1/1 "%.2x"'`
osascript -e "set the clipboard to «data HTML${hex}»"

当然,你可以把它们合并成一个句子。

希望这能帮助到有兴趣的人。:)

票数 29
EN

Stack Overflow用户

发布于 2020-03-20 04:18:26

如果输入HTML太大,@k的解决方案将无法工作,您可能会遇到一些错误消息,如下所示:

代码语言:javascript
运行
复制
/usr/bin/osascript: Argument list too long

我对@k的解决方案做了一些改进,将其转换为可执行文件并通过管道处理数据。我希望这也能帮上忙。

可执行文件

~/bin/pb写:

代码语言:javascript
运行
复制
#!/bin/sh
printf "set the clipboard to «data HTML$(cat $@ | hexdump -ve '1/1 "%.2x"')»" | osascript -

用法

从管道

代码语言:javascript
运行
复制
$ printf '# title\n\n- list\n- list' | cmark | ~/bin/pbcopyhtml
$ osascript -e 'the clipboard as record'
«class HTML»:«data HTML3C68313E7469746C653C2F68313E0A3C756C3E0A3C6C693E6C6973743C2F6C693E0A3C6C693E6C6973743C2F6C693E0A3C2F756C3E0A»

从档案

代码语言:javascript
运行
复制
$ printf '# title\n\n- list\n- list' | cmark > sample.html
$ ~/bin/pbcopyhtml sample.html
$ osascript -e 'the clipboard as record'
«class HTML»:«data HTML3C68313E7469746C653C2F68313E0A3C756C3E0A3C6C693E6C6973743C2F6C693E0A3C6C693E6C6973743C2F6C693E0A3C2F756C3E0A»
票数 5
EN

Stack Overflow用户

发布于 2015-12-31 18:50:08

在Yosemite的这个线程中,我无法使用任何其他解决方案。当将RTF内容放入剪贴板时,将内容粘贴到TextEdit中是有效的,而将RTF内容粘贴到Chrome中则不起作用(我想用脚本粘贴到Google电子表格中)。最终我才能让它发挥作用:

代码语言:javascript
运行
复制
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11085654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档