Действительно ли возможно заставить страницу HTML вести себя, например, как страница A4-sized в MS Word?
По существу я хочу смочь показать страницу HTML в браузере и обрисовать в общих чертах содержание в размерах страницы размера A4.
Ради простоты я предполагаю, что страница HTML будет только содержать текст (никакие изображения и т.д.) и будет нет <br>
теги, например.
Кроме того, когда страница HTML печатается, она вышла бы как бумажные страницы A4-sized.
Вполне возможно настроить макет так, чтобы он принял пропорции страницы формата А4. Вам нужно будет только установить ширину и высоту соответственно (возможно, проверьте с помощью window.innerHeight
и window.innerWidth
, хотя я не уверен, что это надежно).
Сложнее всего с печатью формата A4. Например, Javascript поддерживает печать страниц только элементарно с помощью метода window.print
.
Поскольку @Prutswonder предложил создать PDF с веб-страницы, вероятно, это наиболее изощренный способ сделать это (кроме предоставления PDF-документации в первую очередь). Однако это не так тривиально, как можно было бы подумать. Вот ссылка с описанием класса Java с открытым исходным кодом для создания PDF-файлов из HTML: http://www.javaworld.com/javaworld/jw-04-2006/jw-0410-html.html .
Очевидно, что после того, как вы напечатали PDF-файл с пропорциями A4, вы получите чистую печать A4 вашей страницы. Другой вопрос, стоит ли потратить на это время.
Я использовал HTML для создания отчетов, которые правильно распечатываются в реальных размерах на настоящей бумаге.
Если вы аккуратно используете миллиметры в качестве единиц измерения в файле CSS, все будет в порядке, по крайней мере, для отдельных страниц. Однако люди могут облажаться, изменив масштаб печати в браузере.
Кажется, я помню, что все, что я делал, было одностраничным, поэтому мне не приходилось беспокоиться о разбивке на страницы - это могло быть намного сложнее.
Довольно легко заставить веб-браузер отображать страницу с теми же размерами в пикселях, что и A4. Однако при отображении может возникнуть несколько причуд.
Предполагая, что ваши мониторы отображают 72 dpi, вы можете добавить что-то вроде этого:
<!DOCTYPE html>
<html>
<head>
<style>
body {
height: 842px;
width: 595px;
/* to centre page on screen*/
margin-left: auto;
margin-right: auto;
}
</style>
</head>
<body>
</body>
</html>
Технически можно, но потребуется много работы, чтобы все браузеры распечатали страницу точно так, как она отображается на экране. Кроме того, большинство браузеров принудительно указывают URL-адрес, дату печати и нумерацию страниц на распечатке, что не всегда желательно. Это нельзя изменить или отключить.
Вместо этого я бы посоветовал создать PDF-файл на основе содержимого на экране и предоставить PDF-файл для загрузки и / или печати. Хотя большинство доступных PDF-библиотек являются платными, существует несколько бесплатных альтернатив , доступных для создания базовых PDF-файлов.