现有文档的编号页面

时间:2014-03-13 21:22:36

标签: vb.net itextsharp

使用iTextSharp,我想获得示例或帮助,以便在VB Express 2010中使用VB.net(Windows窗体)为现有PDF文档的每个页面编号。

1 个答案:

答案 0 :(得分:2)

由于OP表明c#示例也足够了:

Webified iTextSharp Example TwoPasses.cs中的第二次传递(在评论"第二次通过,添加标题"之后)添加 Page x 每个文档页面的 y (以及标题 FOOBAR FILMFESTIVAL )标题。

关键代码:

PdfReader reader = new PdfReader(SOURCE_PDF);
using (MemoryStream ms2 = new MemoryStream()) {
    // Create a stamper
    using (PdfStamper stamper = new PdfStamper(reader, ms2)) {
        // Loop over the pages and add a header to each page
        int n = reader.NumberOfPages;
        for (int i = 1; i <= n; i++) {
            GetHeaderTable(i, n).WriteSelectedRows(
              0, -1, 34, 803, stamper.GetOverContent(i)
            );
        }
    }
    // retrieve the result PDF in ms2.ToArray()
}

使用辅助方法GetHeaderTable汇总页面的标题文本:

public static PdfPTable GetHeaderTable(int x, int y) {
    PdfPTable table = new PdfPTable(2);
    table.TotalWidth = 527;
    table.LockedWidth = true;
    table.DefaultCell.FixedHeight = 20;
    table.DefaultCell.Border = Rectangle.BOTTOM_BORDER;
    table.AddCell("FOOBAR FILMFESTIVAL");
    table.DefaultCell.HorizontalAlignment = Element.ALIGN_RIGHT;
    table.AddCell(string.Format("Page {0} of {1}", x, y));
    return table;
}