C# PDF-Scharfe position im Dokument
Hallo, ich bin mit PDF-sharp drucken Benutzereingaben auf Positionen in einem template-Dokument.
Den Daten (Felder) erhoben werden, vom Benutzer (web-Seite) geschrieben und an geeigneten stellen im Dokument mit Kordelzug-Methode.
Derzeit finde ich die Pixel-position der einzelnen Vorlagen-Feld auf jeder Seite, durch Versuch und Irrtum .Es wäre viel einfacher, wenn es einen Weg gibt, um zu bestimmen, pixel-position der einzelnen Felder in der pdf-Seite.
Jeder Vorschlag wäre sehr hilfreich.
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hatte ich das gleiche Problem wie du, josephj1989, und ich fand, was ich glaube, dass Sie unsere Antwort.
Laut auf dieser Seite in der PDFSharp Dokumentation,
So, sagen, ich will zeichnen Sie ein Bild von 3 Zoll von der linken Seite und 7,5 cm von der Spitze eine 8,5 x 11 Seite, dann würde ich etwas wie das hier tun:
Getestet habe ich dies selbst mit einem barcode-Bild, und ich fand, dass, wenn Sie verwenden Ihre Formel für die Messung der Positionierung, können Sie ein Maß an Präzision, naja, 1/72 Zoll. Das ist nicht schlimm.
So, an diesem Punkt, es wäre gut, eine Art Kapselung für solche Messungen, so dass wir konzentrieren uns hauptsächlich auf die Aufgabe und nicht die details der Umwandlung.
Wir zu anderen Helfern in dieser Art...
Mit solchen Hilfsmethoden, die wir tun können, diese mit den vorherigen Beispielcode:
Ich hoffe, das ist hilfreich. Ich bin sicher, Sie schreibt saubereren code als das, was in meinem Beispiel. Darüber hinaus gibt es wohl schlauere Wege, um diesen Prozess zu rationalisieren, aber ich wollte einfach mal etwas hier, das würde den sofortigen Einsatz, was wir sahen, in der Dokumentation.
Glücklich PDF-Rendering!
Wenn ich in den PDF-Scharf, mein Ansatz war der Gebrauch zu machen, die XUnit-Struktur und Referenz der oberen linken Punkt des Dokuments als Ausgangspunkt für X/Y-Positionen.
Offensichtlich verweisen auf den linken oberen Punkt des Dokuments (0,0) für jedes element auf einer PdfPage wird chaotisch. Um dieses zu bekämpfen, habe ich das XRect Klasse erstellen Sie Rechtecke, die für die Elemente sitzen innerhalb. Sobald die XRect gezogen, auf die Seite, und Sie können dann mit Verweis auf die X/Y-position des rectange über die XRect Eigenschaften. Dann mit einigen grundlegenden Mathematik mit diesen Koordinaten und der Höhe/Breite des XRect, Sie sollten in der Lage sein zu berechnen, werden die Koordinaten für die position des nächsten Elements, das Sie hinzufügen möchten, um die PdfPage.
Folgen Sie diesem Beispielcode habe ich eine grobe Skizze von dem, was das Endergebnis sein würde. Der code ist ungetestet, ist aber sehr stark auf Basis des Codes in der Produktion jetzt.
Und die Ausgabe:
Schließlich, ich bin sicher, Sie sind sich bewusst, aber es ist eine gute Ressource PdfSharp Proben hier.
PDF-Dateien haben keine Pixel und keine pixel-Positionen.
Sie können das drucken von PDF-Seiten (verwenden Sie die "Tatsächliche Größe" Größe") und Messen Sie die Positionen mit dem Lineal (das funktioniert ziemlich gut mit unseren Druckern).
Oder Sie können mit Adobe Acrobat zu Messen, die die Positionen der Objekte auf der PDF-Seiten.
Ein bisschen von Versuch und Irrtum bleibt, wie Sie möglicherweise zu geben oder zu nehmen, einen halben millimeter.
Je nach Herrscher, die Sie verwenden können, XUnit.FromMillimeter oder XUnit.FromInch, um die Punkt-Positionen für PDFsharp (aber Punkte sind keine Pixel).
Den aktuellen PDFsharp Proben sind hier:
http://www.pdfsharp.net/wiki/PDFsharpSamples.ashx