2009-12-02 5 views

Répondre

4

Cela a été intéressant. De this page sur le site de Winnovative j'ai trouvé un extrait de code qui a été utile. Recherchez 6.4.2.2 et lisez le code dans cette section.

Voici le code que j'ai utilisé, basé sur le lien que j'ai fourni. Ceci est appelé après avoir généré le pdf dans un objet PDFDocument.

public void PostDocProcessing(Winnovative.WnvHtmlConvert.PdfDocument.Document document, string sBackgroundImagePath) 
{ 
    // get the first page the PDF document 
    PdfPage firstPage = document.Pages[0]; 

    System.Drawing.Image logoImg = System.Drawing.Image.FromFile(sBackgroundImagePath); 

    // calculate the watermark location 
    System.Drawing.SizeF imageSizePx = logoImg.PhysicalDimension; 

    // transform from pixels to points 
    float imageWidthPoints = UnitsConverter.PixelsToPoints(imageSizePx.Width); 
    float imageHeightPoints = UnitsConverter.PixelsToPoints(imageSizePx.Height); 
    float watermarkXLocation = (firstPage.ClientRectangle.Width - imageWidthPoints); 
    float watermarkYLocation = -50; 

    // add a template watermark to the document repeated on each document page 
    // the watermark size is equal to image size in points 
    Template watermarkTemplate = document.AddTemplate(new System.Drawing.RectangleF(watermarkXLocation, watermarkYLocation, imageWidthPoints, imageHeightPoints)); 

    // add an image to the watermak 
    ImageElement watermarkImageElement = new ImageElement(0, -300, logoImg); 
    watermarkImageElement.Transparency = 100; 
    watermarkTemplate.AddElement(watermarkImageElement); 

    // dispose the image 
    logoImg.Dispose(); 
} 
Questions connexes