如何在Outlook中插入HTML格式的文本?

时间:2015-06-05 18:17:19

标签: html windows email outlook

我有这个语法突出显示在emacs中生成的代码段,并希望将其粘贴到Outlook邮件中(当然,使用html呈现,不带html代码)。

<pre>
<span style="color: #a020f0; background-color: gtk_selection_bg_color;"> function</span><span style="background-color: gtk_selection_bg_color;"> </span><span style="color: #008b8b; background-color: gtk_selection_bg_color;">uvm_object</span><span style="background-color: gtk_selection_bg_color;"> uvm_object::</span><span style="color: #0000ff; background-color: gtk_selection_bg_color;">clone</span><span style="color: #707183; background-color: gtk_selection_bg_color;">()</span><span style="background-color: gtk_selection_bg_color;">;
   uvm_object tmp;
   tmp = </span><span style="color: #228b22; background-color: gtk_selection_bg_color;">this</span><span style="background-color: gtk_selection_bg_color;">.</span><span style="color: #0000ff; background-color: gtk_selection_bg_color;">create</span><span style="color: #707183; background-color: gtk_selection_bg_color;">(</span><span style="color: #0000ff; background-color: gtk_selection_bg_color;">get_name</span><span style="color: #7388d6; background-color: gtk_selection_bg_color;">()</span><span style="color: #707183; background-color: gtk_selection_bg_color;">)</span><span style="background-color: gtk_selection_bg_color;">;
   </span><span style="color: #a020f0; background-color: gtk_selection_bg_color;">if</span><span style="color: #707183; background-color: gtk_selection_bg_color;">(</span><span style="background-color: gtk_selection_bg_color;">tmp == </span><span style="color: #228b22; background-color: gtk_selection_bg_color;">null</span><span style="color: #707183; background-color: gtk_selection_bg_color;">)</span><span style="background-color: gtk_selection_bg_color;">
     </span><span style="color: #0000ff; background-color: gtk_selection_bg_color;">uvm_report_warning</span><span style="color: #707183; background-color: gtk_selection_bg_color;">(</span><span style="color: #8b2252; background-color: gtk_selection_bg_color;">"CRFLD"</span><span style="background-color: gtk_selection_bg_color;">, </span><span style="color: #a020f0; background-color: gtk_selection_bg_color;">$sformatf</span><span style="color: #7388d6; background-color: gtk_selection_bg_color;">(</span><span style="color: #8b2252; background-color: gtk_selection_bg_color;">"The create method failed for %s,  object cannot be cloned"</span><span style="background-color: gtk_selection_bg_color;">, </span><span style="color: #0000ff; background-color: gtk_selection_bg_color;">get_name</span><span style="color: #909183; background-color: gtk_selection_bg_color;">()</span><span style="color: #7388d6; background-color: gtk_selection_bg_color;">)</span><span style="background-color: gtk_selection_bg_color;">, UVM_NONE</span><span style="color: #707183; background-color: gtk_selection_bg_color;">)</span><span style="background-color: gtk_selection_bg_color;">;
   </span><span style="color: #a020f0; background-color: gtk_selection_bg_color;">else</span><span style="background-color: gtk_selection_bg_color;">
     tmp.</span><span style="color: #0000ff; background-color: gtk_selection_bg_color;">copy</span><span style="color: #707183; background-color: gtk_selection_bg_color;">(</span><span style="color: #228b22; background-color: gtk_selection_bg_color;">this</span><span style="color: #707183; background-color: gtk_selection_bg_color;">)</span><span style="background-color: gtk_selection_bg_color;">;
   </span><span style="color: #a020f0; background-color: gtk_selection_bg_color;">return</span><span style="color: #707183; background-color: gtk_selection_bg_color;">(</span><span style="background-color: gtk_selection_bg_color;">tmp</span><span style="color: #707183; background-color: gtk_selection_bg_color;">)</span><span style="background-color: gtk_selection_bg_color;">;
</span><span style="color: #a020f0; background-color: gtk_selection_bg_color;"> endfunction</span><span style="background-color: gtk_selection_bg_color;">
</span></pre>

以HTML格式呈现如下。

enter image description here

由于Outlook邮件支持html格式,我很好奇是否可以直接使用html代码创建格式良好的电子邮件正文。

我目前的方法有效,但速度很慢:

  • 我生成一个HTML文件,其语法突出显示了文件中所选代码的代码。
  • 然后我在Windows的浏览器中打开该文件。
  • 复制该页面内容
  • 粘贴Outlook

我希望有人发布涉及某种Windows后台脚本的解决方案(就像autohotkey作为后台服务一样),它可以动态地在剪贴板中呈现html代码并粘贴它。

2 个答案:

答案 0 :(得分:0)

我有一个简单的python脚本,可以将我的复制缓冲区中的纯文本HTML转换为HTML格式的文本,然后我可以将其粘贴到Microsoft Office程序中。它需要一个包&#34; pywin32&#34;可用here

import htmlclipboard
import win32clipboard

win32clipboard.OpenClipboard()
clipboardStr = win32clipboard.GetClipboardData()
htmlclipboard.PutHtml(clipboardStr)

它不能满足您作为后台服务运行的要求,但在我的情况下,我已将脚本固定到我的快速启动栏,这使我可以在需要时轻松运行。 另外,我使用这个elisp程序将我在emacs中的当前选择复制到kill ring作为HTML以保留格式:

(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")))

在我的情况下,如果我想通过电子邮件发送代码,保留我在emacs中看到的格式:

  1. 在emacs缓冲区中选择区域
  2. M-x copy-region-as-html
  3. 从快速启动栏运行python脚本
  4. 粘贴到outlook

答案 1 :(得分:0)

我发现了使用javascript解决此问题的简单方法。 您复制到text / html剪贴板,而文本/纯剪贴板为空。然后将其粘贴到Outlook中即可。

要复制的最小代码:

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)

带有文本输入的功能示例(您可以将粘贴复制到textarea中,然后单击按钮以复制到text / html剪贴板。请注意,粘贴大多数位置不会做任何事情:输入必须接受text / html内容-值得庆幸的是对我们来说Outlook确实如此):

https://jsfiddle.net/schtauffen/nequ7Lzs/13/