LINUX.ORG.RU

Сгенерировать много форм с текстом

 , ,


1

1

Нужно за сегодня сгенерировать оче много печатных форм.

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

В общем, надо строго разместить определенный текст на листе бумаги. Прозреваю, что нужно просто сгенерировать кучу pdf, но как сделать это быстрее и проще ? Предположим данные уже есть в текстовом файле или в csv. Осталось сгенерировать по ним много формочек.

Задача разовая.

Задача разовая.

localc
текст подставлять (заменять шаблон) можно хоть sed'ом

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

Я тоже к этому склоняюсь, только я латеха не знаю. Есть где нибудь вводный курс как можно такую формочку сверстать ? Или сам покажи.

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

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

Покажи форму.

PS м.б. html будет даже проще, тока я html не знаю. А вообще хорошо спросить у Eddy_Em

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

Варианты:
1) pdf с полями: пользователь заполняет, потом печатает.
2) Простая веб-форма: после валидации данные отсылаются серверу, тот запускает элементарный скрипт, подставляющий полученные данные в шаблон и генерирующий при помощи pdflatex'а pdf-документ, который и отсылается пользователю.

Задача разовая.

А, на это я сразу внимание не обратил. Тогда нафиг html: простой bash-скрипт.

s9gf4ult, дай пример данных и что должно получиться.

Eddy_Em ☆☆☆☆☆
()
Последнее исправление: Eddy_Em (всего исправлений: 2)

Проще всего будет нагенерить html и перегнать его в pdf.

anonymous
()

Если задача разовая - можно заюзать Libreoffice.

Макет делается во Writer, текст точно размещается на листе с помощью врезок.

  • Затем в Calc забиваете данные.
  • Затем используете таблицу как источник данных.
  • Libreoffice может сразу все и аспечатать, или перегнать в pdf.

Если надо могу подробнее расписать магию 3 пункта.

Делов на 5 мин.

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

пример входных данных:

  • Название: «Рога и копыта», Адрес: «Водопроводчиков 10»
  • Название: «ООО Вектор», Адрес: «Красных молдавских партизан 38»

Выходные данные:

Нечто, что можно распечатать. После печати должна получиться страничка, на которой название и адрес размещены в строго определенном месте

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

Приводишь файл в CSV-форму:

cat list
Рога и копыта,Водопроводчиков 10
ООО Вектор,Красных молдавских партизан 38

а потом запускаешь скриптец

#!/bin/bash
IFS=,
cntr=0
while read Name Addr
do
	fname=$(printf "%03d.tex" $cntr)
	((cntr++))
	echo "N: $Name, A: $Addr, f: $fname"
	cat > $fname << EOF
\documentclass[a4paper]{article}
\usepackage{/home/eddy/ed}
\begin{document}
\vspace*{5cm}\hspace*{3cm}\hbox to 6cm{$Name\hss}

\vspace*{1cm}\hspace*{5cm}\hbox to 4cm{$Addr\hss}
\end{document}
EOF
pdflatex $fname > /dev/null
rm -f *log *aux $fname
done < list
Получаешь N (по количеству строк) pdf файлов.

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

отлично, осталось только правильно латех поставить, православно его через ctan ставят или пакетником ?

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

Ставишь tex-live из пакетного менеджера своего дистрибутива. Все будет, кроме некоторых экзотических пакетов.

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