Używam xhtml2pdf
(wcześniej pisa
, czy też odwrotnie? :)) do generowania pliku PDF z szablonu django. Szablon jest renderowany poprawnie, ale plik PDF, który otrzymuję z tego szablonu, jest uszkodzony w bardzo dziwny sposób: tekst w komórkach tabeli jest podnoszony do górnej części komórki, więc wielkie litery dotykają górnej granicy komórki:Tekst w komórce tabeli nieprawidłowo wyrównany
Choć w przeglądarce wygląda na to, że:
próbowałem:
- Stosując
vertical-align
- wygląda na to, że jest po prostu zignorowany, przynajmniej nie zauważyłem żadnych zmian w pdf, nawet jeśli były one w wygenerowanym html - Zastosowanie
padding-top
- powoduje przesunięcie tekstu w dół, ale również zwiększa wysokość komórki. - zawijanie tekstu w
span
zmargin-top
- taki sam efekt jakpadding-top
Myślę, że powodem jest to, że tekst jest renderowany przez xhtml2pdf na samym szczycie linii, natomiast przeglądarek mają tendencję, aby uczynić go gdzieś w środku blok. Innymi słowy blok tekstu zajmuje tę samą pozycję zarówno w formacie pdf, jak i html, ale tekst wewnątrz bloku jest przesunięty. Ale to tylko moja spekulacja.
Czy ktoś ma ten sam problem? czy robię coś źle? Jakiekolwiek obejścia są możliwe?
Fragmenty kodu:
- wytopione html: http://pastebin.com/4jMCLrA4
- CSS: http://pastebin.com/vAn8HXkY
- kod, który generuje plik PDF: http://pastebin.com/6wBULrhx
dokładnie taki sam prolem tutaj – ppetrid
@ppetrid że zakończyła się za pomocą [weasyprint ] (http://weasyprint.org/). Ma kolejną wadę ignorowania wysokości T, ale to nie jest dla mnie wielka sprawa. – J0HN
@JOHN czy masz przykładowy kod dla Weasyprint? Kiedy używam Weasyprint, uzyskuję takie same wyniki, jakie pokazujesz w pytaniu. – Steve