Вопрос по HTML

Если название форума вам о чём-то говорит, то значит, внутри вы найдете что-то для себя полезное.
alibek
Большой Человек
Большой Человек
 
Сообщения: 14109
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Вопрос по HTML

Сообщение alibek » 10.04.2006 (Пн) 22:00

Вот что хотелось бы узнать :)
Есть некоторая система документооборота. В ней есть возможность печатать документы. Печатью занимается браузер (IE); система формирует HTML для него на основе XSLT-преобразования.

Возможно ли встроить в HTML изображение? В документе должно быть две картинки, небольшой логотип и фотография, причем нельзя использовать внешние файлы.
Возможно ли как-то исхитрится и указать изображение непосредственно в коде HTML? Или единственное, что мне поможет, это использовать RTF?
Lasciate ogni speranza, voi ch'entrate.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 10.04.2006 (Пн) 22:03

Ага, DV. :)

У меня очень стойкое ощущение, что где-то я видел забитую в html картинку. Сейчас буду вспоминать.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 10.04.2006 (Пн) 22:14

Возможно, я видел картинку, забитую через js. :?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14109
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 10.04.2006 (Пн) 22:45

Нет, скрипты исключены. Однопиксельные таблицы тоже :)
В принципе, есть оказывается что-то подобное: <img src="data:image/gif;base64,R0lGODdhMAAw... (RFC2397), но IE не поддерживает data scheme.
Lasciate ogni speranza, voi ch'entrate.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 11.04.2006 (Вт) 0:16

А если data island организовать - не поможет?
Вообще же, .mhtml - то, что нужно в данном случае, это типа CHM - компиляция в один файл. Но его ты из XSLT, конечно, не вытянешь...
Да, не вижу никаких проблем с использованием клиентских скриптов - разве что затянутая до упора скриптовая секурность в настройках конкретного компьютера.

Кстати, ты по привычке ошибся разделом, как мне кажется ;).

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 11.04.2006 (Вт) 6:22

А я вон чё нашёл: http://www.bennherrera.com/EmbeddedImage/
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 11.04.2006 (Вт) 6:50

Енто скрипты.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 11.04.2006 (Вт) 6:51

И не только. Ещё и пиксельные таблицы ;-)

Зато совместимо со всем подряд.

Там ещё есть вариант с анимацией в пиксельной таблице: http://www.bennherrera.com/EmbeddedImag ... ation.html
Изображение

alibek
Большой Человек
Большой Человек
 
Сообщения: 14109
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 11.04.2006 (Вт) 11:05

Вообщем, все печально.
Ладно, тогда что лучше, RTF-шаблон, в который будут подставляться значения? Или лучше документ генерировать в Word?
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 11.04.2006 (Вт) 11:36

Если у клиентов IE, то проще всего MHT.
Изображение

alibek
Большой Человек
Большой Человек
 
Сообщения: 14109
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 11.04.2006 (Вт) 11:48

Если ты мне объяснишь, какой должен быть XSL, чтобы на выходе получить MHT/CHM, то запросто :)
Lasciate ogni speranza, voi ch'entrate.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3286
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 11.04.2006 (Вт) 12:00

alibek писал(а):Если ты мне объяснишь, какой должен быть XSL, чтобы на выходе получить MHT/CHM, то запросто :)


Делаешь обычный HTML (где рисунок-файл). Потом сохраняешь его в MHT/CHM и удаляешь все исходники.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 11.04.2006 (Вт) 12:14

Andrey Fedorov

Ты хоть понял, что сказал? И к чему ты это сказал?

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3286
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 11.04.2006 (Вт) 12:27

RayShade писал(а):Andrey Fedorov
Ты хоть понял, что сказал? И к чему ты это сказал?


Я - понял. А ты, видимо, нет.
Я исходники HTML имел ввиду.
В результате юзер видит один MHT/CHM-файл и распечатывает его. Правда развернуть их назад в HTML никакой проблемы нет...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14109
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 11.04.2006 (Вт) 12:32

Юзер не видит MHT файл.
Юзер выбирает документ, нажимает кнопку на панели инструментов, система извлекает из БД данные, соответствующие этому документу (XML), применяет их к XSL, результат выводит в окошко Preview на основе браузера (причем я даже точно не знаю, выводит через файл или напрямую в объектную модель заливает).
Все, на что я могу повлиять -- редактировать XSL.
В некоторых случаях я могу знать, когда юзер нажимает кнопку "Печать" и, соответственно, извлечь картинки в заранее известное место (C:\TEMP\photo.jpg), но в общем случае я этого не знаю и рассчитывать на это не могу. Поэтому мне нужен автономный HTML-файл с изображениями.
Если это невозможно, я лучше буду экспорт в RTF делать, чем в MHT.
Lasciate ogni speranza, voi ch'entrate.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14109
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 11.04.2006 (Вт) 12:33

И вообще, я форумом промахнулся :)
Lasciate ogni speranza, voi ch'entrate.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 11.04.2006 (Вт) 12:39

Andrey Fedorov

Так что по всему выходит, что все таки, ты мимо кассы сказанул :)

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3286
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 11.04.2006 (Вт) 12:42

RayShade писал(а):Andrey Fedorov
Так что по всему выходит, что все таки, ты мимо кассы сказанул :)


Ну кто-ж знает всю постановку конкретной задачи окромя автора ;)
Мы в любом случае можем дать лишь версии.

У меня подобных ситуаций нет - CHM-ки на автомате создаются без проблем, картинки в письмах и моих отчетах тоже.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 11.04.2006 (Вт) 12:44

Andrey Fedorov

