2009-12-02 67 views

回答

4

这很有意思。 Winnovative网站上的this page我发现了一个很有用的代码片段。搜索6.4.2.2并阅读该部分的代码。

这是我使用的代码,基于我提供的链接。这被称为AFTER我生成PDF到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(); 
}