Модераторы: powerfox, ZeeLax
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> XML+XSL -> HTML -> PDF, Как реализовать? 
:(
    Опции темы
Vit
  Дата 11.2.2004, 01:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 1
Всего: 207



Есть XML, есть XSL к нему, надо сгенерить PDF.

Как я сейчас вижу:

1) XML+XSL -> HTML (здесь вроде бы всё просто - используем Web сервер или можно проще?)
2) Печатаем HTML на Postscript принтере в файл (вот тут проблема - как?)
3) Превращаем PS -> PDF (тут тоже проблемы, PDF должен быть сделан со всеми аттрибутами защиты - невозможность редактирования, выделения текста)

Всё это должно делаться автоматически, т.е. никаких - открыл браузер, нажал кнопку... только из приложения.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
NightGoblin
Дата 11.2.2004, 01:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1021
Регистрация: 24.11.2002
Где: 127.0.0.1

Репутация: 8
Всего: 11



Vit, по предложенной тобой схеме в принципе все должно быть осуществимо. Из HTML в PS можно "отпечатать" любым браузером - например, Mozilla. А в PDF можно сконвертить при помощи TeX. Подробнее на эту тему я вряд ли расскажу что-нибудь, поскольку сам пока что им не пользовался - хотя в недалеком будущем придется. Думается мне, что вообще всю эту операцию можно провернуть через TeX (TeTeX, LaTeX и т. п.).


--------------------
Kernel panic: /dev/null overflow!
GCS/IT/MU/O d-@ s: a- C++$>++++$ ULSB(+++) P+++ L+++>++++ !E W++(-) N o? K w-- O? M>+ V? PS+ PE Y+ PGP+>+++ t- 5 X+ R- !tv b+ DI+ D+ G e++ h--- r++ y?
B4F1 54B6 8738 26CD 5125 0581 B923 9273 FE59 1981
PM MAIL WWW ICQ   Вверх
Unregistered
Дата 11.2.2004, 03:57 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











XML+XSL -> HTML очень быстро получается с помощью xsltproc, но не уверен, поддерживает ли он xml v.1.1.

А нельзя написать xsl файл, который конвертировал бы xml не в html, а в fo? тогда бы вся трансформация осуществлялась вызовом одной программы (типа fop (xml.apache.org/fop), она же, кстати, и необходимое шифрование добавляет,
а в составе iText'а (iText, a Free Java-PDF library, http://www.lowagie.com/iText/), есть утилита Encrypt, шифрующая готовый pdf файл. Я правда ею сам не пользовался, но если ей и не достаёт функциональности, аналогичную можно реализовать с использованием этой же библиотеки).

Кстати, в Debian есть пакет htmldoc, который позоляет html конвертировать и в ps и напрямую в pdf.

С teTeX идея, по-моему, интересная, но придётся html переводить в ltx, сомневаюсь, что без потерь, ltx в pdf (тут всё работает, конечно) - всё это обходные пути, а xsl (xslt+fo) для того и создавался, чтобы подобные задачи решались без проблем smile.gif
  Вверх
Vit
Дата 11.2.2004, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 1
Всего: 207



Цитата
Из HTML в PS можно "отпечатать" любым браузером - например, Mozilla.


Как? Я знаю, что можно открыть HTML в браузере и нажать кнопку, но надо это сделать из программы, руками не касаясь ни мышки ни клавиатуры.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Vit
Дата 11.2.2004, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 1
Всего: 207



Цитата
А в PDF можно сконвертить при помощи TeX. Подробнее на эту тему я вряд ли расскажу что-нибудь, поскольку сам пока что им не пользовался - хотя в недалеком будущем придется. Думается мне, что вообще всю эту операцию можно провернуть через TeX (TeTeX, LaTeX и т. п.).


А подробней, по шагам, для полных идиотов можно?


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Vit
Дата 11.2.2004, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 1
Всего: 207



Цитата
XML+XSL -> HTML очень быстро получается с помощью xsltproc, но не уверен, поддерживает ли он xml v.1.1.


А конвертация получается точно такая же как на Web? Я имею ввиду в плане внешнего вида.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Vit
Дата 11.2.2004, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 1
Всего: 207



Цитата
нельзя написать xsl файл, который конвертировал бы xml не в html, а в fo?


Что-то я не допёр, xsl - вроде как шаблон, он ничего не конвертирует... В принципе ситуация такая - мне надо получить и HTML и PDF абсолютно одинаковые по начертанию используя один и тот же xsl+xml. Т.е. у меня в базе данных хранятся XML, есть набор XSL - для каждого пользователя созданный под него, пользователь может выйти на сайт и посмотреть отчёт в HTML, а может запросить этот же отчёт в ввиде PDF. Сейчас генерация PDF реализована при помощи Crystal Report, т.е. надо для каждого клиента иметь 2 шаблона - один для Web в ввиде XSL, один для PDF в виде RPT файла для Crystal. Так как шаблонов очень много их поддержка становится всё более и более затруднительная, поэтому есть идея отказаться от Crystal и всё делать используя один и тот же XSL.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Vit
Дата 11.2.2004, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 1
Всего: 207



Цитата
a Free Java-PDF library, http://www.lowagie.com/iText/)


Линк битый sad.gif


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
MuToGeN
Дата 11.2.2004, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: нет
Всего: 32



Vit, http://www.lowagie.com/iText/ (там скобка была в конце, из-за которой линк становился битым)


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
Guest
Дата 12.2.2004, 04:15 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Vit @ 11.2.2004, 18:37)
Цитата
XML+XSL -> HTML очень быстро получается с помощью xsltproc, но не уверен, поддерживает ли он xml v.1.1.


