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 ESSENTIALS 2021 HDT 4 185 26.10.2021, 20:30
Letzter Beitrag: Piet
  Summa Toolbar in Corel 2021 Henni 1 253 14.07.2021, 07:03
Letzter Beitrag: Henni
  Corel Draw Programmstart extrem langsam Dominika 1 282 10.07.2021, 14:16
Letzter Beitrag: T3P4
  Corel Draw OEM Funktionen und Konfigurierbarkeit RSoutside 3 364 21.04.2021, 11:52
Letzter Beitrag: norre
  Corel 2020/21 - PDF/X Export ohne Profil nicht möglich! Pixel Punk 0 302 11.04.2021, 09:19
Letzter Beitrag: Pixel Punk
  Text in Corel Vorlage anhand von Makro / VBA ändern Olaf 4 431 02.03.2021, 11:06
Letzter Beitrag: Olaf
  Corel 2017-Transparenz-Bitmap Mustertransparenz-Füllungen basahe 1 310 23.02.2021, 15:43
Letzter Beitrag: Cadman96
  Benutzeroberfläche von Corel 2018 in 2020 möglich ? Cadman96 2 302 22.02.2021, 20:32
Letzter Beitrag: T3P4
  Schriftbreite in Corel 2020 ist breiter als bei Corel 2018 Cadman96 4 338 22.02.2021, 11:01
Letzter Beitrag: Cadman96
  Textrahmen an Textmenge anpassen (Corel 220) mtemp 2 292 11.02.2021, 11:28
Letzter Beitrag: mtemp