Juergens-Workshops.de Forum
Seriendrucktexte automatisch skalieren - Druckversion

+- Juergens-Workshops.de Forum (https://forum.juergens-workshops.de)
+-- Forum: Corel Grafik Forum (https://forum.juergens-workshops.de/forumdisplay.php?fid=65)
+--- Forum: Corel Draw (https://forum.juergens-workshops.de/forumdisplay.php?fid=93)
+--- Thema: Seriendrucktexte automatisch skalieren (/showthread.php?tid=36419)



Seriendrucktexte automatisch skalieren - ben512 - 03.08.2015

Hallo zusammen

Gibt es die Möglichkeit mit Corel X6, dass ich Seriendrucktexte die eine definierte breite überschreite automatisch skalieren kann.
Zur Zeit machen wir das leider per Hand.

PS: VBA Kenntnisse hätte ich aber leider nur in Verbindung mit Excel


Seriendrucktexte automatisch skalieren - koter - 03.08.2015

Hallo Ben,

ich habe das mal probiert. Beim direkten Seriendruck ist es mir nicht gelungen. Es ging aber nachträglich mit einem zusammengeführten Dokument (Etiketten):

Das zu bearbeitende Seriendruckfeld habe ich im Objektmanager benannt, damit das Makro es identifizieren kann.

[Bild: zwischenablage01fqznd.jpg]

Auf einigen Etiketten war der Text zu lang:

[Bild: zwischenablage02miuyr.jpg]

ich habe dann dieses kleine Makro ausgeführt:

Code:
Sub KurztextVerkleinern()
    Dim Seite As Page
    Dim Kurztext As Shape
    ActiveDocument.Unit = cdrMillimeter
    ActiveDocument.ReferencePoint = cdrMiddleLeft
    For Each Seite In ActiveDocument.Pages
        Set Kurztext = Seite.Shapes("Kurztext")
        If Not Kurztext Is Nothing Then
            If Kurztext.SizeWidth > 70 Then
                Kurztext.Stretch 1 / Kurztext.SizeWidth * 70
            End If
        End If
    Next
End Sub

Das Beispiel-Makro verkleinert die Kurztexte, wenn sie breiter als 70mm sind:

[Bild: zwischenablage03rmj51.jpg]

Das hat bei allen Etiketten geklappt, allerdings hatte der längste Text nach der Verkleinerung nur noch knapp 7pt.

Gruß

Koter


Seriendrucktexte automatisch skalieren - norre - 04.08.2015

Hallo Koter,
ich habe mir dein Macro auch runtergeladen, funktioniert ja bestens.

Jetzt habe ich hier eine alte Datei wo ich das auf allen Grafiktext anwenden will, ich habe da die Nacht rumprobiert aber ich als Macrodummy habe natürlich nicht hinbekommen.
Gibt es da ne Möglichkeit dies auf allen Grafiktext anzuwenden, also unabhängig vom Namen im Objektmanager?


Seriendrucktexte automatisch skalieren - ben512 - 04.08.2015

Danke Koter für deinen Lösungsvorschlag hat super funktioniert
xmasdanke


Seriendrucktexte automatisch skalieren - koter - 04.08.2015

Hallo Norre,

norre schrieb:Gibt es da ne Möglichkeit dies auf allen Grafiktext anzuwenden, also unabhängig vom Namen im Objektmanager?

Du kannst es damit versuchen:

Code:
Sub GrafiktextVerkleinern()
    Dim Seite As Page
    Dim Grafiktext As ShapeRange
    Dim Text As Shape
    Dim Breite As Double
    Breite = 80
    ActiveDocument.Unit = cdrMillimeter
    ActiveDocument.ReferencePoint = cdrBottomLeft
    ActiveDocument.BeginCommandGroup "Text verkleinern"
    Optimization = True
    For Each Seite In ActiveDocument.Pages
        Set Grafiktext = Seite.Shapes.FindShapes(Query:="@type='text:artistic'")
        If Not Grafiktext Is Nothing Then
            For Each Text In Grafiktext
                If Text.SizeWidth > Breite Then
                    Text.Stretch 1 / Text.SizeWidth * Breite
                End If
            Next
        End If
    Next
    Optimization = False
    ActiveDocument.EndCommandGroup
    ActiveWindow.Refresh
End Sub

Eines will ich aber nicht verschweigen:
Bei einer Datei ist X6 komplett abgeschmiert. Es war komplett vom Bildschirm und aus dem Taskmanager verschwunden. Beim nächsten Test (mit der selben Datei) hat es wieder geklappt.
Woran es lag, weiß ich nicht.

Gruß

Koter


Seriendrucktexte automatisch skalieren - norre - 04.08.2015

Hallo Koter,

PERFEKT :daumen:
ist super durchgelaufen.....

Dankeschön :lol:

koter schrieb:Eines will ich aber nicht verschweigen:
Bei einer Datei ist X6 komplett abgeschmiert. Es war komplett vom Bildschirm und aus dem Taskmanager verschwunden.

Nachdem ich beim Ändern und Ausprobieren nach der Trial & Error Methode vorgehe, kann mich sowas nicht schocken MrGreen


RE: Seriendrucktexte automatisch skalieren - haegar62 - 26.04.2023

Hallo,
Funktioniert wunderbar, leider wird die Startposition des Textfeldes durch den zuerst größeren Text zu weit nach links verschoben. Gibt es eine Möglichkeit die Position neu berechnen zu lassen? Ähnlich einem REDRAW aus VisualBasic?


RE: Seriendrucktexte automatisch skalieren - koter - 26.04.2023

Hallo Haegar,
willkommen im Forum!

Ich gehe davon aus, dass Du mit „Startposition“ die Position der linken unteren Ecke des Grafiktextes auf der X-Achse meinst.

Wie Du an den Screenshots siehst, hatte ich das Problem nicht. Ich weiß nicht, warum es bei Dir auftritt.
Du kannst versuchen, die X-Position in eine Variable zu schreiben und deren Wert dem skalierten Grafiktext zuzuweisen:
Code:
   If Text.SizeWidth > Breite Then
       X = Text.LeftX
       Text.Stretch 1 / Text.SizeWidth * Breite
       Text.LeftX = X
   End If

Gruß

Koter