LINUX.ORG.RU

подмножество css для печати html на бумаге

 , ,


1

1

интересует

1. html+css заготовка (sample), из которой можно лепить формы для печати html на бумаге

2. насколько хорошо/плохо с этим делом обстоит (кроссбраузерность вовсе не обязательна, можно заставить юзера юзать определенный браузер)

3. ну и само подмножество css для печати html на бумаге

хотелось бы лепить удовлетворительного качества документы, печающиеся в стиле бумаги (например именно шрифтом 12pt, а не так, как браузеру взбредет в голову перевести пикселы, с разумной pagination, и т.д.)

чтобы не быть абстрактным — пусть, например, речь идет о счете-фактуре, который вовсе не обязательно помещается на 1 страницу А4

желательно поведение html именно в стиле html, а не pdf — т.е. например чтобы многостраничную таблицу на страницы рвал браузер, а не серверный скрипт (хотя, конечно, расстановку хинтов для разрыва придется делать человеку)

вот примеры вопросов:

А. в css есть селекторы для создания шапки и подвала на каждой *бумажной* странице?

В. можно ли в шапку включить номер страницы?

С. можно ли таблицу рвать так, чтобы ячейки не размазывались по страницам?

ну и тому подобное — предполагается, что отвечающий сам эти вопросы напишет и ответит на них

Ответ на: комментарий от funeralismatic

а я не понял твой вопрос — мне не нужно ничего подменять, html документ будет делаться именно мной (а не приходить откуда-то) и будет сразу содержать разметку в виде pt, а не px

мне нужно пример хтмл кода, который можно будет печатать, и не бояться, что получится какое-то уродство

ну и краткий обзор вида «это можно сделать, а вот это нельзя сделать»

www_linux_org_ru ★★★★★ ()
Последнее исправление: www_linux_org_ru (всего исправлений: 2 )
Ответ на: комментарий от funeralismatic

вот, скажем, конкретный вопрос: в css есть селекторы для создания шапки и подвала на каждой *бумажной* странице?

а можно, чтобы в шапку можно было включить номер страницы?

а можно таблицу рвать вот так, чтобы ячейки не размазывались по страницам?

ну и тому подобное

www_linux_org_ru ★★★★★ ()
Последнее исправление: www_linux_org_ru (всего исправлений: 2 )
Ответ на: комментарий от www_linux_org_ru

Всё это было обсуждено (забугорными) десигнерами-верстальщиками уже не раз.

впринципе, можно всё. не знаю, как сейчас, но год назад при печати отображались на листе даже псевдоэлементы/псевдоклассы, вид которых зависел только от стилей, и без скриптов. поддержка нормальными браузерами давно реализована, поэтому что-то городить-изобретать давно отпала необходимость. правда, замечены у IE (отсутствие сглаживания в некоторых случаях, например с веб-шрифтами) и Firefox (выставляет свой кегль и кернинг) своеобразное отношение к шрифтам, в которое я не вникал. остальные браузеры на печать лично не тестил, и на просторах интернетов ими не интересовался, но один мой знакомый сказал, что хромой в этом плане ведёт себя послушно.

в css есть селекторы для создания шапки и подвала на каждой странице?

нет, придётся реализовать скриптами.

а можно, чтобы в шапку можно было включить номер страницы?

тоже скриптами.

ну и тому подобное

ты хочешь от HTML и CSS невозможного. Это всего лишь разметка страницы и её внешний вид соответственно. Никаких математических действий они не умеют. в HTML5 был включён JS, и там, наверное, это уже можно, но я пока не стал это изучать.

funeralismatic ★★★ ()
Ответ на: комментарий от www_linux_org_ru

а можно таблицу рвать вот так, чтобы ячейки не размазывались по страницам?

можно, и даже нужно. есть два простых способа: указывать ширину строки таблицы фиксированно в сантиметрах/дюймах, или 100% (второе может вести себя по-разному в разных браузерах). это лучше использовать в стилях для принтера, ибо на сайте оно будет смотреться убого.

funeralismatic ★★★ ()

A. Что-то точно можно, кури спеку CSS3 @page (тебе анонимус постом выше ее дал).

B. Можно, но работает не везде:

@page {
	@bottom-right {
		content: counter(page) " из " counter(pages);
	}
}

C. Ты про это? http://stackoverflow.com/questions/1763639/how-to-deal-with-page-breaks-when-...

D. Кстати, Webkit/Blink до сих пор за 4 года так и не научился повторять THEAD (шапку) при переносе таблицы на следующую страницу, хотя IE, Firefox с незапамятных времен это умеют. Так-то: https://bugs.webkit.org/show_bug.cgi?id=17205 .

Разрывы страницы вроде можно делать, но не пробовал. Нужно свойство page-break-before, судя по: http://davidwalsh.name/css-page-breaks .

P.S. Вообще, не исключаю варианта, что часть того, что тебе нужно будет работать в одном браузере, а другая часть - в другом. Желаю удачи.

noomorph ()

Костылей нагородить можно, но хтмл и бумага - вещи мало совместимые. Думаю проще будет на хтмле сделать формочку отдалённо похожую на бумагу, а не сервере латехом или чем ещё генерировать пдф. На предыдущей работе таким и страдали.

Kalashnikov ★★★ ()
Ответ на: комментарий от Kalashnikov

техом я умею пользоваться на уровне «написать формулу», а вот когда надо, скажем, сделать в техе аналог <li></li>, но *обязательно* с моими кастомными отступами, кастомной bullet, кастомными ...., то это превращается в тупую потерю времени на гугление и отстутствие конечного результата, в то время как соответствующие атрибуты <li> и css нагугливаются мгновенно

вот ты лепил таблицы в техе; ты смог бы повторить любую <table> в нем, со всеми атрибутами?

www_linux_org_ru ★★★★★ ()
Ответ на: комментарий от www_linux_org_ru

Таблицы - самый ад, я много времени и нервов убил на них, но в итоге вроде всё как-то сделал. Но у меня другая задача была, надо было хтмл вёрстку юзера переводить в латекс. Тебе можно просто сверстать документ и в хтмле и в латексе и заполнять поля второго данными из первого если я правильно понял.

А латекс на достаточном уровне освоить не так долго и гуглить не сложнее, не драматизируй. Я так его и изучал гугля как сделать отступ моему списку.

Kalashnikov ★★★ ()

имею один живой проект где печатается много табличных данных в альбомной оринтации. этим хочу сказать что набил некоторые шышки в этом деле. по вопросам

А. в css есть селекторы для создания шапки и подвала на каждой *бумажной* странице?

есть. точного кода не подскажу. работает ли и в каком броузере ето еще 1 вопрос.

В. можно ли в шапку включить номер страницы?

см выше

С. можно ли таблицу рвать так, чтобы ячейки не размазывались по страницам?

с неимоверным количеством потраченого времени и 1 найденным хаком мне это удалось

вообщем тема очень скользкая. все нужно тестить и игратся. summary такое чем дальше в лескруче фишка тем больше партизанов шансов ее не заполучить

ZuBB ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.