2017-09-15 11 views
1

저는 flyingsaucer 9.1.1과 itext 2.17을 사용하여 pdf 파일을 생성하고 있습니다.마지막 페이지에만 꼬리말 표시

어떻게 마지막 페이지에서만 바닥 글 (div, 테이블 또는 img 요소 일 수 있음)을 표시 할 수 있습니까?

+1

iText를 2.1.7 내가 한 번 쓴 API이며, [그 더 이상 사용할 수없는 (https://developers.itextpdf.com/question/versions-older-than-5). 왜 더 이상 사용하지 말아야하는지 (많은) 이유 중 하나는 나이입니다. iText 2.1.7의 날짜는 2009 년입니다. 또한 Flying Saucer를 사용하고 있습니다. 그것은 오래된 iText 버전 위에 작성된 오래된 타사 라이브러리입니다. [iText 7 + pdfHTML] (https://developers.itextpdf.com/content/itext-7-converting-html-pdf-pdfhtml) 사용을 고려해야합니다. 튜토리얼을 보면, [pdfHTML] (https://itextpdf.com/itext7/pdfHTML)에 CSS에 대한 더 많은 지원이 있음을 알 수 있습니다. –

+1

질문에 관해서는, IEventHandler를 사용하여 사용자 정의 동작을 보여주는 바닥 글을 만들 수 있습니다. 올바른 작업을하고 iText 7로 업그레이드하기로 결정해야합니다. [튜토리얼] (https://developers.itextpdf.com)/content-itext-7-converting-html-pdf-pdfhtml/chapter-4-creating-reports-using-pdfhtml)에는 사용자 지정 머리글이나 바닥 글을 만드는 방법의 예가 나와 있습니다. [이 댓글] (https://stackoverflow.com/questions/46238645/utf-8-encoding-characters-not-working-with-spring-mvc-lowagie-itext#comment79441200_46238645)을 읽어 볼 수도 있습니다. –

답변

3

CSS는 page:first 유사 요소를 정의하지만 page:last을 정의하지 않습니다.

비행 접시의 bug을 여전히 사용할 수 있으므로 바닥 글이 선언 된 후에 만 ​​나타납니다. 따라서 바닥 글을 div의 끝에 붙이면 마지막 페이지에만 나타납니다. 각 페이지에 바닥 글을 원하는 경우

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<style type="text/css"> 
    .newpage{page-break-before:always} 

    @page{@bottom-center {content: element(footer)}} 
    #footer {position: running(footer);}  
} 
</style> 
</head> 
    <body> 
     <div>Page 1 content</div> 
     <div class="newpage">Page 2 content</div> 
     <div class="newpage">Page 3 content</div> 
     <div id="footer">Footer on last page</div> 
    </body> 
</html> 

은 또한 마지막 페이지의 다른 콘텐츠와 함께 작동합니다. 꼬리말 div을 HTML에서 두 번 정의하면됩니다.

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<style type="text/css"> 
    .newpage{page-break-before:always} 

    @page{ 
     @bottom-center {content: element(footer)}} 
     #footer {position: running(footer);}  
    } 
</style> 
</head> 
    <body> 
     <div id="footer">Footer for all pages except last</div> 
     <div>Page 1 content</div> 
     <div class="newpage">Page 2 content</div> 
     <div class="newpage">Page 3 content</div> 
     <div id="footer">Footer on last page</div> 
    </body> 
</html>