{"id":2284,"date":"2024-01-24T21:58:21","date_gmt":"2024-01-24T13:58:21","guid":{"rendered":"https:\/\/www.appblog.cn\/?p=2284"},"modified":"2024-01-24T22:00:11","modified_gmt":"2024-01-24T14:00:11","slug":"java-itext-page-header-footer-number","status":"publish","type":"post","link":"https:\/\/www.appblog.cn\/index.php\/2024\/01\/24\/java-itext-page-header-footer-number\/","title":{"rendered":"Java\u7684itext\u5e38\u89c1\u65b9\u6cd5\u603b\u7ed3\u20134\uff08\u9875\u5934\uff0c\u9875\u5c3e\uff0c\u9875\u7801\uff09"},"content":{"rendered":"<pre><code class=\"language-java\">Document document = new Document();\n\nPdfWriter pdfWriter = PdfWriter.getInstance(document,new FileOutputStream(&quot;D:\\\\appblog\\\\PDF\\\\\u6c34\u5370.pdf&quot;));\n\ndocument.open();\n\n\/\/\u83b7\u53d6\u9875\u7801\npdfWriter.getPageNumber();\n\npdfWriter.setPageEvent(new PdfPageEventHelper() {\n\n\u00a0   @Override\n\u00a0   public void onStartPage(PdfWriter writer, Document document) {\n       \u00a0\/\/\u8fd9\u4e2anewPage\u4e4b\u540e\u6267\u884c\u7684\n\n\u00a0       \/\/\u6c34\u5370\u5b57\u4f53\uff0c\u53ef\u4ee5\u4f7f\u7528\u8fd9\u4e2a\u6765\u5236\u4f5c\u9875\u7801\n        \/\/ColumnText.showTextAligned(writer.getDirectContent(), ALIGN_RIGHT, new Phrase(&quot;Header&quot;), 40, 20, 0);\n\n        \/\/writer.getDirectContent().addImage(); \u8fd9\u4e2a\u53ef\u4ee5\u6dfb\u52a0\u56fe\u7247\n\n\u00a0       \/\/\u8fd9\u4e2a\u662f\u884c\u5206\u5272\u7b26\u53f7\n\u00a0       LineSeparator lineSeparator = new LineSeparator();\n\u00a0       \/\/drawLine\u7684\u53c2\u6570\uff1aPdfContentByte canvas, float leftX, float rightX, float y\n\u00a0       \/\/leftX\u4ee3\u8868\u7684\u662f\u8981\u753b\u7684\u8fd9\u4e2a\u7ebf\u76f8\u5bf9\u8fd9\u4e2aPDF\u9875\u9762\u7684\u957f\u5ea6\n\u00a0       \/\/rightX\u4ee3\u8868\u7684\u662f\uff1a\u8fd9\u6761\u7ebf\u7684X\u7684\u5750\u6807\n\u00a0       \/\/y\u4ee3\u8868\u7684\u662f\uff1a\u8fd9\u6761\u7ebfy\u7684\u5750\u6807\n\u00a0       lineSeparator.drawLine(writer.getDirectContent(), document.getPageSize().getWidth(), 0, 60);\n\u00a0   }\n\n\u00a0   @Override\n\u00a0   public void onEndPage(PdfWriter writer, Document document) {\n\u00a0       \/\/\u8fd9\u4e2a\u662fnewPage\u4e4b\u524d\u6267\u884c\u7684\n\u00a0       ColumnText.showTextAligned(writer.getDirectContent(), ALIGN_RIGHT, new Phrase(&quot;Header&quot;), 40, document.getPageSize().getHeight()-20, 0);\n\n\u00a0       LineSeparator lineSeparator = new LineSeparator();\n        lineSeparator.drawLine(writer.getDirectContent(), document.getPageSize().getWidth(), 0, document.getPageSize().getHeight()-25);\n\u00a0       \/\/\u9875\u7801\n       \u00a0ColumnText.showTextAligned(writer.getDirectContent(), ALIGN_CENTER, new Phrase(&quot;theFirst &quot; + writer.getPageNumber() + &quot; Page&quot;), document.getPageSize().getWidth()\/2, 40, 0);\n\u00a0   }\n\n    @Override\n\u00a0   public void onCloseDocument(PdfWriter writer, Document document) {\n\u00a0       \/\/\u6267\u884cdocumnet.close\u65b9\u6cd5\u4e4b\u524d\u8fd8\u4f1a\u6267\u884c\u4e00\u6b21onCloseDocument\u65b9\u6cd5\uff0c\n\u00a0       \/\/\u4f46\u662f\u6267\u884conCloseDocument\u65b9\u6cd5\u524d\uff0c\u4e4b\u524d\u8fd8\u4f1a\u5148\u6267\u884conEndPage\u65b9\u6cd5\u4e00\u6b21\u624d\u8f6e\u5230onCloseDocument\u65b9\u6cd5\n\u00a0       \/\/\u4e5f\u5c31\u662f\u8bf4\uff0cdocumnet.close\u7684\u65f6\u5019\uff1a\u662f\u5148 onEndPage --&gt; onCloseDocument --&gt; documnet.close\n\u00a0       System.out.println(&quot;\u5173\u95ed\u6587\u6863&quot;);\n    }\n});\n\ndocument.add(new Paragraph(&quot; &quot;));\n\ndocument.newPage();\n\ndocument.add(new Paragraph(&quot; &quot;));\n\ndocument.close();\npdfWriter.close();<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Document document = new Document(); PdfWriter pdfWriter [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[43],"tags":[574],"class_list":["post-2284","post","type-post","status-publish","format-standard","hentry","category-java-basic","tag-itext"],"_links":{"self":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/2284","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/comments?post=2284"}],"version-history":[{"count":0,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/2284\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/media?parent=2284"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/categories?post=2284"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/tags?post=2284"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}