Поля печати в DOMPDF

Я пытаюсь создать PDF-файл с помощью DOMPDF. У меня есть HTML, который затем конвертируется в PDF.

Но у меня есть проблема. Когда я помещаю объект вверху страницы (например, значок), в PDF он также отображается вверху страницы. Но когда я печатаю PDF, есть запас. Я знаю, что должен быть минимальный запас, но в моем случае он слишком велик. Есть ли способ контролировать это поле в DOMPDF?

Пытаюсь воспроизвести существующий документ, а в оригинале логотипа нет вверху страницы (в PDF уже есть поле). Но когда я его печатаю, он находится точно в том же месте, что и в сгенерированном мной PDF-файле (и в PDF-файле нет полей).

В PDF-файле уже установлено поле печати?


person cyrodiil    schedule 25.07.2012    source источник
comment
Не путаете ли вы поле принтера (которое устанавливается механически и не изменяется никаким образом, которым вы можете управлять с помощью программного обеспечения) с полем PDF? Вы всегда получите небольшой запас при печати чего-либо. Это, вероятно, некоторая отказоустойчивость, чтобы принтер не печатал за пределами бумаги.   -  person bakkerjoeri    schedule 11.01.2013


Ответы (2)


Следующий стиль эффективно установит поля вашего документа равными 0:

@page { margin: 0px; }
body { margin: 0px; }

@page используется в dompdf 0.6.0, body в dompdf 0.5.1. Вы можете изменить поля страницы и тела независимо друг от друга, хотя сейчас их границы вместе действуют как границы вашего контента.

person BrianS    schedule 25.07.2012
comment
этот космический жук спас мой день! - person otinanai; 27.02.2014
comment
Отличный ответ. Кстати, космическая ошибка выше относится к приведенному ниже ответу, который не анализируется. Используйте код в этом ответе, как показано. - person Tom McKenzie; 14.08.2014
comment
В моем случае мне нужно было также установить size для @page, дополнительная информация: stackoverflow.com/a/39088897/722036 - person aexl; 17.05.2018

иногда вам также нужно установить

html { margin: 0px}
person Pierlo Upitup    schedule 26.07.2012
comment
В dompdf @page, по сути, является синонимом html в CSS. Вам не нужно указывать поля для элемента html. Если ваши правила @page не работают, убедитесь, что между @page и открывающей фигурной скобкой есть пробел (как в моем ответе). В некоторых версиях dompdf есть ошибка, из-за которой стили @page удаляются, если это пространство пропал, отсутствует. - person BrianS; 05.04.2013
comment
3 часа гугления, и именно это все исправило для меня. Ты бог среди людей! - person samuraiseoul; 24.03.2017