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
  Corel DRAW X5 S-Boxer 14 387 15.04.2024, 08:44
Letzter Beitrag: S-Boxer
  Corel Draw X7 - Lohnt eine "kleine" aktuellere Version anorak 2 420 12.04.2024, 19:52
Letzter Beitrag: anorak
  Programme COREL DRAW und Photopaint starten nicht mehr (Fehler 38) Neudi 2 160 27.03.2024, 09:02
Letzter Beitrag: Neudi
  Corel Draw - Schrift Quicksand nach Umwandeln in Kurven nicht plottbar annalotta 1 197 15.02.2024, 13:57
Letzter Beitrag: Piet
  Corel SE 21 - verknüpfte Bilder, merkwürdiges Verhalten lauren 2 208 15.02.2024, 10:47
Letzter Beitrag: lauren
  Corel Draw 2019 Text vertikal nilaschmi 5 272 14.02.2024, 17:53
Letzter Beitrag: skifan
  Makro - Text an Rechteck ausrichten benni313 5 333 31.01.2024, 09:20
Letzter Beitrag: benni313
  Corel Draw 2019 / Windows 11 vermutlich zu "alt" Emeraude 1 304 25.01.2024, 19:09
Letzter Beitrag: koter
  Corel Draw 2023 Himmel 1 821 20.01.2024, 11:21
Letzter Beitrag: T3P4
  Beim speichern Version automatisch auf alte Version stellen awitechnik 4 319 12.01.2024, 11:04
Letzter Beitrag: awitechnik