По договоренности
Необходимо написание генератора заполненных бланков (пример: бланк почтового перевода).
Язык написание PHP5.
Входная информация: xml файл со всеми данными для генерации.
Выходная информация: изображение заполненного бланка в нужном формате.
Для генерации надписей, предлагаю использовать расширение php ImageMagick, т. к. GD и медленнее и у него очень сжатый функционал, что приведет к большим трудностям при реализации.
XML формат для генератора бланков:
Все размеры и отступы указаны в мм.
Пример xml:
<config>
<page>
<width>297</width>
<height>210</height>
<blanks>
<blank>
<id>post</id>
<name>Бланк почтового перевода</name>
<path>/home/user/blank.jpg</path>
<width>300</width>
<height>200</height>
<padding_top>0</padding_top>
<padding_left>0</padding_left>
<fields>
<field>
<var>var_name</var>
<padding_top>22</padding_top>
<padding_left>33</padding_left>
<font>
<name>Arial Cyr</name>
<size>10</size>
<color>#000000</color>
<is_bold>0</is_bold>
<is_italic>0</is_italic>
<is_underline>0</is_underline>
<word_spacing>0</word_spacing>
</font>
</field>
…......
<field>....</field>
</fields>
</blank>
…..
<blank> … </blank>
</blanks>
<fields>
<field>....</field>
…......
<field>....</field>
</fields>
</page>
</config>
Описание полей:
В <page> наш холст.
<width> и <height> размер холста в мм, в данном случае это А4 с альбомной ориентацией.
В <blanks> информация о бланках, который будут размещаться на холсте
В <blank> информация о самом бланке, который мы будем заполнять:
<name> — имя бланка
<path> — путь к изображению бланка.
<width> и height> — ширина и высота в мм, к которой необходимо привести бланк в случае, если он имеет другие размеры.
<padding_top> и padding_left> — отступы размещения бланка сверху и слева относительно холста.
<fields> — поля, которые будут заполнятся на бланке.
<field>:
<var> – имя переменной, значение которой будет подставлено в данное поле (массив с переменными, будет передаваться функции генерации)
<padding_top> и <padding_left> отступы размещения сверху и слева относительно бланка.
<font> настройки шрифта для поля:
<name> – имя шрифта (в программе будет забит массиы соответствий имени шрифта и пути к файлу шрифта)
<size> – размер шрифта
<color> – цвет шрифта в hex формате
<is_bold> — делать ли надпись жирной (0|1)
<is_italic> — делать ли надпись курсивом(0|1)
<is_underline> — делать ли надпис подчеркнутой (0|1)
<word_spacing> – меж буквенный интервал в словах поля
<fields> имеет структуру аналогичную <fields> в <blank>, за исключением того, что отсьупы <padding_top> и <padding_left> берутся относительно холста.
Оставляете свои предложения цены и сроков написания относительно генератора форм (генератор xml пока не трогаем). Просьба писать только людей с опытом в данном направлении, который могут трезво оценить сроки написания.