Extrahieren Sie die X/Y-Koordinaten des Bildes sowie Breiten- und Höheninformationen aus PDF über IL oder PS

Wir haben einen professionell gestalteten Grundriss im PDF-Format für eine Veranstaltung, die wir gerade durchführen. Es ähnelt einer CAD-Zeichnung. Wir haben Kabinen (rechteckige Quadrate) darauf gezeichnet.

Ich habe einen Kollegen, der dabei ist, eine Telefon-App und möglicherweise eine Web-App zu erstellen, die wir beide gerne mit einem interaktiven Grundriss versehen würden, der letztendlich ein Bild mit einer großen, in HTML darüber gezeichneten Imagemap sein wird. Dazu benötigt er die x/y-Koordinaten jeder Kabine bzw. x1/y1 und x2/y2.

Ich bin ein Web-Entwickler von Beruf, also bitte haben Sie Geduld mit mir! Gibt es eine Möglichkeit, diese Daten programmgesteuert mit Illustrator/Photoshop zu extrahieren? Ich weiß, dass Sie Skripte schreiben können, die in beiden ausgeführt werden, aber ich hätte keine Ahnung, wo ich anfangen soll.

Er könnte dies manuell tun, aber die Grundrisse ändern sich häufig, daher bräuchten wir eine schnelle/automatische Möglichkeit, dies zu tun.

Vielleicht können Sie sich ein Tool wie g3data ansehen, aber dieses Tool ist eher auf Diagramme und Grafiken ausgerichtet.

Antworten (4)

Sie können das Dokument jederzeit in Photoshop laden und das lineare Werkzeug verwenden, um Elemente in Pixel zu messen, aber wenn Sie in mehr als einem Fall mit mehr als einem Dokument arbeiten müssen, wird dieser Ansatz sehr mühsam und fehleranfällig.

Photoshop verfügt, wie Sie sagen, über eine API zum Aktivieren von Skripten, aber Sie können keine Elemente aus Skripten extrahieren, da Elemente gerastert werden und diese Informationen nicht erhalten bleiben. In Illustrator bleiben diese Informationen jedoch erhalten und Sie könnten sie wahrscheinlich per Skript extrahieren.

Die Verwendung von Skripten mit Illustrator dafür ist meiner Meinung nach jedoch nicht der beste Ansatz, wenn Sie dies häufig tun möchten. Sie binden sich selbst an eine Plattform, die an eine Maschine gebunden ist, nicht auf einen Server verschoben werden kann und so weiter. Sie benötigen eine unabhängigere Lösung.

Da PDF (im Grunde) nichts anderes als Postscript ist, können Sie Inhalte immer mit der Postscript-Sprache extrahieren. Es ist jedoch eine ziemlich spezialisierte Sprache und relativ wenige kennen sie. Ich werde niemandem vorschlagen, es zu lernen, wenn er es nicht bereits weiß.

Der bessere Ansatz in Ihrem Fall wird wahrscheinlich sein, eine Lizenz für eine Wrapper-Bibliothek zu kaufen, die all das harte Zeug für Sie analysiert und Sie Elemente auf einfache Weise extrahieren lässt, indem Sie eine Methode darauf aufrufen.

Da PDF druckorientiert ist, sind alle Koordinaten relativ zu DPI, also müssten Sie dies in Ihrer Software relativ zu der verwendeten Einheit (cm, mm, Zoll usw.) konvertieren. Aber dafür verwenden Sie eine sehr einfache Formel.

Da Sie keine Entwicklungsplattform angeben, kann ich keinen konkreten Vorschlag zu einer solchen Bibliothek machen, aber seien Sie sicher, es gibt viele Optionen für die meisten gängigen Plattformen (.Net, Java, PHP usw.). Aber suchen Sie sorgfältig nach einem, mit dem Sie nicht nur ein PDF erstellen können (fast alle tun), sondern auch ein PDF-Dokument lesen und parsen können (weniger tun es).

Der Prozess selbst ist einfach:

  1. Extrahieren Sie das Element, das Sie benötigen, und rufen Sie eine kleine Gruppe von Funktionen/Methoden auf
  2. Holen Sie sich die Koordinate und Größe
  3. Berechne in Pixel relativ zu DPI und verwendeter Einheit.
  4. Element in Bitmap-Darstellung (gerasterte Darstellung) umwandeln.

Hallo Leute und danke für eure ausführlichen Antworten. Keiner von uns ist PS / IL-Experte, daher erscheint einiges davon etwas kompliziert für das, was wir wollten.

Mein Kollege fand tatsächlich etwas, das ziemlich genau das tat, was er wollte - nämlich die PS-Datei als .svg zu speichern, was anscheinend einen Datensatz mit Koordinaten lieferte, mit dem er arbeiten konnte.

Danke.

Ich habe ein Skript für Aufgaben wie diese – http://pastebin.com/YHaZp7ZN

Es nimmt ausgewählte Objekte und fügt ein Textobjekt mit den Koordinaten oben hinzu. Sie können es an Ihre Bedürfnisse anpassen.

Sprechen Sie mich diesbezüglich gerne an.

Freundliches Heads-up! Jemand hat eine Frage zu diesem Skript gestellt, hat aber nicht den Vertreter, um zu kommentieren oder zu chatten, um zu versuchen, Sie aufzuspüren. Die Frage könnte so geschlossen werden, wie sie ist, aber wenn sie bestehen bleibt, dachte ich, Sie würden es wissen wollen!

Es gibt noch einen anderen Weg, den ich oft benutze. Sie müssen jedes Slice mit dem Slice-Werkzeug festlegen. CS6 Dann 1. Für Web speichern -> 2. Menü optimieren (oben rechts) -> 3. Einstellungen: Standard -> 4. Slices (aus dem Dropdown) -> 5. CSS nach ID generieren -> 6. OK + Vorschau aus dem Speichern für das Webfenster PS generiert CSS-Code, der alle Elemente, Maße und x/y-Koordinaten enthält, die zum Kopieren und Einfügen in CSS bereit sind.