gpt4 book ai didi

macos - 从 Mac OS X 粘贴板(剪贴板)中获取 RTF 数据

转载 作者:行者123 更新时间:2023-12-03 01:23:46 25 4
gpt4 key购买 nike

根据 pbpasteman 页面,

   -Prefer {txt | rtf | ps}
tells pbpaste what type of data to look for in the pasteboard
first. As stated above, pbpaste normally looks first for plain
text data; however, by specifying -Prefer ps you can tell
pbpaste to look first for Encapsulated PostScript. If you spec-
ify -Prefer rtf, pbpaste looks first for Rich Text format. In
any case, pbpaste looks for the other formats if the preferred
one is not found. The txt option replaces the deprecated ascii
option, which continues to function as before. Both indicate a
preference for plain text.

但是(至少根据我使用 10.6 Snow Leopard 的经验),pbpaste -Prefer rtf 永远不会放弃 RTF 数据,即使它存在于粘贴板上。有没有其他简单的方法来获取准备粘贴的 RTF 文本?

我尝试了AppleScript,但是osascript -e 'the Clipboard as «class RTF »'给出了响应«data RTF 7B大量十六进制编码的废话7D »。 AppleScript 可以将此十六进制数据转换为我可以使用的文本吗?

最佳答案

我看不出有什么方法可以从 AppleScript 内部做到这一点,但既然你无论如何都在 shell 中工作,我只是对其进行后处理:“十六进制编码的废话”是你想要的 RTF 数据。我能想到的最简单的脚本是

perl -ne 'print chr foreach unpack("C*",pack("H*",substr($_,11,-3)))'

解释:substr($_,11,-3) 剥离 «data RTF»\n 位(每个guillemets 的长度是两个字节); pack("H*", ...) 将十六进制编码的数据打包到字节流中; unpack("C*", ...) 将字节流解包为字符值数组; print chr foreach ... 将数组中的每个整数转换为其对应的字符并打印; -ne 选项评估为每一行给出的脚本,该行隐式存储在 $_ 中。 (如果您希望该脚本位于其自己的文件中,只需确保 shebang 行是 #!/usr/bin/perl -ne。)然后,运行

osascript -e 'the clipboard as «class RTF »' | \
perl -ne 'print chr foreach unpack("C*",pack("H*",substr($_,11,-3)))'

将为您提供原始 RTF 输出。

关于macos - 从 Mac OS X 粘贴板(剪贴板)中获取 RTF 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2545289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com