Наложение изображения на PDF с помощью PDFSharp

Кажется, он не находит много для этого. У меня есть PDF, на который я хотел бы наложить изображение электронной подписи. Любые предложения о том, как это сделать с помощью PDFSharp?

Спасибо

Ответ 1

Попробуйте выполнить

private void GeneratePDF(string filename, string imageLoc)
{
    PdfDocument document = new PdfDocument();

    // Create an empty page or load existing
    PdfPage page = document.AddPage();

    // Get an XGraphics object for drawing
    XGraphics gfx = XGraphics.FromPdfPage(page);
    DrawImage(gfx, imageLoc, 50, 50, 250, 250);

    // Save and start View
    document.Save(filename);
    Process.Start(filename);
}

void DrawImage(XGraphics gfx, string jpegSamplePath, int x, int y, int width, int height)
{
    XImage image = XImage.FromFile(jpegSamplePath);
    gfx.DrawImage(image, x, y, width, height);
}

Это создаст новый PDF файл с указанным изображением в верхней части страницы. Если вам нужно использовать существующий документ, измените конструктор PdfDocument на

PdfDocument document = new PdfDocument(filename);

где filename - это имя загружаемого файла и изменение строки PdfPage на

PdfPage page = document.Pages[pageNum];

где pageNum - номер страницы, на которой вам нужно добавить изображение.

После этого, это просто вопрос получения позиционирования на странице путем изменения параметров для DrawImage.

DrawImage(gfx, imageLoc, 50, 50, 250, 250);

Удачи!

Ответ 2

Это поможет вам:

    PdfDocument document = pdf;

    // Create a new page        
    PdfPage page = document.Pages[0];
    page.Orientation = PageOrientation.Portrait;

    XGraphics gfx = XGraphics.FromPdfPage(page, XPageDirection.Downwards);

    // Draw background
    gfx.DrawImage(XImage.FromFile("pdf_overlay.png"), 0, 0);

Просто добавьте путь к изображению, который вы хотите, и укажите положение изображения.