Я использую itextpdf для pdf, но здесь header & amp; footer перекрывается с основным контентом [duplicate]

Проблема с «контекстом»

Термин «контекст» иногда используется для ссылки на объект, на который ссылается this . Его использование неуместно, потому что оно не подходит ни семантически, ни технически с помощью ECMAScript в этом .

«Контекст» означает обстоятельства, окружающие что-то, что добавляет смысл , или некоторая предшествующая и следующая информация, которая дает дополнительный смысл. Термин «контекст» используется в ECMAScript для ссылки на контекст выполнения , который является всеми параметрами, областью действия и этой в рамках некоторого исполняемого кода.

Это показано в разделе 10.4.2 ECMA-262 :

Установите значение ThisBinding на то же значение, что и ThisBinding для контекста выполнения вызова

, в котором четко указано, что этот является частью контекста выполнения.

Контекст выполнения предоставляет информацию, которая добавляет смысл в код, который выполняется , Он содержит гораздо больше информации о том, что только thisBinding .

Таким образом, значение этого не является «контекстом», это всего лишь одна часть выполнения контекст. Это, по сути, локальная переменная, которая может быть задана вызовом любого объекта и в строгом режиме для любого значения вообще.

1
задан Amedee Van Gasse 21 December 2015 в 15:01
поделиться

1 ответ

Предполагая, что вы добавляете текущее содержимое с помощью document.add(), вы должны убедиться, что вы определили нижнее поле, которое достаточно велико, чтобы разместить нижний колонтитул.

Вы не разделяете код вы имеете в своем OnEndPage методе, но предположите, что у вас есть что-то вроде:

canvas.MoveTo(36, 50);
canvas.LineTo(559, 50);
canvas.Strike();

Это рисует линию от x = 36 до x = 559 в y = 50.

Предположим, что вы создали свой Document следующим образом:

Document document = new Document();

В этом случае вы создаете документ со страницами формата А4 (595 x 842 пользовательских единиц) и полями в 36 пользовательских единицах , Поскольку нижний край составляет всего 36 единиц пользователей, ваш контент рискует совпадать с линией, составленной из 50 пользовательских единиц снизу.

Вы должны изменить строку, в которой вы создаете Document, как это:

Document document = new Document(PageSize.A4, 36, 36, 36, 55);

Теперь у вас есть нижний край в 55 пользовательских единиц, а линия, которую вы рисуете на 50 пользовательских единицах, больше не перекрывается.

Примечание: Я использую пользовательские единицы / g0], так как мы определяем измерения в PDF. По умолчанию 1 пользовательский блок равен 1 точке. По умолчанию используется 36 пользовательских единиц или полдюйма.

1
ответ дан Bruno Lowagie 18 August 2018 в 04:47
поделиться
  • 1
    ваше предложение хорошее, но в моем pdf есть титульная страница, которая охватывает всю ширину pdf слева направо, поэтому, если я применяю маржу в документе, она автоматически добавится и на эту титульную страницу ... которую я не хочу применять на титульной странице .... любой другой подход сделать это .... – ankit sharma 23 October 2015 в 09:33
  • 2
    Затем (1) определите левую и правую границу как 0 или (2) определите другое поле для титульной страницы. (Не создавайте проблему о том, что не является проблемой.) – Bruno Lowagie 23 October 2015 в 10:13
Другие вопросы по тегам:

Похожие вопросы: