Генератор бланков на PHP.

Бюджет: по договоренности
Заказчик выбрал исполнителя:
Юрий Апостол  
Необходимо написание генератора заполненных бланков (пример: бланк почтового перевода).
Язык написание 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 пока не трогаем). Просьба писать только людей с опытом в данном направлении, который могут трезво оценить сроки написания.
Опубликован 18.08.2011 в 13:18 Последнее изменение: 18.08.2011 в 14:07

Выберите способ верификации:

Обновите страницу после прохождения верификации.