(предыдущий мой ответ на этот вопрос был удален, не знаю почему: я пытаюсь снова)
Долгое время я искал решение на основе CSS для этой проблемы, и я думаю, что невозможно иметь вертикальные разрывы страниц таблиц HTML через CSS (по крайней мере, не разрывы страниц в табличных данных в теге HTML TABLE, но это должно возможно с табличными данными, организованными в DIVs).
Я думаю, что единственное решение состоит в том, чтобы позволить javascript выполнить разбиение.
Когда страница загружена, javascript может проверить, шире ли таблица, чем желаемая ширина страницы: в этом случае можно динамически создать новую таблицу и дублировать в ней только столбцы, которые находятся за пределами допустимой ширины, и удалить их из исходной таблицы. ,
Весь процесс немного сложен, но результаты удовлетворительные.
Также возможно разрешить запуск кода javascript только для печати, а не для таблицы, показанной на экране: кнопка печати на странице может быть организована для запуска кода на стороне сервера, например php, который может генерировать PDF-файл библиотека wkhtmltopdf, передавая ей html-страницу, где находится таблица, , включая код javascript . Фактически, wkhtmltopdf генерирует pdf, имитирующий браузер, и код javasript будет выполняться правильно.
Теперь эта библиотека javascrpt уже существует, я написал ее и очень хорошо работает (по крайней мере, для моих нужд), и она свободно доступна в Интернете: я не хочу связывать ее, потому что предыдущий ответ уже был удален, и Я не знаю, было ли это по этой причине. Но если кому-то будет интересно, можете спросить в комментариях, а я его дам.