Labelixa API'sini cURL, Python, C#, Java, Node.js ve PHP ile kullanma örnekleri: ZPL render ve barkod üretimi.
Ham HTTP yerine ince resmi istemci: kota hataları ayrı sınıf (QuotaExceeded, retry_after taşır), hata mesajları sunucudan aynen gelir.
from labelixa import Client
c = Client() # anonim; Client(api_key="lbx_...") kendi kotanız
png = c.render_png("^XA^CF0,60^FO50,50^FDMerhaba^FS^XZ", width_in=4, height_in=6)
open("etiket.png", "wb").write(png)
rapor = c.validate("^XA^QQ^FDx^XZ") # yapısal lint raporu
epl = c.to_epl("^XA^CF0,60^FO50,50^FDMerhaba^FS^XZ") # ZPL -> EPL2Aynı yüzeyin Node karşılığı — sıfır bağımlılık (Node 18+ yerleşik fetch), TypeScript tipleri pakette.
import { Client } from "labelixa";
const c = new Client(); // anonim; new Client({ apiKey: "lbx_..." })
const png = await c.renderPng("^XA^CF0,60^FO50,50^FDMerhaba^FS^XZ", { widthIn: 4, heightIn: 6 });
await writeFile("etiket.png", png);
const rapor = await c.validate("^XA^QQ^FDx^XZ");
const epl = await c.toEpl("^XA^CF0,60^FO50,50^FDMerhaba^FS^XZ");Aynı yüzeyin Go karşılığı — yalnız standart kütüphane, context ile iptal; kota hatası labelixa.AsQuotaError ile ayrılır ve RetryAfter taşır.
import labelixa "github.com/Labelixa/labelixa-sdk/go"
c := labelixa.New(labelixa.Options{}) // anonim; Options{APIKey: "lbx_..."} kendi kotanız
ctx := context.Background()
png, err := c.RenderPNG(ctx, "^XA^CF0,60^FO50,50^FDMerhaba^FS^XZ",
labelixa.RenderOptions{WidthIn: 4, HeightIn: 6})
if err != nil {
log.Fatal(err)
}
os.WriteFile("etiket.png", png, 0o644)
report, err := c.Validate(ctx, "^XA^QQ^FDx^XZ", labelixa.ValidateOptions{})
epl, err := c.ToEPL(ctx, "^XA^CF0,60^FO50,50^FDMerhaba^FS^XZ", labelixa.RenderOptions{}) // ZPL -> EPL2Claude Desktop, Claude Code ve MCP konuşan diğer asistanlar Labelixa'yı doğrudan araç olarak kullanabilir: ZPL, EPL, TSPL ve CPCL etiketlerini render eder, doğrular, ayıklar, dönüştürür ve barkod üretir. Uzak sunucuya bağlanın: https://api.labelixa.com/mcp (kurulum gerekmez; resmî MCP Registry'de com.labelixa/zpl adıyla ve Smithery'de listeli) ya da yerel çalıştırın:
{
"mcpServers": {
"labelixa": {
"command": "npx",
"args": ["-y", "labelixa-mcp"],
"env": {"LABELIXA_API_KEY": "lbx_..."}
}
}
}İmlecin üzerindeki ^XA…^XZ bloğunu editörde render eder; siz yazarken dosyayı lint edip bulguları gerçek satır/sütunla Problems paneline yazar, API'nin zaten düzeltmesini bildiği bulgular için hızlı düzeltme sunar ve ZPL komutları için referans sayfalarıyla aynı sözlükten hover yardımı gösterir. Lint kota tüketmez; önizleme tüketir ve bu yüzden yalnız komutla çalışır. API anahtarı editörün gizli deposunda tutulur (komut: Labelixa: Set the API key), ayar dosyasına yazılmaz; güvenilmeyen çalışma alanından hiçbir şey gönderilmez.
code --install-extension labelixa.labelixa-zplAynı eklenti Open VSX kayıt defterinde de yayındadır: Cursor, VSCodium, Gitpod ve Theia gibi Open VSX kullanan editörlerde eklenti görünümünde Labelixa ZPL aratın.
JetBrains Marketplace'teki Labelixa ZPL eklentisi IntelliJ IDEA, PyCharm, WebStorm, Rider, GoLand ve diğer JetBrains IDE'lerinde (platform 2024.1 ve sonrası) imlecin üzerindeki ^XA…^XZ bloğunu Labelixa Preview penceresinde render eder ve Labelixa: Validate ZPL ile dosyayı doğrulayıp bulguları gerçek satır/sütunla editörde işaretler. Kurulum: Settings → Plugins → Marketplace'te Labelixa ZPL aratın. API anahtarı isteğe bağlıdır ve IDE'nin parola kasasında tutulur.
import requests
r = requests.post("https://api.labelixa.com/v1/printers/8dpmm/labels/4x6/0",
data="^XA^CF0,60^FO50,50^FDMerhaba^FS^XZ")
open("etiket.png", "wb").write(r.content)
print(r.headers.get("X-Warnings"))const res = await fetch("https://api.labelixa.com/v1/printers/8dpmm/labels/4x6/0", {
method: "POST", body: "^XA^CF0,60^FO50,50^FDMerhaba^FS^XZ"
});
const buf = Buffer.from(await res.arrayBuffer());
require("fs").writeFileSync("etiket.png", buf);<?php
$ch = curl_init("https://api.labelixa.com/v1/printers/8dpmm/labels/4x6/0");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, "^XA^CF0,60^FO50,50^FDMerhaba^FS^XZ");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
file_put_contents("etiket.png", curl_exec($ch));using var http = new HttpClient();
var zpl = new StringContent("^XA^CF0,60^FO50,50^FDMerhaba^FS^XZ");
var res = await http.PostAsync(
"https://api.labelixa.com/v1/printers/8dpmm/labels/4x6/0", zpl);
res.EnsureSuccessStatusCode();
File.WriteAllBytes("etiket.png", await res.Content.ReadAsByteArrayAsync());
Console.WriteLine(res.Headers.TryGetValues("X-Warnings", out var w)
? string.Join(", ", w) : "");HttpClient http = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://api.labelixa.com/v1/printers/8dpmm/labels/4x6/0"))
.POST(HttpRequest.BodyPublishers.ofString("^XA^CF0,60^FO50,50^FDMerhaba^FS^XZ"))
.build();
HttpResponse<byte[]> res = http.send(req,
HttpResponse.BodyHandlers.ofByteArray());
Files.write(Path.of("etiket.png"), res.body());
System.out.println(res.headers().firstValue("X-Warnings").orElse(""));curl "https://api.labelixa.com/v1/barcodes?type=ean13&data=869012345678" > urun.pngimport requests
r = requests.get("https://api.labelixa.com/v1/barcodes",
params={"type": "ean13", "data": "869012345678"})
open("urun.png", "wb").write(r.content)using var http = new HttpClient();
var url = "https://api.labelixa.com/v1/barcodes?type=ean13&data=869012345678";
File.WriteAllBytes("urun.png", await http.GetByteArrayAsync(url));HttpClient http = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create(
"https://api.labelixa.com/v1/barcodes?type=ean13&data=869012345678"))
.build();
HttpResponse<byte[]> res = http.send(req,
HttpResponse.BodyHandlers.ofByteArray());
Files.write(Path.of("urun.png"), res.body());curl -X POST "https://api.labelixa.com/v1/printers/8dpmm/labels/4x2/" \
--data-binary @etiketler.zpl -H "Accept: application/pdf" \
-H "X-Page-Size: A4" -H "X-Page-Layout: 2x3" > etiketler.pdf<?php
$ch = curl_init("https://api.labelixa.com/v1/printers/8dpmm/labels/4x6/");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, file_get_contents("etiketler.zpl"));
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Accept: application/pdf"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$pdf = curl_exec($ch);
if (curl_getinfo($ch, CURLINFO_HTTP_CODE) !== 200) {
throw new RuntimeException("Labelixa: " . $pdf);
}
file_put_contents("etiketler.pdf", $pdf); // one page per label