web-dev-qa-db-ja.com

画像をPDF PDFSharpを使用してオーバーレイ

このためにそこに多くを見つけることができないようです。電子署名の画像をオーバーレイしたいPDFを持っています。 PDFSharpを使用してそれを達成する方法に関する提案はありますか?

ありがとう

18
user948060

以下をお試しください

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);

幸運を!

27
Kami

これはあなたを助けるでしょう:

    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);

必要な画像へのパスを追加し、画像の位置を指定するだけです。

5
ffffff01