Ich muss einen Code128 Barcodes mit Python / Django erstellen, die im HTML-Dokument eingebettet werden müssen.
Ich möchte keine temporären (oder Cache-) Dateien auf dem Datenträger erstellen. Deshalb möchte ich sie als Data URI Scheme einbetten.
Das Ergebnis muss in etwa so aussehen:
%Vor%Können Sie mir einen einfachen Weg dazu empfehlen?
Jetzt verwende ich ReportLab, um solche Barcodes zu erstellen und sie in PDF-Dateien einzubetten, aber ich weiß nicht, wie man sie als Daten-URI-Schema exportiert. Wenn dies der empfohlene Weg ist, dies zu tun.
Das ist meine eigene Lösung:
%Vor%Und Sie können Barcode auch um 90 ° gedreht bekommen:
%Vor%Hier ist ein Beispielergebnis:
Dies sollte den Trick machen. Ich habe das Code128 Python-Modul verwendet, um die Barcodes zu generieren.
Code
%Vor%Ausgabe
%Vor%AKTUALISIEREN
In den Kommentaren gab es einen netten Vorschlag, das Code128-Modul so zu modifizieren, dass es das Bild nicht im Dateisystem speichern muss. Sie können Code128 so ändern, dass er das Bildobjekt zurückgibt, anstatt es in einer Datei zu speichern. Sie müssten nur eine Codezeile ändern, um dies zu erreichen. Ändern Sie Zeile 162 von:
%Vor%zu:
%Vor%Haben Sie versucht, den Barcode im laufenden Betrieb zu erstellen, wobei jedes Symbol mit seinen eigenen Bilddaten dargestellt wird? Hier ist ein Beispiel:
& lt; img
alt="105 {Start C}" title="105 {Start C}" src="Daten: image / jpeg; base64, iVBORw0KGgoAAAANSUhEUgAAAAsAAAABAQMAAAAy + cYDAAAABlBMVEUAAAD /// + l2Z / dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAADklEQVQIHQEDAPz / ACxgALsAjajKmzkAAAAASUVORK5CYII=" width="30" Höhe="60" & gt; & lt; img
alt="00, A: {Leerzeichen}, B: {Leerzeichen}" title="00, A: {Leerzeichen}, B: {Leerzeichen}" src="Daten: Bild / Png; Base64, iVBORw0KGgoAAAANSUhEUgAAAAsAAAABAQMAAAAAY + CYDAAAABlBMVEUAAAD // / + l2Z / dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAADklEQVQIHQEDAPz / ACZgAK8Ah / KrWu0AAAAASUVORK5CYII="width=" 30 "height=" 60 "& gt; & lt; img
alt="98, A: {Escape B}, B: {Escape A}" title="98, A: {Escape B}, B: {Escape A}" src="daten: image / png; base64, iVBORw0KGgoAAAANSUhEUgAAAAsAAAABAQMAAAAy + cYDAAAABlBMVEUAAAD /// + l2Z / dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAADklEQVQIHQEDAPz / AAugALkArBSbglwAAAASUVORK5CYII="width=" 30 "height=" 60 "& gt; & lt; img
alt="21, A: {5}, B: {5}" title="21, A: {5}, B: {5}" src="daten: image / png; base64, iVBORw0KGgoAAAANSUhEUgAAAAsAAAABAQMAAAAAy + cYDAAAABlBMVEUAAAD // / + l2Z / dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAADklEQVQIHQEDAPz / ACNgAKkAhD / i5lYAAAAASUVORK5CYII="width=" 30 "height=" 60 "& gt; & lt; img
alt="14, A: {.}, B: {.}" title="14, A: {.}, B: {.}" src="daten: image / png; base64, iVBORw0KGgoAAAANSUhEUgAAAAsAAAABAQMAAAAAy + cYDAAAABlBMVEUAAAD // / + l2Z / dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAADklEQVQIHQEDAPz / AGYgAO8Ah9WahQgAAAAASUVORK5CYII="width=" 30 "height=" 60 "& gt; & lt; img
alt="00, A: {Leerzeichen}, B: {Leerzeichen}" title="00, A: {Leerzeichen}, B: {Leerzeichen}" src="Daten: Bild / Png; Base64, iVBORw0KGgoAAAANSUhEUgAAAAsAAAABAQMAAAAAY + CYDAAAABlBMVEUAAAD // / + l2Z / dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAADklEQVQIHQEDAPz / ACZgAK8Ah / KrWu0AAAAASUVORK5CYII="width=" 30 "height=" 60 "& gt; & lt; img
alt="14, A: {.}, B: {.}" title="14, A: {.}, B: {.}" src="daten: image / png; base64, iVBORw0KGgoAAAANSUhEUgAAAAsAAAABAQMAAAAAy + cYDAAAABlBMVEUAAAD // / + l2Z / dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAADklEQVQIHQEDAPz / AGYgAO8Ah9WahQgAAAAASUVORK5CYII="width=" 30 "height=" 60 "& gt; & lt; img
alt="64, A: {NUL}, B: { }" title=" 64,A:{NUL},B:{
}" src="data: image / PNG; Base64, iVBORw0KGgoAAAANSUhEUgAAAAsAAAABAQMAAAAy + cYDAAAABlBMVEUAAAD /// + l2Z / dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAADklEQVQIHQEDAPz / AF5gAR8Av0A69KoAAAAASUVORK5CYII=" width="30" height="60" & gt; & lt; img
alt="95, A: {US}, B: {DEL}" title="95, A: {US}, B: {DEL}" src="daten: image / png; base64, iVBORw0KGgoAAAANSUhEUgAAAAsAAAABAQMAAAAy + cYDAAAABlBMVEUAAAD // / + l2Z / dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAADklEQVQIHQEDAPz / AELgAWcBIz + IUR4AAAAASUVORK5CYII="width=" 30 "height=" 60 "& gt; & lt; img
alt="07, A: {'}, B: {'}" title="07, A: {'}, B: {'}" src="daten: bild / png; base64, iVBORw0KGgoAAAANSUhEUgAAAAsAAAABAQMAAAAAy + cYDAAAABlBMVEUAAAD // / + l2Z / dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAADklEQVQIHQEDAPz / AGdgATEAyJ / 9LboAAAAASUVORK5CYII="width=" 30 "height=" 60 "& gt; & lt; img
alt="74, A: {LF}, B: {j}" title="74, A: {LF}, B: {j}" src="daten: bild / png; base64, iVBORw0KGgoAAAANSUhEUgAAAAsAAAABAQMAAAAAy + cYDAAAABlBMVEUAAAD // / + l2Z / dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAADklEQVQIHQEDAPz / AHmgAZUBGuCD0Y8AAAAASUVORK5CYII="width=" 30 "height=" 60 "& gt; & lt; img
alt="101, A: {FNC 4}, B: {Schalter A}, C: {Schalter A}" title="101, A: {FNC 4}, B: {Schalter A}, C: {Schalter A }“src="data: image / PNG; Base64, iVBORw0KGgoAAAANSUhEUgAAAAsAAAABAQMAAAAy + cYDAAAABlBMVEUAAAD /// + l2Z / dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAADklEQVQIHQEDAPz / ABQgAEsANWhuDt4AAAAASUVORK5CYII=" width="30" height="60" & gt; & lt; img
alt="25, A: {9}, B: {9}" title="25, A: {9}, B: {9}" src="daten: image / png; base64, iVBORw0KGgoAAAANSUhEUgAAAAsAAAABAQMAAAAAy + cYDAAAABlBMVEUAAAD // / + l2Z / dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAADklEQVQIHQEDAPz / ABpgAJcAex9glyQAAAAASUVORK5CYII="width=" 30 "height=" 60 "& gt; & lt; img
alt="12, A: {,}, B: {,}" title="12, A: {,}, B: {,}" src="daten: image / png; base64, iVBORw0KGgoAAAANSUhEUgAAAAsAAAABAQMAAAAAy + cYDAAAABlBMVEUAAAD // / + l2Z / dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAADklEQVQIHQEDAPz / AExgAPsArevKOWsAAAAASUVORK5CYII="width=" 30 "height=" 60 "& gt; & lt; img
alt="106 {Stop}" title="106 {Stop}" src="data: image / PNG; Base64, iVBORw0KGgoAAAANSUhEUgAAAA0AAAABAQMAAAA / 57ZEAAAABlBMVEUAAAD /// + l2Z / dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAADklEQVQIHQEDAPz / ADigARMA2dpJzT8AAAAASUVORK5CYII=" width="30" height="60" & gt;
009821140014649507749
Dies ist der gleiche Barcode wie in Ihrem Beispiel, erfordert jedoch keine Zwischengrafik und benötigt etwa ein Drittel des Platzes. Auf die Daten, aus denen das Bild besteht, kann von einem Array aus zugegriffen werden, um den Ziel-HTML-Code mit Javascript oder einer anderen Client- oder serverseitigen Anwendung zu füllen.
Eine vollständige Liste der Code 128-Symbole finden Sie unter Ссылка
Ich bin mir nicht sicher über die Rotation. Das habe ich noch nicht ausprobiert.