【问题标题】:Modifying a clipboard content to be treated as HTML修改剪贴板内容以被视为 HTML
【发布时间】:2017-03-19 07:19:45
【问题描述】:

当我在网络上“复制图像”(通过突出显示图像和 ctrl+C)然后将其传递到 HTML WYSIWYG 编辑器(而不是源代码编辑器)的文本视图中时,会显示图片。即使我在文本编辑器(源代码编辑器)中粘贴,剪贴板的内容也会被编辑器理解为 html 代码。

例如,如果我只是在文本编辑器中粘贴“<img src="someURL" />,它将在源代码中添加为“<p><img src="someURL" /></p>”,因此编辑器不会将此剪贴板理解为html代码。

那么我应该如何修改剪贴板的内容,以便 HTML WYSIWYG 编辑器将其理解为 html 代码,即使我将其粘贴到文本视图(不是源代码编辑器)中?


我想要做的更多细节:

当我将图像的 URL 存储在剪贴板中时,我希望能够将图像添加到 HTML WYSIWYG 编辑器,而无需切换到源代码编辑器。所以我想转换剪贴板的内容(通过在 URL 前后添加一些代码),以便我的 HTML WYSIWYG 编辑器将其理解为 HTML 代码(就像上面提到的示例)。


编辑:为了更好地定位这里的答案是我试图实现的目标。当我使用 shareX 上传图片时,ShareX 会自动将这个(私有)可共享 URL 存储在剪贴板中。 https://drive.google.com/open?id=XXXX 此代码将其转换为嵌入式格式。但我仍在寻找一种将其存储为 html 格式的方法。

#URL_to_Picture.py 
#
#(xxx=FileID)
#
#You need that kind of URL to be able to embed the picture in an editor:  https://drive.google.com/uc?export=view&id=XXXX
#
#This script does a part of the job by converting Google drive URL into an embedded (and permanent) link:



from jaraco import clipboard
UrlShareX = clipboard.paste_text()
UrlShareX=UrlShareX.replace("https://drive.google.com/file/d/", "")
UrlShareX=UrlShareX.replace("/view?usp=drivesdk", "")
UrlShareX=UrlShareX.replace("/view?usp=sharing", "")
UrlShareX=UrlShareX.replace("https://drive.google.com/open?id=", "")
URL= '<img src="https://drive.google.com/uc?export=view&id={}" />'.format(UrlShareX)
clipboard.copy_html(URL)

要试用 ShareX:

  1. 您必须在 ShareX 菜单中设置对 Google 驱动器的访问权限: 目的地/目的地设置/谷歌驱动器。
  2. 您必须将 ShareX 菜单:“上传任务后”设置为“将 URL 复制到 剪贴板”

【问题讨论】:

  • 感谢您的帮助!是的,我在 Windows、Windows 7 上。
  • 感谢您的帮助。我从剪贴板中的http://imgur.com/SOMEIMAGE 之类的imgur 获取图像链接(有关详细信息,该链接由ShareX 发送到我的剪贴板)。然后python 脚本应该修改我的剪贴板(我可以用一个快捷方式开始它)所以我可以直接粘贴到所见即所得编辑器的文本视图中(我用的是TinyMce)。我很高兴能够粘贴任意 html 代码,但如果没有 img 标签就可以了。
  • 感谢您回到我身边!如果您将来有时有时间,我将很高兴从您那里获得有关如何实施此软件包的一些指导。我看了看,但由于我对 python 的了解有限,我一无所获。
  • 以全新的眼光看待您的问题,我注意到剪贴板最初只包含一个 url,而不是 html。考虑到这一点,我更新了我的答案。现在可以用了吗?

标签: python html autohotkey


【解决方案1】:

你可以这样做:

  1. 安装HtmlClipboard:复制脚本,在C:\Python##\Lib\site-packages\中另存为HtmlClipboard.py
  2. 将下面的脚本另存为image_link_as_html.py(我在你的问题中使用了你的一些代码):
  3. 为步骤中的脚本创建快捷方式(右键单击文件image_link_as_html.py,然后选择创建快捷方式)
  4. 右键单击快捷方式,选择Properties,然后在快捷键中添加键盘快捷方式。

就是这样。当您在我们的剪贴板中有图片网址时,您只需按键盘快捷键,即可直接在编辑器的 html 模式下粘贴图片。


image_link_as_html.py (Python34):

from tkinter import Tk
root = Tk()
root.withdraw()
image_url = root.clipboard_get()

# send <img src="https://image_url" alt="" />  to an "HTML format clipboard"
import HtmlClipboard
HtmlClipboard.PutHtml("<img src=\"http://"+image_url+" \" alt=\"\"/>")

要解决有关 ShareX 的部分,您可以改用此脚本:

from tkinter import Tk
root = Tk()
root.withdraw()
UrlShareX = root.clipboard_get()

# remove everything except the file google ID: this part is not needed 
UrlShareX=UrlShareX.replace("https://drive.google.com/file/d/", "") 
UrlShareX=UrlShareX.replace("/view?usp=drivesdk", "")
UrlShareX=UrlShareX.replace("/view?usp=sharing", "")
UrlShareX=UrlShareX.replace("https://drive.google.com/open?id=", "")
UrlShareX=UrlShareX.replace("/view", "")

# send <img src="https://drive.google.com/uc?export=view&amp;id=xxx " alt="" />  to an "HTML format clipboard"
import HtmlClipboard
HtmlClipboard.PutHtml("<img src=\"https://drive.google.com/uc?export=view&id="+UrlShareX+" \" alt=\"\"/>")

【讨论】:

    【解决方案2】:

    我希望能够将图像添加到 HTML WYSIWYG 编辑器,而无需切换到源代码编辑器

    AHK 解决方案:使用 ctrl+shift+v

    之类的热键

    剪贴板中有纯文本:https://cdn.sstatic.net/Img/teams/teams-illo-free-sidebar-promo.svg?v=47faa659a05e
    进入所见即所得编辑器并按 ctrl+shift+v,它将以 HTML 格式粘贴
    HTML 格式是剪贴板格式,因此将显示图像。


    您需要的在这里:WinClipv2\imgSrc to HTML Format\src in clip.ah2
    我将代码放在回购中,因为有一个库要包括: https://github.com/FuPeiJiang/WinClipv2
    阅读 README.md

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-10
      • 2011-01-14
      • 1970-01-01
      相关资源
      最近更新 更多