iTextSharp Саморасширяющаяся ширина страницы - PullRequest
0 голосов
/ 22 декабря 2010

Я пишу веб-приложение для создания ярлыков. Принтер этикеток, на который я нацеливаюсь, использует 12-миллиметровую ленту, и клиент указал, что они хотят ограничить этикетки до 3,25 ". Я знаю, что с iTextSharp я могу указать размер документа, который я хочу создать, однако, похоже, у меня есть указать ширину и высоту.

Document document = new Document(new iTextSharp.text.Rectangle(234f, 33.84f));

234 - это 3,25 ", конвертированные в точки, а 33,84 - 12 мм, конвертированные в точки, поэтому для документа устанавливается максимально допустимый размер. Есть ли способ установить только высоту и позволить документу автоматически расширяться до величины содержание? С этим, есть ли способ определить, превышает ли расширенная ширина документа максимальную разрешенную клиентом? Заранее спасибо за любую помощь, которую вы можете предложить.

Ответы [ 2 ]

0 голосов
/ 22 декабря 2010

Нет, это невозможно в iText. Это не особенно хорошая идея где-либо еще. Как сказал Редман, PDF - это формат для печати. Это не HTML.

Есть несколько приемов, которые вы можете сделать, чтобы обойти это до некоторой степени:

  1. Создайте свою страницу с максимально допустимой высотой. 200 "* 72dpi = 14400 точек.
  2. Добавьте «универсальный тег» к своим абзацам.
  3. создайте обработчик события тега, который отслеживает, где была нарисована нижняя часть вашего последнего абзаца.
  4. Сохранить PDF.
  5. Откройте его снова с помощью PDFStamper
  6. Установите нижнюю часть страницы в соответствии с местоположением последнего абзаца. Помните, что нижний левый начинается с 0,0, а верхний правый будет
  7. Сохранить окончательный PDF

Этот трюк сработает только в том случае, если ваш общий вывод меньше 200 ". Если вы пройдете через это, вы все равно получите вторую страницу, и ваш код" где дно "лучше подготовить для этого.

PS: я не вижу, что плохого в том, чтобы иметь количество страниц размером 12 мм x 3,25 "... разве это не идеально подходит для этикеток, которые они хотят напечатать?

0 голосов
/ 22 декабря 2010

Насколько я знаю, поскольку PDF является форматом для печати, необходимо задавать ширину и высоту документа.Вот почему инструменты отчетности обычно устанавливают размеры страниц по умолчанию равными размеру страницы принтера по умолчанию.

Лучше всего попытаться рассчитать размер содержимого и соответственно создать PDF.В зависимости от объема и характера рабочего процесса клиент может предоставить предварительный просмотр для проверки перед печатью.

...