Wenn ich einen Barcode erstelle, dann erzeugt Corel X8 ein "Barcode-Objekt" . Dieses hat z.B. im Code 128 einen weißen Hintergrund.
Kann ich das Objekt in "normale Grafik" umwandeln um den Hintergrund zu entfernen?
In früheren Version bis Corel7 ging das ohne Probleme. Jetzt bekomme ich es nicht mehr hin. Ich verwende deshalb noch immer das Barcode Untergrogramm aus der 7ner Version und füge den erzeugten Code 128 über die Zwischenablage in das X8 Dokument ein. So bekomme ich normale Grafik, die ich nach Belieben bearbeiten kann.
in erster Linie möchte ich den weißen Hintergrund entfernen und den Strichcode skalieren.
Die Inhalt des Codes möchte ich nicht editieren, den habe ich ja beim Erzeugen festgelegt.
11.12.2016, 21:57 (Dieser Beitrag wurde zuletzt bearbeitet: 11.12.2016, 22:26 von norre.)
Hallo,
da die Vorgabe für einen Strichkode wegen der besseren scanbarkeit der weiße Hintergund ist hat das Corel wahrscheinlich so übernommen.
Ich habe ja nur die X8 Testversion da ist es mir auch nicht gelungen ihn als normales Objekt zu bekommen.
Schau mal im Andockfenster "Verknüpfungen und Lesezeichen" vielleicht ist da ja bei dir etwas eingetragen.
Editieren ist ja durch die Verknüpfung easy, einfach einen Doppelklick.
Skalieren kann ich den Code, einfach ganz normal an den Anfassern ziehen.
Mit tricksen kann ich dem Strichkode eine andere Hintergrundfarbe geben:
Rechteck in der Größe des Strickkodeobjekts aufziehen und über den Code legen
-->Effekte-->Linse
im Andockfenster "Linse" Farbgrenze wählen, Grad:100% und die benötigte Farbe auswählen.
[ATTACH=CONFIG]12438[/ATTACH]
Eventuell könnte es auch funktionieren den Barcode als CMX zu exportieren und dann wieder zu importieren, aber da bist mit deiner jetzigen Vorgehensweise besser dran.
das scheint wirklich nicht zu gehen. Schon ab Corel 9 ging das nicht mehr. Aber ich dachte, vielleicht bin nur ich zu doof. Ich brauche das aber wirklich nicht oft und kann mir mit dem Barcode whizzard aus der 7er Version helfen. Win7 meckert zwar immer, aber es funktioniert trotzdem.
Das Makro muss man natürlich für Code 128 umstricken.
Unter X7 läuft es:
Das Makro codiert allerdings Umlaute falsch.
Wenn das noch nachgerüstet werden soll, müsste man wissen,
ob der Scanner FNC4 beherrscht oder Umlaute anders umgewandelt werden müssen.
Code:
Sub Code128()
Dim Text As String
Dim TempPfad As String
Dim ZintPfad As String
Dim Skalierung As String
Dim Befehl As String
Skalierung = "1.5"
a = Chr(34)
If ActiveDocument.Selection.Shapes.Count = 0 Then
MsgBox "nichts ausgewählt!", vbExclamation
Exit Sub
End If
If ActiveDocument.Selection.Shapes(1).Type = cdrTextShape Then
Text = ActiveDocument.Selection.Shapes(1).Text.Story 'Text des selektierten Objekts
Text = Trim(Text)
If Text <> "" Then
Text = Replace(Text, a, "\" & Chr(34)) 'Zollzeichen maskieren
Text = Chr(34) & Text & a
Text = Replace(Text, Chr(13), "\n") ' Zeilenumbrüche ersetzen
Text = Replace(Text, Chr(11), "\n") ' Zeilenumbrüche ersetzen
Befehl = _
a & ZintPfad & "zint" & a _
& " " & a & "-o" & a & " " _
& a & TempPfad _
& "temp.eps" & a _
& " --binary -b 60" _
& " --scale=" & Skalierung _
& " -d " _
& Text
' Debug.Print Befehl
warte Befehl 'Ausführen und warten bis Zint fertig ist
If DateiVorhanden(TempPfad & "temp.eps") Then
epsImport TempPfad & "temp.eps" 'Importieren
Kill TempPfad & "temp.eps" 'temporäre Datei löschen
Else
MsgBox "Codierungsfehler", vbExclamation
Exit Sub
End If
Else
MsgBox "Keinen Text gefunden", vbExclamation
End If
Else
MsgBox "Keinen Text gefunden", vbExclamation
End If
End Sub
Sub warte(ByVal strPath As String)
Dim WshShell As Object
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run strPath, 7, 1
Set WshShell = Nothing
End Sub
Function DateiVorhanden(Datei As String) As Boolean
Dim FS As Object
Set FS = CreateObject("Scripting.FileSystemObject")
DateiVorhanden = FS.FileExists(Datei)
Set FS = Nothing
End Function
Sub epsImport(Datei As String)
Dim cx As Double, ct As Double
Dim s As Shape
cx = ActiveShape.CenterX
ct = ActiveShape.TopY
Dim impopt As StructImportOptions
Set impopt = CreateStructImportOptions
impopt.MaintainLayers = True
Dim impflt As ImportFilter
Set impflt = ActiveLayer.ImportEx(Datei, cdrPSInterpreted, impopt)
impflt.Finish
ActiveShape.CenterX = cx
ActiveShape.BottomY = ct
For Each s In ActiveShape.Shapes
If s.Type = cdrTextShape Or s.Fill.UniformColor.RGBValue <> 0 Then
s.Delete
End If
Next
With ActiveShape
.Shapes.All.Combine
.Ungroup
End With
ActiveSelection.Shapes.All.RemoveFromSelection
End Sub
Function WoIstZint() As String
On Error GoTo fehler
Dim WshShell As Object
Set WshShell = CreateObject("WScript.Shell")
If DateiVorhanden("C:\Program Files (x86)\Zint\zint.exe") Then
WoIstZint = "C:\Program Files (x86)\Zint\"
Set WshShell = Nothing
Exit Function
Else
WoIstZint = WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\qtZint.exe\Path") & "\"
Set WshShell = Nothing
Exit Function
End If
fehler:
WoIstZint = ""
End Function
12.12.2016, 10:35 (Dieser Beitrag wurde zuletzt bearbeitet: 12.12.2016, 11:02 von nowa.)
Hallo Koter und norre,
Ihr seid ja wirklich toll bemüht. Vielen, vielen Dank:daumen:
Da ich aber nicht weiß, mit welchen Scannern später gelesen wird und es sich um sensible Produkte handelt, werde ich wohl bei meinem bewährten work arround bleiben.
Nochmals Danke, Norbert
Edit: Zint funktioniert auch super. Umlaute habe ich in meinen Codes keine.
Hi Norbert, bin neu hier arbeite aber seit Version 2.0 mit COREL, auch beruflich. Derzeit X8 Vollversion.
Ich arbeite fast täglich mit Barcodes in COREL und muss diese ständig in ein Grafikelement umwandeln. Das ist in COREL sehr simpel.
Barcode mit dem Assistenten erstellen lassen, diesen dann mit STRG+C kopieren, dann über Menü Bearbeiten -> Inhalte einfügen -> Bild (Metadatei) einfügen. Das so eingefügte Element kannst du über STRG+U in seine einzelnen Komponeten entgruppieren und nach Deinen Wünschen bearbeiten.
Wie gesagt, damit arbeite ich beruflich seit Jahren.
Hoffe ich konnte helfen.
Gruß aus dem hohen Norden...Ralf
1 Benutzer bedankt sich bei Omicron für diesen Beitrag:1 Benutzer bedankt Danke Omicron für diesen Beitrag • Gerrie25
18.12.2016, 10:49 (Dieser Beitrag wurde zuletzt bearbeitet: 18.12.2016, 10:56 von Suc.)
Hallo Omicron
nett das du dich mit einbringst und gleich kompetent !
Auf sone einfache Vorgehensweise muss man ertmal kommen, klasse
Mit Barcodes arbeiten wir so gut wie nie, also auch keine Gedanken um sowas gemacht.
Bei QR-Codes kann man den Hintergrund einfach wegklicken, warum Corel das bei "Normalen"
Barcodes nicht eingebaut hat weiß ich auch nit.