Страница 1 из 2

Отобразить HTML-документ в окне

Добавлено: 10 Май 2020, 9:07
soft42
Всех с праздником :D
Потребовалось отобразить HTML-документ в окне программы.
Посмотрел форум, в основном все занимаются перегонкой отчетов в HTML.
А у меня HTML-документы уже есть. Надо их только показать. В примерах Clarion нашел только работу с HTML-help.
Но там, как я понял, выводится уже готовое окно для поиска, и работает со сжатым HTML (CHM).
Или надо искать сторонние шаблоны? Кто чем пользуется?

Clarion 6.3 ABC

Отобразить HTML-документ в окне

Добавлено: 10 Май 2020, 10:48
Дед Пахом
Поищите здесь "Shell.Explorer", много ссылок найдётся. Если коротко, то как-то так:

Код: Выделить всё

  PROGRAM

  MAP
  END

Window                        WINDOW('Caption'),AT(,,559,386),GRAY,SYSTEM,FONT('Tahoma',8)
                                OLE,AT(9,11,535,365),USE(?oleImg),COMPATIBILITY(020H),CREATE('Shell.Explorer.2')
                                END
                              END

wmfFile                       STRING('Test.wmf')
  CODE
  OPEN(Window)
  ACCEPT
    CASE EVENT()
    OF EVENT:OpenWindow
      ?oleImg{'Navigate("'& 'file://'& LONGPATH(wmfFile) &'")'}
    END
  END
  
в Вашем случае вместо wmf подставляйте html файлы.

Отобразить HTML-документ в окне

Добавлено: 10 Май 2020, 12:56
RaFaeL
J-HTML

Отобразить HTML-документ в окне

Добавлено: 10 Май 2020, 13:13
soft42
Попробовал Shell.Explorer. Спасибо, работает.
Теперь надо разобраться с кодировками и сами HTML-файлом.

Отобразить HTML-документ в окне

Добавлено: 10 Май 2020, 14:50
soft42
RaFaeL писал(а): 10 Май 2020, 12:56J-HTML
А чем отличается J-HTML от Shell.Explorer?

Отобразить HTML-документ в окне

Добавлено: 10 Май 2020, 15:12
RaFaeL
soft42 писал(а): 10 Май 2020, 14:50 А чем отличается J-HTML от Shell.Explorer?
Простотой использования, это удобная обертка

Отобразить HTML-документ в окне

Добавлено: 10 Май 2020, 15:20
kreator
Только конторы уже нет. Причём давно. Если эта удобная обёртка с открытым кодом, то можно посмотреть.

Отобразить HTML-документ в окне

Добавлено: 10 Май 2020, 16:04
soft42
Вопрос по Shell.Explorer. А можно HTML брать из переменной-строки, а не из файла?

Отобразить HTML-документ в окне

