QR-Code aus Zellinhalt in Libre Office Calc

OP #6224593
Lesenswert?

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?
(Firma: Q3) #6225664
Lesenswert?

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 
...
Gast #6524972
Lesenswert?

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
#6524977
Lesenswert?

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.
Gast #6525015
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren