PDF per VBA aus Corel Exportieren
#1
Hallo liebes Forum,


Koter hier aus dem Forum hat mir einen tollen Code zum Exportieren einer DXF Datei  aus Corel erstellt, hat jemand eine idee wie ich diesen Code genau verändern müsste damit ich die Datei als PDF exportieren kann?

Ich habe es mit kleinen Änderungen zwar hingekriegt, erhalte aber trotzdem eine Fehlermeldung und habe leider auch kein gutes Gefühl dabei da es mir nur durch rumprobieren gelungen ist ohne wikrliche Fachkenntnisse.

Dies ist der Original Code für die DXF Datei:

Code:
Option Explicit
Sub ExportDXF()
   Dim expflt As ExportFilter
   Dim l As Layer
   Dim Pfad As String, Dateiname As String
   Dim Anzahl As Integer
       
   For Each l In ActivePage.Layers: l.Printable = False: Next  'Alle Ebenen nicht druckbar schalten
   ActivePage.Layers("Platten").Printable = True    'Ebene druckbar schalten
   ActivePage.Layers("Export").Printable = True    'Ebene druckbar schalten
   Pfad = "\\hb-dc01\work\Hauptordner_FERTIGUNG\_3_LASER\Sonderanfertigung\"
   Anzahl = Dialog1.TextBox7 'Anzahl frtelegen
   Dateiname = Dialog1.TextBox6 'Dateiname festlegen
   Dateiname = Pfad & Dateiname & Replace("_Stck_X.dxf", "X", Anzahl) 'Dateiname vervollständigen und Anzahl einfügen
   
   Set expflt = ActiveDocument.ExportEx(Dateiname, cdrDXF)  'Exportfilter setzen
   With expflt
       .Version = 4 'DXF Version festlegen
       .Units = cdrMillimeter ' Maßeinheit festlegen
       .Finish ' Filter ausführen
   End With
End Sub

Vielleicht hat ja mjemand eine Idee dazu...

Perfekt wäre es wenn ich die Größe des Zeichnungsobjekts auf der PDF skalieren bzw. einfach erhöhen kann da es mit auf der PDF noch zu klein ist.

Vielen Dank schon im vorraus für die Hilfe.

Gruß

Olaf

Betriebssystem / Grafik-Software: Corel Draw GS SE 2018
Zitieren
#2
Hallo Olaf,

ich hatte diesen Beitrag übersehen, deshalb antworte ich erst jetzt.

Du kannst es mit diesen Code probieren:

Code:
Sub ExportPDF()
   Dim l As Layer
   Dim Pfad As String, Dateiname As String
   Dim Anzahl As Integer
   For Each l In ActivePage.Layers: l.Printable = False: Next  'Alle Ebenen nicht druckbar schalten
   ActivePage.Layers("Export").Printable = True    'Ebene druckbar schalten
   Pfad = "\\hb-dc01\work\Hauptordner_FERTIGUNG\_3_LASER\Sonderanfertigung\"
   Anzahl = Dialog1.TextBox7 'Anzahl frtelegen
   Dateiname = Dialog1.TextBox6 'Dateiname festlegen
   Dateiname = Pfad & Dateiname & Replace("AF_Stck_X.pdf", "X", Anzahl) 'Dateiname vervollständigen und Anzahl einfügen
   
   With ActiveDocument.PDFSettings
       .PublishRange = 1
       .PageRange = "1"
       .Author = "Erstellt durch Makro"
       .TextAsCurves = True
       .Encoding = 1
       .pdfVersion = 6
   End With
   ActiveDocument.PublishToPDF Dateiname
End Sub

Was genau wie und wo skaliert werden soll, habe ich leider noch nicht verstanden.
Auf einen PDF-Betrachter kann man mit VBA natürlich nicht zugreifen.

Gruß

Koter
[-] 1 Benutzer bedankt sich bei koter für diesen Beitrag:
  • Olaf
Zitieren
#3
Hallo Koter,

ganz vielen Dank, der Code funktioniert sehr gut. Was ich meinte mit dem skalieren....

Die PDF soll bei Bedarf ausgedruckt werden (DIN A4). Auf dem Ausdruck bzw der PDF sind die Zeichenobjekte aus Corel sehr klein, da war die Frage ob man beim Export diese automatisch prozentual vergrößeren kann... war nur so eine idee, ist aber kein muss.

Gruß

Olaf

Betriebssystem / Grafik-Software: Corel Draw GS SE 2018
Zitieren
#4
Hallo Olaf,

Ich hoffe, dass ich es richtig verstanden habe:

Code:
Sub ExportPDF()
   Dim l As Layer
   Dim Pfad As String, Dateiname As String
   Dim Anzahl As Integer
   Dim sr As ShapeRange
   Dim Rand As Double
   Dim RR As Shape
   ActiveDocument.Unit = cdrMillimeter
   
   Set sr = ActivePage.Layers("Export").Shapes.All
   For Each l In ActivePage.Layers: l.Printable = False: Next  'Alle Ebenen nicht druckbar schalten
   ActivePage.Layers("Export").Printable = True    'Ebene druckbar schalten
   Pfad = "\\hb-dc01\work\Hauptordner_FERTIGUNG\_3_LASER\Sonderanfertigung\"
   Anzahl = Dialog1.TextBox7 'Anzahl frtelegen
   Dateiname = Dialog1.TextBox6 'Dateiname festlegen
   Dateiname = Pfad & Dateiname & Replace("AF_Stck_X.pdf", "X", Anzahl) 'Dateiname vervollständigen und Anzahl einfügen
   
   Set l = ActivePage.Layers("Export")
   Rand = sr.SizeHeight * 0.05
   Set RR = l.CreateRectangle(sr.LeftX - Rand, sr.TopY + Rand, sr.RightX + Rand, sr.BottomY - Rand)
   RR.Outline.SetProperties , , CreateRGBColor(255, 255, 255)
   sr.Add RR
   sr.CreateSelection
   
   With ActiveDocument.PDFSettings
       .PublishRange = 2
       .PageRange = "1"
       .Author = "Erstellt durch Makro"
       .TextAsCurves = True
       .Encoding = 1
       .pdfVersion = 6
   End With
   ActiveDocument.PublishToPDF Dateiname
   ActiveSelectionRange.RemoveFromSelection
   RR.Delete
