Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Формирование документа в mPdf
 
 автор: svoboda   (11.02.2017 в 11:11)   письмо автору
122.9 Кб
 
 

Доброго времени суток!
Может кто-то сталкивался с библиотекой mPdf, подскажите как реализовать: выводится таблица на несколько страниц, по окончании страницы должна быть итоговая строка по этой странице

<table width="1200" border="0" cellspacing="0" cellpadding="0">
    <!--шапка повторяется на каждой новой странице-->
    <thead>
        <tr>
            <td colspan="2" align="center">Номер</td>
            <td rowspan="2" align="center">Наименование работ</td>
            <td width="80" rowspan="2" align="center">Номер<br>единичной<br>расценки</td>
            <td width="80" rowspan="2" align="center">Единица<br>измерения</td>
            <td colspan="3" align="center">Выполнено работ</td>
          </tr>
          <tr>
            <td width="50" align="center">по порядку</td>
            <td width="70" align="center">позиции по смете</td>
            <td width="100" align="center">количество</td>
            <td width="130" align="center">цена за<br>единицу, руб.</td>
            <td width="130" align="center">стоимость, руб.</td>
          </tr>
          <tr>
            <td align="center"><strong>1</strong></td>
            <td align="center"><strong>2</strong></td>
            <td align="center"><strong>3</strong></td>
            <td align="center"><strong>4</strong></td>
            <td align="center"><strong>5</strong></td>
            <td align="center"><strong>6</strong></td>
            <td align="center"><strong>7</strong></td>
            <td align="center"><strong>8</strong></td>
          </tr>
    </thead>
    <!--итоговая строка должна быть в конце каждой страницы-->
    <tfoot>
        <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td align="right"><b>Итого</b></td>
            <td align="right"><b><?=$kol;?></b></td>
            <td align="center"><b>X</b></td>
            <td align="right"><b><?=$sumStoka;?></b></td>
        </tr>
    </tfoot>
    <!--тело таблицы - выполняем цикл-->
    <tbody>
        <?for($i=1$i<=count($job); $i++):?>
        <tr>
            <td align="center" valign="top"></td>
            <td align="center" valign="top"></td>
            <td align="left"  valign="top"></td>
            <td align="right"  valign="top"></td>
            <td align="right"  valign="top"></td>
            <td align="right"  valign="top"><?=$job[$i]['quantity'];?></td>
            <td align="right"  valign="top"><?=$job[$i]['price'];?></td>
            <td align="right"  valign="top"><?=$sum;?></td>
        </tr>
        <?$kol+=$job[$i]['quantity'];
            
$sumStoka+=$job[$i]['quantity']*$job[$i]['price'];?>
        <?endfor;?>
    </tbody>
</table>


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

  Ответить  
 
 автор: confirm   (12.02.2017 в 13:45)   письмо автору
 
   для: svoboda   (11.02.2017 в 11:11)
 

Ну судя по коду не на каждой странице, а в конце каждой таблицы, а уж как получится при экспорте в PDF только богу известно. Суть вопроса не имеет отношения непосредственно к MPDF, а скрипту. Чтобы все выводилось в нужном месте нужно правильно построить логику вывода таблиц.

  Ответить  
 
 автор: svoboda   (12.02.2017 в 14:06)   письмо автору
 
   для: confirm   (12.02.2017 в 13:45)
 

Таблица одна - при генерации pdf, таблица разрывается по страницам и по-этому приходится делать итоговую строку на каждой странице. Тут: http://www.uamedwed.com/blog/web/fpdf-urok-6-ssylki-i-vyvod-html.html написано что добавляют новый метод для - который как я понимаю отслеживает когда происходит разрыв таблицы?

  Ответить  
 
 автор: confirm   (13.02.2017 в 07:16)   письмо автору
 
   для: svoboda   (12.02.2017 в 14:06)
 

Методами библиотеки вы можете управлять только выводом. То есть, если вы гарантировано знаете где будет разрыв на новую страницу, в этом месте и вставляйте итог. Иначе не получится, MPDF это конвертор из одного в другое, расчетами он не занимается.

  Ответить  
 
 автор: svoboda   (13.02.2017 в 08:48)   письмо автору
 
   для: confirm   (13.02.2017 в 07:16)
 

В том то и дело, что я не знаю где будет разрыв. Каждая строка может быть разной высоты.

  Ответить  
 
 автор: confirm   (13.02.2017 в 11:20)   письмо автору
 
   для: svoboda   (13.02.2017 в 08:48)
 

Но от библиотеки вы чего хотите? В ней же нет такого, как например Javascript у клиента, который бы мог получить необходимое для расчета из страницы и поместить в нужное место.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования