2016-06-02 4 views
0

Мы используем Migradoc для создания PDF-файлов, содержащих разделы заголовков, чтобы заголовки отображались на каждой странице.Получение высоты динамического заголовка из PDF

Высота содержимого в заголовке может отличаться. Я устанавливаю положение содержимого тела, используя document.DefaultPageSetup.TopMargin. Однако в настоящее время это фиксированное значение «наилучшего предположения». Иногда содержимое больше, вызывая перекрытие.

Мне нужен способ расчета высоты заголовка, так что я могу установить значение document.DefaultPageSetup.TopMargin соответствующим образом.

Я предполагаю, что мне придется сделать это за два прохода - например. генерировать PDF-файл, проверять высоту отображаемого заголовка, а затем генерировать PDF-файл, снова устанавливая document.DefaultPageSetup.TopMargin.

Невозможно увидеть способ проверки высоты заголовка, как только я предоставил PDF в первый раз. Я замечаю, что есть метод, называемый GetRenderInfoFromPage() в DocumentRenderer. Это похоже на то, что я хочу, за исключением того, что он не включает данные заголовка. Если в первом поколении PDF я просто представляю заголовок на первой странице и без содержимого, то GetRenderInfoFromPage(1) возвращает пустой массив. Если я вызываю его на любую другую страницу, кроме 1, он возвращает null.

Мы также используем PdfSharp в качестве окончательного пропуска, чтобы добавить знак воды. Так потенциально, если я могу запросить высоту заголовка, используя это, - это тоже может работать? Я не могу найти способ сделать это, хотя.

Кто-нибудь знает, можно ли запросить высоту отображаемого заголовка?

ответ

1

Я получил эту работу, используя метод, упомянутый в моем вопросе, за исключением того, что для первого прохода я отобразил содержимое заголовка в тело вместо области заголовка. Это означало, что тогда работал DocumentRenderer.GetRenderInfoFromPage(). Этот проход использовался только для вычисления высоты содержимого заголовка. Затем для второго прохода он отображает содержимое заголовка в заголовок, как обычно.

Смежные вопросы