Ширина боковых полей iText (резкое)
Похоже, я не могу установить левое поле меньше ширины 42 т. Я устанавливаю его на 0f, но он всегда заканчивается как 42pt. Если я устанавливаю маржу на любое число, большее 0, он просто добавляет его к исходному краю 42pt. Я устанавливаю margin объекта документа:
iTextSharp.text.Rectangle docRect = new iTextSharp.text.Rectangle(pageWidth, pageHeight);
DC = new Document(docRect);
DC.SetMargins(0f, 0f, 0f, 0f);
Ширина и высота страницы - 6x9 дюймов.
И я заканчиваю:
42pt margin | CONTENT CONTENT
Буду признателен за любую помощь. Спасибо.
Ответы
Ответ 1
Я использую PdfPTable, и проблема была по умолчанию PdfPTable горизонтального выравнивания, которое является CENTER. Как только я установил выравнивание таблицы влево, проблема исчезла.
PdfPTable bTable = new PdfPTable(2);
bTable.HorizontalAlignment = Element.ALIGN_LEFT;
Спасибо,
Velja
Ответ 2
Ну, я думаю, что проблема другая. По умолчанию свойство PdfPTable.LockedWidth
имеет значение false, а PdfPTable.WidthPercentage
равно 80f
. Пока выравнивание по умолчанию равно Center
, создается впечатление, что ваши поля не соблюдаются... но они есть! Вам sipmly нужно установить PdfPTable.WidthPercentage = 100f
.
Ответ 3
Ваша проблема может быть связана с тем, как вы добавляете контент в свой документ. Если вы используете таблицу (вместо PdfPTable), даже если у вас есть левый край 0, таблица по-прежнему будет помещена с отступом из левого поля по умолчанию.
Интервал по умолчанию составляет около 10% от ширины области страницы для печати. Таким образом, левый край таблицы будет помещен в ( 0.10 * (pageWidth - leftMargin - rightMargin))
.
10% из 6 дюймов (при 72 очках за дюйм) составляет 43,2 балла, что очень близко к 42 пунктам, которые вы получаете.