LINUX.ORG.RU

[Tcl/Tk] Печать отчетов


0

1

Доброго времени суток!

Специалисты по Tcl/Tk, нужно ваше мнение.

Есть такая задача — необходимо выводить на принтер (локальный) результаты измерений. Результаты представляют собой график (используется BLT) и набор параметров, исходя из которых делается заключение о годности испытываемого изделия. То есть, я должен сформировать некий отчет и вывести его на принтер. И здесь возникают вопросы.

  • Просто распечатать график — не проблема, print1 из библиотеки BLT работает прекрасно. Но — график нужно отмасштабировать (чтобы поместился на четверть листа А4, а лучше меньше), а также добавить текст (те самые измеренные параметры).
  • Попробовал штатную функцию из BLT, создающую eps. Однако получил проблему с кодировками — на месте кириллицы были кракозябры.
  • Ну и весь процесс создания-распечатки отчета желательно проделать с минимумом внешних утилит и максимально скрыть от юзера, который по окончании испытания должен только нажать кнопку «Распечатать».

По последней причине, к сожалению, отпадает TeX — хотя это был бы отличный вариант. Возможно, подойдет сохранение графика в графическом формате (например, jpg — на артефакты пофиг, принтер черно-белый) и генерирование какого-нибудь html — этот способ я еще не пробовал.

Заранее благодарю за советы.

Отпадание ТеХа это крайне жалко, самые роскошные отчеты конечно в нем. На винде что ли все происходит?

А дернуть gnuplot не проще ли? Там можно довольно кучерявые графики рисовать, с текстом, и выводить их в каком нить eps (или поглядеть какие там есть форматы для вывода , их вообще то дофига). Под винду есть ехешник, прекрасно работает.

AIv ★★★★★ ()
Ответ на: комментарий от AIv

Отпадание ТеХа это крайне жалко, самые роскошные отчеты конечно в нем. На винде что ли все происходит?

Скажем так — и на винде тоже. Нет, ну если уж совсем никаких вариантов не будет — поставлю какую-нибудь минимальную сборку TeXa, но все же хотелось бы обойтись без него.

А дернуть gnuplot не проще ли?

Не, график как раз прекрасно рисуется, динамика, масштабирование — все в лучшем виде :-) Но вот вывести на печать его вместе с текстом — таки проблема.

decadent ()
Ответ на: комментарий от decadent

А стункнутся на линуксовый сервер, сгенерить отчет там и засосать назад готовую pdf?

Я про печать из под винды ничего не знаю... а в них это вопрос формата. В гнуплоте же этих форматов на любой вкус и цвет, потому и предложил;-)

AIv ★★★★★ ()
Ответ на: комментарий от AIv

А стункнутся на линуксовый сервер, сгенерить отчет там и засосать назад готовую pdf?

Сервера нет :-) Одиноко стоящий в цеху комп, управляет стендом, не подключен вообще ни к чему, кроме розетки. И этот заказчик очень хочет именно винду.

decadent ()
Ответ на: комментарий от decadent

Заказчик хочет странного... мои глубокие соболезнования.

AIv ★★★★★ ()
Ответ на: комментарий от AIv

Заказчик хочет странного... мои глубокие соболезнования.

Дык не спорю, а шо делать — задачу решать надо. Пока попробую генерить html и печатать его.

decadent ()

tcl/tk --> canvas --> Cyrillic text --> postscript — никаких проблем

пруф: canvas_ps.png

sdio ★★★★★ ()
Ответ на: комментарий от sdio

tcl/tk --> canvas --> Cyrillic text --> postscript — никаких проблем

Хм. Так я не пробовал. Спасибо за наводку, буду думать.

decadent ()

А как по-поводу генерации SVG?

<?xml version="1.0" standalone="no"?> 
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 
<svg width="10cm" height="3cm" viewBox="0 0 1000 300"
     xmlns="http://www.w3.org/2000/svg" version="1.1"> 
  <desc>Example text</desc> 
 
  <text x="250" y="150" font-family="Verdana" font-size="55" fill="red" > 
    Привет из SVG!
  </text> 
 
  <!-- Show outline of canvas using 'rect' element --> 
  <rect x="1" y="1" width="998" height="298"
        fill="none" stroke="blue" stroke-width="2" /> 
</svg> 

Neksys ★★★ ()
Ответ на: комментарий от Neksys

А как по-поводу генерации SVG?

SVG я не умею. Хотя тоже был бы неплохой вариант, но как туда график из BLT запихнуть? Напрямую BLT не умеет в SVG конвертировать.

decadent ()
Ответ на: комментарий от decadent

А что у тебя за график? Возможно что и blt тебе не нужен

sdio ★★★★★ ()

Можно попробовать pdf4tcl, распечатывать полученный pdf.

anonymous ()
Ответ на: комментарий от sdio

График простой, но он строится в реальном времени, плюс в blt очень удобно делается зумирование этого графика.

decadent ()
Ответ на: комментарий от anonymous

Можно попробовать pdf4tcl, распечатывать полученный pdf.

Спасибо, посмотрел на его возможности — если у него все нормально с кириллицей — попробую его.

decadent ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.