Corel Draw X6/X7 Seriendruckausgabe - Text automatisch anpassen
#16
Hallo Destiny,

destiny schrieb:Ich hoffe, ich nerve nicht ;-)

Nein, Jürgen hat das Forum ja eingerichtet, damit man sich über solche Fragen austauschen kann.
Wen das nervt, der soll es sich nicht anschauen.

destiny schrieb:...Gibt es auch eine Möglichkeit, den Text nicht allgemein zu verkleinern, sondern nur den Zeichenabstand entsprechend zu verringern?...

Die Möglichkeit gibt es, aber ob man es auch Praxis machen sollte?
Dabei kann nämlich so etwas herauskommen:

[Bild: seriendruck1oxxg2.jpg]

Und das, wo sich doch die Schriftkünstler so viel Mühe mit den Unterschneidungstabellen machen!

Das soll uns aber nicht hindern, damit herumzuspielen:

Code:
Sub KurztextVerschandeln()
    Dim Seite As Page
    Dim Kurztext As Shape
    Dim Breite As Double, BreiteA As Double
    Dim szp As Double
    Dim z As Double
    
    Breite = 80 '(%)
    
    ActiveDocument.Unit = cdrMillimeter
    ActiveDocument.ReferencePoint = cdrCenter
    Statusleiste 0, , True, "Text verschandeln"
    ActiveDocument.BeginCommandGroup "Kurztext verschandeln"
    Optimization = True
    szp = 100 / ActiveDocument.Pages.Count
    For Each Seite In ActiveDocument.Pages
        BreiteA = Seite.SizeWidth / 100 * Breite
        Set Kurztext = Seite.Shapes("Kurztext")
        If Not Kurztext Is Nothing Then
            For i = 0 To -100 Step -1
                Kurztext.Text.Story.RangeKerning = i
                If Kurztext.SizeWidth <= BreiteA Then Exit For
            Next i
        End If
        z = z + 1
        Statusleiste szp * z
        If Application.Status.Aborted Then
            Exit For
        End If
    Next
    Optimization = False
    ActiveDocument.EndCommandGroup
    Statusleiste szp * z, True
    ActiveWindow.Refresh
End Sub

Sub Statusleiste(Fortschritt As Long, Optional Ende As Boolean = False, Optional Start As Boolean = False, Optional Text As String = "")
    If Start Then
         Application.Status.BeginProgress CanAbort:=True
         Application.Status.SetProgressMessage Text
         Application.Status.UpdateProgress Fortschritt
    End If
    If Text <> "" Then
         Application.Status.SetProgressMessage Text
    End If
    Application.Status.UpdateProgress Fortschritt
    If Ende Then
         Application.Status.EndProgress
    End If
End Sub

Die Ausführung dauert lange, weil das Makro die Zielbreite nicht berechnet sondern so lange probiert, bis es passt.
Du kannst die Schrittweite der For-Schleife erhöhen, dann geht es schneller, ist aber nicht mehr so genau.

Um das Makro abbrechen zu können habe ich die Sub „Statusleiste“ eingebaut.
Man kann dadurch das Makro mit der ESC-Taste abbrechen.
Bis zur Version X6 erschien in der Statusleiste ein Fortschrittsbalken, mit X7 klappt das leider nicht mehr.

Viel Spaß beim Programmieren und beim Schnee schaufeln.

Gruß

Koter
Zitieren



Nachrichten in diesem Thema
Corel Draw X6/X7 Seriendruckausgabe - Text automatisch anpassen - von koter - 08.11.2016, 21:59

Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Importierte AI-Datei in Corel Draw wird nicht richtig dargestellt Kurtus 5 135 20.11.2024, 11:01
Letzter Beitrag: Kurtus
  Corel Draw Objekt dupliziert mehrfach Berlinerillustrator 1 268 24.09.2024, 10:55
Letzter Beitrag: Berlinerillustrator
  Corel Draw standard 2021 Lorei 8 995 16.08.2024, 15:19
Letzter Beitrag: norre
  Fehlerhafte Knoten-Griffe automatisch finden asterix 47 5.117 23.06.2024, 12:56
Letzter Beitrag: asterix
Question QR-Codes automatisch generieren Lisa1992 1 263 31.05.2024, 07:02
Letzter Beitrag: Litschi
  Draw 2021 - Funktion Platzhaltertext Herbertchen 0 647 28.05.2024, 13:01
Letzter Beitrag: Herbertchen
  Text partiell ersetzen Karthagos 2 436 26.05.2024, 21:09
Letzter Beitrag: Karthagos
  Corel DRAW X5 S-Boxer 14 2.279 15.04.2024, 08:44
Letzter Beitrag: S-Boxer
  Corel Draw X7 - Lohnt eine "kleine" aktuellere Version anorak 2 1.727 12.04.2024, 19:52
Letzter Beitrag: anorak
  Programme COREL DRAW und Photopaint starten nicht mehr (Fehler 38) Neudi 2 1.611 27.03.2024, 09:02
Letzter Beitrag: Neudi