Wątek przeniesiony 2021-10-12 16:45 z Inne języki programowania przez Shalom.

Tabela HTML - brak możliwości wydrukowania

0

Spotkał się ktoś z was z dziwnym problemem.
Wygenerowana tabela HTML - bardzo duża.
Brak możliwości wydrukowania na kilku kartkach A3 czy nawet A4?

W pionie owszem tworzą się nowe strony do druku. Wzdłuż jednak nie:

screenshot-20211012162932.png

Co tu jest nie tak? I jak mam to zrobić?

Załączam test file. WYDRUK_PLANU.rar

1

Przeglądarka nie wie ile kolumn ma być na stronie.
Możesz poprosić o wydruk w poziomie żeby się więcej zmieściło:

@page {
	size: landscape;
}

Możesz podzielić tabelę w pionie na mniejsze:

<section class="printable-tables">
   <!-- kolumny na stronie pierwszej -->
   <table>
      <tr><td>....</td></tr>
      <tr><td>....</td></tr>
    </table>
   <!-- kolumny na stronie drugiej -->
   <table>
      <tr><td>....</td></tr>
      <tr><td>....</td></tr>
    </table>
   <!-- kolumny na stronie trzeciej -->
   <table>
      <tr><td>....</td></tr>
      <tr><td>....</td></tr>
    </table>
</section>

w CSS teraz ustawiasz żeby tabele stały koło siebie:

.printable-tables {
    white-space: nowrap;
}

.printable-tables > table {
    display: inline-table;
}

a na wydruku możesz wymusić wydruk na osobnych stronach:

.printable-tables > table {
    page-break-before: always;
    page-break-after: always;
}

Minus tego taki że tabele nie będą wzajemnie rozszerzać się w pionie, powinno to działać dobrze jeśli masz stałą wysokość wiersza, ale jeśli w jednej komórce treść będzie wyższa to kolumny przestaną się ze sobą wyrównywać

2

Aż zajrzałem w tego rara i powiem tak:

  • najpierw zacznij od poprawnego przygotowania htmla - bo ten width na 800px cos nie bardzo działa, w sumie wg mnie to nawet ciężko będzie pokazać taką tabelkę z tyloma danymi na 800px.
  • spróbuj w przeglądarce drukować do PDF"a, a dopiero potem drukuj pdf'a
  • wpisz w google "how to properly prepare html table for printer printing"
  • najglupsza porada - ale zawsze cos .... w cssie obroc o 90% tabelke - moze wtedy wejdzie :P
0

@obscurity:

Możesz podzielić tabelę w pionie na mniejsze:

Nie jest to rozwiązanie elastyczne. Myślisz o tym w obecnej formie.
A co jeśli zmieni mi się liczba kolumn - więcej klas / lub nauczycieli albo inne proporcje
Mam to wtedy ręcznie poprawiać?

1

Możesz zatrudnić javascript do dynamicznego mierzenia i wyrównywania wierszy. Nie widzę innego sposobu bo przeglądarka po prostu skaluje stronę w dół żeby wszystko zmieścić, nie da się za bardzo chyba ustalić o ile może tę stronę zmniejszyć.
Najlepiej zrób tak jak wszyscy - eksport do excela, a excel już sobie z tym poradzi.

0

No ta, ale zapisując to jako PDF i tak nie jest dobrze.

Excel na szybkiego sobie też nie radzi za dobrze. A przygotowywać długi czas pod Excela każdą kopię mija się z celem. W Excelu 23 strony A3 a tak naprawdę powinno się zmieścić na 2 obok siebie.

0

Spróbuj użyć tego rozszerzenia:
https://chrome.google.com/webstore/detail/screengrab/fccdiabakoglkihagkjmaomipdeegbpk
żeby zrobić zrzut ekranu z całej strony nawet poza widocznym aktualnie obszarem.
A później spróbuj wydrukować bitmapę.

0

@youmound

nie robi screena na tym dokumencie HTML na innych stronach tak, tu nie chce

No to ja nie wiem. W wersji na FF52 działa poprawnie:tabelka.png

Swoją drogą ten twój plik nie jest prawidłowym dokumentem html.

1 użytkowników online, w tym zalogowanych: 0, gości: 1