End Sub

Gruß

Koter
[-] 1 Benutzer bedankt sich bei koter für diesen Beitrag:
  • Olaf
Zitieren
#5
Hallo Koter,

vielen Dank. Leider verstehe ich nicht welcen Wert ich ändern müsste um die Größe des Zeichenobjekts zu ändern. Logisch war für mich

Rand = sr.SizeHeight * 0.05

Das hat aber leider nicht funktioniert.

Kannst du mir eine Tipp geben?

Gruß

Olaf

Betriebssystem / Grafik-Software: Corel Draw GS SE 2018
Zitieren
#6
Hallo Olaf,

das Makro soll nur die Objekte auf der Exportebene exportieren und einen kleinen Rand einfügen, damit keine Linie auf dem Papierrand liegt.

Ich habe die Aufgabe aber wohl doch falsch verstanden.

Über die Formulierung „automatisch prozentual vergrößeren“ habe ich jetzt noch einmal ein Stündchen gegrübelt aber sie will mir nicht in den Schädel. Ich komme einfach nicht dahinter, was genau um wieviel Prozent von was automatisch vergrößert werden soll.

Kannst Du mich irgendwie auf die richtige Spur bringen?

Gruß

Koter
Zitieren
#7
Guten Morgen Koter,

vielleicht habe ich mich auch falsch ausgedrückt, sorry. Ich habe ein Zeichenobjekt in Corel, wenn ich dieses als PDF exportiere ist das Objekt in der PDF und auch beim Ausdruck auf DIN A4 Papier extrem klein, vielleicht 10% von der tatsächlichen Größe in mm (geschätzt).

Das Exportierte Zeichenopjekt muss auf der PDF größer sein, da dachte ich das man dies eventuell mit einem % Wert lösen kann, ich bin aber natürlich wie immer auch für andere Ideen offen. 

Weisst Du was ich meine?

Vielen Dank und Dir einen schönen Tag.

Gruß

Olaf

Betriebssystem / Grafik-Software: Corel Draw GS SE 2018
Zitieren
#8
Hallo Olaf,
vielleicht würde ein Screenshot von deinem Programmfenster es mehr verdeutlichen.
Beim Screenshot sollte nichts ausgewählt und er Objektmanager sollte geöffnet sein.

Man kann jetzt auch CDRs hier direkt hochladen, falls das eine Option wäre.....
https://forum.juergens-workshops.de/show...?tid=37816

Gruß
Norre
Zitieren
#9
Hallo Olaf,

(23.02.2021, 07:56)Olaf schrieb: Das Exportierte Zeichenopjekt muss auf der PDF größer sein, da dachte ich das man dies eventuell mit einem % Wert lösen kann, ich bin aber natürlich wie immer auch für andere Ideen offen. 

Wie ich das verstehe sollte das eigentlich das Makro aus Beitrag 4 machen, das läuft bei mir so:

[Bild: exportpdfzekn6.gif]

Im Druckdialog vom Acrobat-Reader sieht es so aus:

[Bild: zwischenablage01uuk38.jpg]

(23.02.2021, 07:56)Olaf schrieb: Weisst Du was ich meine?

Wenn das, was Du auf den Bildern siehst, nicht das ist was Du meinst, dann weiß ich es leider immer noch nicht.

Gruß

Koter
Zitieren



Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Corel Draw standard 2021 Lorei 9 1.064 25.11.2024, 12:37
Letzter Beitrag: Softwaresab
  Importierte AI-Datei in Corel Draw wird nicht richtig dargestellt Kurtus 5 191 20.11.2024, 11:01
Letzter Beitrag: Kurtus
  Corel Draw Objekt dupliziert mehrfach Berlinerillustrator 1 283 24.09.2024, 10:55
Letzter Beitrag: Berlinerillustrator
  Corel DRAW X5 S-Boxer 14 2.306 15.04.2024, 08:44
Letzter Beitrag: S-Boxer
  Corel Draw X7 - Lohnt eine "kleine" aktuellere Version anorak 2 1.738 12.04.2024, 19:52
Letzter Beitrag: anorak
  Programme COREL DRAW und Photopaint starten nicht mehr (Fehler 38) Neudi 2 1.621 27.03.2024, 09:02
Letzter Beitrag: Neudi
  Corel Draw - Schrift Quicksand nach Umwandeln in Kurven nicht plottbar annalotta 1 1.584 15.02.2024, 13:57
Letzter Beitrag: Piet
  Corel SE 21 - verknüpfte Bilder, merkwürdiges Verhalten lauren 2 1.333 15.02.2024, 10:47
Letzter Beitrag: lauren
  Corel Draw 2019 Text vertikal nilaschmi 5 1.679 14.02.2024, 17:53
Letzter Beitrag: skifan
  Corel Draw 2019 / Windows 11 vermutlich zu "alt" Emeraude 1 1.593 25.01.2024, 19:09
Letzter Beitrag: koter