[GastForen Programme Print/Bildbearbeitung Adobe InDesign InDesign mit Delphi steuern

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

InDesign mit Delphi steuern

Halbaffe
Beiträge gesamt: 12

17. Mär 2010, 11:01
Beitrag # 1 von 23
Bewertung:
(6379 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo HDS-Forum,

seit einiger Zeit versuche ich, mit Hilfe von Delphi eine ID-Datei zu erstellen und darin sinnvoll Inhalte zu platzieren.

Weiss jemand von euch, wo es Informationen zu diesem Thema gibt? Im restlichen I-Net habe ich nur einen kleinen Beitrag von Marc Sidon gefunden, der mir aber leider nicht genug Start gegeben hat.

Meine Programmierkenntnisse sind weitestgehend in den Kinderschuhen daher würd ich mich über Möglichkeiten freuen, wie ich hier einen Fuss in die Tür kriegen kann. Tutorials, Bücher etc.

Vielen Dank


(@Marc Sidon´s Beitrag ganz speziell:
idDoc1 := _Application (IDispatch(vIdApplication1)).Open (Pfad, True); gibt als Fehlermeldung: E2010 Inkompatible Typen: 'Document' und 'OleVariant' ?)
X

InDesign mit Delphi steuern

Marc Sidon
Beiträge gesamt: 262

17. Mär 2010, 11:52
Beitrag # 2 von 23
Beitrag ID: #436771
Bewertung:
(6360 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Halbaffe...
(irgendwie komisch, mit diesem Namen jemanden anzusprechen...)

Informationen darüber wirst Du so gut wie keine finden... habe ich seinerseits auch keine gefunden. Zumindest nicht bezogen auf InDesign. Das Stichwort hierzu ist OLE !
Ich kann Dir jedoch Deine konkreten Fragen beantworten.

In Deinem Code (und ich damals in meinem Beispiel) ist wahrscheinlich nur idDoc1 als Document deklariert, während Application.open() jedoch einen Olevariant zurück gibt, den Du dann wieder casten must. Da Du weißt, dass Du ein Document zurückbekommst, wenn Du eins öffnest, ist das Typcasting so legitim.

Code
var idDoc1:Document; 
ov1:Olevariant;
[..]
begin
[..]
ov1 := _Application (IDispatch(vIdApplication1)).Open (Pfad, True);
idDoc1 := Document(IDispatch(ov1));


Ich gehe mal davon aus, dass Du die Typenbibliothek bereits importiert hast, Dir also die InDesign Typen zur Verfügung stehen... (_Application, Document, Spread, ... )

Gruß,
Marc Sidon
------------------------------------------

modernmediasidon
Erstellung von InDesign Scripts


als Antwort auf: [#436752]
(Dieser Beitrag wurde von Marc Sidon am 17. Mär 2010, 12:04 geändert)

InDesign mit Delphi steuern

Halbaffe
Beiträge gesamt: 12

17. Mär 2010, 12:49
Beitrag # 3 von 23
Beitrag ID: #436786
Bewertung:
(6339 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marc,

ja, zugegeben, "Halbaffe" lässt einen stolpern :-)


Danke für die schnelle Antwort, Genau das Casting wars. Jetzt kann ich versuchen auch wirklich was zu bewegen.

Ist das Thema zu ungewöhnlich das es da nichts zu finden gibt? Die Steuerung via Delphi bietet sich doch an oder verlagert sich das auf die VB-Ecke?



Armin Kirstein


als Antwort auf: [#436771]

InDesign mit Delphi steuern

Marc Sidon
Beiträge gesamt: 262

17. Mär 2010, 13:05
Beitrag # 4 von 23
Beitrag ID: #436787
Bewertung:
(6328 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Armin... (schon irgendwie netter... :-) )

Antwort auf [ Halbaffe ] Ist das Thema zu ungewöhnlich das es da nichts zu finden gibt? Die Steuerung via Delphi bietet sich doch an oder verlagert sich das auf die VB-Ecke?


Nunja, ich weiß es nicht. Ich denke, dass es nunmal nicht wahnsinnig viele Leute gibt, die InDesign grundsätzlich automatisieren. Und dann auch noch jemanden zu finden, der gerade in Delphi programmiert, ist auch eher seltener. Es gibt ja einige Wege InDesign fernzusteuern... Als ich für meine Diplomarbeit recherchiert habe, fand ich auch recht wenig, und glaub mir, da habe ich mir die finger wundgegoogelt! :)

Also, wie gesagt, frag ruhig, wenn Du etwas nicht hinbekommst. Delphi und InDesign sind (zumindest ein Teil meines) "täglich Brot".

Gruß,
Marc
------------------------------------------

modernmediasidon
Erstellung von InDesign Scripts


als Antwort auf: [#436786]

InDesign mit Delphi steuern

Halbaffe
Beiträge gesamt: 12

18. Mär 2010, 12:51
Beitrag # 5 von 23
Beitrag ID: #436957
Bewertung:
(6279 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marc,

ist ja ein wenig wie der große neue Lego-Kasten zu Weihnachten. Tolle Möglichkeiten.

Aber ich habe Schwierigkeiten, eine neue Farbe zu erstellen. Hättest du da eine Beispielzeile?

Gruß
Armin Kirstein


als Antwort auf: [#436787]

InDesign mit Delphi steuern

Marc Sidon
Beiträge gesamt: 262

18. Mär 2010, 19:08
Beitrag # 6 von 23
Beitrag ID: #437021
Bewertung:
(6250 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Armin,

überall in InDesign wirst Du über die sogenannten Collections stolpern.

Eine Collection heisst "Colors". Du findest eine an der Application, eine am Document und noch an ein paar anderen Stellen.

Möchtest Du nun im Dokument eine neue Farbe hinzufügen, so holst Du Dir die Collection "Colors" des Dokumentes und fügst dort eine neue Farbe hinzu.

Ergo irgendwas mit
Code
ov1 = idDocument.Colors.Add(); 


Und dann kannst Du sie wieder typecasten und damit dann alles anstellen, was Du willst:
Code
Color(IDispatch(ov1)).Space := idCMYK; 
Color(IDispatch(ov1)).ColorValue := varArrayOf([75,5,100,20]);


Gruß,
Marc Sidon
------------------------------------------

modernmediasidon
Erstellung von InDesign Scripts


als Antwort auf: [#436957]

InDesign mit Delphi steuern

Halbaffe
Beiträge gesamt: 12

18. Mär 2010, 21:04
Beitrag # 7 von 23
Beitrag ID: #437032
Bewertung:
(6233 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marc,

Ich musste leider mein Hirn auf unterlassene Hilfeleistung verklagen. Das Problem war, das ich in einer GDI+ - Unit schon den Typ 'Color' hatte und daher anscheinend damit aneckte.
Nu gehts aber.

Danke dir sehr

Gruß

Armin Kirstein


als Antwort auf: [#437021]

InDesign mit Delphi steuern

Marc Sidon
Beiträge gesamt: 262

19. Mär 2010, 09:06
Beitrag # 8 von 23
Beitrag ID: #437059
Bewertung:
(6198 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,

jaja... die guten alten Namespaces... :)

Gruß,
Marc
------------------------------------------

modernmediasidon
Erstellung von InDesign Scripts


als Antwort auf: [#437032]

InDesign mit Delphi steuern

Halbaffe
Beiträge gesamt: 12

25. Mär 2010, 17:31
Beitrag # 9 von 23
Beitrag ID: #437742
Bewertung:
(6136 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marc,

eine bescheidene Frage noch:

Wie bewege ich ein TextFrame an eine bestimmte Stelle?
Mit den GeometricBounds bekomme ich zwei Ecken angegeben, kann diese aber nicht verändern.

Gibt es da nur Move als Befehl? Das wäre irgendwie unelegant.



mit bestem Dank

Armin Kirstein


als Antwort auf: [#437059]

InDesign mit Delphi steuern

Marc Sidon
Beiträge gesamt: 262

25. Mär 2010, 18:45
Beitrag # 10 von 23
Beitrag ID: #437745
Bewertung:
(6122 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Armin,

nein, es gibt nicht nur Move als Befehl.
Du kannst die GeometricBounds natürlich auch setzen:

Zitat ov1.GeometricBounds := VarArrayOf([Top1, Left1, Bottom1, Right1]);


Es ist einfacher, wenn Du bei den GeometricBounds etwas abstrakter denkst:
Du bekommst nicht (nur) zwei Ecken angegeben, sondern die Position von allen 4 Kanten.

Ein Quadrat von 10 x 10 mm, welches an 0:0 positioniert ist hat demnach die obere Kante an Position 0, die linke Kante an Position 0, die untere Kante an Position 10 und die rechte Kante an Position 10.

Willst Du also einen Textrahmen genau so positionieren wäre dies:
Code
ov1.GeometricBounds := VarArrayOf([0, 0, 10, 10]); 


Ich hoffe, ich konnte es Dir einigermaßen verständlich machen...

Gruß,
Marc Sidon
------------------------------------------

modernmediasidon
Erstellung von InDesign Scripts


als Antwort auf: [#437742]

InDesign mit Delphi steuern

Halbaffe
Beiträge gesamt: 12

25. Mär 2010, 21:43
Beitrag # 11 von 23
Beitrag ID: #437755
Bewertung:
(6098 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marc,

schön erklärt und es geht natürlich auch.

Was würde ich nur ohne dich machen ...


Grüße und Dank

Armin Kirstein


als Antwort auf: [#437745]
(Dieser Beitrag wurde von Halbaffe am 25. Mär 2010, 21:44 geändert)

InDesign mit Delphi steuern

Halbaffe
Beiträge gesamt: 12

8. Apr 2010, 12:28
Beitrag # 12 von 23
Beitrag ID: #438674
Bewertung:
(5932 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marc,

noch einmal eine Frage zu einem Thema bei dem ich mich gerade völlig im Kreis drehe.
Ich habe auf einer Seite eine Linie quasi als Vorlage (GraphicLine) mit einer gewünschten Dicke und Farbe.
Jetzt erzeuge ich neue Linien und möchte den neuen die Eigenschaften (Farbe, Dicke) der Vorlage geben.

NeueLinie.AppliedObjectStyle := VorlageLinie.AppliedObjectStyle;

erfüllt leider nicht den Zweck den ich erhofft hatte. Wo ist denn die Farbe zu finden?


Vielen Dank

Armin Kirstein


als Antwort auf: [#437755]
(Dieser Beitrag wurde von Halbaffe am 8. Apr 2010, 12:29 geändert)

InDesign mit Delphi steuern

Marc Sidon
Beiträge gesamt: 262

8. Apr 2010, 15:20
Beitrag # 13 von 23
Beitrag ID: #438727
Bewertung:
(5908 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Mit "AppliedObjectStyle" ist das Objektformat gemeint. Siehe "Objektformate".

Die Farbe findest Du unter "fillColor".
Die Dicke findest Du unter "strokeWeight".

Benutzt Du den ExtendScriptToolkit als Nachschlagewerk?
Dort kannst Du zu jedem Element im Scripting sehen, was es für Eigenschaften hat und was Du damit anstellen kannst!

Gruß,
Marc
------------------------------------------

modernmediasidon
Erstellung von InDesign Scripts


als Antwort auf: [#438674]

InDesign mit Delphi steuern

Halbaffe
Beiträge gesamt: 12

8. Apr 2010, 16:48
Beitrag # 14 von 23
Beitrag ID: #438737
Bewertung:
(5888 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marc,

Vielen Dank für den Hinweis.
Ja, ich benutze ExtendScriptToolkit als Hilfe, wenn auch eine Web-Version davon die mal jemand erstellt hat und die IMHO ein wenig flüssiger zu bedienen ist. Dennoch ist das für den Anfang wahnsinnig viel Input.

Die Farbe ist StrokeColor und nicht FillColor, wie ich ständig probiert hatte.
Ich wollte in jedem Fall erreichen, das die neue Linie die Eigenschaften der Vorlage erbt. Damit haben Programmierer und Grafiker beiderseits ein paar mehr Freiheiten. Der Grafiker kann eine Beispiellinie vorgeben, die der Programmierer dann nur noch vervielfältigen muss. Und der Programmierer muss nicht alle 5 Minuten die CMYK-Werte ändern :-)

Danke die wieder einmal für den entscheidenden Hinweis.

Armin Kirstein


als Antwort auf: [#438727]

InDesign mit Delphi steuern

Marc Sidon
Beiträge gesamt: 262

8. Apr 2010, 18:09
Beitrag # 15 von 23
Beitrag ID: #438744
Bewertung:
(5872 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Armin,

ach ja stimmt, strokeColor, nicht fillColor. Sorry.
Kannst Du die "Vorlage-Linie" denn nicht einfach duplizieren und dann dahin setzen, wo sie hin soll? Dann hast Du auf jeden Fall alle Einstellungen übernommen...

Gruß,
Marc
------------------------------------------

modernmediasidon
Erstellung von InDesign Scripts


als Antwort auf: [#438737]
X

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
26.01.2021 - 27.01.2021

Digicomp Academy AG, Zürich oder virtuell
Dienstag, 26. Jan. 2021, 08.30 Uhr - Mittwoch, 27. Jan. 2021, 17.00 Uhr

Kurs

In diesem Advanced-Kurs erlernen Sie weitergehende Methoden im Dokumentenaufbau, der Typografie und im Bereich Layouttechniken. Nach diesem Kurs können Sie strukturierte Dokumente erstellen oder bestehende effizienter anpassen.

Dauer: 2 Tage
Preis: CHF 1'400.–

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/INDEM2

Veranstaltungen
27.01.2021 - 28.01.2021

Digicomp Academy AG, Bern oder Basel
Mittwoch, 27. Jan. 2021, 08.30 Uhr - Donnerstag, 28. Jan. 2021, 17.00 Uhr

Kurs

Mit After Effects können Sie visuelle Effekte und Animationen für Video, Web, DVD und Blu-Ray erzeugen. In diesem Kurs lernen Sie die Grundlagen kennen und sehen inspirierende Anwendungsbeispiele, die Ihnen helfen, Ihre eigenen Ideen umzusetzen.

Preis: CHF 1'700.-
Dauer: 2 Tage

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/AFT

Neuste Foreneinträge


Text- oder Grafikrahmen nach Position und Größe suchen und ändern

Absätze vor/nach AF suchen

Laser Drucker druckt schwarze Flecken Links und Rechts von Blatt

Gleich Große Icons erstellen

PSD CS6 (!) Mac: Dialog "Dateiinformationen" Fenster leer und Sackgasse

Langsamer MacMini

Illustrator Skript Übersatztext - Hilfe benötigt

ID CC 2019 und 2020: Crash beim Startvorgang - 2021

Inhalt Textrahmen verbinden

iPhone Farbprofil
medienjobs