Распечатать заголовок на заданной странице, используя Abc PDF - PullRequest
1 голос
/ 29 марта 2011

Я создал pdf из HTML-страницы, используя Abc PDF, теперь моя проблема в том, что я хочу напечатать заголовок таблицы на следующей странице, но только если данные таблицы отображаются на другой странице, если не отображается заголовок на другой странице, любой есть представление о том, как мы можем это сделать, используя Abc pdf.

1 Ответ

2 голосов
/ 05 декабря 2011

Что вам нужно сделать, это создать страницу с небольшим пространством вверху, а затем, как только ваш документ будет построен в цикле abc PDF через страницы и добавить заголовок.

Код ниже - это то, что я использую для добавления заголовка, заголовок в этом случае состоит из трех бит изображения сверху и двух полей с текстом.

Помните, что шнур в abc pdf находится справа внизу, а не сверху слева.

private static Doc AddHeader(Doc theDoc, Core.Property propertyDetails)
{
    int theCount = theDoc.PageCount;
    int i = 0;

    //Image header 
    for (i = 1; i <= theCount; i++)
    {
        theDoc.Rect.Width = 590;
        theDoc.Rect.Height = 140;

        theDoc.Rect.Position(0, 712);

        theDoc.PageNumber = i;

        //Check Which office to use. 
        string imagefilePath = HttpContext.Current.Server.MapPath("/images/pdf/pdf-header.png");


        Bitmap myBmp = (Bitmap)Bitmap.FromFile(imagefilePath);

        theDoc.AddImage(myBmp);
    }

    //page header boxes. 
    //Grey header box 
    theDoc.Rect.String = "20 15 590 50";
    theDoc.Rect.Position(13, 672);
    System.Drawing.Color colour = System.Drawing.ColorTranslator.FromHtml("#CCCCCC");
    theDoc.Color.Color = colour;
    theDoc.PageNumber = 1;
    theDoc.FillRect();

    theDoc.Rect.String = "20 15 586 50";
    theDoc.Rect.Position(30, 660);
    System.Drawing.Color pageoneText = System.Drawing.ColorTranslator.FromHtml("#50474A");
    theDoc.Color.Color = pageoneText;
    string thePageFont = "Century Gothic";
    theDoc.Font = theDoc.AddFont(thePageFont);
    theDoc.FontSize = 16;
    theDoc.PageNumber = 1;
    theDoc.AddText("My Text!!!!!");


    theDoc.Rect.String = "20 15 590 50";
    theDoc.Rect.Position(13, 630);
    System.Drawing.Color greyBox = System.Drawing.ColorTranslator.FromHtml("#468DCB");
    theDoc.Color.Color = greyBox;
    theDoc.PageNumber = 1;
    theDoc.FillRect();

    theDoc.Rect.String = "20 15 586 50";
    theDoc.Rect.Position(30, 620);
    System.Drawing.Color greyText = System.Drawing.ColorTranslator.FromHtml("#ffffff");
    theDoc.Color.Color = greyText;
    string thePageFontTwo = "Century Gothic";
    theDoc.Font = theDoc.AddFont(thePageFontTwo);
    theDoc.FontSize = 14;
    theDoc.PageNumber = 1;
    theDoc.AddText("This is more text");

    return theDoc;
}

Затем, как только файл PDF создан, просто позвоните

var theDoc = new Doc();

/// Your document creation stuff!!!
theDoc = AddHeader(theDoc, propertyDetails);
...