powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Из HTML в Word
12 сообщений из 12, страница 1 из 1
Из HTML в Word
    #37491833
AlViPos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, Господа! Позвольте задать Вам один вопрос!
У г. Каратаева есть такой пример: в .csp перед <head> вставляется скрипт:

<script language='Cache' method='OnPreHTTP' returntype='%Boolean' >
s %response.ContentType="application/msword"
s %response.Expires = 1
q 1
</script>
и вся страница открывается не IE, а в Worde. Великолепно! Сформированный отчет я могу редактировать и печатать.
Но я хочу проделать тоже самое с HTML-файлом, который формирую, скажем, в CfcheObjectScript и потом запускаю в IE. Для
этого пишу в начале файла
<header("Content-Type: application/msword");>
и, естественно, ничего не получается.
Будьте добры, подскажите, чего не хватает.
...
Рейтинг: 0 / 0
Из HTML в Word
    #37491945
Turk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlViPos ,
В классе csp-страницы в методе OnPreHTTP нужно добавить строчку
Код: plaintext
s %response.ContentType="application/msword"
...
Рейтинг: 0 / 0
Из HTML в Word
    #37491988
AlViPos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в том-то и дело, что в csp-страницах всё идёт, а я запускаю файл .html в IE и он csp-приложения не видит.
...
Рейтинг: 0 / 0
Из HTML в Word
    #37492002
AlViPos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возможно, надо вместо cache-скрипта запустить java-скрипт?
...
Рейтинг: 0 / 0
Из HTML в Word
    #37492188
Turk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlViPos ,
Не путайте протокол HTTP и формат файла HTML.
HTTP-пакет состоит из заголовка и тела. В заголовке в частности содержится параметр Content-Type, который говорит браузеру о типе и формате данных в теле пакета, а дальше уже браузер решает, что ему делать с этими данными - открывать в своем окне, в сторонней программе, предлагать сохранить как внешний файл и т.п.

В формате HTML есть тег meta, т.ч. по идее можно попробовать так:
<meta http-equiv="content-type" content="application/msword; charset=windows-1251" />
Но, например, у меня HTML-файл с этим тегом просто открывается в браузере, без запуска Word-а.
...
Рейтинг: 0 / 0
Из HTML в Word
    #37492289
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вы делаете то же самое с файлом, то попробуйте сохранить его как .doc

Если у вас файлы небольшие, то попробуйте мой генератор xml-word файлов: http://www.sql.ru/forum/actualthread.aspx?tid=817637
Правда там есть проблема с потреблением памяти, сильно большие файлы не получится делать. В будущем когда-нибудь буду писать генератор под офис 2007 и как-то с этим бороться.
...
Рейтинг: 0 / 0
Из HTML в Word
    #37492392
AlViPos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так и у меня он открывается в браузере, а не в Worde, а у Каратаева в .csp - в Worde сразу.

Убираю "<script language='Cache' method='OnPreHTTP' returntype='%Boolean' >
Ss %response.ContentType='application/msword'
s %response.Expires = 1
q 1
</script>
- и открывается в браузере.
И мне так хочется - ставлю скрипт в тело HTML - выхожу в Word и редактирую что надо, уберу - и смотрю только в браузере.
...
Рейтинг: 0 / 0
Из HTML в Word
    #37492587
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда вам нужно не напрямую обращаться к этому файлу, а к csp, которая выставит content-type, а свое содержимое возьмет из этого файла.
...
Рейтинг: 0 / 0
Из HTML в Word
    #37492590
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если вы его в ворде редактируете, то сохраните его с расширением .doc, он у вас и будет в ворде открываться
...
Рейтинг: 0 / 0
Из HTML в Word
    #37492803
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlViPos ,

