Ich suche eine Möglichkeit, in Libre Office Calc-Tabellen QR-Codes aus Zellinhalten zu generieren. Es gibt in Libre Office einen QR-Code-Generator, der interaktiv Texte aufnimmt und daraus einen QR-Code als Bild erzeugt. Gibt es auch eine Möglichkeit, automatisch QR-Codes aus z.B. allen Zellen einer Spalte zu erzeugen?
M.A. S. schrieb: > Gibt es auch eine Möglichkeit, automatisch QR-Codes aus z.B. allen > Zellen einer Spalte zu erzeugen? Im direkten Kontext von Libre-Office wahrscheinlich nicht. Aber du kannst doch sicher das Dokument (oder Teile davon) z.B. als CSV-Dstei exportieren? Es gibt zahlreiche Software, die im Stapel aus CSVs Codes erzeigen kann ...
Es scheint für das aktuelle integrierte plugin eine API oder Macro zu
geben
Gibts es hier eine Möglichkeit Tabelleninhalte auszuwählen?
Sub InsertBarcode
Dim oJob as Object
oJob = createUnoService("org.libreoffice.Barcode")
Dim args(8) as new com.sun.star.beans.NamedValue
args(0).Name = "Action"
args(0).Value = "InsertBarcode"
args(1).Name = "BarcodeType"
args(1).Value = "CODE128"
args(2).Name = "BarcodeValue"
args(2).Value = "123456789"
args(3).Name = "BarcodeAddChecksum"
args(3).Value = True
args(4).Name = "WidthScale"
args(4).Value = "100"
args(5).Name = "HeightScale"
args(5).Value = "100"
args(6).Name = "PositionX"
args(6).Value = "1000"
args(7).Name = "PositionY"
args(7).Value = "1000"
args(8).Name = "TargetComponent"
args(8).Value = ThisComponent
oJob.execute(args)
End Sub
Natürlich ist das möglich. Du musst zuerst aus den gewünschten Zellen einen String erzeugen und diesen bei "args(2).Value = "123456789"" angeben, also anstelle von "123456789" den zusammengesetzen String angeben. Vielleicht probiere ich das morgen mal aus. Ich muss mich da aber erst wieder reinarbeiten, habe schon lange nicht mehr in Starbasic programmiert.
Bei mir funktioniert der Code nicht, bekomme eine Laufzeitfehler (Objektvariable nicht belegt) bei "oJob.execute(args)".
Hast du die neuste Version?
Ich habe es mittlerweile zusammen kopiert bekommen. Habe von den Makros
keine Ahnung, man bräuchte da ein Schleife für 30 Objekte oder so etc.
In einem Dokument habe ich zwei verschiedene Tabellen/Seiten. in der
ersten Tabelle stehen die Werte und wenn ich auf die zweite Tabelle gehe
und das Makro aufrufe, dann tauchen da auch zwei Barcodes auf.
Sub InsertBarcode
Dim oJob as Object
oJob = createUnoService("org.libreoffice.Barcode")
oDoc = ThisComponent 'das Dokumentenobjekt
oSheet = oDoc.sheets(0) ' das erste Tabellenblatt Objekt
oCell = oSheet.getCellRangeByName("a6") 'das Objekt der Zelle A6
sText = oCell.string 'Textinhalt der Zelle
Dim args(8) as new com.sun.star.beans.NamedValue
args(0).Name = "Action"
args(0).Value = "InsertBarcode"
args(1).Name = "BarcodeType"
args(1).Value = "CODE128"
args(2).Name = "BarcodeValue"
args(2).Value = sText
args(3).Name = "BarcodeAddChecksum"
args(3).Value = True
args(4).Name = "WidthScale"
args(4).Value = "100"
args(5).Name = "HeightScale"
args(5).Value = "100"
args(6).Name = "PositionX"
args(6).Value = "2000"
args(7).Name = "PositionY"
args(7).Value = "3000"
args(8).Name = "TargetComponent"
args(8).Value = ThisComponent
oJob.execute(args)
oCell = oSheet.getCellRangeByName("a7") 'das Objekt der Zelle A6
sText = oCell.string 'Textinhalt der Zelle
Dim args_1(8) as new com.sun.star.beans.NamedValue
args_1(0).Name = "Action"
args_1(0).Value = "InsertBarcode"
args_1(1).Name = "BarcodeType"
args_1(1).Value = "CODE128"
args_1(2).Name = "BarcodeValue"
args_1(2).Value = sText
args_1(3).Name = "BarcodeAddChecksum"
args_1(3).Value = True
args_1(4).Name = "WidthScale"
args_1(4).Value = "10"
args_1(5).Name = "HeightScale"
args_1(5).Value = "10"
args_1(6).Name = "PositionX"
args_1(6).Value = "2000"
args_1(7).Name = "PositionY"
args_1(7).Value = "9000"
args_1(8).Name = "TargetComponent"
args_1(8).Value = ThisComponent
oJob.execute(args_1)
End Sub
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.