Формирование pdf в Laravel + dompdf
Сразу к теме.
Необходимо сформировать pdf файл, в котором будет повернутый текст.
Используется библиотека dompdf (возможно есть другие хорошие? подскажите)
Данная библиотека не поддерживает css3, соответственно свойство writing-mode и display:flex ей не знакомы.
Значит пытаюсь делать на таблице. Пробовал данным образом
<td rowspan="2" ><p class="vertical-rl" style="border:solid; width:150;">№ по порядку</p></td>
.vertical-rl {
text-align: center;
transform: rotate(-90deg);
}
Но при этом невозможно установить ширину ячейки, так как она выставляется по ширине тега <p> до поворота.
Нашел вот такой код, в песочнице работает, но пдфку выдает кривую (Пробовал пофиксить, никак не получается).
<table>
<tr>
<th><div></div></th>
<th><div><span>Tickets Included</span></div></th>
<th><div><span>Best Seats</span></div></th>
<th><div><span>Parking at the Firehall Theatre</span></div></th>
<th><div><span>Tax Receipt Over Ticket Value</span></div></th>
<th><div><span>Repeat Visits</span></div></th>
<th><div><span>Voting Rights at the AGM</span></div></th>
<th><div><span>Playbill Listing</span></div></th>
<th><div><span>Page to Stage Events</span></div></th>
<th><div><span>Discounted Patron Rates for Additional Tickets</span></div></th>
<th><div><span>Complimentary Beverage on Opening Night</span></div></th>
<th><div><span>Front of the Line Access</span></div></th>
<th><div><span>Brochure Listing</span></div></th>
<th><div><span>Parking at the Springer Theatre</span></div></th>
<th><div><span>Invitation to First Day of Rehearsals</span></div></th>
<th><div><span>Monthly 'Insider's Group'</span></div></th>
<th><div><span>End of Season Dinner</span></div></th>
</tr>
<tr><td>Visionary<br>($10,000+)</td><td>30</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td></tr>
<tr><td>Champion<br>($4,000-9,995)</td><td>20</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td></tr>
<tr><td>Guardian<br>($1,400-3,995)</td><td>16</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td></td></tr>
<tr><td>Benefactor<br>($690-1,399)</td><td>10</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td></td><td></td><td></td><td></td></tr>
<tr><td>Partner<br>($490-685)</td><td>7</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td>Supporter<br>($390-485)</td><td>5</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
</table>
table, tr, td, th {
border: 1px solid;
border-collapse: collapse;
text-align: center;
}
table {
width: 100%;
}
th {
padding: .5em 0;
}
div {
overflow: hidden;
line-height: 1.5;
width: 1.5em;
margin: auto;
}
span {
display: inline-block;
white-space: nowrap;
transform-origin: center;
transform: rotate(-90deg);
}
span:before {
content: "";
padding-top: 100%;
float: left;
}
Нашел способ, где генерируют картинку из текста и вставляют, вроде дело сдвинулось с мертвого места, но нет - не поддерживается кириллица.
imagestring()- все четко крутит и нормально отображает текст, но кириллицы нетimagettftext()- нужен кастомный фонт, нигде не нашел, попытался загрузить обычный шрифт, не принимаетimageloadfont()так же пытался загрузить шрифт - ни в какую не хочет. Файлик положил рядом с контроллером, который генерит картинку.
Подскажите пожалуйста, как все таки повернуть текст и положить его в пдфку?
(Ответ)
Ребята, кто столкнулся с данной проблемой, не мучайте dompdf, он не умеет. Я в итоге поставил библиотеку mpdf, которая под php, но она может пережевать view. Я использовал WriteHTML(view("моя вьюшка"));