Announcement

Collapse
No announcement yet.

PDF mit Stempel drucken

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • PDF mit Stempel drucken

    Hallo,
    ich hab folgendes Problem: Es sollen verschiedene PDF-Dokumente über einen eigenen, gegenüber dem Acrobat Reader eingeschränkten, PDF-Viewer angezeigt werden. Mit dem von Adobe mitgelieferten OCX-Control soweit erstmal machbar.
    Jetzt sollen diese PDF-Dokumente aber beim drucken mit einem Stempel versehen werden.
    Weiß irgendjemand ob und wie so etwas zu verwirklichen ist?
    Ich hab versucht das PDF-Dokument in ein Bitmap zu kopieren, es dann eventuell zu patchen, aber der Ausdruck des Bitmaps war viel zu pixelig und ungenau (Einige Dokumente sind techn. Zeichnungen).
    Bin über jede Hilfe dankbar.

    Gruß

    Michael

    Prozedure PDF -> BMP:
    <PRE>
    procedure GetPDFThumb(const sFileName: WideString; nWidth, nHeight: Integer; var Bitmap: TBitmap);
    var
    PDRect,
    PDDoc,
    PDPage: Variant;
    begin
    if Bitmap = nil then
    Exit;

    PDDoc := CreateOleObject('AcroExch.PDDoc');
    PDRect := CreateOleObject('AcroExch.Rect');

    try
    PDDoc.Open(sFileName);
    PDPage := PDDoc.AcquirePage(0); //Get the first Page

    PDRect.Top := 0;
    PDRect.Left := 0;
    PDRect.Right := PDPage.GetSize.x;
    PDRect.Bottom := PDPage.GetSize.y;

    Bitmap.Width := PDRect.Right;
    Bitmap.Height := PDRect.Bottom;

    //Move to the ClipBoard
    PDPage.CopyToClipboard(PDRect, 0, 0, 100);
    Bitmap.LoadFromClipboardFormat(cf_BitMap, ClipBoard.GetAsHandle(cf_Bitmap), 0);

    //Resize
    //Bitmap.Canvas.StretchDraw(Rect(0, 0, nWidth, nHeight), Bitmap);
    //Bitmap.Width := nWidth;
    //Bitmap.Height := nHeight;

    //Originalgröße
    Bitmap.Canvas.Draw(0,0,Bitmap);

    Bitmap.Width := PDRect.Right - PDRect.Left;
    Bitmap.Height := PDRect.Bottom - PDRect.Top;
    except
    end;
    VarClear(PDRect);
    VarClear(PDDoc);
    end;
    </PRE>
Working...
X