Веб-почта Gmail отображает последовательные пробелы, но не печатает их - PullRequest
0 голосов
/ 09 января 2020

Через приложение. NET Я генерирую HTML электронное письмо. Код HTML выглядит следующим образом:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="TX26_HTM 26.0.630.500" name="GENERATOR">
<title></title>
</head>
<body style="font-family:'Arial';font-size:12pt;text-align:left;">
<p lang="en-US" style="text-indent:0pt;margin-top:0pt;margin-bottom:0pt;font-family:'Courier New';font-size:10pt;color:#008000;white-space:pre">  AA1887¬ DFWPHX  715A  900A 757   0/ 0/ 0   0/ 0/12   0/ 0/ 0   47/ 47/176   0/ 0/ 0/ 7  R/F</p>
</body>
</html>

В сообщении электронной почты должен быть указан шрифт фиксированной ширины, и необходимо сохранять последовательные пробелы, поскольку это важно для удобства чтения. Когда я отправляю это письмо в Gmail и просматриваю его в браузере, оно выглядит так:

enter image description here

Теперь, когда я нажимаю на кнопку «Печать», оно делает версию для печати. Кажется, он сохраняет цвет, но не последовательный пробел:

enter image description here

Я пробовал варианты тега пробела без каких-либо различий в печати версия. Так что мой вопрос ... есть ли тег, который использует Gmail, который бы сохранял последовательный пробел во время рендеринга печати?

1 Ответ

0 голосов
/ 10 января 2020

Спасибо @ EG C. Поскольку я использую Agility Pack HTML, я реализовал быструю и грязную функцию. Из того, что я прочитал, не стоит использовать Inner Html для замены внутреннего текста. Однако для моих целей вывод строго определен.

'get all the <p> nodes
Dim xpP As String = "//p"
Dim pNodes As HtmlNodeCollection = htmlDocument.DocumentNode.SelectNodes(xpP)
If pNodes IsNot Nothing Then
    For Each pNode As HtmlNode In pNodes
        'replace inner text white space with NBSP
        pNode.InnerHtml = pNode.InnerText.Replace(" ", "&nbsp;")
    Next pNode
End If
...