هذا هو مولد باركود سهل الاستخدام وغير منتفخ ومستقل عن إطار العمل بلغة PHP. ويستخدم صفر (!) تبعيات الملحن وهو مجرد عدد قليل من الملفات. ربما يكون هذا هو السبب في أن هذا هو مولد الباركود الأكثر تنزيلًا لـ PHP على Packagist. ;)
يقوم بإنشاء صور SVG وPNG وJPG وHTML، من معايير الباركود 1D الأكثر استخدامًا.
لا يوجد دعم لأي رموز شريطية ثنائية الأبعاد ، مثل رموز QR.
نقوم فقط بإنشاء الجزء "الأشرطة" من الرمز الشريطي، بدون نص أسفل الرمز الشريطي. إذا كنت تريد نص الكود الموجود أسفل الرمز الشريطي، فيمكنك إضافته لاحقًا إلى مخرجات هذه الحزمة.
التثبيت من خلال الملحن:
composer require picqer/php-barcode-generator
إذا كنت تريد إنشاء صور PNG أو JPG، فأنت بحاجة إلى تثبيت مكتبة GD أو Imagick على نظامك أيضًا. بالنسبة إلى عروض SVG أو HTML، لا توجد تبعيات.
تريد رمزًا شريطيًا لـ "نوع" محدد (على سبيل المثال Code 128 أو UPC) بتنسيق صورة محدد (على سبيل المثال PNG أو SVG).
أولاً، قم بتشفير السلسلة التي تريد الرمز الشريطي لها في كائن Barcode
باستخدام أحد أنواع الرمز الشريطي.
بعد ذلك، استخدم أحد العارضين لعرض صورة الأشرطة في كائن Barcode
.
"النوع" هو معيار يحدد الأحرف التي يمكنك تشفيرها والأشرطة التي تمثل أي حرف. الأنواع الأكثر استخدامًا هي الكود 128 وEAN/UPC. لا يمكن ترميز كافة الأحرف في كل نوع من أنواع الباركود، ولا يمكن لجميع ماسحات الباركود الضوئية قراءة جميع الأنواع.
<?phprequire 'vendor/autoload.php';// إنشاء كائن باركود بترميز Code128.$barcode = (new PicqerBarcodeTypesTypeCode128())->getBarcode('081231723897');// إخراج الرمز الشريطي بتنسيق HTML في المتصفح باستخدام HTML Renderer$renderer = new PicqerBarcodeRenderersHtmlRenderer();echo $renderer->render($barcode);
سوف يؤدي إلى هذا الجمال:
كل عارض لديه خياراته الخاصة. على سبيل المثال، يمكنك ضبط الارتفاع والعرض واللون لملف PNG:
<?phprequire 'vendor/autoload.php';$colorRed = [255, 0, 0];$barcode = (new PicqerBarcodeTypesTypeCode128())->getBarcode('081231723897');$renderer = جديد PicqerBarcodeRenderersPngRenderer();$renderer->setForegroundColor($colorRed);// احفظ PNG في نظام الملفات، مع widthFactor 3 (عرض الرمز الشريطي × 3) وارتفاع 50 بكسلfile_put_contents('barcode.png', $renderer->render ($الباركود، $barcode->getWidth() * 3, 50));
برامج عرض الصور المتوفرة: SVG وPNG وJPG وHTML.
جميعها تتوافق مع RendererInterface ولها نفس طريقة render()
. لدى بعض العارضين خيارات إضافية أيضًا، عبر طرق set*().
تحتاج طريقة render() إلى كائن Barcode، العرض والارتفاع. بالنسبة لصور JPG/PNG ، لن تحصل على رمز شريطي صالح إلا إذا قمت بإعطاء عرض يمثل عاملاً لعرض كائن الرمز الشريطي. ولهذا السبب تظهر الأمثلة $barcode->getWidth() * 2
لجعل الصورة أكبر بالبكسل بمقدار مرتين من عرض بيانات الباركود. يمكنك إعطاء رقم عشوائي كعرض وسيتم تغيير حجم الصورة بأفضل شكل ممكن، ولكن بدون الصقل، لن تكون صالحة تمامًا.
يمكن لعارضي HTML وSVG التعامل مع أي عرض وارتفاع، حتى العناصر العائمة.
فيما يلي جميع الخيارات لكل عارض:
صورة SVG تعتمد على المتجهات. يعطي أفضل جودة للطباعة.
$renderer = new PicqerBarcodeRenderersSvgRenderer();$renderer->setForegroundColor([255, 0, 0]); // أعط لونًا أحمر للأشرطة، واللون الافتراضي هو الأسود. أعطها 3 مرات 0-255 قيمًا للأحمر والأخضر والأزرق. $renderer->setBackgroundColor([0, 0, 255]); // قم بإعطاء لون أزرق للخلفية، اللون الافتراضي هو اللون الشفاف. أعطها 3 مرات 0-255 قيمًا للأحمر والأخضر والأزرق. $renderer->setSvgType($renderer::TYPE_SVG_INLINE); // تغيير المخرجات ليتم استخدامها في مستندات HTML، بدلاً من صورة SVG المستقلة (افتراضي)$renderer->setSvgType($renderer::TYPE_SVG_STANDALONE); // إذا كنت تريد فرض الإعداد الافتراضي، فقم بإنشاء صورة SVG مستقلة $renderer->render($barcode, 450.20, 75); // يطفو دعم العرض والارتفاع
جميع خيارات PNG وJPG هي نفسها.
$renderer = new PicqerBarcodeRenderersPngRenderer();$renderer->setForegroundColor([255, 0, 0]); // قم بإعطاء لون للأشرطة، اللون الافتراضي هو الأسود. أعطها 3 مرات 0-255 قيمًا للأحمر والأخضر والأزرق. $renderer->setBackgroundColor([0, 255, 255]); // قم بإعطاء لون للخلفية، الافتراضي هو شفاف (في PNG) أو أبيض (في JPG). أعطها 3 مرات 0-255 قيمًا للأحمر والأخضر والأزرق. $renderer->useGd(); // إذا كان لديك Imagick وGD مثبتين، ولكنك تريد استخدام GD$renderer->useImagick(); // إذا كان لديك Imagick وGD مثبتين، ولكنك تريد استخدام Imagick$renderer->render($barcode, 5, 40); // عامل العرض (عدد وحدات البكسل التي يبلغ عرضها كل شريط)، والارتفاع بالبكسل
يعطي HTML للاستخدام المضمّن في مستند HTML كامل.
$renderer = new PicqerBarcodeRenderersHtmlRenderer();$renderer->setForegroundColor([255, 0, 0]); // أعط لونًا أحمر للأشرطة، واللون الافتراضي هو الأسود. أعطها 3 مرات 0-255 قيمًا للأحمر والأخضر والأزرق. $renderer->setBackgroundColor([0, 0, 255]); // قم بإعطاء لون أزرق للخلفية، اللون الافتراضي هو اللون الشفاف. أعطها 3 مرات 0-255 قيمًا للأحمر والأخضر والأزرق. $renderer->render($barcode, 450.20, 75); // يطفو دعم العرض والارتفاع
قم بإعطاء HTML هنا أن الرمز الشريطي يستخدم العرض والارتفاع الكاملين، لوضعهما داخل حاوية/div ذات حجم ثابت.
$renderer = new PicqerBarcodeRenderersDynamicHtmlRenderer();$renderer->setForegroundColor([255, 0, 0]); // أعط لونًا أحمر للأشرطة، واللون الافتراضي هو الأسود. أعطها 3 مرات 0-255 قيمًا للأحمر والأخضر والأزرق. $renderer->setBackgroundColor([0, 0, 255]); // قم بإعطاء لون أزرق للخلفية، اللون الافتراضي هو اللون الشفاف. أعطها 3 مرات 0-255 قيمًا للأحمر والأخضر والأزرق. $renderer->render($barcode);
يمكنك وضع HTML المعروض داخل div مثل هذا:
<div style="width: 400px; height: 75px"><?php echo $renderedBarcode; ?></div>
يتم دعم أنواع الباركود هذه. تدعم كافة الأنواع مجموعات أحرف مختلفة وبعضها له أطوال إلزامية. يرجى الاطلاع على ويكيبيديا لمعرفة الأحرف والأطوال المدعومة لكل نوع.
يمكنك العثور على جميع الأنواع المدعومة في مجلد src/Types.
الأنواع الأكثر استخدامًا هي TYPE_CODE_128 وTYPE_CODE_39. نظرًا لأفضل دعم للماسح الضوئي، فإن الطول المتغير ومعظم الأحرف مدعومة.
TYPE_CODE_32 (كود الأدوية الإيطالي "MINSAN")
TYPE_CODE_39
TYPE_CODE_39_CHECKSUM
TYPE_CODE_39E
TYPE_CODE_39E_CHECKSUM
TYPE_CODE_93
TYPE_STANDARD_2_5
TYPE_STANDARD_2_5_CHECKSUM
TYPE_INTERLEAVED_2_5
TYPE_INTERLEAVED_2_5_CHECKSUM
TYPE_CODE_128
TYPE_CODE_128_A
TYPE_CODE_128_B
TYPE_CODE_128_C
TYPE_EAN_2
TYPE_EAN_5
TYPE_EAN_8
TYPE_EAN_13
TYPE_ITF14 (المعروف أيضًا باسم GTIN-14)
TYPE_UPC_A
TYPE_UPC_E
TYPE_MSI
TYPE_MSI_CHECKSUM
TYPE_POSTNET
TYPE_PLANET
TYPE_RMS4CC
TYPE_KIX
TYPE_IMB
TYPE_CODABAR
TYPE_CODE_11
TYPE_PHARMA_CODE
TYPE_PHARMA_CODE_TWO_TRACKS
انظر أمثلة الصور لجميع أنواع الباركود المدعومة
إذا كنت تريد استخدام صور PNG أو JPG، فستحتاج إلى تثبيت Imagick أو مكتبة GD. ستستخدم هذه الحزمة Imagick إذا تم تثبيته، أو سترجع إلى GD. إذا قمت بتثبيت كليهما، ولكنك تريد طريقة محددة، فيمكنك استخدام $renderer->useGd()
أو $renderer->useImagick()
لفرض تفضيلاتك.
$barcode = (new PicqerBarcodeTypesTypeCode128())->getBarcode('081231723897');$renderer = new PicqerBarcodeRenderersPngRenderer();echo '<img src="data:image/png;base64,' . base64_encode($renderer->render ($الباركود، $barcode->getWidth() * 2)) '">';
$barcode = (new PicqerBarcodeTypesTypeCodabar())->getBarcode('081231723897');$renderer = new PicqerBarcodeRenderersJpgRenderer();file_put_contents('barcode.jpg', $renderer->render($barcode, $barcode->getWidth() * 2))؛
file_put_contents('barcode.svg', (new PicqerBarcodeRenderersSvgRenderer())->render((new PicqerBarcodeTypesTypeKix())->getBarcode('6825ME601')));
ليست هناك حاجة لتغيير أي شيء عند الترقية من الإصدار 2 إلى الإصدار 3. تجد أعلاه الطريقة المفضلة الجديدة لاستخدام هذه المكتبة منذ الإصدار 3. ولكن النمط القديم لا يزال يعمل.
لمنح العارضين نفس الواجهة، أصبح تعيين الألوان الآن دائمًا باستخدام مجموعة من ألوان RGB. إذا كنت تستخدم فئات BarcodeGenerator* القديمة وتستخدم الألوان بأسماء ('red') أو رموز سداسية عشرية (#3399ef)، فسيتم تحويلها باستخدام ColorHelper. يتم دعم كافة الرموز السداسية، ولكن بالنسبة لأسماء الألوان، يتم دعم الألوان الأساسية فقط.
إذا كنت تريد التحويل إلى النمط الجديد، إليك مثال:
// النمط القديم$generator = new PicqerBarcodeBarcodeGeneratorSVG();echo $generator->getBarcode('081231723897', $generator::TYPE_CODE_128);// New style$barcode = (new PicqerBarcodeTypesTypeCode128())->getBarcode('081231723897' );$العارض = new PicqerBarcodeRenderersSvgRenderer();echo $renderer->render($barcode);
أصبح العرض في العارض الآن هو عرض النتيجة النهائية، بدلاً من widthFactor. إذا كنت تريد الاحتفاظ بالعروض الديناميكية، يمكنك الحصول على عرض الباركود المشفر وضربه في widthFactor للحصول على نفس النتيجة كما كان من قبل. انظر هنا مثالاً لعامل العرض 2:
// النمط القديم$generator = new PicqerBarcodeBarcodeGeneratorSVG();echo $generator->getBarcode('081231723897', $generator::TYPE_CODE_128, 2.30);// New style$barcode = (new PicqerBarcodeTypesTypeCode128())->getBarcode('081231723897');$renderer = new PicqerBarcodeRenderersSvgRenderer();echo $renderer->render($barcode, $barcode->getWidth() * 2, 30);
في الإصدار 3، تكون أجهزة تشفير نوع الباركود وأجهزة عرض الصور منفصلة تمامًا. وهذا يجعل إنشاء طريقة العارض الخاصة بك أسهل. الطريقة القديمة كانت باستخدام "المولدات". فيما يلي الأمثلة القديمة لهذه المولدات، والتي لا تزال تعمل في الإصدار الثالث أيضًا.
قم ببدء تشغيل منشئ الرمز الشريطي للمخرجات التي تريدها، ثم قم باستدعاء روتين ->getBarcode() عدة مرات كما تريد.
<?phprequire 'vendor/autoload.php';// سيؤدي هذا إلى إخراج الرمز الشريطي كمخرج HTML لعرضه في المتصفح$generator = new PicqerBarcodeBarcodeGeneratorHTML();echo $generator->getBarcode('081231723897', $generator::TYPE_CODE_128 );
سوف يؤدي إلى هذا الجمال:
تقبل طريقة getBarcode()
المعلمات التالية:
سلسلة $barcode
مطلوبة للتشفير في الباركود
$type
نوع الباركود، استخدم الثوابت المحددة في الفصل
يعتمد عرض $widthFactor
على طول البيانات، وبهذا العامل يمكنك جعل أشرطة الباركود أوسع من الافتراضية
$height
الارتفاع الإجمالي للرمز الشريطي بالبكسل
كود $foregroundColor
Hex كسلسلة، أو مجموعة من RGB، لألوان الأشرطة (لون المقدمة)
مثال على استخدام كافة المعلمات:
<?phprequire 'vendor/autoload.php';$redColor = [255, 0, 0];$generator = new PicqerBarcodeBarcodeGeneratorPNG();file_put_contents('barcode.png', $generator->getBarcode('081231723897', $generator ::TYPE_CODE_128, 3, 50, $redColor));
$generatorSVG = new PicqerBarcodeBarcodeGeneratorSVG(); // SVG$generatorPNG القائم على المتجهات = new PicqerBarcodeBarcodeGeneratorPNG(); // PNG$generatorJPG القائم على البكسل = new PicqerBarcodeBarcodeGeneratorJPG(); // أساس البكسل JPG$generatorHTML = new PicqerBarcodeBarcodeGeneratorHTML(); // HTML القائم على البكسل$generatorHTML = new PicqerBarcodeBarcodeGeneratorDynamicHTML(); // HTML القائم على المتجهات
$generator = new PicqerBarcodeBarcodeGeneratorPNG();echo '<img src="data:image/png;base64,' . base64_encode($generator->getBarcode('081231723897', $generator::TYPE_CODE_128)) . '">';
$generator = new PicqerBarcodeBarcodeGeneratorJPG();file_put_contents('barcode.jpg', $generator->getBarcode('081231723897', $generator::TYPE_CODABAR));
file_put_contents('barcode.svg', (new PicqerBarcodeBarcodeGeneratorSVG())->getBarcode('6825ME601', PicqerBarcodeBarcodeGeneratorSVG::TYPE_KIX));
تعتمد قاعدة التعليمات البرمجية على مولد الباركود TCPDF بواسطة نيكولا أسوني. ولذلك فإن هذا الرمز مرخص بموجب LGPLv3.