iText (резкое) ширина боковых полей - PullRequest
14 голосов
/ 24 декабря 2009

Похоже, я не могу установить левое поле меньше 42pt ширины. Я устанавливаю его на 0f, но он всегда заканчивается как 42pt. Если я установлю поле на любое число больше 0, оно просто добавит его к начальному значению 42pt. Я устанавливаю поля для объекта документа:

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

Буду признателен за любую помощь. Благодаря.

Ответы [ 3 ]

13 голосов
/ 25 декабря 2009

Я использую PdfPTable, и проблема была в горизонтальном выравнивании PdfPTable по умолчанию, которое является CENTER. Как только я установил выравнивание таблицы по левому краю, проблема ушла.

PdfPTable bTable = new PdfPTable(2);
bTable.HorizontalAlignment = Element.ALIGN_LEFT;

Спасибо, Velja

9 голосов
/ 09 сентября 2011

Ну, я думаю, что проблема в другом. По умолчанию для свойства PdfPTable.LockedWidth установлено значение false, а PdfPTable.WidthPercentage равно 80f. Пока выравнивание таблицы по умолчанию равно Center, создается впечатление, что ваши поля не соблюдаются ... но они есть! Вам необходимо установить PdfPTable.WidthPercentage = 100f.

2 голосов
/ 25 декабря 2009

Возможно, ваша проблема связана с тем, как вы добавляете контент в документ. Если вы используете таблицу (вместо PdfPTable), даже если у вас левое поле 0, таблица по-прежнему будет иметь отступ от левого поля по умолчанию.

Интервал по умолчанию составляет около 10% ширины области печати. Таким образом, левый край таблицы будет расположен на ( 0.10 * (pageWidth - leftMargin - rightMargin)).

10% от 6 дюймов (при 72 очках на дюйм) равно 43,2 очка, что довольно близко к 42 полученным очкам.

...