WebBrowser не печатается картинка

Ростигай
Дата: 21.07.2014 19:11:12
Привет.
Подскажите пожалуйста почему может не печатается картинка.

Компонент используется следующим образом:

WebBrowser browser = new WebBrowser();
              browser.DocumentCompleted += (sender, e) =>
              {
                  browser.Print();
              };

 
              browser.DocumentText = myString;


и вот такой HTML в итоге:

  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Титля/title>
    <style type="text/css">
                  table       { width: 400px }
                  td.key      { width: 200px; padding: 2px; font-size: 14pt; font-family: Helvetica; font-weight: bold }
                  td.value    { padding: 2px; font-size: 14pt; font-family: Helvetica }
                  td.logo     { text-align: center }
                  td.cap      { padding: 10px; padding-width: 100%; font-size: 20pt; font-family: Helvetica; text-align: center }
                  td.org      { font-size: 16pt; font-family: Helvetica; font-weight: bold; text-align: center }
                  td.adr      { font-size: 10pt; font-family: Helvetica; text-align: center }
                </style>
  </head>
  <body>
    <table>
      <tr>
        <td class="logo">
          <img src="MyLogo.ico" />
        </td>
...


Файл MyLogo.ico лежит рядом с EXEшником программы.

Если сохранить текст HTML в файл, закинуть его в тот же каталог, и открыть в браузере, то все нормально. картинка отображается и печатается.

Но вот если печатать программно ( browser.Print();) то в итоге вместо картинки печатается "крестик в квадрате" - т.е. картинка не нашлась.
Алексей К
Дата: 21.07.2014 19:28:57
"Титля" понравилась.
carrotik
Дата: 21.07.2014 19:55:09
Ростигай,

.. можно попробовать конвертировать картинку в base64 и вставить через src="data:image"
Ростигай
Дата: 21.07.2014 20:02:51
carrotik,

Я не большой специалист. Данное решение работает на WinXp ?
carrotik
Дата: 21.07.2014 20:12:27
Ростигай,

...увы, я не специалист в WinForms, но во всех реальных браузерах оно работает ...
Ростигай
Дата: 21.07.2014 20:27:01
И все же не могу понять.
Код простой:

        private void button1_Click(object sender, EventArgs e)
        {
            string str = File.ReadAllText("label.html");

            WebBrowser browser = new WebBrowser();
            browser.DocumentCompleted += (senderEx, ex) =>
            {
                browser.Print();
            };

            browser.DocumentText = str;
        }



Html укоротил совсем под ноль:

<?xml version="1.0" encoding="utf-16"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="en" lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>sdf</title>
    <style type="text/css">
                  table       { width: 400px }
                  td.logo     { text-align: center }
                </style>
  </head>
  <body>
    <table>
      <tr>
        <td class="logo">
          <img src="MyLogo.ico" />
        </td>
      </tr>
    </table>
    

  </body>
</html>


MyLogo.ico лежит рядом с EXE.

У Вас этот код печатает нормально ?
Ростигай
Дата: 21.07.2014 20:39:15
carrotik,

Сделал внедрение иконки в HTML. Не помогло. Если загрузить страничку в Chrom - все ок.
Но если попытаться программно распечатать, то вместо картинки квадратик:

<?xml version="1.0" encoding="utf-16"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="en" lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>sdf</title>
    <style type="text/css">
                  table       { width: 400px }
                  td.logo     { text-align: center }
                </style>
  </head>
  <body>
    <table>
      <tr>
        <td class="logo">
		<img alt="" src="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAABILAAASCwAAAAAAAAAAAAAAAAAAAAAAAAAAAABnaKYGCgxqUyAiecsfIXnUICF+3yUnZ5UAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwJ4TIiR62hkbcf8gIG3/HyBs/yAgdv8mJ2P/AQMA/1VUU10AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfInWqHB+W/xseyf8pL+n/KjDM/ycrsv8eJHz/ICZy/yMkLP8AAAD/aGhuZwAAAAAAAAAAAAAAAAAAAAAmMMWzKS7W/ygqvP8hJJb/GB+//xkf7v8fKPv/JS/i/yIpp/8dJFz/GBoM/wAAAP9XV1hKAAAAAAAAAAAAAAAAJzXc/ycvz/8iNPT/GyGp/yAeXf9OY7H/KjGi/x8p7v8kLcj/GyF1/xwhLP8SEQX/AAAA7wAAAA4AAAAAAAAAAB8x2dooMd3/IiO+/xcWp/8AAAD/isSp/6zWx/8iILL/IS7y/yEmjP8YHjn/GBcM/wICAP8EBAY1AAAAAAAAAAAfKrMxHiSW/wAAAP8LBiv/AAAA/1R5ev/O////SEeh/x0o5v8hKZj/GB5B/xcWDf8BAwD/CQoJaQAAAAAAAAAAAAAAAB0lmcFbZlr/Xn+Q/z5MfP9qlpP/vf///1hVlv8WIN//ICeO/xgfPP8ZGgr/GhcJ/wAAAP+Vl5lgAAAAAAAAAAAcIZewxP///6ru+/9zkOX/0f///63w9P9STpz/FiLR/x8idf8cI2X/GiJP/xoeLf8cGgH/AAAA/4uMi1YAAAAAERWNtUxgr//R////OEmz/6rl8P/K/er/QUTE/xggpv8dJXb/HyaF/yQuxP8hLcz/HSR1/xkYCf8AAAD7AAAAACA36rYVFJ//aIG8/0dayv9SXND/Z3LD/xwj0P8gI5v/HiZ1/xwhP/8YH4X/ECHztxkn2/8cJHT/HBoJ9gAAAAAKIfPBJCra/xQQgf8RDYv/Gxq9/xkYvv8iJZf/HSVc/xccK/8JCgD8DAwANgAAAABeW6K1Dx+U/woRCf8AAAAAX2nISBUg6f8jJUn/SUxKix4oabEkLGe1IilTsxUXFLEPEQuGBQcOIAAAAAAAAAAAX16jmQAAS/82JiKiAAAAAAAAAACBgb1RDhKH/0ZGUioAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFeakmLWDEAAAAAAAAAAAAAAAAAAAAAHl9xksNFH3rISErFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKWYBEx7e7AgAAAAAAAAAAAAAAAAAAAAAAAAAAMTupISUhJBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4D8AAMAfAACADwAAAAcAAAADAAAAAwAAAAMAAIABAACAAAAAgAAAAIAAAACACAAAgBgAAMf5AADj+QAA8/8AAA==" />
        </td>
      </tr>
    </table>
    

  </body>
</html>
Ростигай
Дата: 21.07.2014 20:52:02
добавил в код:

WebBrowser browser = new WebBrowser();
browser.Parent = this;
browser.DocumentCompleted += (senderEx, ex) =>

после загрузки страницы в браузер, и его отображении на форме - там тоже Крестик вместо изображения. Хотя картинка в виде bas64 - т.е. дело явно не в проблеме считывания иконки из отдельного файла.

PS. Проверил настройки IE. "Свойства обозревателя. Дополнительно. Мультимедиа. Отображать рисунки" - включено.
Не понимаю...

В чем может быть дело ?
Изопропил
Дата: 21.07.2014 21:51:39
Ростигай,
абсолютный путь к картинкам прописывай или base href задай(file:// ) и будет счастье
Ростигай
Дата: 22.07.2014 14:25:48
Изопропил,

Я вообще, сконвертил картинку в base64 и "вшил" ее в страничку 16337836. Причем тут путь вообще :)
Ладно попробую идею. Мутное дело вообще.