如何在Outlook中插入HTML格式的文本?
我在emacs中生成了这个语法突出显示的代码片段,并希望将其粘贴到Outlook邮件中(当然,呈现html时,不包含html代码)如何在Outlook中插入HTML格式的文本?,html,windows,email,outlook,Html,Windows,Email,Outlook,我在emacs中生成了这个语法突出显示的代码片段,并希望将其粘贴到Outlook邮件中(当然,呈现html时,不包含html代码) 函数uvm_对象uvm_对象::克隆(); uvm_对象tmp; tmp=this.create(get_name()); if(tmp==null) uvm_报告_警告(“CRFLD”,“$sformatf”(%s的创建方法失败,无法克隆对象),get_name()),uvm_无); 其他的 tmp副本(本); 返回(tmp); 端功能 它以HTML呈现,如下
函数uvm_对象uvm_对象::克隆();
uvm_对象tmp;
tmp=this.create(get_name());
if(tmp==null)
uvm_报告_警告(“CRFLD”,“$sformatf”(%s的创建方法失败,无法克隆对象),get_name()),uvm_无);
其他的
tmp副本(本);
返回(tmp);
端功能
它以HTML呈现,如下所示
由于Outlook mail支持html格式,我很好奇是否有办法直接使用html代码创建格式良好的电子邮件正文文本
我目前采用的以下方法有效,但速度较慢:
- 我生成一个HTML文件,其中包含从文件中选择的代码的语法高亮显示的代码
- 然后在Windows的浏览器中打开该文件
- 复制该页面内容
- 粘贴到Outlook中
我希望有人发布一个解决方案,包括某种windows后台脚本(就像autohotkey作为后台服务工作一样),可以在剪贴板中动态呈现html代码并粘贴该代码 我有一个简单的python脚本,可以将复制缓冲区中的纯文本HTML转换为HTML格式的文本,然后粘贴到Microsoft Office程序中。它需要一个可用的包“pywin32” 它不满足您作为后台服务运行的要求,但在我的例子中,我已经将脚本固定到我的quicklaunch栏上,这样在需要时就可以轻松地运行它。 此外,我使用此elisp过程将emacs中的当前选择以HTML形式复制到kill环,以保留格式:
function handleCopy(evt) {
evt.clipboardData.setData('text/html', '<table><thead><tr><th>some</th></tr></thead><tbody><tr><td>markup</td></tr></tbody></table>')
evt.preventDefault(); // prevent writing to text/plain
}
document.addEventListener('copy', handleCopy)
document.execCommand('copy')
document.removeEventListener('copy', handleCopy)
在我的例子中,如果我想通过电子邮件发送代码,保留我在emacs中看到的格式:
更新 似乎通过复制到“text/html”再复制到“text/plain”可以正确地复制到Outlook和纯文本位置。YMMV,但如果您希望能够到处粘贴,那么值得一试 原创 我发现了一个使用javascript解决此问题的简单方法。 复制到文本/html剪贴板,并将文本/纯剪贴板留空。然后粘贴到Outlook中就可以顺利工作了 要复制的最小代码:
function handleCopy(evt){
evt.clipboardData.setData('text/html','somemarkup')
evt.preventDefault();//防止写入文本/纯文本
}
文件.附录列表(“副本”,手抄本)
document.execCommand('copy')
文件。删除文件列表器(“副本”,手册副本)
文本输入的功能示例(您可以将粘贴复制到文本区域,然后点击按钮复制到文本/html剪贴板。请注意,粘贴大多数位置不会起任何作用:输入必须接受文本/html内容-感谢Outlook的帮助):
这里有点离题,这里是关于编程问题的。我建议您查看一下您使用的电子邮件应用程序的文档,或咨询他们的技术支持。@arkascha我希望有人发布一个涉及某种windows后台脚本的解决方案(就像autohotkey作为后台服务一样)在剪贴板中动态呈现html代码并粘贴该代码。因此,这是一个需要编程解决的问题。我查看了Outlook中的所有选项;它没有这样的东西。如果是这样,那么你应该在问题中陈述,而你没有。无论如何,我希望你有更多的机会在超级用户姐妹页面上得到答案。您可以在本页底部找到链接。@arkascha谢谢。你想让我在那里创建一个重复的帖子,还是管理员可以把它移到那里?
(defun copy-region-as-html (START END)
(interactive "r")
(let ((snippet (buffer-substring START END))
(buf (get-buffer-create "*htmlized_to_clipboard*"))
(htmlized-file-name (expand-file-name "~/htmlized.html")))
(set-buffer buf)
(delete-region (point-min) (point-max))
(insert snippet)
(htmlize-buffer)
(set-buffer "*html*")
(clipboard-kill-region (point-min) (point-max))
(kill-buffer "*html*")
(kill-buffer "*htmlized_to_clipboard*")
(message "HTML copied to clipboard")))
function handleCopy(evt) {
evt.clipboardData.setData('text/html', '<table><thead><tr><th>some</th></tr></thead><tbody><tr><td>markup</td></tr></tbody></table>')
evt.preventDefault(); // prevent writing to text/plain
}
document.addEventListener('copy', handleCopy)
document.execCommand('copy')
document.removeEventListener('copy', handleCopy)