А конвертация получается точно такая же как на Web? Я имею ввиду в плане внешнего вида.

Ну внешний вид зависит от XSL, а не от процессора, с помощью которого мы его применяем к XML, отличия от Web могут быть вызваны разве что присутствием CSS и, разумеется, различиями движков, которые рендерят HTML
  Вверх
Guest
Дата 12.2.2004, 04:35 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата
Что-то я не допёр, xsl - вроде как шаблон, он ничего не конвертирует...
за исключением тривиальных случаев - скорее, набор шаблонов ;)

Цитата
есть набор XSL - для каждого пользователя созданный под него
а есть что-то общее в этих шаблонах? может все различия между пользователями поместить в БД и подавать на вход xsl процессору в виде параметров, тогда потребуется всего два (но это - минимум) XSL-файла: один для XML->HTML, а второй для XML->FO трансформации. Если нет - способ с печатью HTML, по видимому, - единственный вариант. Можно, правда, написать XSL, для трансформации XML не в HTML, а в LaTeX, а уже foo.tex прогонять через latex2html для Web представления и через pdflatex для печати.
  Вверх
Vit
Дата 12.2.2004, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 1
Всего: 207



Цитата
а есть что-то общее в этих шаблонах?


Общего много, но различия подчас очень серьёзны, одним шаблоном не обойтись.

Цитата
потребуется всего два (но это - минимум) XSL-файла: один для XML->HTML, а второй для XML->FO трансформации


Суть в том что и сейчас 2 файла - один RPT для Crystal (PDF) и один XSL для HTML, смысл в том чтобы оставить только один.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
sunyate
Дата 17.2.2004, 04:26 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата
Суть в том что и сейчас 2 файла

Я так понял, что сейчас по два файла на каждого пользователя, а суть в том, чтобы осталось всего два. Отличный пример - docbook.xsl, там, кстати для сложных случаев, когда одним шаблоном всем не угодить, предусмотренна система меташаблонов (xmlns:t), которые легче подстроить под конкретного заказчика, а затем трансформировать уже в xsl. Может быть с помощью чего-то подобного можно было бы решить задачу.
Насчёт печати из Mozill'ы, думается, пользователь и сам может это сделать, ведь т.наз. printer friendly version отличается от распечатанного html именно стилем (ссылки, поля, и т.д. и т.п.).
Вообще, любопытно, на каком решении ты остановишься smile.gif
  Вверх
Гость_Taras
Дата 7.7.2004, 19:44 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Слушайте! Вы что совсем того.Для такой потоковой конвертацыи существует такая вещь как XSL-FO которая переводит XSL в PDF. Но понятно что перед тем нужно иметь готовый XML текстовий файл. И все, вам остается только внести потом изменения в XML файт и PDF документ корректируется автоматически!!!
За документацией обращайтесь на страничку http://www.w3.org wink.gif

  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Oбщие вопросы"
nickless
Imple
nerezus

В тему здесь вопросы общие - не привязанные к определенному ПО или дистрибутиву BSD/Linux/UNIX.
Например вопросы о выборе ОС для определенных задач (но если Вы просто хотите узнать "Какой дистрибутив лучше", то для этого есть Клуб юнуксоидов).
Общие вопросы по shell-программированию тоже лучше задавать здесь.


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

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).


В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.


Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | *NIX системы: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0559 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.