Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> drukowanie wielu stron, jak nie dopuścić do podzielenia bloku na strony
Kabraxis
post
Post #1





Grupa: Zarejestrowani
Postów: 81
Pomógł: 2
Dołączył: 28.03.2003

Ostrzeżenie: (0%)
-----


Cel: Drukowanie faktur

Problematyka: fragment strony (zwanej dalej blokiem) nie może zostać wydrukowany w połowie na jednej stronie, a w połowie na drugiej. Nie jestem w stanie przewidzieć ilości produktów oraz miejsca jakie zajmą (nazwa może być np. na tyle długa, że zajmie dwa wiersze itp.). W związku z tym jedynym logicznym wyjściem byłoby podzielenie faktury na bloki, które w przypadku gdy nie mieszczą się już na pierwszej stronie do druku zostają przeniesione w całości na drugą, a tam pozostanie puste miejsce.

(Pisząc poniższe nie wiedziałem, że są takie problemy ze spacjami na tym forum... wyobraźcie sobie, że pomiędzy | a | są równe odstępy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) )
Zilustrowanie problemu:

strona 1
-------------
| abc |
| abc |
| abc |
| jakisele |
--------------

strona 2
-------------
| ment |
| abc |
| |
| |
--------------

Powyższa sytuacja nie może mieć miejsca, zamiast tego musi zostać to wydrukowane tak:

strona 1
-------------
| abc |
| abc |
| abc |
| |
--------------

strona 2
-------------
| jakisele |
| ment |
| abc |
| |
| |
--------------



Czy istnieje jakaś technologia, która umożliwia taki podział na bloki?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Jarod
post
Post #2





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

Ostrzeżenie: (0%)
-----


Ja załatiwłem to w poniższy sposób. Testowałem pod IE, FF i Operą.

  1. <?php
  2. // Dzielenie strony
  3.  $licznik++; $podzial++; $coIle = 0;
  4.  
  5.  if ( $licznik <= 34 ) $coIle = 34;
  6.  if ( $licznik > 34 ) $coIle = 38;
  7.  
  8.  if ( ($podzial == $coIle) && ($licznik < $iloscRekordow) )
  9.  {
  10.  echo '<div class="spacerdruk"></div>';
  11.  $podzial = 0;
  12.  }
  13. ?>

  1. .spacerdruk {
  2. page-break-before: always;
  3. height: 1px;
  4. }


Musisz metodą prób i błędów sprawdzić ile w Twom przypadku zmieści się danych na stronie i odpowiednio pozmieniać wartości w warunkach (34 i 38). Na pierwszej stronie drukowanych jest 34 (bo drukuje jeszcze tyutł nagłówka) wiersze a na każdej następnej 38.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.12.2025 - 16:27