Pdfsharp и поля при генерации PDF - PullRequest
0 голосов
/ 08 апреля 2019

Я обнаружил что-то странное, когда добавил поля в свой документ. Я устанавливаю размер страницы в A4 (210x297 мм), затем добавляю левый и верхний поля в 10 мм (да, я уверен, что вычисление в точку является правильным), а нижний и правый поля имеют 0.

Что происходит, если размер сгенерированного pdf-файла составляет 220x307 мм.

Что я должен сделать, это после того, как установил размер страницы и поля, это пересчитать размер страницы.

page.TrimMargins.Top    = top;
page.TrimMargins.Left   = left;
page.TrimMargins.Bottom = bottom;
page.TrimMargins.Right  = right;

page.Height = page.Height - page.TrimMargins.Top - page.TrimMargins.Bottom;
page.Width = page.Width - page.TrimMargins.Left - page.TrimMargins.Right;

У меня это работает, но так ли это должно работать?

Я также пытался установить поля до размера страницы, но нет, это не работает.

1 Ответ

0 голосов
/ 08 апреля 2019

Я нашел внутренний пример кода. Кажется, регулировка размера страницы не требуется, если используется PDFsharp, как в примере.
Сначала устанавливается поле усечения trim для Setting члена экземпляра класса PdfDocument:

pdfDocument.Settings.TrimMargins.All = trim;

Позже, после создания страницы, page.Width и page.Height задаются без каких-либо настроек.

Примечание. При использовании элемента All применяется одинаковое поле обрезки ко всем четырем сторонам. Он должен работать одинаково, используя отдельные значения для отдельных сторон.

...