Я недавно начал работать с <cfdocument>
в Lucee 5.3.4.80. Я заметил, что если я использую этот код:
<cfdocument name="test" filename="test.pdf" overwrite="true" format="pdf" pagetype="A4" orientation="portrait" fontembed="true" unit="cm" localUrl="true" margin=2.5>
Lorem ipsum
<cfdocumentitem type="footer" evalAtPrint="true">
<cfoutput>
#cfdocument.currentPageNumber# <!--- outputs 1 --->
#cfdocument.totalPageCount#</cfoutput> <!--- outputs 1 --->
#cfdocument.currentPageNumber eq cfdocument.totalPageCount# <!--- fails --->
</cfoutput>
</cfdocumentitem>
</cfdocument>
, то условие if всегда не выполняется. Я могу привести к числу / строке или к чему-либо, это всегда терпит неудачу. Идея состоит в том, что я могу создать условный нижний колонтитул, поэтому, если я наберу:
<cfdocumentitem type="footer" evalAtPrint="true">
<cfif cfdocument.currentPageNumber eq 1>
<p>Hi</p>
<cfelse>
<p>#cfdocument.currentPageNumber# of #cfdocument.totalPagesCount#</p>
</cfdocumentitem>
Я думаю, что проблема в параметре evalAtPrint, который, кажется, не работает должным образом.
Чтобы обойти эту проблему Я думал, что смогу добавить нижние колонтитулы после того, как создал PDF, потому что я мог правильно обращаться к страницам.
<cfpdf
action="addFooter"
source="test"
pages="1"
text="Test"
>
Что, кажется, работает нормально, но теперь я хочу использовать форматированный текст, поэтому я сохраняю HTML в переменной <cfsavecontent>
и попробуйте передать ее текстовому атрибуту.
<cfsavecontent variable="text">
<p style="color: green">Hi</p>
</cfsavecontent>
<cfpdf
action="addFooter"
source="test"
pages="1"
text="#text#"
>
А теперь нижний колонтитул пуст и ничего не отображается. Если я выведу переменную <cfsavecontent>
в html, она будет работать нормально.
У кого-нибудь есть другое решение для создания условных нижних колонтитулов, помимо простого обновления lucee?
Редактировать: протестировал первый случай с более новой версией Lucee (5.3.5.92) и там evalAtPrint, кажется, работает нормально.