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.