Wczoraj pracowałem nad generowaniem pdf'ów w Railsach (Prawn & Prawnto) - generalnie bardzo fajna sprawa jednak trzeba uważać przy stosowaniu metody group na bounding_box'ach (nieumiejętnie stosowana rozwali wam powtarzającą się tabelkę przez kilka stron)… ale nie o tym chciałem pisać :).
Wpis ten ma na celu podzielenie się problemem w którego się wczoraj bardzo wkręciłem, a wyglądał on następująco:
Mamy tabelę której kolumny nie rozszerzają się gdy ich zawartość rośnie (w x-ach) - można przyjąć że jest ona stałym tłem, a my chcemy by tekst który w nią wrzucamy zawsze się zmieścił (w problematycznych przypadkach przechodził do nowej linii - w tym konkretnym: były to jednowyrazowe nazwy jednostek miary na fakturze).
Rozwiązanie wygląda tak (zmienną zastąpiłem tekstem by łatwiej było wkleić do konsoli Railsów):
"kilogramy".scan(/./).in_groups_of(4, false).collect {|x| x.to_s }.join("-\\n")
(najpierw string dzielony jest na tablicę znaków, następnie zamieniany na tablicę składającą się z tablic cztero-elementowych, później każda z nich zamieniana jest na string a stringi są łączone myślnikiem i znakiem nowej linii :) ).
Ciekawe czy da się to zrobić szybciej/lepiej i jak by to zrobił jakiś guru od PHP ;) (jakiegoś frameworka PHP).
Dodaj komentarz!