Возможно, это не совсем то, что Вы хотели.
Два ZEN-примера генерации файла html и открытия его в WordClass sqlru.test Extends %ZEN.Component.page
{

XData Contents [ XMLNamespace = " http://www.intersystems.com/zen"  ]
{
<page xmlns=" http://www.intersystems.com/zen"  title="">
  <button caption="test1" onclick="zenPage.SrvTest1();"/>
  <button caption="test2" onclick="zenPage.SrvTest2();"/>
</page>
}

/// Пример без создания файла
ClassMethod SrvTest1() [ ZenMethod ]
{
  set clob=##class(%GlobalCharacterStream).%New()
  set clob.%Location="^CacheTempUser.test"
  do clob.Write("<html><head><meta http-equiv=""Content-Type"" content=""text/html; charset=utf-8""/></head><body><i>ТЕСТ1</i></body></html>")
  do clob.SaveStream()
  
  set fileName="тест1.html"
  
  do clob.SetAttribute("CharSet","UTF-8")
  do clob.SetAttribute("ContentType","application/msword")
  do clob.SetAttribute("ContentDisposition",$$$FormatText("attachment; filename=%1",$s(%request.UserAgent["MSIE":$zcvt($zcvt(fileName,"O","UTF8"),"O","URL"),1:$$$quote(fileName))))
  
  &js<window.open(zenLink('%25CSP.StreamServer.cls?STREAMOID=#(..Encrypt(clob.%Oid()))#'),'_self');>
}


/// Пример с созданием файла
ClassMethod SrvTest2() [ ZenMethod ]
{
  
  set fileName="тест2.html"
  set file=##class(%FileCharacterStream).%New()
  set file.Filename=fileName
  set file.TranslateTable="UTF8"
  do file.Write("<html><head><meta http-equiv=""Content-Type"" content=""text/html; charset=utf-8""/></head><body><i>ТЕСТ2</i></body></html>")
  do file.SaveStream()
  
  do file.SetAttribute("CharSet","UTF-8")
  do file.SetAttribute("ContentType","application/msword")
  do file.SetAttribute("ContentDisposition",$$$FormatText("attachment; filename=%1",$s(%request.UserAgent["MSIE":$zcvt($zcvt(fileName,"O","UTF8"),"O","URL"),1:$$$quote(fileName))))

  &js<window.open(zenLink('%25CSP.StreamServer.cls?STREAMOID=#(..Encrypt(file.%Oid()))#'),'_self');>
}
}
Те же примеры, но на CSP<html>
<head>

<!-- Put your page Title here -->
<title>  Cache Server Page </title>

</head>

<body>

  <!-- Put your page code here -->
  
<script language="Cache" method="SrvTest1">
new clob,fileName
set clob=##class(%GlobalCharacterStream).%New()
set clob.%Location="^CacheTempUser.test"
do clob.Write("<html><head><meta http-equiv=""Content-Type"" content=""text/html; charset=utf-8""/></head><body><i>ТЕСТ1</i></body></html>")
do clob.SaveStream()
  
set fileName="тест1.html"
  
do clob.SetAttribute("CharSet","UTF-8")
do clob.SetAttribute("ContentType","application/msword")
do clob.SetAttribute("ContentDisposition",$$$FormatText("attachment; filename=%1",$s(%request.UserAgent["MSIE":$zcvt($zcvt(fileName,"O","UTF8"),"O","URL"),1:$$$quote(fileName))))
  
&js<window.open('%25CSP.StreamServer.cls?STREAMOID=#(..Encrypt(clob.%Oid()))#','_self');>
</script>

<script language="Cache" method="SrvTest2">
new file,fileName
set fileName="тест2.html"
set file=##class(%FileCharacterStream).%New()
set file.Filename=fileName
set file.TranslateTable="UTF8"
do file.Write("<html><head><meta http-equiv=""Content-Type"" content=""text/html; charset=utf-8""/></head><body><i>ТЕСТ2</i></body></html>")
do file.SaveStream()
  
do file.SetAttribute("CharSet","UTF-8")
do file.SetAttribute("ContentType","application/msword")
do file.SetAttribute("ContentDisposition",$$$FormatText("attachment; filename=%1",$s(%request.UserAgent["MSIE":$zcvt($zcvt(fileName,"O","UTF8"),"O","URL"),1:$$$quote(fileName))))

&js<window.open('%25CSP.StreamServer.cls?STREAMOID=#(..Encrypt(file.%Oid()))#','_self');>
</script>
    <input type="button" value="test1" onclick="#server(..SrvTest1())#;">
    <input type="button" value="test2" onclick="#server(..SrvTest2())#;">
</body>
</html>
Код на CSP Вам придётся самостоятельно переделать под версию 5.0.20, если Вы ещё на ней.

PS: некоторые браузеры ориентируются на расширение файла при их открытии, поэтому вместо расширения "html" используйте, например "doc".
...
Рейтинг: 0 / 0
Из HTML в Word
    #37494070
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlViPos,

авторНо я хочу проделать тоже самое с HTML-файлом, который формирую, скажем, в CfcheObjectScript и потом запускаю в IE. Для
этого пишу в начале файла

присваивала создаваемому файлу нужное расширение

для открытия броузером--НТМ-для начальства, одновременно создавался файл для навигации по отчетам за месяц
для ворда--------------------DOC-для исполнителей
для екселя-------------------XLS-для исполнителей

если в ворде только печать -проверяется внешний вид и уменьшается в предварительном просмотре на 1 страницу при невлезании 1-3 строк в последний лист(есть там такая удобная кнопочка)

если правка серьезнее --надо сохранить как новое имя.дос, доработать и печатать

пользователи справлялись с данной процедурой без лишних вопросов
...
Рейтинг: 0 / 0
Из HTML в Word
    #37494708
AlViPos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное спасибо всем за помощь! Оказывается, столько вариантов есть, есть из чего выбирать и что комбинировать. А заодно и кое-что сам напридумал. Иду эспериментировать - люблю это дело!
Ещё раз, всем огромное спасибо !
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Из HTML в Word
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]