2012-04-25 21 views
5

Wykonuję iterację nad listą obiektów. Przy każdej iteracji buduję i zapełniam tabelę zawierającą treść pojedynczej strony.Jak zapobiec pustej ostatniej stronie?

Używam CSS, aby dodać podział strony po każdej tabeli.

table { page-break-after: always; } 

Działa to świetnie, z tym wyjątkiem, że zawsze otrzymuję pustą ostatnią stronę. Zakładam, że jest to spowodowane ostatnią iteracją tabeli stosującą podział strony.

Próbowałem.

table { page-break-after: always; } 
table { page-break-after: auto; } 
table { page-break-after: left; } 
table { page-break-after: right; } 

Jednak zawsze mam tę pustą ostatnią stronę.

Czy istnieje inna metoda wstawiania podziałów strony, która nie tworzy pustej ostatniej strony?
A może jakiś sposób na wykrycie, czy jest to ostatnia iteracja, a nie wstawienie ostatniej strony?

+1

Czy możesz zastosować nazwę klasy do pierwszej lub ostatniej tabeli z odpowiednim CSS? – freefaller

Odpowiedz

12

Można dodać to:

table:last-of-type { 
    page-break-after: auto 
} 

Albo

body > *:last-child { 
    page-break-after: auto 
} 
+0

Dodałem tabelę: last-of-type {page-break-after: auto} do mojego css, ale wydaje się, że nie przynosi żadnego efektu. W związku z tym nie tworzy żadnych podziałów strony, więc strony działają razem? – Baxter

+0

Czy muszę organizować swoje tabele w określony sposób lub w kontenerze nadrzędnym innym niż ? – Baxter

+0

Czy jest to dodatek do 'table {page-break-after: always}'? – pbfy0

2

Używam Ruby do tworzenia stron. Stworzyłem różne css do łamania i bez łamania.

#publication_no_break{ 
/* stuff here */ 
page-break-after: avoid; 
} 

#publication_break{ 
/* stuff here */ 
page-break-after: always; 
} 

I na kodzie liczę każdą stronę, że muszę wydrukować i

<% if page != total_pages %> 
< .... .... id="publication_break" > 
<% else %> 
< .......... id="publication_no_break"> 
<% end %> 

Można spróbować czegoś takiego w żadnym języku jesteś kodowania.