Добавлено: 11 Май 2020, 14:54
soft42
Кажется, я не в ту сторону копаю. Пришел к выводу, что тот HTML, который у меня есть, не позволяет полноценно отобразить документ :(
Точнее его форму.

Отобразить HTML-документ в окне

Добавлено: 11 Май 2020, 15:16
kreator
soft42 писал(а): 11 Май 2020, 14:54 Кажется, я не в ту сторону копаю. Пришел к выводу, что тот HTML, который у меня есть, не позволяет полноценно отобразить документ :(
Точнее его форму.
Как понять?

Отобразить HTML-документ в окне

Добавлено: 11 Май 2020, 19:05
soft42
kreator писал(а): 11 Май 2020, 15:16 Как понять?
HTML у меня формируется OCR-программой. Вот кусок.

Код: Выделить всё

  <div class='ocr_page' id='page_1' title='image ""; bbox 0 0 2472 3534; ppageno 0'>
   <div class='ocr_carea' id='block_1_1' title="bbox 385 256 2310 1770">

    <p class='ocr_par' id='par_1_2' lang='rus' title="bbox 555 1147 1000 1200">
     <span class='ocr_line' id='line_1_2' title="bbox 555 1147 1000 1200; baseline -0.007 -13; x_size 45; x_descenders 9; x_ascenders 11">
      <span class='ocrx_word' id='word_1_4' title='bbox 555 1147 673 1200; x_wconf 96'>Дата:</span>
      <span class='ocrx_word' id='word_1_5' title='bbox 784 1149 1000 1186; x_wconf 96'>24.04.2020</span>
     </span>
    </p>

    <p class='ocr_par' id='par_1_3' lang='rus' title="bbox 557 1234 1476 1290">
     <span class='ocr_line' id='line_1_3' title="bbox 557 1234 1476 1290; baseline -0.008 -14; x_size 47; x_descenders 10; x_ascenders 12">
      <span class='ocrx_word' id='word_1_6' title='bbox 557 1235 685 1290; x_wconf 96'>Кому:</span>
      <span class='ocrx_word' id='word_1_7' title='bbox 797 1238 1044 1283; x_wconf 93'>Начальнику</span>
      <span class='ocrx_word' id='word_1_8' title='bbox 1058 1235 1198 1281; x_wconf 86'>ОРП</span>
      <span class='ocrx_word' id='word_1_9' title='bbox 1213 1234 1476 1282; x_wconf 96'>«Краснодар»</span>
     </span>
    </p>

    <p class='ocr_par' id='par_1_4' lang='rus' title="bbox 558 1327 1231 1383">
     <span class='ocr_line' id='line_1_4' title="bbox 558 1327 1231 1383; baseline -0.007 -15; x_size 48; x_descenders 11; x_ascenders 11">
      <span class='ocrx_word' id='word_1_10' title='bbox 558 1327 630 1383; x_wconf 96'>От:</span>
      <span class='ocrx_word' id='word_1_11' title='bbox 799 1329 898 1366; x_wconf 39'>ТК</span>
      <span class='ocrx_word' id='word_1_12' title='bbox 912 1329 1130 1376; x_wconf 92'>Пронкина</span>
      <span class='ocrx_word' id='word_1_13' title='bbox 1143 1327 1231 1364; x_wconf 66'>Е.А.</span>
     </span>
    </p>
В примере есть общий размер листа, есть распознанные слова и координаты в пикселах, куда они должны быть поставлены.
Но в HTML нельзя при помощи тегов поставить слова по координатам :( Надо использовать что-то другое.
При попытке отобразить этот текст все строки начинаются с левого края окна и идут через фиксированный вертикальный шаг между строками. Не судьба :evil:

Отобразить HTML-документ в окне

Добавлено: 11 Май 2020, 19:09
finsoftrz
Смотрите marging и padding в css.

Отобразить HTML-документ в окне

Добавлено: 11 Май 2020, 19:45
kreator
Посмотрите, как формирует html-документ стандартный SV класс. Там тоже элементы расположены на своих местах. В разделе "<style type="text/css">" там вот такое:

Код: Выделить всё

.RectStyle1
{
  border-color: #000000;
  border-width: 1.0092mm;
  border-top-style: solid;
}
.RectStyle2
{
  background-color: # transparent;
}
.RectStyle3
{
  border-color: #000000;
  border-width: 1.0092mm;
  border-left-style: solid;
}
#Position1
{
  position: absolute;
  left: 19.469mm;
  top: 7.4596mm;
  width: 261.1494mm;
  height: 1.0092mm;
}
#Position2
{
  position: absolute;
  left: 153.0551mm;
  top: 40.9369mm;
  width: 56.7445mm;
  height: 4.4386mm;
}
#Position3
{
  position: absolute;
  left: 153.0551mm;
  top: 45.5024mm;
  width: 164.8207mm;
  height: 4.4386mm;
}
#Position4
{
  position: absolute;
  left: 153.0551mm;
  top: 50.0678mm;
  width: 29.7064mm;
  height: 4.4386mm;
}
А сами элементы вот так:

Код: Выделить всё

<SPAN class="RectStyle2" id="Position2"></SPAN>
<SPAN class="TextStyle1 LeftStyle" id="Position2">Выполнить взвешивание</SPAN>
<SPAN class="RectStyle2" id="Position3"></SPAN>
<SPAN class="TextStyle1 LeftStyle" id="Position3">Выполнено взвешивание ручных огнетушителей согласно АММ 26-25</SPAN>
<SPAN class="RectStyle2" id="Position4"></SPAN>
<SPAN class="TextStyle1 LeftStyle" id="Position4">-01-280-801</SPAN>

Отобразить HTML-документ в окне

Добавлено: 11 Май 2020, 19:48
kreator
У Вас примерно тоже самое, только потерян кусок "text/css".

Отобразить HTML-документ в окне

Добавлено: 11 Май 2020, 20:06
finsoftrz
Судя по тексту, слова отмечены идентами. Такое делают обычно, чтобы потом на это дело натравить джаваскрипт, который подсунет нужные позиции. Видимо, из title (всплывающей подсказки). То есть, к этому тексту нужен еще обработчик на джаваскрипт.