PDF-Bilder beschneiden

Zeichnungen in professionellen Veröffentlichungen wie Abschlussarbeiten, wissenschaftliche Artikel oder Skripten sollten hochauflösend und möglichst im Vektorformat sein. Viele Graphik-Programme wie CAD-Anwendungen o.ä. kopieren aber nur Bitmaps oder proprietäre Formate in die Zwischenablage. Über den Druckdialog von macOS kann man die Bilder aber in bester Qualität speichern. Diese PDFs sind dann allerdings immer ganze Seiten, so dass man sie nicht ohne einen großen Rand in ein Word-Dokument importieren kann.
Von Hand kann man ein PDF z.B. in Vorschau beschneiden, aber das ist mühselig. Ich habe darum ein Skript geschrieben, das diesen Rand entfernt und ganz einfach über das Kontext-Menü "Dienste" im Finder aufgerufen werden kann: PDFCropService.

NSTableView Bindings mit Core Data

Seit einiger Zeit ist die Standard-Einstellung bei der Erzeugung von NSTableViews mit Xcode für den Content Mode "View Based", nicht mehr "Cell Based". Cell-based Table Views sollen nicht mehr verwendet werden. Die Bindings von View-based Table Views sind aber etwas unübersichtlich. Damit ich das nicht immer vergesse, hier die Anleitung:

  • Einen Array Controller in das XIB ziehen und bei den Attributen den Mode auf Entity Name stellen und den Entity Name eingeben. Dann bei den Bindings den Managed Object Context auf den von File's Owner setzen:

Bildschirmfoto 2017-03-19 um 15.34.29 Bildschirmfoto 2017-03-19 um 15.34.52


  • Eine Spalte im Table View selektieren und dann den Value im Bindings Inspector auf das gewünschte Attribut der Arranged Objects des Array Controllers stellen (wenn man die Table View selbst an den Controller anbindet, klappt das Selektieren nicht mehr):

Bildschirmfoto 2022-05-29 um 17.20.38 Bildschirmfoto 2022-05-29 um 17.20.49


  • Das NSTextField Table View Cell (nicht Table Cell View) auswählen und im Bindings Inspector das Value an objectValue.meinAttribut des Table Cell Views binden:

Bildschirmfoto 2017-03-19 um 15.45.19 Bildschirmfoto 2017-03-19 um 15.45.34


Das für alle Spalten durchführen, dann sollte es klappen. Hier im Beispiel heißt der Array Controller
Messreihe Controller, meinAttribut ist temperatur.


Wenn Sie diese Nachricht schließen, stimmen Sie unseren Cookies auf diesem Gerät gemäß unserer Cookie-Richtlinie zu, sofern Sie sie nicht deaktiviert haben.