Применять поля страницы только к последней странице документа ColdFusion PDF

Я создаю PDF-файл в ColdFusion, используя <cfdocument>, и я хотел отображать нижний колонтитул только на последней странице. Я нашел решение здесь, которое отлично работает и отображает нижний колонтитул только на последней странице.

Если ваш нижний колонтитул длинный, вам нужно будет добавить marginbottom к тегу <cfdocument>, чтобы определить пространство, например:

<cfdocument format="PDF" unit="in" marginbottom="1.5" ... >

это означает, что каждая страница будет иметь 1,5 дюйма пустого пространства внизу, есть ли способ применить это пространство только к последней странице?


person Sammy    schedule 12.08.2014    source источник
comment
Если вы отображаете текст только внизу последней страницы, на самом деле это не нижний колонтитул. Правильно? Так почему бы просто не добавить свой текст в конце блока кода <cfdocument>? Таким образом, вам не нужно будет определять marginbottom, который влияет на каждую страницу.   -  person Miguel-F    schedule 12.08.2014
comment
@Miguel-F, таким образом, нижний колонтитул окажется сразу после того, где заканчивается содержимое, и это может быть где-то в середине страницы, если только он не расположен абсолютно с нижним: 0. с абсолютным позиционированием это может скрыть содержимое, если оно окажется там, где находится нижний колонтитул.   -  person Sammy    schedule 12.08.2014
comment
Пробовали ли вы использовать <cfdocumentsection> в конце блока кода <cfdocument> для определения нижнего колонтитула? <cfdocumentsection> также позволяет указать marginBottom для этого раздела. см. документацию здесь я добавлю ответ для иллюстрации что я думаю может работать.   -  person Miguel-F    schedule 12.08.2014


Ответы (1)


Я не проверял это, но это может сработать. Используйте теги <cfdocumentsection>, чтобы определить определенные области вашего блока кода <cfdocument>. <cfdocumentsection> также позволяет указать marginBottom только для этого раздела.

Согласно документации:

Разделяет документ PDF или FlashPaper на разделы. Используя этот тег в сочетании с тегом cfdocumentitem, каждый раздел может иметь уникальные верхние и нижние колонтитулы и номера страниц.

Попробуйте что-то вроде этого:

<cfdocument format="PDF" unit="in" ... >
    <cfdocumentsection>
        <!--- All of your existing logic here --->
    </cfdocumentsection>
    <cfdocumentsection marginbottom="1.5"> 
        <cfdocumentitem type="footer" evalAtPrint="true">
            <cfif cfdocument.currentPageNumber eq cfdocument.totalPageCount>
                This is the last page footer
            </cfif>
        </cfdocumentitem>
    </cfdocumentsection>
</cfdocument>
person Miguel-F    schedule 12.08.2014
comment
Спасибо за ваш ответ @Miguel-F. Я использовал код выше, но нижний колонтитул полностью исчезает. - person Sammy; 13.08.2014
comment
@Sammy, не могли бы вы попробовать без использования условия <cfif cfdocument.currentPageNumber ... для отображения нижнего колонтитула? Другими словами, сначала попробуйте с обычным cfdocumentitem type="footer" и посмотрите, что получится. - person Miguel-F; 13.08.2014
comment
тот же результат, к сожалению - person Sammy; 13.08.2014