function DeviceToPage(X, Y, Left, Top, Width, Height: Integer; Rotation: TRotation; out PageX, PageY: Double): Boolean;
| X, Y | Integer. Die Geräte-Koordinaten des zu konvertierenden Punkts (Bildschirmpixel, Ursprung oben links) |
| Left, Top, Width, Height | Integer. Das Render-Rechteck, das an den entsprechenden RenderPage-Aufruf übergeben wurde |
| Rotation | TRotation. Die beim Rendern verwendete Seitendrehung. Muss mit dem an RenderPage übergebenen Wert übereinstimmen |
| PageX, PageY | Double. Ausgabe-Parameter, die die konvertierten PDF-User-Space-Koordinaten empfangen (Ursprung unten links, Einheiten in Punkten) |
True zurück, wenn die Konvertierung erfolgreich war, oder False, wenn sie fehlgeschlagen ist (beispielsweise, wenn keine Seite geladen ist)Konvertiert einen Punkt vom Geräte-Raum (Bildschirmpixel) in den PDF-User-Space (Punkte). Verwenden Sie diese Methode, um eine Mausklick-Position auf einer gerenderten Seite zurück in die entsprechende Position auf der PDF-Seite zu übersetzen
Der PDF-User-Space hat seinen Ursprung in der unteren linken Ecke der Seite, wobei die Y-Achse nach oben zeigt. Der Geräte-Raum hat seinen Ursprung in der oberen linken Ecke des Render-Rechtecks, wobei die Y-Achse nach unten zeigt
Die Parameter Left, Top, Width, Height und Rotation müssen exakt mit dem übereinstimmen, was an den RenderPage-Aufruf übergeben wurde, der das angeklickte Bild erzeugt hat
// Translate a mouse click on the painted page to PDF coordinates
procedure TForm1.PdfPanelMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
PageX, PageY: Double;
begin
if Pdf.DeviceToPage(X, Y, 0, 0, PdfPanel.Width, PdfPanel.Height,
ro0, PageX, PageY) then
StatusBar1.SimpleText := Format('Page pos: %.1f, %.1f pt', [PageX, PageY]);
end;