【问题标题】:How to add page header without first page itext 7如何在没有第一页 itext 7 的情况下添加页眉
【发布时间】:2018-07-05 21:37:36
【问题描述】:

我在 Text 7 中使用 pdfHTMl 创建了文档。我想为没有首页的每个页面添加页眉。我使用了 PdfDocumentEvent.END_PAGE 事件。但它适用于第一页的每一页。如何从第一页中删除页眉? 谢谢。

【问题讨论】:

  • 检查事件处理程序中的页码。如果页码为 1,则不添加页眉。向我们展示您的代码,这将使我们更容易解释您所忽略的内容。
  • 有关动态标题的一些灵感,您可能需要查看this answerthis answer。如果您需要更具体的帮助,您应该分享您当前的关键代码(正如@Bruno 已经说过的那样)。

标签: c# itext7


【解决方案1】:

这是添加标头的事件处理程序示例:

protected class MyEventHandler implements IEventHandler {

    PdfFont helvetica;

    public MyEventHandler() throws IOException {
        helvetica = PdfFontFactory.createFont();
    }

    public void handleEvent(Event event) {
        PdfDocumentEvent docEvent = (PdfDocumentEvent) event;
        PdfDocument pdfDoc = docEvent.getDocument();
        PdfPage page = docEvent.getPage();
        Rectangle pageSize = page.getPageSize();
        int pageNumber = pdfDoc.getPageNumber(page);
        if (pageNumber == 1) return;
        PdfCanvas pdfCanvas = new PdfCanvas(
            page.newContentStreamBefore(), page.getResources(), pdfDoc);
        pdfCanvas.beginText()
            .setFontAndSize(helvetica, 9)
            .moveText(pageSize.getWidth() / 2 - 30, pageSize.getTop() - 20)
            .showText("THIS IS A HEADER!")
            .endText();
        pdfCanvas.release();
    }
}

由于if (pageNumber == 1) return; 不会添加任何标题。所以没有必要删除标题。正如您在屏幕截图中看到的那样,第一页上没有标题,但随后的每一页都有一个标题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-26
    • 2023-03-12
    • 1970-01-01
    • 2013-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多