Счастливый ты человек :)

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3286
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 11.04.2006 (Вт) 13:28

RayShade писал(а):Andrey Fedorov
Счастливый ты человек :)


Разве что в том что отчетов как у alibek-а у меня нет.
А у него, как я понял какая-то сторонняя программа их создает.
Тут сложнее.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14109
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 11.04.2006 (Вт) 13:32

Да.
Есть система электронного документооборота.
В ней есть разные типы документов. Для каждого документа есть XML-описание, в котором указываются атрибуты документа, список, назначение и типы полей, шаблоны XSL-преобразований и т.п.
Когда юзер нажимает кнопку "Печать", из БД извлекаются данные (в XML), применяются к XSL (который также берется из БД), результат выводится в окно Preview на основе IE и юзер может распечатать показанный ему документ.
Все, что я могу сделать -- это создать произвольный XSL, который будет загружен в БД. На то, как выполняется XSLT и куда выводится, я повлиять не могу.
Lasciate ogni speranza, voi ch'entrate.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 11.04.2006 (Вт) 13:47

Признаться, не вижу ничего крамольного в том, чтобы включить в код ссылки на внешние ресурсы. Если это будет папка на корпоративном сервере (том же, где и сама БД, например), то указание UNC-имени будет вполне корректно работать. Могут быть проблемы, если человек на работу через VPN зацепился, но в любом случае путь вида "\\192.168.0.100\ReportPics\Logo.gif" разрулится без проблем.

В худшем случае, вынос картинок на внешний сервер и указание полного URL гарантированно решает проблему.

Учитывая, что XSL-код тебе полностью подконтролен, это можно сделать абсолютно прозрачно для системы.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14109
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 11.04.2006 (Вт) 14:18

Это не будет папка на сервере.
Это будет файл в БД, причем я не знаю, где и в каком виде, т.к. доступ к этому файлу я получаю через COM-интерфейсы, предоставляемые системой. Я могу выгрузить этот файл куда-нибудь на диск, в произвольную папку, да. Но не всегда.
Lasciate ogni speranza, voi ch'entrate.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 11.04.2006 (Вт) 14:29

Т.е. система по отношению к тебе является враждебной. Так бы сразу и сказал.

Не знаю, можно ли вытащить картинку из embedded XML, но у меня на большее фантазии не хватает, признаться...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14109
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 11.04.2006 (Вт) 14:35

Система предоставляет только то, что считает необходимым.
Т.е. все данные мне передаются в объектной модели (коллекции), в эту же коллекцию я сохраняю новые значения и вызываю метод Update.
Где эти данные лежат реально и как они организованы (а организованы они страшно, я БД смотрел) я знать не знаю.
Lasciate ogni speranza, voi ch'entrate.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 11.04.2006 (Вт) 14:45

А есть возможность организовать на том же или другом сервере IIS? Если да, то можно в качестве src рисунка использовать какой-нибудь запрос типа //server/getpicture.asp?id=99999. Если нет, то можно и на локальном компе, но это уже изврат :D
Лучший способ понять что-то самому — объяснить это другому.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14109
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 11.04.2006 (Вт) 14:52

А кто будет писать этот getpicture.asp? И как в нем заполучить доступ к файлу изображения?
Можно, конечно, методом научного тыка найти. Пока новая версия системы не будет выпущена и не придется переделывать все.
Нет, нужно исходить из того, что никаких уловок вроде хитрой ссылки применять нельзя. Нужно просто встроить изображение в HTML. Если есть способ, как из XSL сформировать MHT, то это тоже подойдет.
Lasciate ogni speranza, voi ch'entrate.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 11.04.2006 (Вт) 15:11

А кто будет писать этот getpicture.asp?
Допустим ты.
И как в нем заполучить доступ к файлу изображения?
доступ к этому файлу я получаю через COM-интерфейсы, предоставляемые системой
Примерно так:
Код: Выделить всё
<%
set obj = Server.CreateObject("ObjectModel.PictureClass")
'допустим GetPicture возвращает байтовый массив
r=obj.GetPicture(Request.QueryString("id"))
Response.ContentType = "image/gif"
Response.BinaryWrite r
%>

Скрипты нельзя, ссылки нельзя, mht невозможно... Остается Word. Или убить себя :) А лучше заказчика :)
Лучший способ понять что-то самому — объяснить это другому.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14109
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 11.04.2006 (Вт) 15:27

Заказчика убить нельзя, он деньги дает :)
Тот код, что ты мне показал, тоже не подойдет.
Непосредственного доступа к картинке у меня вообще нет.
Картинку мне возвращает система в объектах (коллекции полей), когда я открываю свой документ (ActiveX Control, расширяющий функциональность системы).
Но при печати мне управление не передается, печатью занимается исключительно система, извлекая данные из БД и применяя к ним XSL, я не могу знать, ни когда эта печать начинается, ни что печатается.
Lasciate ogni speranza, voi ch'entrate.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14109
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 11.04.2006 (Вт) 15:30

Antonariy писал(а):set obj = Server.CreateObject("ObjectModel.PictureClass")

Если было бы так просто :)
Во-первых, нужно имплементить минимум два интерфейса и правильно инициализировать документ. При инициализации мне передается сессия, которую нужно запомнить в переменную и в дальнейшем все общение с системой ведется через эту сессию.
И даже после этого, чтобы добраться до картинки, нужно довольно много кода, т.к. мне передается только идентификатор на файл в файловой библиотеке. Надо открыть эту библиотеку, найти нужную запись и извлечь файл.
Lasciate ogni speranza, voi ch'entrate.

След.

Вернуться в XML/XSL/XHTML

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList