From 384ce809573e9ec147f125b56ffda23ed4a94839 Mon Sep 17 00:00:00 2001 From: Muhammad Adil Date: Sun, 16 Aug 2026 02:33:49 +0000 Subject: [PATCH] Add 4 barcode python-java tutorials MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Categories: general Source: AI Search API Tutorials: - Barcode image PNG in C# generate barcodes, change height - Create planet barcode in C# – complete programming guide - How to set barcode – complete C# guide - Databar expanded stacked: generate barcode image in C# Auto-generated by Professionalize.Tutorials Agent --- .../_index.md | 182 +++++++++++++ .../_index.md | 221 ++++++++++++++++ .../_index.md | 237 +++++++++++++++++ .../_index.md | 236 +++++++++++++++++ .../_index.md | 183 +++++++++++++ .../_index.md | 217 ++++++++++++++++ .../_index.md | 235 +++++++++++++++++ .../_index.md | 233 +++++++++++++++++ .../_index.md | 185 ++++++++++++++ .../_index.md | 223 ++++++++++++++++ .../_index.md | 238 +++++++++++++++++ .../_index.md | 235 +++++++++++++++++ .../_index.md | 185 ++++++++++++++ .../_index.md | 221 ++++++++++++++++ .../_index.md | 238 +++++++++++++++++ .../_index.md | 236 +++++++++++++++++ .../_index.md | 185 ++++++++++++++ .../og-image.png | Bin 0 -> 49482 bytes .../_index.md | 223 ++++++++++++++++ .../og-image.png | Bin 0 -> 50685 bytes .../_index.md | 239 +++++++++++++++++ .../og-image.png | Bin 0 -> 52497 bytes .../_index.md | 236 +++++++++++++++++ .../og-image.png | Bin 0 -> 46834 bytes .../_index.md | 186 ++++++++++++++ .../_index.md | 223 ++++++++++++++++ .../_index.md | 239 +++++++++++++++++ .../_index.md | 236 +++++++++++++++++ .../_index.md | 186 ++++++++++++++ .../_index.md | 223 ++++++++++++++++ .../_index.md | 238 +++++++++++++++++ .../_index.md | 236 +++++++++++++++++ .../_index.md | 186 ++++++++++++++ .../_index.md | 230 +++++++++++++++++ .../_index.md | 239 +++++++++++++++++ .../_index.md | 236 +++++++++++++++++ .../_index.md | 185 ++++++++++++++ .../_index.md | 221 ++++++++++++++++ .../_index.md | 238 +++++++++++++++++ .../_index.md | 213 ++++++++++++++++ .../_index.md | 182 +++++++++++++ .../_index.md | 219 ++++++++++++++++ .../_index.md | 235 +++++++++++++++++ .../_index.md | 233 +++++++++++++++++ .../_index.md | 185 ++++++++++++++ .../_index.md | 223 ++++++++++++++++ .../_index.md | 237 +++++++++++++++++ .../_index.md | 236 +++++++++++++++++ .../_index.md | 184 ++++++++++++++ .../_index.md | 221 ++++++++++++++++ .../_index.md | 238 +++++++++++++++++ .../_index.md | 235 +++++++++++++++++ .../_index.md | 186 ++++++++++++++ .../_index.md | 223 ++++++++++++++++ .../_index.md | 239 +++++++++++++++++ .../_index.md | 236 +++++++++++++++++ .../_index.md | 184 ++++++++++++++ .../_index.md | 220 ++++++++++++++++ .../_index.md | 236 +++++++++++++++++ .../_index.md | 233 +++++++++++++++++ .../_index.md | 184 ++++++++++++++ .../_index.md | 221 ++++++++++++++++ .../_index.md | 237 +++++++++++++++++ .../_index.md | 234 +++++++++++++++++ .../_index.md | 185 ++++++++++++++ .../_index.md | 223 ++++++++++++++++ .../_index.md | 239 +++++++++++++++++ .../_index.md | 235 +++++++++++++++++ .../_index.md | 187 ++++++++++++++ .../_index.md | 223 ++++++++++++++++ .../_index.md | 240 ++++++++++++++++++ .../_index.md | 236 +++++++++++++++++ .../_index.md | 186 ++++++++++++++ .../_index.md | 222 ++++++++++++++++ .../_index.md | 240 ++++++++++++++++++ .../_index.md | 235 +++++++++++++++++ .../_index.md | 186 ++++++++++++++ .../_index.md | 222 ++++++++++++++++ .../_index.md | 239 +++++++++++++++++ .../_index.md | 236 +++++++++++++++++ .../_index.md | 184 ++++++++++++++ .../_index.md | 222 ++++++++++++++++ .../_index.md | 237 +++++++++++++++++ .../_index.md | 235 +++++++++++++++++ .../_index.md | 184 ++++++++++++++ .../_index.md | 221 ++++++++++++++++ .../_index.md | 237 +++++++++++++++++ .../_index.md | 234 +++++++++++++++++ .../_index.md | 149 +++++++++++ .../_index.md | 220 ++++++++++++++++ .../_index.md | 238 +++++++++++++++++ .../_index.md | 236 +++++++++++++++++ .../_index.md | 185 ++++++++++++++ .../_index.md | 221 ++++++++++++++++ .../_index.md | 238 +++++++++++++++++ .../_index.md | 213 ++++++++++++++++ 96 files changed, 20152 insertions(+) create mode 100644 barcode/arabic/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md create mode 100644 barcode/arabic/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md create mode 100644 barcode/arabic/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md create mode 100644 barcode/arabic/python-java/general/how-to-set-barcode-complete-c-guide/_index.md create mode 100644 barcode/chinese/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md create mode 100644 barcode/chinese/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md create mode 100644 barcode/chinese/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md create mode 100644 barcode/chinese/python-java/general/how-to-set-barcode-complete-c-guide/_index.md create mode 100644 barcode/czech/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md create mode 100644 barcode/czech/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md create mode 100644 barcode/czech/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md create mode 100644 barcode/czech/python-java/general/how-to-set-barcode-complete-c-guide/_index.md create mode 100644 barcode/dutch/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md create mode 100644 barcode/dutch/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md create mode 100644 barcode/dutch/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md create mode 100644 barcode/dutch/python-java/general/how-to-set-barcode-complete-c-guide/_index.md create mode 100644 barcode/english/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md create mode 100644 barcode/english/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/og-image.png create mode 100644 barcode/english/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md create mode 100644 barcode/english/python-java/general/create-planet-barcode-in-c-complete-programming-guide/og-image.png create mode 100644 barcode/english/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md create mode 100644 barcode/english/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/og-image.png create mode 100644 barcode/english/python-java/general/how-to-set-barcode-complete-c-guide/_index.md create mode 100644 barcode/english/python-java/general/how-to-set-barcode-complete-c-guide/og-image.png create mode 100644 barcode/french/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md create mode 100644 barcode/french/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md create mode 100644 barcode/french/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md create mode 100644 barcode/french/python-java/general/how-to-set-barcode-complete-c-guide/_index.md create mode 100644 barcode/german/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md create mode 100644 barcode/german/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md create mode 100644 barcode/german/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md create mode 100644 barcode/german/python-java/general/how-to-set-barcode-complete-c-guide/_index.md create mode 100644 barcode/greek/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md create mode 100644 barcode/greek/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md create mode 100644 barcode/greek/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md create mode 100644 barcode/greek/python-java/general/how-to-set-barcode-complete-c-guide/_index.md create mode 100644 barcode/hindi/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md create mode 100644 barcode/hindi/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md create mode 100644 barcode/hindi/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md create mode 100644 barcode/hindi/python-java/general/how-to-set-barcode-complete-c-guide/_index.md create mode 100644 barcode/hongkong/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md create mode 100644 barcode/hongkong/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md create mode 100644 barcode/hongkong/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md create mode 100644 barcode/hongkong/python-java/general/how-to-set-barcode-complete-c-guide/_index.md create mode 100644 barcode/hungarian/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md create mode 100644 barcode/hungarian/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md create mode 100644 barcode/hungarian/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md create mode 100644 barcode/hungarian/python-java/general/how-to-set-barcode-complete-c-guide/_index.md create mode 100644 barcode/indonesian/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md create mode 100644 barcode/indonesian/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md create mode 100644 barcode/indonesian/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md create mode 100644 barcode/indonesian/python-java/general/how-to-set-barcode-complete-c-guide/_index.md create mode 100644 barcode/italian/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md create mode 100644 barcode/italian/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md create mode 100644 barcode/italian/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md create mode 100644 barcode/italian/python-java/general/how-to-set-barcode-complete-c-guide/_index.md create mode 100644 barcode/japanese/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md create mode 100644 barcode/japanese/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md create mode 100644 barcode/japanese/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md create mode 100644 barcode/japanese/python-java/general/how-to-set-barcode-complete-c-guide/_index.md create mode 100644 barcode/korean/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md create mode 100644 barcode/korean/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md create mode 100644 barcode/korean/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md create mode 100644 barcode/korean/python-java/general/how-to-set-barcode-complete-c-guide/_index.md create mode 100644 barcode/polish/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md create mode 100644 barcode/polish/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md create mode 100644 barcode/polish/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md create mode 100644 barcode/polish/python-java/general/how-to-set-barcode-complete-c-guide/_index.md create mode 100644 barcode/portuguese/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md create mode 100644 barcode/portuguese/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md create mode 100644 barcode/portuguese/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md create mode 100644 barcode/portuguese/python-java/general/how-to-set-barcode-complete-c-guide/_index.md create mode 100644 barcode/russian/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md create mode 100644 barcode/russian/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md create mode 100644 barcode/russian/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md create mode 100644 barcode/russian/python-java/general/how-to-set-barcode-complete-c-guide/_index.md create mode 100644 barcode/spanish/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md create mode 100644 barcode/spanish/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md create mode 100644 barcode/spanish/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md create mode 100644 barcode/spanish/python-java/general/how-to-set-barcode-complete-c-guide/_index.md create mode 100644 barcode/swedish/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md create mode 100644 barcode/swedish/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md create mode 100644 barcode/swedish/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md create mode 100644 barcode/swedish/python-java/general/how-to-set-barcode-complete-c-guide/_index.md create mode 100644 barcode/thai/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md create mode 100644 barcode/thai/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md create mode 100644 barcode/thai/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md create mode 100644 barcode/thai/python-java/general/how-to-set-barcode-complete-c-guide/_index.md create mode 100644 barcode/turkish/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md create mode 100644 barcode/turkish/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md create mode 100644 barcode/turkish/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md create mode 100644 barcode/turkish/python-java/general/how-to-set-barcode-complete-c-guide/_index.md create mode 100644 barcode/vietnamese/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md create mode 100644 barcode/vietnamese/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md create mode 100644 barcode/vietnamese/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md create mode 100644 barcode/vietnamese/python-java/general/how-to-set-barcode-complete-c-guide/_index.md diff --git a/barcode/arabic/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md b/barcode/arabic/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md new file mode 100644 index 000000000..1139196b1 --- /dev/null +++ b/barcode/arabic/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md @@ -0,0 +1,182 @@ +--- +category: general +date: 2026-08-15 +description: صورة الباركود بصيغة PNG في C# – تعلم كيفية إنشاء باركودات بريدية، وإنشاء + باركود Planet، وتغيير ارتفاع الباركود باستخدام مولد بسيط. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- barcode image png +- barcode generator c# +- generate postal barcode +- create planet barcode +- change barcode height +language: ar +lastmod: 2026-08-15 +og_description: يظهر دليل إنشاء صورة باركود PNG في C# كيفية توليد باركودات بريدية، + وإنشاء باركود Planet، وتغيير ارتفاع الباركود باستخدام واجهة برمجة التطبيقات BarcodeGenerator. +og_image_alt: Screenshot of generated PNG barcode with custom height using C# BarcodeGenerator +og_title: صورة الباركود PNG في C# – إنشاء وتعديل الباركود +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Barcode image PNG in C# – learn how to generate postal barcodes, create + a Planet barcode, and change barcode height with a simple generator. + headline: Barcode image PNG in C# generate barcodes, change height + type: TechArticle +tags: +- barcode +- C# +- PNG +- postal +- generator +title: صورة الباركود PNG في C# توليد الباركود، تغيير الارتفاع +url: /ar/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# صورة باركود PNG في C# – إنشاء الباركود، تغيير الارتفاع + +إذا كنت بحاجة إلى **barcode image PNG** في C#، فإن هذا الدليل يشرح لك العملية بالكامل. ستتعلم كيفية إنشاء باركودات بريدية، وإنشاء باركود Planet، وتغيير ارتفاع الباركود دون مغادرة بيئة التطوير المتكاملة الخاصة بك. + +إنشاء باركودات PNG موثوقة هو طلب شائع لملصقات الشحن، وأنظمة المخزون، وحلول البريد الآلية. بنهاية هذا الدرس ستحصل على قطعة كود قابلة لإعادة الاستخدام تنتج ملفات PNG عالية الجودة لكل من صيغتي Planet وRM4SCC، وستفهم كيفية ضبط ارتفاع الخط لتلبية مواصفات البريد. + +## ما ستحتاجه + +- .NET 6+ أو .NET Framework 4.7.2 (BarcodeGenerator API يعمل مع أي بيئة تشغيل .NET حديثة) +- إشارة إلى حزمة NuGet **Aspose.BarCode for .NET** (أو أي مكتبة متوافقة توفر `BarcodeGenerator`، `EncodeTypes`، و`BarCodeImageFormat`) +- إلمام أساسي بصيغة C# وإدخال/إخراج الملفات + +لا توجد أدوات إضافية مطلوبة؛ الكود يعمل في Visual Studio أو Rider أو سطر أوامر `dotnet` CLI. + +## صورة باركود PNG – الإنشاء الأساسي + +الخطوة الأولى هي إنشاء **barcode image PNG** بأبعاد افتراضية. هذا يحدد ملف الأساس الذي يمكنك تخصيصه لاحقًا. + +```csharp +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +// Define the output folder (replace with your own path) +string outputFolder = @"C:\Barcodes"; + +// Ensure the folder exists +Directory.CreateDirectory(outputFolder); + +// 1️⃣ Create a Planet barcode generator with default height +BarcodeGenerator planetGenerator = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + +// Set the module width (X‑dimension) to 4 pixels – this defines the thin bar size +planetGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the image as PNG; this is the first **barcode image PNG** you’ll produce +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +**لماذا هذا يعمل:** +- `EncodeTypes.Planet` يخبر المولد باستخدام رموز Planet، وهو مطلوب للعديد من خدمات البريد. +- `XDimension.Pixels` يتحكم في عرض أصغر شريط؛ قيمة 4 px تنتج باركودًا قابلًا للقراءة في أحجام الملصقات المعتادة. +- طريقة `Save` تكتب ملف **barcode image PNG** إلى القرص، مع الحفاظ على جميع المعلومات المتجهية كبيكسلات نقطية. + +## تغيير ارتفاع الباركود – تخصيص الوزن البصري + +غالبًا ما تتطلب إرشادات البريد ارتفاع شريط محدد. يوضح المقتطف التالي كيفية تعيين ارتفاع مخصص قدره 100 بكسل لنفس باركود Planet. + +```csharp +// 2️⃣ Apply a custom 100‑pixel bar height +planetGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Overwrite or save as a new file to keep both versions +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +**لماذا تغير الارتفاع:** +شريط أطول يحسن موثوقية المسح على الطابعات منخفضة الدقة، بينما شريط أقصر يقلل من مساحة الملصق. خاصية `BarHeight.Pixels` تتيح لك ضبط هذا العنصر بدقة دون التأثير على البعد X. + +## إنشاء باركود بريدي – مثال RM4SCC + +صيغة RM4SCC هي باركود بريدي شائع آخر يُستخدم في المملكة المتحدة. خطوات الإنشاء تعكس مثال Planet، مما يعزز نمط **barcode generator c#**. + +```csharp +// 3️⃣ Create an RM4SCC barcode generator with default height +BarcodeGenerator rm4sccGenerator = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Keep the same module width for consistency +rm4sccGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the default‑height PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +## تغيير ارتفاع الباركود – تعديل RM4SCC + +مثل باركود Planet، يمكنك تعديل ارتفاع شريط RM4SCC. يحدد الكود أدناه الارتفاع إلى 100 px، منتجًا **barcode image PNG** ثاني لنفس سلسلة البيانات. + +```csharp +// 4️⃣ Set a custom 100‑pixel bar height for RM4SCC +rm4sccGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Save the customized PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +## مثال كامل قابل للتنفيذ + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +class Program +{ + static void Main() + { + string outputFolder = @"C:\Barcodes"; + Directory.CreateDirectory(outputFolder); + + // Planet barcode – default height + var planet = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planet.Parameters.Barcode.XDimension.Pixels = 4; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // Planet barcode – custom 100‑pixel height + planet.Parameters.Barcode.BarHeight.Pixels = 100; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – default height + var rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – custom 100‑pixel height + rm4scc.Parameters.Barcode.BarHeight.Pixels = 100; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); + + Console.WriteLine("All barcode PNG files have been generated in " + + + +## ماذا يجب أن تتعلم بعد ذلك؟ + +الدروس التالية تغطي مواضيع ذات صلة وثيقة تبني على التقنيات التي تم توضيحها في هذا الدليل. كل مصدر يتضمن أمثلة كود كاملة مع شروحات خطوة بخطوة لمساعدتك على إتقان ميزات API إضافية واستكشاف أساليب تنفيذ بديلة في مشاريعك. + +- [إنشاء باركود بارتفاع مخصص – باركودات أحادية البعد](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-barcode-height-adjustment/) +- [إنشاء باركود PNG – نسبة أبعاد DataMatrix – Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-aspect-ratio-customization/) +- [إنشاء صورة باركود C# – مثال GS1 DataMatrix](/barcode/english/net/gs1-barcode-encoding/gs1-datamatrix-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/arabic/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md b/barcode/arabic/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md new file mode 100644 index 000000000..e9a9444ad --- /dev/null +++ b/barcode/arabic/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-08-15 +description: إنشاء باركود كوكب في C# وتعلم كيفية ضبط أبعاد الباركود للحصول على حجم + مثالي. مثال شفري خطوة بخطوة مع أشرطة مملوءة وفارغة. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create planet barcode +- how to set barcode dimensions +- planet barcode C# +- barcode X‑dimension +- empty barcode bars +language: ar +lastmod: 2026-08-15 +og_description: أنشئ باركود كوكب في C# وتعلم كيفية ضبط أبعاد الباركود. اتبع هذا الدليل + لإنشاء باركودات كوكب مملوءة وفارغة على الفور. +og_image_alt: Screenshot showing a Planet barcode with filled bars generated by C# + code +og_title: إنشاء باركود كوكب في C# – دليل خطوة بخطوة كامل +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Create planet barcode in C# and learn how to set barcode dimensions + for perfect sizing. Step‑by‑step code example with filled and empty bars. + headline: Create planet barcode in C# – complete programming guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.BarCode +title: إنشاء باركود كوكب في C# – دليل برمجي كامل +url: /ar/python-java/general/create-planet-barcode-in-c-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# إنشاء باركود كوكب في C# – دليل برمجة كامل + +إذا كنت بحاجة إلى **إنشاء باركود كوكب** في C#، فإن هذا الدليل يوضح لك بالضبط كيفية القيام بذلك. ستكتشف أيضًا **كيفية ضبط أبعاد الباركود** بحيث تظهر الأشرطة بالعرض الدقيق الذي تحتاجه. + +يُعد إنشاء باركودات كوكب أمرًا شائعًا عند العمل مع خدمات البريد أو أنظمة اللوجستيات. يغطي الكود أدناه كلًا من النسخة المملوءة بالأشرطة (filled‑bar) والنسخة الاختيارية ذات الأشرطة الفارغة (empty‑bar)، بالإضافة إلى مثال سريع لتنسيق RM4SCC. بنهاية هذا الدرس ستحصل على مقتطف قابل لإعادة الاستخدام يمكنك إدراجه في أي مشروع .NET. + +## المتطلبات المسبقة + +قبل أن تبدأ، تأكد من وجود ما يلي: + +* .NET 6.0 أو أحدث مثبت (تعمل الواجهة البرمجية أيضًا مع .NET Framework 4.6+) +* حزمة NuGet **Aspose.BarCode for .NET** (`Aspose.BarCode`) مضافة إلى مشروعك +* مسار مجلد قابل للكتابة حيث سيتم حفظ ملفات PNG +* إلمام أساسي بصياغة C# وVisual Studio (أو أي بيئة تطوير متكاملة) + +> **نصيحة احترافية:** استخدم مسارًا مطلقًا أو `Path.Combine(Environment.CurrentDirectory, "output")` لتجنب مشاكل الأذونات عند حفظ الصور. + +## الخطوة 1 – تهيئة مولّد باركود كوكب (أشرطة مملوءة) + +الخطوة الأولى هي إنشاء كائن `BarcodeGenerator` لرمز كوكب. بشكل افتراضي ينتج المولّد أشرطة **مملوءة**. + +```csharp +// Step 1: Create a Planet barcode with the default (filled) bars +BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +تُخبر قيمة التعداد `EncodeTypes.Planet` Aspose.BarCode باستخدام تنسيق كوكب، بينما `"123456"` هو البيانات التي سيتم ترميزها. + +## الخطوة 2 – كيفية ضبط أبعاد الباركود لتوحيد الحجم + +للتحكم في عرض كل شريط، اضبط **X‑dimension**. هذه هي الطريقة الأساسية **لضبط أبعاد الباركود** وتضمن أن الباركود يتناسب مع حجم الملصق الخاص بك. + +```csharp +// Step 2: Set the X‑dimension (width of each bar) to 4 pixels +planetFilled.Parameters.Barcode.XDimension.Pixels = 4; +``` + +خاصية `Pixels` تحدد عرض الشريط بوحدات بكسل الشاشة. القيم الشائعة هي 2 – 5 بكسل للملصقات البريدية القياسية؛ زد القيمة للطباعة بأحجام أكبر. + +## الخطوة 3 – حفظ باركود كوكب المملوء كملف PNG + +الآن احفظ الصورة على القرص. PNG يحافظ على الحواف الحادة، وهو مثالي للمسح الضوئي. + +```csharp +// Step 3: Save the Planet barcode as a PNG image +planetFilled.Save("YOUR_DIRECTORY/PostalPlanetFilledBars.png", BarCodeImageFormat.Png); +``` + +استبدل `YOUR_DIRECTORY` بالمسار الذي أعددته مسبقًا. بعد تشغيل هذا الكود سترى ملفًا مشابهًا للصورة أدناه. + +![Planet barcode with filled bars](planet_filled.png "Planet barcode with filled bars – created by C# code") + +*نص بديل:* **Planet barcode with filled bars generated by C# code** (matches `og_image_alt`). + +## الخطوة 4 – إنشاء باركود كوكب بأشرطة فارغة (غير مملوءة) + +إذا كان مزود البريد يتطلب أن تكون الأشرطة **فارغة**، عليك تبديل علم `FilledBars` بعد تهيئة المولّد. + +```csharp +// Step 4: Create a Planet barcode with empty (unfilled) bars +BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +المُنشئ هو نفسه؛ الاختلاف يكمن في خطوة التكوين التالية. + +## الخطوة 5 – كيفية ضبط أبعاد الباركود وجعل الأشرطة فارغة + +مرة أخرى، اضبط X‑dimension لتوحيد المظهر، ثم عطل الأشرطة المملوءة. + +```csharp +// Step 5: Set the X‑dimension and specify that bars should be empty +planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; +planetEmpty.Parameters.Barcode.FilledBars = false; // makes bars empty +``` + +خاصية `FilledBars = false` هي ما يغيّر نمط العرض فعليًا. الحفاظ على نفس X‑dimension يضمن أن باركود الأشرطة الفارغة يتطابق تمامًا مع النسخة المملوءة. + +## الخطوة 6 – حفظ باركود كوكب الفارغ + +```csharp +// Step 6: Save the Planet barcode with empty bars as a PNG image +planetEmpty.Save("YOUR_DIRECTORY/PostalPlanetEmptyBars.png", BarCodeImageFormat.Png); +``` + +ستحصل الآن على ملفي PNG: أحدهما بأشرطة صلبة والآخر بأشرطة مجوفة، كلاهما يشارك نفس الأبعاد. + +## الخطوة 7 – (اختياري) إنشاء باركود RM4SCC للمقارنة + +RM4SCC هو رمز بريدي آخر يستخدم نمط الأشرطة المملوءة الافتراضي. الخطوات مماثلة لمثال كوكب، مما يوضح أن **كيفية ضبط أبعاد الباركود** تعمل عبر الصيغ المختلفة. + +```csharp +// Step 7: Create an RM4SCC barcode (filled bars are the default) +BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Step 8: Set the X‑dimension for consistency +rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + +// Step 9: Save the RM4SCC barcode as a PNG image +rm4scc.Save("YOUR_DIRECTORY/PostalRM4SCCFilledBars.png", BarCodeImageFormat.Png); +``` + +تشغيل هذه الخطوات الثلاث ينتج الملف `PostalRM4SCCFilledBars.png`، والذي يمكنك مقارنته جنبًا إلى جنب مع مخرجات كوكب. + +## لماذا تُعد X‑dimension مهمة؟ + +تحدد X‑dimension **العرض القابل للطباعة الأدنى** لكل شريط. إذا ضبطتها منخفضًا جدًا، قد يصبح الباركود غير واضح على الطابعات منخفضة الدقة، مما يسبب فشل المسح. وعلى العكس، قد يتجاوز X‑dimension الكبير أبعاد الملصق ويهدر مساحة. من خلال توضيح **كيفية ضبط أبعاد الباركود**، تحصل على تحكم حتمي في حجم الصورة النهائي، وهو أمر أساسي لسير عمل البريد الآلي. + +## الأخطاء الشائعة وكيفية تجنّبها + +| المشكلة | السبب | الحل | +|-------|-------|-----| +| يظهر الباركود مشوهًا | تم ضبط X‑dimension بالنقاط بدلاً من البكسل | استخدم دائمًا خاصية `Pixels` للتحكم بدقة البكسل | +| الأشرطة الفارغة لا تزال تبدو مملوءة | لم يتم تعيين `FilledBars` إلى `false` بعد تغيير X‑dimension | عيّن `FilledBars = false` *بعد* ضبط X‑dimension | +| الملف المحفوظ فارغ | دليل الإخراج غير موجود أو لا يملك صلاحية كتابة | تأكد من وجود الدليل (`Directory.CreateDirectory`) وأن التطبيق يعمل بصلاحيات كافية | +| الصورة غير واضحة عند الطباعة | تم حفظ PNG بدقة DPI منخفضة من شاشة عالية الدقة | استخدم `BarCodeImageFormat.Png` (بدون فقد) وفكّر في خاصية `Resolution` إذا لزم الأمر | + +## مثال كامل قابل للتنفيذ + +انسخ الكتلة الكاملة أدناه إلى مشروع وحدة تحكم جديد (`dotnet new console`) وشغّله. البرنامج ينشئ ثلاثة ملفات PNG في مجلد `output`. + +```csharp +using System; +using System.IO; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Ensure output folder exists + string outDir = Path.Combine(Environment.CurrentDirectory, "output"); + Directory.CreateDirectory(outDir); + + // ---------- Planet barcode – filled bars ---------- + BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetFilled.Parameters.Barcode.XDimension.Pixels = 4; // set dimensions + planetFilled.Save(Path.Combine(outDir, "PostalPlanetFilledBars.png"), BarCodeImageFormat.Png); + + // ---------- Planet barcode – empty bars ---------- + BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; // same dimensions + planetEmpty.Parameters.Barcode.FilledBars = false; // make bars empty + planetEmpty.Save(Path.Combine(outDir, "PostalPlanetEmptyBars.png"), BarCodeImageFormat.Png); + + // ---------- RM4SCC barcode (filled bars) ---------- + BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; // consistent size + rm4scc.Save(Path.Combine(outDir, "PostalRM4SCCFilledBars.png"), BarCodeImageFormat.Png); + + Console.WriteLine($"Barcodes generated in: {outDir}"); + } +} +``` + +**الناتج المتوقع:** ثلاثة ملفات PNG—`PostalPlanetFilledBars.png`، `PostalPlanetEmptyBars.png`، و`PostalRM4SCCFilledBars.png`—كلها بأشرطة عرضها 4 بكسل، جاهزة للطباعة أو المعالجة الإضافية. + +## الخلاصة + +أنت الآن تعرف **كيفية إنشاء باركود كوكب** في C# وكيفية **ضبط أبعاد الباركود** بدقة لكل من أنماط الأشرطة المملوءة والفارغة. النمط نفسه ينطبق على رموز أخرى مثل RM4SCC، مما يمنحك أساسًا مرنًا لأي متطلبات باركود بريدي. + +الخطوات التالية التي قد تستكشفها: + +* إضافة نص قابل للقراءة للإنسان أسفل الباركود (`BarcodeGenerator.Parameters.Barcode.CodeText`) +* تغيير ألوان الأشرطة باستخدام `Parameters.Barcode.BarColor` +* إنشاء باركودات بصيغ متجهة (SVG, EPS) للطباعة القابلة للتوسيع + +لا تتردد في تجربة قيم X‑dimension مختلفة، سلاسل البيانات، وصيغ الإخراج لتتناسب مع سير عملك الخاص. برمجة سعيدة! + +## ما الذي يجب أن تتعلمه بعد ذلك؟ + +الدروس التالية تغطي مواضيع ذات صلة وثيقة تبني على التقنيات الموضحة في هذا الدليل. كل مورد يتضمن أمثلة شفرة كاملة مع شروحات خطوة بخطوة لمساعدتك على إتقان ميزات API إضافية واستكشاف أساليب تنفيذ بديلة في مشاريعك. + +- [How to create barcode quiet zone for Code 16K using Aspose.BarCode for .NET](/barcode/english/net/code-16k-encoding/code-16k-quiet-zone-settings/) +- [How to Create Barcode Quiet Zone for ITF-14 Using Aspose.BarCode for .NET](/barcode/english/net/itf-14-barcode-customization/itf-14-barcode-quiet-zone-configuration/) +- [How to create Aztec barcode with error correction in .NET](/barcode/english/net/aztec-barcode-encoding/aztec-error-level-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/arabic/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md b/barcode/arabic/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md new file mode 100644 index 000000000..a9e33a1d3 --- /dev/null +++ b/barcode/arabic/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md @@ -0,0 +1,237 @@ +--- +category: general +date: 2026-08-15 +description: توسيع توليد الباركود المتراكم في C# باستخدام Databar. تعلّم كيفية إنشاء + صورة الباركود، وتحديد الأعمدة والصفوف لتصاميم DataBar. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- databar expanded stacked +- generate barcode image +- how to generate barcode +- how to set columns +- how to set rows +language: ar +lastmod: 2026-08-15 +og_description: توسيع توليد الباركود المتراكم في C# باستخدام Databar. اتبع هذا الدليل + خطوة بخطوة لإنشاء صور الباركود، وتحديد الأعمدة، وتحديد الصفوف بكفاءة. +og_image_alt: Screenshot of a databar expanded stacked barcode generated with C# +og_title: داتابار الموسع المتراكم – إنشاء صورة الباركود بلغة C# +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + headline: 'Databar expanded stacked: generate barcode image in C#' + type: TechArticle +- description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + name: 'Databar expanded stacked: generate barcode image in C#' + steps: + - name: 1. Install the Aspose.BarCode library + text: 'The code uses the **Aspose.BarCode for .NET** library, which provides the + `BarcodeGenerator` class. Install the NuGet package with the following command:' + - name: 2. Create a barcode generator for **databar expanded stacked** + text: The generator is the entry point for all barcode operations. You must specify + the symbology (`EncodeTypes.DatabarExpandedStacked`) and the text to encode. + - name: 3. How to set columns for DataBar + text: The `Columns` property controls how many vertical modules appear in the + stacked barcode. Valid values are 2, 3, or 4. Setting columns influences the + barcode’s width and the amount of data it can store. + - name: 4. Save the 4‑column barcode image + text: Saving the image produces a file that you can embed in reports, invoices, + or mobile apps. The `Save` method accepts a file path and an image format. + - name: 5. How to set rows for DataBar + text: Rows add a second dimension to the stacked layout, allowing more data to + be encoded without widening the barcode. The `Rows` property defaults to 1; + you can increase it up to 3 for the expanded stacked variant. + - name: 6. Save the 3‑row barcode image + text: '```csharp // Step 5: Save the 3‑row barcode image barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", + BarCodeImageFormat.Png); ```' + - name: 7. Complete C# example to generate barcode image + text: 'Putting all steps together yields a self‑contained program you can copy + into a console application:' + type: HowTo +tags: +- barcode +- C# +- Aspose.BarCode +title: 'Databar الموسع المتراكم: توليد صورة الباركود في C#' +url: /ar/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Databar expanded stacked: إنشاء صورة رمز شريطي في C# + +إذا كنت بحاجة إلى إنشاء صورة رمز شريطي **databar expanded stacked** في C#، يوضح لك هذا الدليل بالضبط **كيفية إنشاء رمز شريطي** بصور مع تخطيطات مخصصة للأعمدة والصفوف. سترى كيفية ضبط الأعمدة، وكيفية ضبط الصفوف، وكيفية حفظ الصور الناتجة دون مغادرة بيئة التطوير المتكاملة. + +الدليل يغطي: + +* إنشاء مولد رمز شريطي لتقنية **databar expanded stacked**. +* تكوين تخطيط بـ 4 أعمدة وتخطيط بـ 3 صفوف. +* حفظ كل تكوين كملف PNG. +* نصائح للتعامل مع الحالات الحدية مثل عدد الأعمدة غير الصالح. + +لا حاجة إلى وثائق خارجية؛ المثال الكامل القابل للتنفيذ مضمّن. + +![Databar expanded stacked barcode example](YOUR_DIRECTORY/DatabarCols4.png){: .center alt="رمز شريطي databar expanded stacked تم إنشاؤه باستخدام C#" } + +## خطوات إنشاء رمز شريطي Databar expanded stacked + +### 1. تثبيت مكتبة Aspose.BarCode + +يستخدم الكود مكتبة **Aspose.BarCode for .NET** التي توفر الفئة `BarcodeGenerator`. ثبّت حزمة NuGet بالأمر التالي: + +```bash +dotnet add package Aspose.BarCode +``` + +بعد تثبيت الحزمة، أضف مساحة الاسم المطلوبة في أعلى ملفك: + +```csharp +using Aspose.BarCode.Generation; +``` + +### 2. إنشاء مولد رمز شريطي لـ **databar expanded stacked** + +المولد هو نقطة الدخول لجميع عمليات الرموز الشريطية. يجب تحديد نوع الرمز (`EncodeTypes.DatabarExpandedStacked`) والنص المراد ترميزه. + +```csharp +// Step 1: Create a barcode generator for Databar Expanded Stacked +BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); +``` + +*لماذا هذا مهم:* يحدد تعداد `EncodeTypes` للمكتبة أي تنسيق رمز شريطي يجب إنتاجه. استخدام **databar expanded stacked** يضمن أن الصورة الناتجة تتبع مواصفات GS1 DataBar للتخطيطات المتكدسة. + +### 3. كيفية ضبط الأعمدة لـ DataBar + +خاصية `Columns` تتحكم في عدد الوحدات العمودية التي تظهر في الرمز المتكدس. القيم الصالحة هي 2، 3 أو 4. ضبط الأعمدة يؤثر على عرض الرمز وكمية البيانات التي يمكنه تخزينها. + +```csharp +// Step 2: Configure a 4‑column layout +barcode.Parameters.Barcode.DataBar.Columns = 4; +``` + +**نصيحة:** إذا حاولت تعيين قيمة خارج النطاق المسموح، ستطرح المكتبة استثناءً من نوع `ArgumentException`. احرص دائمًا على التحقق من صحة الإدخال عند إتاحة اختيار الأعمدة للمستخدمين. + +### 4. حفظ صورة الرمز ذات 4 أعمدة + +حفظ الصورة ينتج ملفًا يمكنك تضمينه في التقارير أو الفواتير أو التطبيقات المحمولة. طريقة `Save` تقبل مسار الملف وتنسيق الصورة. + +```csharp +// Step 3: Save the 4‑column barcode image +barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); +``` + +عند كتابة الملف، يمكنك فتحه بأي عارض صور لتأكيد ظهور نمط **databar expanded stacked** بشكل صحيح. + +### 5. كيفية ضبط الصفوف لـ DataBar + +الصفوف تضيف بُعدًا ثانيًا إلى التخطيط المتكدس، مما يسمح بترميز المزيد من البيانات دون توسيع عرض الرمز. الخاصية `Rows` قيمتها الافتراضية 1؛ يمكنك زيادتها حتى 3 للنسخة المتكدسة الموسعة. + +```csharp +// Step 4: Switch to a 3‑row layout (columns remain unchanged) +barcode.Parameters.Barcode.DataBar.Rows = 3; +``` + +**لماذا الصفوف مهمة:** زيادة عدد الصفوف تقلل العرض الكلي مع الحفاظ على سعة البيانات، وهو ما يكون مفيدًا للملصقات الضيقة أو شاشات الهواتف المحمولة. + +### 6. حفظ صورة الرمز ذات 3 صفوف + +```csharp +// Step 5: Save the 3‑row barcode image +barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); +``` + +الآن لديك ملفي PNG—أحدهما بتخطيط 4 أعمدة والآخر بتخطيط 3 صفوف—كلاهما يستخدم تقنية **databar expanded stacked**. + +### 7. مثال كامل بلغة C# لإنشاء صورة رمز شريطي + +دمج جميع الخطوات معًا ينتج برنامجًا مستقلًا يمكنك نسخه إلى تطبيق وحدة تحكم: + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace DatabarExpandedStackedDemo +{ + class Program + { + static void Main() + { + // Create the generator for Databar Expanded Stacked + BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); + + // Configure a 4‑column layout and save + barcode.Parameters.Barcode.DataBar.Columns = 4; + barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); + Console.WriteLine("4‑column barcode saved."); + + // Change to a 3‑row layout (columns stay at 4) and save + barcode.Parameters.Barcode.DataBar.Rows = 3; + barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); + Console.WriteLine("3‑row barcode saved."); + } + } +} +``` + +**الناتج المتوقع** + +تشغيل البرنامج يطبع: + +``` +4‑column barcode saved. +3‑row barcode saved. +``` + +ويُنشئ ملفي PNG في `YOUR_DIRECTORY`. افتح الملفات للتحقق من أن كل صورة تعرض رمزًا شريطيًا **databar expanded stacked** صالحًا. + +## المشكلات الشائعة والنصائح العملية + +* **وجود المجلد** – طريقة `Save` لا تنشئ المجلدات المفقودة. تأكد من وجود `YOUR_DIRECTORY` أو استخدم `Directory.CreateDirectory` قبل الحفظ. +* **حدود الأعمدة** – القيم غير 2، 3 أو 4 تُسبب استثناءً. احمِ تطبيقك من أخطاء إدخال المستخدم بفحص بسيط للنطاق: + + ```csharp + int columns = 4; + if (columns < 2 || columns > 4) throw new ArgumentOutOfRangeException(nameof(columns)); + barcode.Parameters.Barcode.DataBar.Columns = columns; + ``` + +* **حدود الصفوف** – النسخة المتكدسة الموسعة تدعم حتى 3 صفوف. ضبط `Rows` إلى 0 أو إلى قيمة أكبر من 3 يرفع استثناءً أيضًا. +* **تنسيق الصورة** – `BarCodeImageFormat.Png` يوفر جودة غير مضغوطة، وهو مثالي للطباعة. استخدم `Jpeg` فقط عندما يكون حجم الملف هو الأولوية الأساسية. + +## الخطوات التالية + +الآن بعد أن عرفت **كيفية إنشاء صور رمز شريطي** بتخطيطات مخصصة للأعمدة والصفوف، يمكنك: + +* دمج المولد في واجهة برمجة تطبيقات ويب لتقديم صور الرموز الشريطية عند الطلب. +* الجمع بين الرمز الشريطي ومكتبات إنشاء PDF لتضمينه في الفواتير. +* تجربة متغيرات DataBar أخرى (`DatabarExpanded`, `DatabarLimited`) باستخدام نفس كائن `Parameters.Barcode.DataBar`. + +للتخصيص المتعمق—مثل تغيير لون الخط، إضافة نص قابل للقراءة البشرية، أو تطبيق طبقات QR‑code—ارجع إلى وثائق Aspose.BarCode حول خصائص `BarcodeGenerator`. + +--- + +باتباعك لهذا الدليل، تكون قد أتقنت سير عمل **databar expanded stacked**، وتعلمت **كيفية ضبط الأعمدة**، **كيفية ضبط الصفوف**، وأنتجت صورتين رمز شريطيين جاهزين للاستخدام الإنتاجي. Happy coding! + +## ما الذي يجب أن تتعلمه بعد ذلك؟ + +الدروس التالية تغطي مواضيع ذات صلة وثيقة تبني على التقنيات التي تم توضيحها في هذا الدليل. كل مورد يتضمن أمثلة شفرة كاملة مع شروحات خطوة بخطوة لمساعدتك على إتقان ميزات API إضافية واستكشاف أساليب تنفيذ بديلة في مشاريعك. + +- [Generate barcode image – GS1 Coupon UPC-A Databar](/barcode/english/net/gs1-barcode-encoding/gs1-coupon-upc-a-databar-configuration/) +- [Create DotCode barcode image – rows & columns (Aspose.BarCode)](/barcode/english/net/dotcode-barcode-configuration/dotcode-rows-columns-configuration/) +- [How to Generate Barcode - One-Dimensional Barcode Types](/barcode/english/net/one-dimensional-barcode-types/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/arabic/python-java/general/how-to-set-barcode-complete-c-guide/_index.md b/barcode/arabic/python-java/general/how-to-set-barcode-complete-c-guide/_index.md new file mode 100644 index 000000000..ce0d38d06 --- /dev/null +++ b/barcode/arabic/python-java/general/how-to-set-barcode-complete-c-guide/_index.md @@ -0,0 +1,236 @@ +--- +category: general +date: 2026-08-15 +description: كيفية ضبط معلمات الباركود في C# وإنشاء صور الباركود. تعلم خطوة بخطوة + إنشاء باركود Databar وحفظ ملفات PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to set barcode +- how to generate barcode +- create databar barcode +- generate barcode image c# +language: ar +lastmod: 2026-08-15 +og_description: كيفية تعيين الباركود في C# باستخدام Aspose.Barcode، ثم إنشاء صورة + الباركود C#. اتبع هذا الدليل لإنشاء باركود Databar وحفظ ملفات PNG. +og_image_alt: Screenshot of a Databar barcode saved as PNG using C# code +og_title: كيفية تعيين الباركود في C# – دليل خطوة بخطوة +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: How to set barcode parameters in C# and generate barcode images. Learn + step‑by‑step to create Databar barcode and save PNG files. + headline: How to set barcode – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.Barcode +title: كيفية إعداد الباركود – دليل C# الكامل +url: /ar/python-java/general/how-to-set-barcode-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية تعيين الباركود – دليل C# الكامل + +إذا كنت تبحث عن **how to set barcode** في مشروع .NET، فإن هذا الدليل يوضح الخطوات الدقيقة التي تحتاجها. ستتعلم **how to generate barcode** للصور، إنشاء باركود Databar، والتحكم في ارتفاع الشريط بكسل‑بكسل—كل ذلك باستخدام كود C# نظيف وجاهز للإنتاج. + +في هذا الدليل سوف: + +* تثبيت حزمة NuGet المطلوبة. +* إنشاء باركود Databar Omnidirectional (جزء “create Databar barcode”). +* ضبط X‑dimension وارتفاع الشريط لتوضيح أبعاد **how to set barcode**. +* حفظ النتيجة كملفات PNG، تغطي سيناريو **generate barcode image C#**. + +الكود يعمل مع أحدث Aspose.Barcode لـ .NET (الإصدار 24.12 وقت كتابة هذا الدليل) ويعمل على .NET 6 أو أحدث. + +--- + +## المتطلبات المسبقة + +قبل أن تبدأ، تأكد من أن لديك: + +* .NET 6 SDK (أو أي إصدار أحدث). +* بيئة تطوير متكاملة مثل Visual Studio 2022 أو VS Code. +* اتصال بالإنترنت لتنزيل حزمة Aspose.Barcode NuGet. + +لا توجد مكتبات طرف ثالث إضافية مطلوبة. + +--- + +## الخطوة 1: تثبيت Aspose.Barcode لـ .NET + +الطريقة الأكثر موثوقية لـ **generate barcode** في C# هي استخدام Aspose.Barcode. افتح طرفية في مجلد المشروع وشغّل: + +```bash +dotnet add package Aspose.BarCode +``` + +الأمر يضيف أحدث نسخة مستقرة إلى ملف المشروع، مما يضمن وجود الفئة `BarcodeGenerator` والتعداد `EncodeTypes`. + +*نصيحة احترافية:* حافظ على تحديث الحزمة (`dotnet list package --outdated`) للاستفادة من إصلاحات الأخطاء والرموز الشريطية الجديدة. + +--- + +## الخطوة 2: إنشاء باركود Databar (create Databar barcode) + +Databar Omnidirectional مثالي للتجزئة واللوجستيات لأنه يمكنه ترميز قيمة GTIN‑14 بالإضافة إلى بيانات إضافية. الكود التالي ينشئ كائن الباركود: + +```csharp +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +// Step 2: Initialize the generator for a Databar Omnidirectional barcode +BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); +``` + +*لماذا هذا مهم:* التعداد `EncodeTypes.DatabarOmniDirectional` يخبر المكتبة باستخدام رموز Databar، بينما السلسلة `"(01)12345678901231"` تتبع تنسيق معرف تطبيق GS1 لقيمة GTIN مكونة من 14 رقمًا. + +--- + +## الخطوة 3: تعريف المعلمات الشائعة – X‑dimension والارتفاع الأساسي + +معظم ماسحات الباركود تتوقع X‑dimension الحد الأدنى (عرض أضيق شريط). ضبطه على 2 بكسل يعطي صورة مدمجة ولكن قابلة للقراءة. + +```csharp +// Step 3: Set a 2‑pixel X‑dimension (common for most scanners) +generator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +يمكنك لاحقًا تعديل ارتفاع الشريط دون إعادة إنشاء المولد—هذا هو جوهر **how to set barcode** للسمات بعد الإنشاء. + +--- + +## الخطوة 4: ضبط ارتفاع الشريط الأول وحفظ الصورة (generate barcode image C#) + +الآن نوضح الجزء الأول من **how to set barcode** للارتفاع. ارتفاع الشريط يتحكم في الطول البصري لكل شريط؛ قيمة 30 بكسل تنتج باركود قصير، بينما 60 بكسل تُنشئ نسخة أطول. + +```csharp +// Step 4a: 30‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 30; + +// Save the first PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); +``` + +بعد التنفيذ، يحتوي الملف `DatabarBarHeight30Pixels.png` على باركود Databar بارتفاع شريط 30 بكسل. افتح الملف في أي عارض صور للتحقق من النتيجة. + +--- + +## الخطوة 5: تغيير ارتفاع الشريط وحفظ صورة ثانية + +لتوضيح أن قيم **how to set barcode** يمكن تغييرها في الوقت الفعلي، نقوم بتعديل ارتفاع الشريط إلى 60 بكسل ونكتب ملفًا ثانيًا. + +```csharp +// Step 5a: 60‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 60; + +// Save the second PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); +``` + +الآن لديك ملفا PNG يظهران نفس بيانات Databar لكن بارتفاعات بصرية مختلفة. هذا مفيد عندما تحتاج إلى باركود أكبر للملصقات المطبوعة أو أصغر للعرض على الشاشة. + +--- + +## الخطوة 6: مثال كامل قابل للتنفيذ + +بدمج كل شيء معًا، إليك برنامج وحدة تحكم مستقل ينفذ جميع الخطوات المذكورة أعلاه. انسخ الكود إلى ملف `Program.cs` جديد، استبدل `YOUR_DIRECTORY` بمسار مجلد فعلي، وشغّله. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Initialize the generator for a Databar Omnidirectional barcode + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); + + // Common parameters + generator.Parameters.Barcode.XDimension.Pixels = 2; // 2‑pixel narrow bar + + // First image: 30‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 30; + generator.Save(@"C:\Barcodes\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 30‑pixel barcode."); + + // Second image: 60‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 60; + generator.Save(@"C:\Barcodes\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 60‑pixel barcode."); + + // Dispose the generator to free native resources + generator.Dispose(); + } +} +``` + +**المخرجات المتوقعة** + +عند تشغيل البرنامج، يطبع الطرفية: + +``` +Saved 30-pixel barcode. +Saved 60-pixel barcode. +``` + +والمجلد `C:\Barcodes` (أو المسار الذي قدمته) يحتوي على ملفي PNG. كلا الصورتين تعرضان باركود Databar Omnidirectional صالح يمكن مسحه بواسطة قارئات GS1 القياسية. + +--- + +## الأسئلة المتكررة + +**هل يعمل هذا مع صيغ صور أخرى؟** +نعم. استبدل `BarCodeImageFormat.Png` بـ `Jpeg` أو `Bmp` أو `Gif` أو `Tiff` لتوليد نوع الملف المقابل. + +**هل يمكنني تغيير لون المقدمة؟** +عيّن `generator.Parameters.Barcode.ForeColor` إلى أي قيمة من `System.Drawing.Color`، مثل `Color.Blue`. + +**ماذا لو احتجت إلى رموز شريطية مختلفة؟** +مرّر قيمة `EncodeTypes` مختلفة إلى المُنشئ، مثل `EncodeTypes.Code128` لباركود خطي أو `EncodeTypes.QR` لرمز مصفوفة. + +**هل هناك طريقة لتضمين الباركود في ملف PDF؟** +توفر Aspose.Barcode فئة `PdfGenerator`. بعد توليد الصورة، يمكنك إضافتها إلى صفحة PDF باستخدام Aspose.PDF. + +--- + +## أفضل الممارسات لتوليد الباركود في C# + +* **إعادة استخدام كائن `BarcodeGenerator`** عندما تحتاج فقط إلى تعديل الأبعاد—هذا يتجنب تخصيص الذاكرة غير الضروري. +* **إلغاء تخصيص المولد** (`generator.Dispose()`) بعد الانتهاء لتحرير الموارد الأصلية بسرعة. +* **تحقق من صحة البيانات المدخلة** (مثل طول GTIN) قبل إنشاء الباركود لتجنب استثناءات وقت التشغيل. +* **اختبر باستخدام ماسح ضوئي فعلي** بعد تغيير X‑dimension أو ارتفاع الشريط؛ القيم المتطرفة قد تؤثر على قابلية القراءة. +* **احرص على أن يكون مجلد الإخراج قابلًا للكتابة** للحساب الذي ينفذ البرنامج؛ وإلا سيؤدي `Save` إلى رمي استثناء `UnauthorizedAccessException`. + +--- + +## الخلاصة + +أنت الآن تعرف **how to set barcode** للخصائص مثل X‑dimension وارتفاع الشريط، **how to generate barcode** للصور في C#، والخطوات الدقيقة لـ **create Databar barcode** باستخدام Aspose.Barcode. باتباع المثال الكامل، يمكنك توليد ملفات PNG متعددة بخصائص بصرية مختلفة، مما يلبي متطلبات **generate barcode image C#** لأي تطبيق .NET. + +بعد ذلك، استكشف المواضيع ذات الصلة مثل **how to generate barcode** بالجملة، تضمين الباركود في ملفات PDF، أو التحويل إلى رموز شريطية أخرى مثل QR أو Code 128. جرّب المعلمات المعروضة هنا لضبط مظهر الباركود بدقة لبيئة المسح الخاصة بك. برمجة سعيدة! + +--- + +## ما الذي يجب أن تتعلمه بعد ذلك؟ + +الدروس التالية تغطي مواضيع ذات صلة وثيقة تبني على التقنيات الموضحة في هذا الدليل. كل مصدر يتضمن أمثلة كود كاملة مع شروحات خطوة بخطوة لمساعدتك على إتقان ميزات API إضافية واستكشاف أساليب تنفيذ بديلة في مشاريعك. + +- [كيفية توليد باركود DataMatrix (ECC 200) باستخدام Aspose.BarCode لـ .NET](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-ecc-200-configuration/) +- [كيفية توليد باركود Aztec بنسبة عرض مخصصة باستخدام Aspose.BarCode لـ .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [كيفية توليد باركود – تكوين Code 39 باستخدام Aspose.BarCode](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-code-39-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/chinese/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md b/barcode/chinese/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md new file mode 100644 index 000000000..dd737cffe --- /dev/null +++ b/barcode/chinese/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md @@ -0,0 +1,183 @@ +--- +category: general +date: 2026-08-15 +description: 在 C# 中生成 PNG 条形码图像——学习如何生成邮政条形码、创建 Planet 条形码,并使用简易生成器更改条形码高度。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- barcode image png +- barcode generator c# +- generate postal barcode +- create planet barcode +- change barcode height +language: zh +lastmod: 2026-08-15 +og_description: C# 教程中的条形码 PNG 图像展示了如何生成邮政条形码、创建 Planet 条形码以及使用 BarcodeGenerator API + 更改条形码高度。 +og_image_alt: Screenshot of generated PNG barcode with custom height using C# BarcodeGenerator +og_title: C# 中的条形码 PNG 图像 – 生成和调整条形码 +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Barcode image PNG in C# – learn how to generate postal barcodes, create + a Planet barcode, and change barcode height with a simple generator. + headline: Barcode image PNG in C# generate barcodes, change height + type: TechArticle +tags: +- barcode +- C# +- PNG +- postal +- generator +title: 在 C# 中生成条形码 PNG 图像,修改高度 +url: /zh/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# 中的条形码 PNG 图像 – 生成条形码,修改高度 + +如果您需要在 C# 中生成 **barcode image PNG**,本指南将带您完整了解整个过程。您将学习如何生成邮政条形码、创建 Planet 条形码,以及在不离开 IDE 的情况下修改条形码高度。 + +生成可靠的 PNG 条形码是运输标签、库存系统和自动邮件解决方案的常见需求。完成本教程后,您将拥有一个可复用的代码片段,能够为 Planet 和 RM4SCC 两种格式生成高质量的 PNG 文件,并且了解如何调整条形码高度以符合邮政规范。 + +## 您需要的条件 + +- .NET 6+ 或 .NET Framework 4.7.2(BarcodeGenerator API 可在任何近期的 .NET 运行时上工作) +- 对 **Aspose.BarCode for .NET** NuGet 包的引用(或任何提供 `BarcodeGenerator`、`EncodeTypes` 和 `BarCodeImageFormat` 的兼容库) +- 对 C# 语法和文件 I/O 的基本了解 + +无需额外工具;代码可在 Visual Studio、Rider 或 `dotnet` CLI 中运行。 + +## Barcode image PNG – 基本生成 + +第一步是使用默认尺寸创建 **barcode image PNG**。这将建立一个基线文件,您可以在之后进行自定义。 + +```csharp +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +// Define the output folder (replace with your own path) +string outputFolder = @"C:\Barcodes"; + +// Ensure the folder exists +Directory.CreateDirectory(outputFolder); + +// 1️⃣ Create a Planet barcode generator with default height +BarcodeGenerator planetGenerator = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + +// Set the module width (X‑dimension) to 4 pixels – this defines the thin bar size +planetGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the image as PNG; this is the first **barcode image PNG** you’ll produce +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +**为什么这样有效:** +- `EncodeTypes.Planet` 告诉生成器使用 Planet 符号,这在许多邮政服务中是必需的。 +- `XDimension.Pixels` 控制最小条的宽度;4 px 的值在典型标签尺寸下可生成可读的条形码。 +- `Save` 方法将 **barcode image PNG** 文件写入磁盘,保留所有向量信息为光栅像素。 + +## 更改条形码高度 – 定制视觉重量 + +邮政指南通常要求特定的条码高度。下面的代码片段演示如何为相同的 Planet 条形码设置自定义的 100 像素高度。 + +```csharp +// 2️⃣ Apply a custom 100‑pixel bar height +planetGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Overwrite or save as a new file to keep both versions +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +**为什么要更改高度:** +更高的条码在低分辨率打印机上可提升扫描可靠性,而更短的条码则节省标签空间。`BarHeight.Pixels` 属性允许您微调此属性而不影响 X 维度。 + +## 生成邮政条形码 – 创建 RM4SCC 示例 + +RM4SCC 格式是英国使用的另一种常见邮政条形码。生成步骤与 Planet 示例相同,进一步强化了 **barcode generator c#** 模式。 + +```csharp +// 3️⃣ Create an RM4SCC barcode generator with default height +BarcodeGenerator rm4sccGenerator = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Keep the same module width for consistency +rm4sccGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the default‑height PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +## 更改条形码高度 – RM4SCC 变体 + +与 Planet 条形码一样,您可以调整 RM4SCC 的条码高度。下面的代码将高度设置为 100 px,为相同的数据字符串生成第二个 **barcode image PNG**。 + +```csharp +// 4️⃣ Set a custom 100‑pixel bar height for RM4SCC +rm4sccGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Save the customized PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +## 完整、可运行的示例 + +将所有步骤组合在一起,可得到一个单独的、独立的程序,生成四个 PNG 文件: + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +class Program +{ + static void Main() + { + string outputFolder = @"C:\Barcodes"; + Directory.CreateDirectory(outputFolder); + + // Planet barcode – default height + var planet = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planet.Parameters.Barcode.XDimension.Pixels = 4; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // Planet barcode – custom 100‑pixel height + planet.Parameters.Barcode.BarHeight.Pixels = 100; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – default height + var rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – custom 100‑pixel height + rm4scc.Parameters.Barcode.BarHeight.Pixels = 100; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); + + Console.WriteLine("All barcode PNG files have been generated in " + + + +## 接下来您应该学习什么? + +以下教程涵盖与本指南技术密切相关的主题。每个资源都包含完整的可运行代码示例和逐步说明,帮助您掌握更多 API 功能,并在自己的项目中探索替代实现方案。 + +- [创建条形码自定义高度 – 一维条形码](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-barcode-height-adjustment/) +- [创建条形码 PNG – DataMatrix 长宽比 – Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-aspect-ratio-customization/) +- [创建条形码图像 C# – GS1 DataMatrix 示例](/barcode/english/net/gs1-barcode-encoding/gs1-datamatrix-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/chinese/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md b/barcode/chinese/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md new file mode 100644 index 000000000..61319578f --- /dev/null +++ b/barcode/chinese/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md @@ -0,0 +1,217 @@ +--- +category: general +date: 2026-08-15 +description: 在 C# 中创建行星条形码,并学习如何设置条形码尺寸以实现完美大小。逐步代码示例,包含实心和空心条。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create planet barcode +- how to set barcode dimensions +- planet barcode C# +- barcode X‑dimension +- empty barcode bars +language: zh +lastmod: 2026-08-15 +og_description: 在 C# 中创建 Planet 条形码并学习如何设置条形码尺寸。按照本指南即可即时生成实心和空心的 Planet 条形码。 +og_image_alt: Screenshot showing a Planet barcode with filled bars generated by C# + code +og_title: 在 C# 中创建行星条形码 – 完整的逐步指南 +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Create planet barcode in C# and learn how to set barcode dimensions + for perfect sizing. Step‑by‑step code example with filled and empty bars. + headline: Create planet barcode in C# – complete programming guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.BarCode +title: 在 C# 中创建行星条形码 – 完整编程指南 +url: /zh/python-java/general/create-planet-barcode-in-c-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 在 C# 中创建 Planet 条形码 – 完整编程指南 + +如果您需要在 C# 中**创建 planet 条形码**,本指南将准确展示如何操作。您还将了解**如何设置条形码尺寸**,以便条码以您所需的精确宽度呈现。 + +在处理邮政服务或物流系统时,生成 Planet 条形码是常见需求。下面的代码涵盖了默认的实心条版本和可选的空心条样式,并提供了 RM4SCC 格式的快速示例。完成本教程后,您将拥有一个可复用的代码片段,可直接嵌入任何 .NET 项目中。 + +## 前置条件 + +* .NET 6.0 或更高版本已安装(该 API 也兼容 .NET Framework 4.6+) +* 已在项目中添加 **Aspose.BarCode for .NET** NuGet 包 (`Aspose.BarCode`) +* 可写入的文件夹路径,用于保存 PNG 文件 +* 对 C# 语法和 Visual Studio(或任意 IDE)有基本了解 + +> **专业提示:** 使用绝对路径或 `Path.Combine(Environment.CurrentDirectory, "output")`,以避免保存图像时的权限问题。 + +## 第一步 – 初始化 Planet 条形码生成器(实心条) + +第一步是为 Planet 符号创建一个 `BarcodeGenerator` 实例。默认情况下,生成器会生成**实心**条。 + +```csharp +// Step 1: Create a Planet barcode with the default (filled) bars +BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +`EncodeTypes.Planet` 枚举指示 Aspose.BarCode 使用 Planet 格式,而 `"123456"` 是将被编码的数据负载。 + +## 第二步 – 如何设置条形码尺寸以实现一致的大小 + +要控制每根条的宽度,请调整 **X‑dimension**。这是**设置条形码尺寸**的主要方式,可确保条码适配您的标签尺寸。 + +```csharp +// Step 2: Set the X‑dimension (width of each bar) to 4 pixels +planetFilled.Parameters.Barcode.XDimension.Pixels = 4; +``` + +`Pixels` 属性以屏幕像素定义条的宽度。标准邮件标签常用 2 – 5 像素;如需更大打印,请增大该值。 + +## 第三步 – 将实心 Planet 条形码保存为 PNG + +现在将图像写入磁盘。PNG 能保持清晰的边缘,非常适合扫描。 + +```csharp +// Step 3: Save the Planet barcode as a PNG image +planetFilled.Save("YOUR_DIRECTORY/PostalPlanetFilledBars.png", BarCodeImageFormat.Png); +``` + +将 `YOUR_DIRECTORY` 替换为您之前准备的路径。运行此代码后,您将看到类似下图的文件。 + +![实心条 Planet 条形码](planet_filled.png "Planet 条形码(实心条) – 由 C# 代码生成") + +*Alt text:* **由 C# 代码生成的实心条 Planet 条形码** (matches `og_image_alt`). + +## 第四步 – 创建空心(未填充)条的 Planet 条形码 + +如果您的邮政服务要求条码为**空心**,则需在初始化生成器后切换 `FilledBars` 标志。 + +```csharp +// Step 4: Create a Planet barcode with empty (unfilled) bars +BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +构造函数相同;区别在于后续的配置步骤。 + +## 第五步 – 如何设置条形码尺寸并使条码为空心 + +同样,先设置 X‑dimension 以保持视觉一致性,然后禁用实心条。 + +```csharp +// Step 5: Set the X‑dimension and specify that bars should be empty +planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; +planetEmpty.Parameters.Barcode.FilledBars = false; // makes bars empty +``` + +`FilledBars = false` 属性才是真正改变渲染样式的设置。保持相同的 X‑dimension 可确保空心条码与实心版本完美对齐。 + +## 第六步 – 保存空心 Planet 条形码 + +```csharp +// Step 6: Save the Planet barcode with empty bars as a PNG image +planetEmpty.Save("YOUR_DIRECTORY/PostalPlanetEmptyBars.png", BarCodeImageFormat.Png); +``` + +现在您将拥有两个 PNG 文件:一个实心条,一个空心条,两者尺寸相同。 + +## 第七步 – (可选)生成 RM4SCC 条形码进行对比 + +RM4SCC 是另一种邮政符号,同样使用默认的实心条样式。步骤与 Planet 示例相同,展示了**如何设置条形码尺寸**在不同格式下均适用。 + +```csharp +// Step 7: Create an RM4SCC barcode (filled bars are the default) +BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Step 8: Set the X‑dimension for consistency +rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + +// Step 9: Save the RM4SCC barcode as a PNG image +rm4scc.Save("YOUR_DIRECTORY/PostalRM4SCCFilledBars.png", BarCodeImageFormat.Png); +``` + +执行上述三步会生成 `PostalRM4SCCFilledBars.png`,您可以将其与 Planet 的输出并排比较。 + +## 为什么 X‑dimension 很重要 + +X‑dimension 决定每根条的**最小可打印宽度**。如果设置过低,条码在低分辨率打印机上可能模糊,导致扫描失败。相反,过大的 X‑dimension 会超出标签尺寸并浪费空间。通过明确**如何设置条形码尺寸**,您可以对最终图像大小进行确定性的控制,这对自动化邮件工作流至关重要。 + +## 常见陷阱及规避方法 + +| Issue | Cause | Fix | +|-------|-------|-----| +| 条码出现拉伸 | X‑dimension 使用点而非像素设置 | 始终使用 `Pixels` 属性进行像素级精确控制 | +| 空心条仍显示为实心 | `FilledBars` 在更改 X‑dimension 后未设置为 `false` | 在调整 X‑dimension *后* 设置 `FilledBars = false` | +| 保存的文件为空白 | 输出目录不存在或没有写入权限 | 确保目录存在(`Directory.CreateDirectory`)并且应用拥有足够权限 | +| 打印时图像模糊 | 从高分辨率显示器保存的低 DPI PNG | 使用 `BarCodeImageFormat.Png`(无损),如有需要考虑 `Resolution` 属性 | + +## 完整、可运行的示例 + +将下面的完整代码块复制到新建的控制台项目中(`dotnet new console`),然后运行。程序会在 `output` 文件夹中生成三个 PNG 文件。 + +```csharp +using System; +using System.IO; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Ensure output folder exists + string outDir = Path.Combine(Environment.CurrentDirectory, "output"); + Directory.CreateDirectory(outDir); + + // ---------- Planet barcode – filled bars ---------- + BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetFilled.Parameters.Barcode.XDimension.Pixels = 4; // set dimensions + planetFilled.Save(Path.Combine(outDir, "PostalPlanetFilledBars.png"), BarCodeImageFormat.Png); + + // ---------- Planet barcode – empty bars ---------- + BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; // same dimensions + planetEmpty.Parameters.Barcode.FilledBars = false; // make bars empty + planetEmpty.Save(Path.Combine(outDir, "PostalPlanetEmptyBars.png"), BarCodeImageFormat.Png); + + // ---------- RM4SCC barcode (filled bars) ---------- + BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; // consistent size + rm4scc.Save(Path.Combine(outDir, "PostalRM4SCCFilledBars.png"), BarCodeImageFormat.Png); + + Console.WriteLine($"Barcodes generated in: {outDir}"); + } +} +``` + +**预期输出:** 三个 PNG 文件——`PostalPlanetFilledBars.png`、`PostalPlanetEmptyBars.png` 和 `PostalRM4SCCFilledBars.png`——每根条宽 4 像素,已准备好打印或进一步处理。 + +## 结论 + +现在您已经掌握了在 C# 中**创建 planet 条形码**以及精确**如何设置条形码尺寸**的技巧,适用于实心和空心条样式。同样的模式也适用于其他符号,如 RM4SCC,为任何邮政条码需求提供了灵活的基础。 + +接下来,您可以探索: + +* 在条码下方添加可读文本 (`BarcodeGenerator.Parameters.Barcode.CodeText`) +* 使用 `Parameters.Barcode.BarColor` 更改条的颜色 +* 以矢量格式(SVG、EPS)生成条码,以实现可伸缩打印 + +随意尝试不同的 X‑dimension 值、数据字符串和输出格式,以匹配您的特定工作流。祝编码愉快! + +## 接下来您应该学习什么? + +以下教程涵盖与本指南技术密切相关的主题,帮助您进一步学习。每个资源都提供完整的可运行代码示例和逐步解释,助您掌握更多 API 功能并在项目中探索替代实现方案。 + +- [如何使用 Aspose.BarCode for .NET 为 Code 16K 创建条码安静区](/barcode/english/net/code-16k-encoding/code-16k-quiet-zone-settings/) +- [如何使用 Aspose.BarCode for .NET 为 ITF-14 创建条码安静区](/barcode/english/net/itf-14-barcode-customization/itf-14-barcode-quiet-zone-configuration/) +- [如何在 .NET 中创建带错误校正的 Aztec 条码](/barcode/english/net/aztec-barcode-encoding/aztec-error-level-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/chinese/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md b/barcode/chinese/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md new file mode 100644 index 000000000..36279a8c9 --- /dev/null +++ b/barcode/chinese/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md @@ -0,0 +1,235 @@ +--- +category: general +date: 2026-08-15 +description: Databar 扩展堆叠条形码在 C# 中的生成。了解如何生成条形码图像,为 DataBar 布局设置列和行。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- databar expanded stacked +- generate barcode image +- how to generate barcode +- how to set columns +- how to set rows +language: zh +lastmod: 2026-08-15 +og_description: Databar 在 C# 中扩展了堆叠条形码生成。请按照本分步指南高效生成条形码图像、设置列和设置行。 +og_image_alt: Screenshot of a databar expanded stacked barcode generated with C# +og_title: Databar 扩展堆叠 – 在 C# 中生成条码图像 +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + headline: 'Databar expanded stacked: generate barcode image in C#' + type: TechArticle +- description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + name: 'Databar expanded stacked: generate barcode image in C#' + steps: + - name: 1. Install the Aspose.BarCode library + text: 'The code uses the **Aspose.BarCode for .NET** library, which provides the + `BarcodeGenerator` class. Install the NuGet package with the following command:' + - name: 2. Create a barcode generator for **databar expanded stacked** + text: The generator is the entry point for all barcode operations. You must specify + the symbology (`EncodeTypes.DatabarExpandedStacked`) and the text to encode. + - name: 3. How to set columns for DataBar + text: The `Columns` property controls how many vertical modules appear in the + stacked barcode. Valid values are 2, 3, or 4. Setting columns influences the + barcode’s width and the amount of data it can store. + - name: 4. Save the 4‑column barcode image + text: Saving the image produces a file that you can embed in reports, invoices, + or mobile apps. The `Save` method accepts a file path and an image format. + - name: 5. How to set rows for DataBar + text: Rows add a second dimension to the stacked layout, allowing more data to + be encoded without widening the barcode. The `Rows` property defaults to 1; + you can increase it up to 3 for the expanded stacked variant. + - name: 6. Save the 3‑row barcode image + text: '```csharp // Step 5: Save the 3‑row barcode image barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", + BarCodeImageFormat.Png); ```' + - name: 7. Complete C# example to generate barcode image + text: 'Putting all steps together yields a self‑contained program you can copy + into a console application:' + type: HowTo +tags: +- barcode +- C# +- Aspose.BarCode +title: Databar 扩展堆叠:在 C# 中生成条码图像 +url: /zh/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Databar expanded stacked:在 C# 中生成条码图像 + +如果您需要在 C# 中生成 **databar expanded stacked** 条码图像,本指南将向您展示如何使用自定义列和行布局 **生成条码** 图像。您将看到如何设置列、如何设置行,以及如何在不离开 IDE 的情况下保存生成的图像。 + +本教程包括: + +* 为 **databar expanded stacked** 符号创建条码生成器。 +* 配置 4 列布局和 3 行布局。 +* 将每种配置保存为 PNG 文件。 +* 处理诸如列数无效等边缘情况的技巧。 + +无需外部文档;完整、可运行的示例已包含在内。 + +![Databar expanded stacked barcode example](YOUR_DIRECTORY/DatabarCols4.png){: .center alt="使用 C# 生成的 databar expanded stacked 条码" } + +## Databar expanded stacked 条码生成步骤 + +### 1. 安装 Aspose.BarCode 库 + +代码使用 **Aspose.BarCode for .NET** 库,该库提供 `BarcodeGenerator` 类。使用以下命令通过 NuGet 安装包: + +```bash +dotnet add package Aspose.BarCode +``` + +安装完包后,在文件顶部添加所需的命名空间: + +```csharp +using Aspose.BarCode.Generation; +``` + +### 2. 为 **databar expanded stacked** 创建条码生成器 + +生成器是所有条码操作的入口点。您必须指定符号 (`EncodeTypes.DatabarExpandedStacked`) 和要编码的文本。 + +```csharp +// Step 1: Create a barcode generator for Databar Expanded Stacked +BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); +``` + +*为什么重要:* `EncodeTypes` 枚举告诉库生成哪种条码格式。使用 **databar expanded stacked** 可确保生成的图像符合 GS1 DataBar 堆叠布局规范。 + +### 3. 如何设置 DataBar 的列 + +`Columns` 属性控制堆叠条码中出现多少个垂直模块。有效值为 2、3 或 4。设置列数会影响条码的宽度以及可存储的数据量。 + +```csharp +// Step 2: Configure a 4‑column layout +barcode.Parameters.Barcode.DataBar.Columns = 4; +``` + +**提示:** 如果尝试分配超出允许范围的值,库会抛出 `ArgumentException`。在向用户公开列选择时,请始终验证输入。 + +### 4. 保存 4 列条码图像 + +保存图像会生成一个文件,您可以将其嵌入报告、发票或移动应用中。`Save` 方法接受文件路径和图像格式。 + +```csharp +// Step 3: Save the 4‑column barcode image +barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); +``` + +文件写入后,您可以使用任意图像查看器打开,以确认 **databar expanded stacked** 图案正确显示。 + +### 5. 如何设置 DataBar 的行 + +行数为堆叠布局添加第二维度,使得在不增加条码宽度的情况下编码更多数据。`Rows` 属性默认值为 1;对于扩展堆叠变体,您可以将其提升至最多 3 行。 + +```csharp +// Step 4: Switch to a 3‑row layout (columns remain unchanged) +barcode.Parameters.Barcode.DataBar.Rows = 3; +``` + +**为什么行数重要:** 增加行数可以在保持数据容量的同时降低整体宽度,这对于窄标签或移动屏幕空间尤为有用。 + +### 6. 保存 3 行条码图像 + +```csharp +// Step 5: Save the 3‑row barcode image +barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); +``` + +现在您拥有两个 PNG 文件——一个是 4 列布局,另一个是 3 行布局——均使用 **databar expanded stacked** 符号。 + +### 7. 完整的 C# 示例以生成条码图像 + +将所有步骤组合在一起即可得到一个可直接复制到控制台应用程序的自包含程序: + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace DatabarExpandedStackedDemo +{ + class Program + { + static void Main() + { + // Create the generator for Databar Expanded Stacked + BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); + + // Configure a 4‑column layout and save + barcode.Parameters.Barcode.DataBar.Columns = 4; + barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); + Console.WriteLine("4‑column barcode saved."); + + // Change to a 3‑row layout (columns stay at 4) and save + barcode.Parameters.Barcode.DataBar.Rows = 3; + barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); + Console.WriteLine("3‑row barcode saved."); + } + } +} +``` + +**预期输出** + +运行程序后会打印: + +``` +4‑column barcode saved. +3‑row barcode saved. +``` + +并在 `YOUR_DIRECTORY` 中创建两个 PNG 文件。打开这些文件即可验证每张图像都显示了有效的 **databar expanded stacked** 条码。 + +## 常见陷阱与实用技巧 + +* **目录是否存在** – `Save` 不会自动创建缺失的文件夹。请确保 `YOUR_DIRECTORY` 已存在,或在保存前使用 `Directory.CreateDirectory` 创建。 +* **列限制** – 除 2、3、4 之外的值会触发异常。使用简单的范围检查来防止用户输入错误: + + ```csharp + int columns = 4; + if (columns < 2 || columns > 4) throw new ArgumentOutOfRangeException(nameof(columns)); + barcode.Parameters.Barcode.DataBar.Columns = columns; + ``` + +* **行限制** – 扩展堆叠变体最多支持 3 行。将 `Rows` 设置为 0 或大于 3 的值同样会抛出异常。 +* **图像格式** – `BarCodeImageFormat.Png` 提供无损质量,适合打印。仅在文件大小是主要考虑因素时才使用 `Jpeg`。 + +## 后续步骤 + +了解了如何使用自定义列和行配置 **生成条码** 图像后,您可以: + +* 将生成器集成到 Web API 中,以按需提供条码图像。 +* 将条码与 PDF 生成库结合,嵌入发票中。 +* 使用相同的 `Parameters.Barcode.DataBar` 对象尝试其他 DataBar 变体(`DatabarExpanded`、`DatabarLimited`)。 + +如需更深入的自定义——例如更改条纹颜色、添加可读文本或叠加 QR 码——请参考 Aspose.BarCode 文档中 `BarcodeGenerator` 属性的说明。 + +--- + +通过本指南,您已经掌握了 **databar expanded stacked** 工作流,学会了 **如何设置列**、**如何设置行**,并生成了两张可直接用于生产的条码图像。祝编码愉快! + +## 接下来您应该学习什么? + +以下教程涵盖与本指南技术紧密相关的主题,帮助您在自己的项目中进一步掌握 API 功能并探索替代实现方式,每个资源都包含完整的可运行代码示例和逐步解释。 + +- [Generate barcode image – GS1 Coupon UPC-A Databar](/barcode/english/net/gs1-barcode-encoding/gs1-coupon-upc-a-databar-configuration/) +- [Create DotCode barcode image – rows & columns (Aspose.BarCode)](/barcode/english/net/dotcode-barcode-configuration/dotcode-rows-columns-configuration/) +- [How to Generate Barcode - One-Dimensional Barcode Types](/barcode/english/net/one-dimensional-barcode-types/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/chinese/python-java/general/how-to-set-barcode-complete-c-guide/_index.md b/barcode/chinese/python-java/general/how-to-set-barcode-complete-c-guide/_index.md new file mode 100644 index 000000000..888b4fbce --- /dev/null +++ b/barcode/chinese/python-java/general/how-to-set-barcode-complete-c-guide/_index.md @@ -0,0 +1,233 @@ +--- +category: general +date: 2026-08-15 +description: 如何在 C# 中设置条形码参数并生成条形码图像。一步一步学习创建 Databar 条形码并保存为 PNG 文件。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to set barcode +- how to generate barcode +- create databar barcode +- generate barcode image c# +language: zh +lastmod: 2026-08-15 +og_description: 如何在 C# 中使用 Aspose.Barcode 设置条形码,然后生成条形码图像。请按照本指南创建 Databar 条形码并保存为 + PNG 文件。 +og_image_alt: Screenshot of a Databar barcode saved as PNG using C# code +og_title: 如何在 C# 中设置条形码 – 步骤指南 +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: How to set barcode parameters in C# and generate barcode images. Learn + step‑by‑step to create Databar barcode and save PNG files. + headline: How to set barcode – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.Barcode +title: 如何设置条形码——完整的 C# 指南 +url: /zh/python-java/general/how-to-set-barcode-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何设置条形码 – 完整 C# 指南 + +如果您正在寻找 .NET 项目中 **how to set barcode** 参数的设置方法,本教程将展示您所需的确切步骤。您将学习 **how to generate barcode** 图像的生成、创建 Databar 条形码以及逐像素控制条码高度——全部使用干净、可用于生产的 C# 代码。 + +在本指南中您将: + +* 安装所需的 NuGet 包。 +* 创建 Databar Omnidirectional 条形码(“create Databar barcode” 部分)。 +* 调整 X‑dimension 和条码高度,以演示 **how to set barcode** 尺寸的设置。 +* 将结果保存为 PNG 文件,覆盖 **generate barcode image C#** 场景。 + +该代码适用于最新的 Aspose.Barcode for .NET(撰写时为 v 24.12),并可在 .NET 6 或更高版本上运行。 + +--- + +## 前置条件 + +在开始之前,请确保您拥有: + +* .NET 6 SDK(或更高版本)。 +* 如 Visual Studio 2022 或 VS Code 等 IDE。 +* 能够访问互联网以下载 Aspose.Barcode NuGet 包。 + +无需其他第三方库。 + +--- + +## 第一步:安装 Aspose.Barcode for .NET + +在 C# 中生成 **generate barcode** 图像的最可靠方式是使用 Aspose.Barcode。打开项目文件夹的终端并运行: + +```bash +dotnet add package Aspose.BarCode +``` + +该命令会将最新的稳定版添加到您的项目文件中,确保您拥有 `BarcodeGenerator` 类和 `EncodeTypes` 枚举。 + +*Pro tip:* 使用 `dotnet list package --outdated` 保持包的最新,以获得错误修复和新条码符号的支持。 + +--- + +## 第二步:创建 Databar 条形码(create Databar barcode) + +Databar Omnidirectional 适用于零售和物流,因为它可以编码 GTIN‑14 值以及额外数据。以下代码创建条形码对象: + +```csharp +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +// Step 2: Initialize the generator for a Databar Omnidirectional barcode +BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); +``` + +*Why this matters:* `EncodeTypes.DatabarOmniDirectional` 枚举告诉库使用 Databar 符号,而字符串 `"(01)12345678901231"` 符合 GS1 应用标识符格式,用于 14 位 GTIN。 + +--- + +## 第三步:定义通用参数 – X‑dimension 和基准高度 + +大多数条码扫描器要求最小 X‑dimension(最窄条的宽度)。将其设为 2 像素可得到紧凑且可读的图像。 + +```csharp +// Step 3: Set a 2‑pixel X‑dimension (common for most scanners) +generator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +稍后您可以在不重新创建生成器的情况下调整条码高度——这正是 **how to set barcode** 在实例化后修改属性的核心。 + +--- + +## 第四步:设置首个条码高度并保存图像(generate barcode image C#) + +现在演示 **how to set barcode** 高度的第一步。条码高度控制每根条的视觉长度;30 像素的值会产生较短的条码,而 60 像素则会生成更高的版本。 + +```csharp +// Step 4a: 30‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 30; + +// Save the first PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); +``` + +执行后,`DatabarBarHeight30Pixels.png` 包含一张条码高度为 30 像素的 Databar 条形码。使用任意图像查看器打开文件即可验证结果。 + +--- + +## 第五步:更改条码高度并保存第二个图像 + +为说明 **how to set barcode** 的数值可以动态更改,我们将条码高度修改为 60 像素并写入第二个文件。 + +```csharp +// Step 5a: 60‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 60; + +// Save the second PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); +``` + +现在您拥有两个 PNG 文件,显示相同的 Databar 数据但具有不同的视觉高度。这在需要为打印标签提供更大条码或在屏幕上显示更小条码时非常有用。 + +--- + +## 第六步:完整、可运行的示例 + +将所有内容整合在一起,下面是一个自包含的控制台程序,执行上述所有步骤。将代码复制到新的 `Program.cs` 文件中,将 `YOUR_DIRECTORY` 替换为实际文件夹路径,然后运行。 + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Initialize the generator for a Databar Omnidirectional barcode + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); + + // Common parameters + generator.Parameters.Barcode.XDimension.Pixels = 2; // 2‑pixel narrow bar + + // First image: 30‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 30; + generator.Save(@"C:\Barcodes\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 30‑pixel barcode."); + + // Second image: 60‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 60; + generator.Save(@"C:\Barcodes\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 60‑pixel barcode."); + + // Dispose the generator to free native resources + generator.Dispose(); + } +} +``` + +**预期输出** + +运行程序后,控制台会打印: + +``` +Saved 30-pixel barcode. +Saved 60-pixel barcode. +``` + +并且 `C:\Barcodes`(或您提供的路径)文件夹中会出现两个 PNG 文件。两张图片均显示可被标准 GS1 读取器扫描的有效 Databar Omnidirectional 条形码。 + +--- + +## 常见问题 + +**这能用于其他图像格式吗?** +可以。将 `BarCodeImageFormat.Png` 替换为 `Jpeg`、`Bmp`、`Gif` 或 `Tiff` 即可生成相应的文件类型。 + +**我可以更改前景颜色吗?** +将 `generator.Parameters.Barcode.ForeColor` 设置为任意 `System.Drawing.Color` 值,例如 `Color.Blue`。 + +**如果需要不同的符号怎么办?** +在构造函数中传入不同的 `EncodeTypes` 值,例如 `EncodeTypes.Code128` 用于线性条码,或 `EncodeTypes.QR` 用于矩阵码。 + +**有没有办法将条码嵌入 PDF?** +Aspose.Barcode 提供 `PdfGenerator` 类。生成图像后,您可以使用 Aspose.PDF 将其添加到 PDF 页面中。 + +--- + +## C# 条形码生成的最佳实践 + +* **复用 `BarcodeGenerator` 实例** 当您仅需微调尺寸时——这可避免不必要的内存分配。 +* **在完成后释放生成器**(`generator.Dispose()`),及时释放本机资源。 +* **在创建条码前验证输入数据**(例如 GTIN 长度),以防运行时异常。 +* **在更改 X‑dimension 或条码高度后使用实物扫描仪进行测试**;极端值可能影响可读性。 +* **确保输出文件夹对运行账户可写**,否则 `Save` 会抛出 `UnauthorizedAccessException`。 + +--- + +## 结论 + +您现在已经掌握了 **how to set barcode** 的属性设置方法,如 X‑dimension 和条码高度,了解了在 C# 中 **how to generate barcode** 图像的完整步骤,并通过 Aspose.Barcode 完成了 **create Databar barcode** 文件的生成。通过遵循完整示例,您可以为任意 .NET 应用生成具有不同视觉特征的多个 PNG 文件,满足 **generate barcode image C#** 的需求。 + +接下来,您可以探索诸如批量 **how to generate barcode**、将条码嵌入 PDF,或切换到 QR、Code 128 等其他符号的相关主题。尝试本文展示的参数,以微调条码外观,适配您的特定扫描环境。祝编码愉快! + +## 接下来您应该学习什么? + +以下教程涵盖与本指南紧密相关的主题,帮助您在项目中进一步掌握 API 功能并探索替代实现方式,每篇资源均提供完整可运行的代码示例和逐步解释。 + +- [How to Generate DataMatrix Barcodes (ECC 200) with Aspose.BarCode for .NET](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-ecc-200-configuration/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [How to Generate Barcode – Code 39 Configuration with Aspose.BarCode](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-code-39-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/czech/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md b/barcode/czech/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md new file mode 100644 index 000000000..80e3784a4 --- /dev/null +++ b/barcode/czech/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md @@ -0,0 +1,185 @@ +--- +category: general +date: 2026-08-15 +description: Obrázek čárového kódu PNG v C# – naučte se generovat poštovní čárové + kódy, vytvořit Planet čárový kód a změnit výšku čárového kódu pomocí jednoduchého + generátoru. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- barcode image png +- barcode generator c# +- generate postal barcode +- create planet barcode +- change barcode height +language: cs +lastmod: 2026-08-15 +og_description: Návod Barcode image PNG v C# ukazuje, jak generovat poštovní čárové + kódy, vytvořit čárový kód Planet a změnit výšku čárového kódu pomocí API BarcodeGenerator. +og_image_alt: Screenshot of generated PNG barcode with custom height using C# BarcodeGenerator +og_title: Obrázek čárového kódu PNG v C# – generování a úprava čárových kódů +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Barcode image PNG in C# – learn how to generate postal barcodes, create + a Planet barcode, and change barcode height with a simple generator. + headline: Barcode image PNG in C# generate barcodes, change height + type: TechArticle +tags: +- barcode +- C# +- PNG +- postal +- generator +title: PNG obrázek čárového kódu v C# – generovat čárové kódy, změnit výšku +url: /cs/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Barcode image PNG in C# – generování čárových kódů, změna výšky + +Pokud potřebujete **barcode image PNG** v C#, tento návod vás provede kompletním procesem. Naučíte se generovat poštovní čárové kódy, vytvořit Planet čárový kód a změnit výšku čárového kódu, aniž byste opustili své IDE. + +Generování spolehlivých PNG čárových kódů je běžnou potřebou pro přepravní štítky, inventární systémy a automatizovaná poštovní řešení. Na konci tohoto tutoriálu budete mít znovupoužitelný úryvek kódu, který vytváří vysoce kvalitní PNG soubory pro formáty Planet i RM4SCC, a pochopíte, jak upravit výšku čárového kódu tak, aby splňovala poštovní specifikace. + +## Co budete potřebovat + +- .NET 6+ nebo .NET Framework 4.7.2 (API BarcodeGenerator funguje s jakýmkoli moderním .NET runtime) +- Odkaz na NuGet balíček **Aspose.BarCode for .NET** (nebo jakoukoli kompatibilní knihovnu, která poskytuje `BarcodeGenerator`, `EncodeTypes` a `BarCodeImageFormat`) +- Základní znalost syntaxe C# a práce se soubory (I/O) + +Žádné další nástroje nejsou potřeba; kód běží ve Visual Studio, Rider nebo v `dotnet` CLI. + +## Barcode image PNG – základní generování + +Prvním krokem je vytvořit **barcode image PNG** s výchozími rozměry. Tím se vytvoří výchozí soubor, který můžete později přizpůsobit. + +```csharp +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +// Define the output folder (replace with your own path) +string outputFolder = @"C:\Barcodes"; + +// Ensure the folder exists +Directory.CreateDirectory(outputFolder); + +// 1️⃣ Create a Planet barcode generator with default height +BarcodeGenerator planetGenerator = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + +// Set the module width (X‑dimension) to 4 pixels – this defines the thin bar size +planetGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the image as PNG; this is the first **barcode image PNG** you’ll produce +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +**Proč to funguje:** +- `EncodeTypes.Planet` říká generátoru, aby použil symbologii Planet, která je vyžadována mnoha poštovními službami. +- `XDimension.Pixels` řídí šířku nejmenšího pruhu; hodnota 4 px poskytuje čitelný čárový kód při typických velikostech štítků. +- Metoda `Save` zapíše **barcode image PNG** soubor na disk a zachová veškeré vektorové informace jako rastrové pixely. + +## Změna výšky čárového kódu – přizpůsobení vizuální hmotnosti + +Poštovní směrnice často vyžadují konkrétní výšku pruhu. Následující úryvek ukazuje, jak nastavit vlastní výšku 100 pixelů pro stejný Planet čárový kód. + +```csharp +// 2️⃣ Apply a custom 100‑pixel bar height +planetGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Overwrite or save as a new file to keep both versions +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +**Proč měníte výšku:** +Vyšší pruh zlepšuje spolehlivost skenování na tiskárnách s nízkým rozlišením, zatímco nižší pruh šetří místo na štítku. Vlastnost `BarHeight.Pixels` vám umožní jemně doladit tento atribut, aniž by to ovlivnilo X‑dimenzi. + +## Generování poštovního čárového kódu – vytvoření příkladu RM4SCC + +Formát RM4SCC je další běžný poštovní čárový kód používaný ve Spojeném království. Kroky generování jsou podobné příkladu Planet, což posiluje vzor **barcode generator c#**. + +```csharp +// 3️⃣ Create an RM4SCC barcode generator with default height +BarcodeGenerator rm4sccGenerator = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Keep the same module width for consistency +rm4sccGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the default‑height PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +## Změna výšky čárového kódu – varianta RM4SCC + +Stejně jako u Planet čárového kódu můžete upravit výšku pruhu RM4SCC. Níže uvedený kód nastaví výšku na 100 px a vytvoří druhý **barcode image PNG** pro stejný datový řetězec. + +```csharp +// 4️⃣ Set a custom 100‑pixel bar height for RM4SCC +rm4sccGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Save the customized PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +## Kompletní, spustitelný příklad + +Spojením všech kroků dohromady získáte jeden samostatný program, který vytvoří čtyři PNG soubory: + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +class Program +{ + static void Main() + { + string outputFolder = @"C:\Barcodes"; + Directory.CreateDirectory(outputFolder); + + // Planet barcode – default height + var planet = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planet.Parameters.Barcode.XDimension.Pixels = 4; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // Planet barcode – custom 100‑pixel height + planet.Parameters.Barcode.BarHeight.Pixels = 100; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – default height + var rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – custom 100‑pixel height + rm4scc.Parameters.Barcode.BarHeight.Pixels = 100; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); + + Console.WriteLine("All barcode PNG files have been generated in " + + + +## Co byste se měli naučit dál? + +Následující tutoriály pokrývají úzce související témata, která staví na technikách předvedených v tomto návodu. Každý zdroj obsahuje kompletní funkční příklady kódu s podrobnými vysvětleními, které vám pomohou zvládnout další funkce API a prozkoumat alternativní přístupy k implementaci ve vašich projektech. + +- [Vytvořit čárový kód s vlastní výškou – jednorozměrné čárové kódy](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-barcode-height-adjustment/) +- [Vytvořit čárový kód PNG – poměr stran DataMatrix – Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-aspect-ratio-customization/) +- [Vytvořit obrázek čárového kódu C# – příklad GS1 DataMatrix](/barcode/english/net/gs1-barcode-encoding/gs1-datamatrix-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/czech/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md b/barcode/czech/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md new file mode 100644 index 000000000..d761f8171 --- /dev/null +++ b/barcode/czech/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-08-15 +description: Vytvořte planetární čárový kód v C# a naučte se, jak nastavit rozměry + čárového kódu pro dokonalou velikost. Krok za krokem ukázkový kód s vyplněnými a + prázdnými pruhy. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create planet barcode +- how to set barcode dimensions +- planet barcode C# +- barcode X‑dimension +- empty barcode bars +language: cs +lastmod: 2026-08-15 +og_description: Vytvořte Planet čárový kód v C# a naučte se nastavit rozměry čárového + kódu. Postupujte podle tohoto návodu a okamžitě generujte vyplněné i prázdné Planet + čárové kódy. +og_image_alt: Screenshot showing a Planet barcode with filled bars generated by C# + code +og_title: Vytvořte planetární čárový kód v C# – kompletní průvodce krok za krokem +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Create planet barcode in C# and learn how to set barcode dimensions + for perfect sizing. Step‑by‑step code example with filled and empty bars. + headline: Create planet barcode in C# – complete programming guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.BarCode +title: Vytvořte planetární čárový kód v C# – kompletní programovací průvodce +url: /cs/python-java/general/create-planet-barcode-in-c-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Vytvořte planet barcode v C# – kompletní programovací průvodce + +Pokud potřebujete **vytvořit planet barcode** v C#, tento průvodce vám ukáže přesně, jak na to. Také se dozvíte **jak nastavit rozměry čárového kódu**, aby pruhy měly přesně požadovanou šířku. + +Generování planet barcode je běžné při práci s poštovními službami nebo logistickými systémy. Níže uvedený kód pokrývá jak výchozí verzi s vyplněnými pruhy, tak volitelný styl s prázdnými pruhy, plus rychlý příklad pro formát RM4SCC. Na konci tohoto tutoriálu budete mít znovupoužitelný úryvek, který můžete vložit do libovolného .NET projektu. + +## Požadavky + +Než začnete, ujistěte se, že máte: + +* .NET 6.0 nebo novější nainstalovaný (API funguje také s .NET Framework 4.6+) +* NuGet balíček **Aspose.BarCode for .NET** (`Aspose.BarCode`) přidaný do vašeho projektu +* Zapisovatelnou složku, kam budou ukládány PNG soubory +* Základní znalosti syntaxe C# a Visual Studio (nebo jiného IDE) + +> **Tip:** Použijte absolutní cestu nebo `Path.Combine(Environment.CurrentDirectory, "output")`, abyste předešli problémům s oprávněními při ukládání obrázků. + +## Krok 1 – Inicializace generátoru Planet barcode (vyplněné pruhy) + +Prvním krokem je vytvořit instanci `BarcodeGenerator` pro symbologii Planet. Ve výchozím nastavení generátor vytváří **vyplněné** pruhy. + +```csharp +// Step 1: Create a Planet barcode with the default (filled) bars +BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +Výčtový typ `EncodeTypes.Planet` říká Aspose.BarCode, aby použil formát Planet, zatímco `"123456"` je datová část, která bude zakódována. + +## Krok 2 – Jak nastavit rozměry čárového kódu pro konzistentní velikost + +Pro kontrolu šířky každého pruhu upravte **X‑dimenzi**. Toto je hlavní způsob, jak **nastavit rozměry čárového kódu**, a zajišťuje, že čárový kód zapadne do velikosti vašeho štítku. + +```csharp +// Step 2: Set the X‑dimension (width of each bar) to 4 pixels +planetFilled.Parameters.Barcode.XDimension.Pixels = 4; +``` + +Vlastnost `Pixels` určuje šířku pruhu v pixelech obrazovky. Běžné hodnoty jsou 2 – 5 pixelů pro standardní poštovní štítky; zvýšte hodnotu pro větší výtisky. + +## Krok 3 – Uložení vyplněného Planet barcode jako PNG + +Nyní zapište obrázek na disk. PNG zachovává ostré hrany, což je ideální pro skenování. + +```csharp +// Step 3: Save the Planet barcode as a PNG image +planetFilled.Save("YOUR_DIRECTORY/PostalPlanetFilledBars.png", BarCodeImageFormat.Png); +``` + +Nahraďte `YOUR_DIRECTORY` cestou, kterou jste připravili dříve. Po spuštění tohoto kódu uvidíte soubor podobný obrázku níže. + +![Planet barcode with filled bars](planet_filled.png "Planet barcode with filled bars – created by C# code") + +*Alt text:* **Planet barcode with filled bars generated by C# code** (matches `og_image_alt`). + +## Krok 4 – Vytvoření Planet barcode s prázdnými (nevyplněnými) pruhy + +Pokud vaše poštovní služba vyžaduje, aby pruhy byly **prázdné**, musíte po inicializaci generátoru přepnout příznak `FilledBars`. + +```csharp +// Step 4: Create a Planet barcode with empty (unfilled) bars +BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +Konstruktor je stejný; rozdíl spočívá v následujícím konfiguračním kroku. + +## Krok 5 – Jak nastavit rozměry čárového kódu a udělat pruhy prázdné + +Opět nastavte X‑dimenzi pro vizuální konzistenci a poté zakázat vyplněné pruhy. + +```csharp +// Step 5: Set the X‑dimension and specify that bars should be empty +planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; +planetEmpty.Parameters.Barcode.FilledBars = false; // makes bars empty +``` + +Vlastnost `FilledBars = false` je tím, co skutečně mění styl vykreslování. Zachování stejné X‑dimenze zajišťuje, že čárový kód s prázdnými pruhy se přesně zarovná s verzí s vyplněnými pruhy. + +## Krok 6 – Uložení prázdného Planet barcode + +```csharp +// Step 6: Save the Planet barcode with empty bars as a PNG image +planetEmpty.Save("YOUR_DIRECTORY/PostalPlanetEmptyBars.png", BarCodeImageFormat.Png); +``` + +Nyní budete mít dva PNG soubory: jeden s plnými pruhy a jeden s dutými pruhy, oba se stejnými rozměry. + +## Krok 7 – (Volitelné) Vygenerování RM4SCC barcode pro srovnání + +RM4SCC je další poštovní symbologie, která používá stejný výchozí styl s vyplněnými pruhy. Kroky jsou obdobné jako u Planet příkladu, což ukazuje, že **jak nastavit rozměry čárového kódu** funguje napříč formáty. + +```csharp +// Step 7: Create an RM4SCC barcode (filled bars are the default) +BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Step 8: Set the X‑dimension for consistency +rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + +// Step 9: Save the RM4SCC barcode as a PNG image +rm4scc.Save("YOUR_DIRECTORY/PostalRM4SCCFilledBars.png", BarCodeImageFormat.Png); +``` + +Po spuštění těchto tří kroků vznikne soubor `PostalRM4SCCFilledBars.png`, který můžete porovnat vedle výstupů Planet. + +## Proč je X‑dimenze důležitá + +X‑dimenze určuje **minimální tisknutelnou šířku** každého pruhu. Pokud ji nastavíte příliš nízko, čárový kód může na nízkokvalitních tiskárnách rozmazat, což vede k selhání skenování. Naopak příliš velká X‑dimenze může překročit rozměry štítku a plýtvat prostorem. Tím, že explicitně **jak nastavit rozměry čárového kódu**, získáte deterministickou kontrolu nad konečnou velikostí obrázku, což je nezbytné pro automatizované poštovní workflow. + +## Časté problémy a jak se jim vyhnout + +| Problém | Příčina | Řešení | +|-------|-------|-----| +| Čárový kód vypadá roztaženě | X‑dimenze nastavena v bodech místo pixelů | Vždy používejte vlastnost `Pixels` pro pixel‑perfektní kontrolu | +| Prázdné pruhy stále vypadají vyplněně | `FilledBars` nebylo nastaveno na `false` po změně X‑dimenze | Nastavte `FilledBars = false` *po* úpravě X‑dimenze | +| Uložený soubor je prázdný | Výstupní adresář neexistuje nebo nemá oprávnění k zápisu | Zajistěte, aby adresář existoval (`Directory.CreateDirectory`) a aplikace měla dostatečná práva | +| Obrázek je na tisku rozmazaný | PNG s nízkým DPI uložený z monitoru s vysokým rozlišením | Použijte `BarCodeImageFormat.Png` (bezztrátový) a případně zvažte vlastnost `Resolution` | + +## Kompletní, spustitelný příklad + +Zkopírujte celý blok níže do nového konzolového projektu (`dotnet new console`) a spusťte jej. Program vytvoří tři PNG soubory ve složce `output`. + +```csharp +using System; +using System.IO; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Ensure output folder exists + string outDir = Path.Combine(Environment.CurrentDirectory, "output"); + Directory.CreateDirectory(outDir); + + // ---------- Planet barcode – filled bars ---------- + BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetFilled.Parameters.Barcode.XDimension.Pixels = 4; // set dimensions + planetFilled.Save(Path.Combine(outDir, "PostalPlanetFilledBars.png"), BarCodeImageFormat.Png); + + // ---------- Planet barcode – empty bars ---------- + BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; // same dimensions + planetEmpty.Parameters.Barcode.FilledBars = false; // make bars empty + planetEmpty.Save(Path.Combine(outDir, "PostalPlanetEmptyBars.png"), BarCodeImageFormat.Png); + + // ---------- RM4SCC barcode (filled bars) ---------- + BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; // consistent size + rm4scc.Save(Path.Combine(outDir, "PostalRM4SCCFilledBars.png"), BarCodeImageFormat.Png); + + Console.WriteLine($"Barcodes generated in: {outDir}"); + } +} +``` + +**Očekávaný výstup:** tři PNG soubory – `PostalPlanetFilledBars.png`, `PostalPlanetEmptyBars.png` a `PostalRM4SCCFilledBars.png` – každý s 4‑pixelovými širokými pruhy, připravený k tisku nebo dalšímu zpracování. + +## Závěr + +Nyní víte, jak **vytvořit planet barcode** v C# a přesně **jak nastavit rozměry čárového kódu** pro oba styly – vyplněné i prázdné pruhy. Stejný vzor platí i pro jiné symbologie, jako je RM4SCC, což vám poskytuje flexibilní základ pro jakýkoli požadavek na poštovní čárové kódy. + +Dále můžete zkusit: + +* Přidání lidsky čitelného textu pod čárový kód (`BarcodeGenerator.Parameters.Barcode.CodeText`) +* Změnu barvy pruhů pomocí `Parameters.Barcode.BarColor` +* Generování čárových kódů ve vektorových formátech (SVG, EPS) pro škálovatelný tisk + +Nebojte se experimentovat s různými hodnotami X‑dimenze, datovými řetězci a výstupními formáty, aby vyhovovaly vašemu konkrétnímu workflow. Šťastné programování! + +## Co byste se měli naučit dál? + +Následující tutoriály pokrývají úzce související témata, která staví na technikách předvedených v tomto průvodci. Každý zdroj obsahuje kompletní funkční ukázky kódu s podrobnými vysvětleními, aby vám pomohl zvládnout další funkce API a prozkoumat alternativní implementační přístupy ve vašich projektech. + +- [Jak vytvořit tichou zónu čárového kódu pro Code 16K pomocí Aspose.BarCode for .NET](/barcode/english/net/code-16k-encoding/code-16k-quiet-zone-settings/) +- [Jak vytvořit tichou zónu čárového kódu pro ITF‑14 pomocí Aspose.BarCode for .NET](/barcode/english/net/itf-14-barcode-customization/itf-14-barcode-quiet-zone-configuration/) +- [Jak vytvořit Aztec čárový kód s korekcí chyb v .NET](/barcode/english/net/aztec-barcode-encoding/aztec-error-level-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/czech/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md b/barcode/czech/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md new file mode 100644 index 000000000..3a1845568 --- /dev/null +++ b/barcode/czech/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md @@ -0,0 +1,238 @@ +--- +category: general +date: 2026-08-15 +description: Databar rozšířil generování vrstvených čárových kódů v C#. Naučte se, + jak vytvořit obrázek čárového kódu a nastavit sloupce a řádky pro rozvržení DataBar. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- databar expanded stacked +- generate barcode image +- how to generate barcode +- how to set columns +- how to set rows +language: cs +lastmod: 2026-08-15 +og_description: Databar rozšířil generování vrstvených čárových kódů v C#. Postupujte + podle tohoto krok‑za‑krokem průvodce a efektivně generujte obrázky čárových kódů, + nastavujte sloupce a řádky. +og_image_alt: Screenshot of a databar expanded stacked barcode generated with C# +og_title: Databar expanded stacked – vytvořte obrázek čárového kódu v C# +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + headline: 'Databar expanded stacked: generate barcode image in C#' + type: TechArticle +- description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + name: 'Databar expanded stacked: generate barcode image in C#' + steps: + - name: 1. Install the Aspose.BarCode library + text: 'The code uses the **Aspose.BarCode for .NET** library, which provides the + `BarcodeGenerator` class. Install the NuGet package with the following command:' + - name: 2. Create a barcode generator for **databar expanded stacked** + text: The generator is the entry point for all barcode operations. You must specify + the symbology (`EncodeTypes.DatabarExpandedStacked`) and the text to encode. + - name: 3. How to set columns for DataBar + text: The `Columns` property controls how many vertical modules appear in the + stacked barcode. Valid values are 2, 3, or 4. Setting columns influences the + barcode’s width and the amount of data it can store. + - name: 4. Save the 4‑column barcode image + text: Saving the image produces a file that you can embed in reports, invoices, + or mobile apps. The `Save` method accepts a file path and an image format. + - name: 5. How to set rows for DataBar + text: Rows add a second dimension to the stacked layout, allowing more data to + be encoded without widening the barcode. The `Rows` property defaults to 1; + you can increase it up to 3 for the expanded stacked variant. + - name: 6. Save the 3‑row barcode image + text: '```csharp // Step 5: Save the 3‑row barcode image barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", + BarCodeImageFormat.Png); ```' + - name: 7. Complete C# example to generate barcode image + text: 'Putting all steps together yields a self‑contained program you can copy + into a console application:' + type: HowTo +tags: +- barcode +- C# +- Aspose.BarCode +title: 'Databar expanded stacked: vytvořit obrázek čárového kódu v C#' +url: /cs/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Databar expanded stacked: generování obrázku čárového kódu v C# + +Pokud potřebujete v C# vygenerovat obrázek čárového kódu **databar expanded stacked**, tento návod vám přesně ukáže **jak generovat čárové kódy** s vlastními rozvrženími sloupců a řádků. Uvidíte, jak nastavit sloupce, jak nastavit řádky a jak uložit vzniklé obrázky, aniž byste opustili IDE. + +Návod pokrývá: + +* Vytvoření generátoru čárových kódů pro symbologii **databar expanded stacked**. +* Nastavení rozvržení s 4 sloupci a 3 řádky. +* Uložení každé konfigurace jako soubor PNG. +* Tipy pro zpracování okrajových případů, jako jsou neplatné počty sloupců. + +Externí dokumentace není vyžadována; kompletní spustitelný příklad je zahrnut. + +![Databar expanded stacked barcode example](YOUR_DIRECTORY/DatabarCols4.png){: .center alt="databar expanded stacked čárový kód vygenerovaný v C#" } + +## Kroky generování čárového kódu Databar expanded stacked + +### 1. Instalace knihovny Aspose.BarCode + +Kód používá knihovnu **Aspose.BarCode for .NET**, která poskytuje třídu `BarcodeGenerator`. Nainstalujte NuGet balíček pomocí následujícího příkazu: + +```bash +dotnet add package Aspose.BarCode +``` + +Po instalaci balíčku přidejte požadovaný jmenný prostor na začátek souboru: + +```csharp +using Aspose.BarCode.Generation; +``` + +### 2. Vytvoření generátoru čárových kódů pro **databar expanded stacked** + +Generátor je vstupním bodem pro všechny operace s čárovými kódy. Musíte zadat symbologii (`EncodeTypes.DatabarExpandedStacked`) a text, který se má kódovat. + +```csharp +// Step 1: Create a barcode generator for Databar Expanded Stacked +BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); +``` + +*Proč je to důležité:* Výčtový typ `EncodeTypes` říká knihovně, který formát čárového kódu má vytvořit. Použití **databar expanded stacked** zajišťuje, že výsledný obrázek odpovídá specifikaci GS1 DataBar pro vrstvená rozvržení. + +### 3. Jak nastavit sloupce pro DataBar + +Vlastnost `Columns` určuje, kolik vertikálních modulů se objeví ve vrstveném čárovém kódu. Platné hodnoty jsou 2, 3 nebo 4. Nastavení sloupců ovlivňuje šířku čárového kódu a množství dat, která může uložit. + +```csharp +// Step 2: Configure a 4‑column layout +barcode.Parameters.Barcode.DataBar.Columns = 4; +``` + +**Tip:** Pokud se pokusíte přiřadit hodnotu mimo povolený rozsah, knihovna vyhodí `ArgumentException`. Vždy validujte vstup, když uživatelům umožňujete výběr sloupců. + +### 4. Uložení obrázku čárového kódu se 4 sloupci + +Uložení obrázku vytvoří soubor, který můžete vložit do reportů, faktur nebo mobilních aplikací. Metoda `Save` přijímá cestu k souboru a formát obrázku. + +```csharp +// Step 3: Save the 4‑column barcode image +barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); +``` + +Po zápisu souboru jej můžete otevřít v libovolném prohlížeči obrázků a ověřit, že vzor **databar expanded stacked** je zobrazen správně. + +### 5. Jak nastavit řádky pro DataBar + +Řádky přidávají druhý rozměr k vrstvenému rozvržení, což umožňuje kódovat více dat bez rozšiřování šířky čárového kódu. Výchozí hodnota vlastnosti `Rows` je 1; můžete ji zvýšit až na 3 pro variantu expanded stacked. + +```csharp +// Step 4: Switch to a 3‑row layout (columns remain unchanged) +barcode.Parameters.Barcode.DataBar.Rows = 3; +``` + +**Proč jsou řádky důležité:** Zvýšení počtu řádků snižuje celkovou šířku při zachování kapacity dat, což je užitečné pro úzké štítky nebo prostor na mobilních obrazovkách. + +### 6. Uložení obrázku čárového kódu se 3 řádky + +```csharp +// Step 5: Save the 3‑row barcode image +barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); +``` + +Nyní máte dva soubory PNG – jeden s rozvržením 4 sloupců a druhý s rozvržením 3 řádků – oba používají symbologii **databar expanded stacked**. + +### 7. Kompletní příklad v C# pro generování obrázku čárového kódu + +Spojením všech kroků získáte samostatný program, který můžete zkopírovat do konzolové aplikace: + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace DatabarExpandedStackedDemo +{ + class Program + { + static void Main() + { + // Create the generator for Databar Expanded Stacked + BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); + + // Configure a 4‑column layout and save + barcode.Parameters.Barcode.DataBar.Columns = 4; + barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); + Console.WriteLine("4‑column barcode saved."); + + // Change to a 3‑row layout (columns stay at 4) and save + barcode.Parameters.Barcode.DataBar.Rows = 3; + barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); + Console.WriteLine("3‑row barcode saved."); + } + } +} +``` + +**Očekávaný výstup** + +Spuštěním programu se vypíše: + +``` +4‑column barcode saved. +3‑row barcode saved. +``` + +a vytvoří dva soubory PNG v `YOUR_DIRECTORY`. Otevřete soubory a ověřte, že každý obrázek zobrazuje platný čárový kód **databar expanded stacked**. + +## Časté úskalí a praktické tipy + +* **Existence adresáře** – `Save` nevytváří chybějící složky. Ujistěte se, že `YOUR_DIRECTORY` existuje, nebo před uložením použijte `Directory.CreateDirectory`. +* **Limity sloupců** – Hodnoty jiné než 2, 3 nebo 4 vyvolají výjimku. Chraňte se před chybami uživatelského vstupu jednoduchou kontrolou rozsahu: + + ```csharp + int columns = 4; + if (columns < 2 || columns > 4) throw new ArgumentOutOfRangeException(nameof(columns)); + barcode.Parameters.Barcode.DataBar.Columns = columns; + ``` + +* **Limity řádků** – Varianta expanded stacked podporuje až 3 řádky. Nastavení `Rows` na 0 nebo na hodnotu větší než 3 také vyvolá výjimku. +* **Formát obrázku** – `BarCodeImageFormat.Png` poskytuje bezztrátovou kvalitu, což je ideální pro tisk. `Jpeg` použijte jen tehdy, když je velikost souboru hlavní prioritou. + +## Další kroky + +Nyní, když víte **jak generovat čárové kódy** s vlastními konfiguracemi sloupců a řádků, můžete: + +* Integrovat generátor do webového API, které bude na vyžádání poskytovat obrázky čárových kódů. +* Kombinovat čárový kód s knihovnami pro generování PDF a vložit jej do faktur. +* Experimentovat s dalšími variantami DataBar (`DatabarExpanded`, `DatabarLimited`) pomocí stejného objektu `Parameters.Barcode.DataBar`. + +Pro podrobnější přizpůsobení – například změnu barvy čáry, přidání lidsky čitelného textu nebo aplikaci překryvů QR‑kódu – se podívejte do dokumentace Aspose.BarCode k vlastnostem `BarcodeGenerator`. + +--- + +Podle tohoto návodu jste zvládli workflow **databar expanded stacked**, naučili se **jak nastavit sloupce**, **jak nastavit řádky** a vytvořili dva odlišné obrázky čárových kódů připravené k produkčnímu použití. Šťastné programování! + +## Co byste se měli naučit dál? + +Následující tutoriály pokrývají úzce související témata, která staví na technikách předvedených v tomto návodu. Každý zdroj obsahuje kompletní funkční ukázky kódu s podrobnými vysvětleními, aby vám pomohly zvládnout další funkce API a prozkoumat alternativní přístupy k implementaci ve vašich projektech. + +- [Vygenerovat obrázek čárového kódu – GS1 Coupon UPC-A Databar](/barcode/english/net/gs1-barcode-encoding/gs1-coupon-upc-a-databar-configuration/) +- [Vytvořit obrázek DotCode čárového kódu – řádky a sloupce (Aspose.BarCode)](/barcode/english/net/dotcode-barcode-configuration/dotcode-rows-columns-configuration/) +- [Jak generovat čárový kód – jednorozměrné typy čárových kódů](/barcode/english/net/one-dimensional-barcode-types/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/czech/python-java/general/how-to-set-barcode-complete-c-guide/_index.md b/barcode/czech/python-java/general/how-to-set-barcode-complete-c-guide/_index.md new file mode 100644 index 000000000..00bde421d --- /dev/null +++ b/barcode/czech/python-java/general/how-to-set-barcode-complete-c-guide/_index.md @@ -0,0 +1,235 @@ +--- +category: general +date: 2026-08-15 +description: Jak nastavit parametry čárového kódu v C# a generovat obrázky čárových + kódů. Naučte se krok za krokem vytvořit Databar čárový kód a uložit soubory PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to set barcode +- how to generate barcode +- create databar barcode +- generate barcode image c# +language: cs +lastmod: 2026-08-15 +og_description: Jak nastavit čárový kód v C# pomocí Aspose.Barcode a poté vygenerovat + obrázek čárového kódu v C#. Postupujte podle tohoto návodu k vytvoření Databar čárového + kódu a uložení PNG souborů. +og_image_alt: Screenshot of a Databar barcode saved as PNG using C# code +og_title: Jak nastavit čárový kód v C# – průvodce krok za krokem +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: How to set barcode parameters in C# and generate barcode images. Learn + step‑by‑step to create Databar barcode and save PNG files. + headline: How to set barcode – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.Barcode +title: Jak nastavit čárový kód – kompletní průvodce C# +url: /cs/python-java/general/how-to-set-barcode-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak nastavit čárový kód – kompletní C# průvodce + +Pokud hledáte **how to set barcode** parametry v .NET projektu, tento tutoriál vám ukáže přesné kroky, které potřebujete. Naučíte se **how to generate barcode** obrázky, vytvořit Databar čárový kód a řídit výšku čáry pixel po pixelu – vše s čistým, produkčně připraveným C# kódem. + +V tomto průvodci budete: + +* Nainstalovat požadovaný NuGet balíček. +* Vytvořit Databar Omnidirectional čárový kód (část „create Databar barcode“). +* Upravit X‑dimenzi a výšku čáry pro demonstraci **how to set barcode** rozměrů. +* Uložit výsledek jako PNG soubory, pokrývající scénář **generate barcode image C#**. + +Kód funguje s nejnovější verzí Aspose.Barcode pro .NET (v 24.12 v době psaní) a běží na .NET 6 nebo novějším. + +--- + +## Požadavky + +Než začnete, ujistěte se, že máte: + +* .NET 6 SDK (nebo jakoukoli novější verzi). +* IDE, například Visual Studio 2022 nebo VS Code. +* Přístup k internetu pro stažení NuGet balíčku Aspose.Barcode. + +Žádné další knihovny třetích stran nejsou vyžadovány. + +--- + +## Krok 1: Instalace Aspose.Barcode pro .NET + +Nejspolehlivější způsob, jak **generate barcode** obrázky v C#, je použít Aspose.Barcode. Otevřete terminál ve složce projektu a spusťte: + +```bash +dotnet add package Aspose.BarCode +``` + +Příkaz přidá nejnovější stabilní verzi do vašeho souboru projektu, čímž zajistí, že máte třídu `BarcodeGenerator` a výčtový typ `EncodeTypes`. + +*Tip:* Udržujte balíček aktuální (`dotnet list package --outdated`), abyste získali opravy chyb a nové symbologie čárových kódů. + +--- + +## Krok 2: Vytvoření Databar čárového kódu (create Databar barcode) + +Databar Omnidirectional je ideální pro maloobchod a logistiku, protože může zakódovat hodnotu GTIN‑14 plus další data. Následující kód vytváří objekt čárového kódu: + +```csharp +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +// Step 2: Initialize the generator for a Databar Omnidirectional barcode +BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); +``` + +*Proč je to důležité:* Výčtový typ `EncodeTypes.DatabarOmniDirectional` říká knihovně, aby použila symbologii Databar, zatímco řetězec `"(01)12345678901231"` odpovídá formátu GS1 Application Identifier pro 14‑ciferný GTIN. + +--- + +## Krok 3: Definice společných parametrů – X‑dimenze a základní výška + +Většina čteček čárových kódů očekává minimální X‑dimenzi (šířku nejúzkější čáry). Nastavení na 2 pixely poskytuje kompaktní, ale čitelný obrázek. + +```csharp +// Step 3: Set a 2‑pixel X‑dimension (common for most scanners) +generator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +Později můžete upravit výšku čáry bez nutnosti znovu vytvářet generátor – to je podstata **how to set barcode** atributů po vytvoření instance. + +--- + +## Krok 4: Nastavení první výšky čáry a uložení obrázku (generate barcode image C#) + +Nyní demonstrujeme první část **how to set barcode** výšky. Výška čáry řídí vizuální délku každé čáry; hodnota 30 pixelů dává krátký čárový kód, zatímco 60 pixelů vytvoří vyšší verzi. + +```csharp +// Step 4a: 30‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 30; + +// Save the first PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); +``` + +Po spuštění obsahuje `DatabarBarHeight30Pixels.png` Databar čárový kód s 30‑pixelovou vysokou čárou. Otevřete soubor v libovolném prohlížeči obrázků a ověřte výsledek. + +--- + +## Krok 5: Změna výšky čáry a uložení druhého obrázku + +Abychom ukázali, že hodnoty **how to set barcode** lze měnit za běhu, upravíme výšku čáry na 60 pixelů a zapíšeme druhý soubor. + +```csharp +// Step 5a: 60‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 60; + +// Save the second PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); +``` + +Nyní máte dva PNG soubory zobrazující stejná Databar data, ale s různou vizuální výškou. To je užitečné, když potřebujete větší čárový kód pro tištěné štítky nebo menší pro zobrazení na obrazovce. + +--- + +## Krok 6: Kompletní, spustitelný příklad + +Spojením všeho dohromady zde máte samostatný konzolový program, který provádí všechny výše popsané kroky. Zkopírujte kód do nového souboru `Program.cs`, nahraďte `YOUR_DIRECTORY` skutečnou cestou ke složce a spusťte jej. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Initialize the generator for a Databar Omnidirectional barcode + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); + + // Common parameters + generator.Parameters.Barcode.XDimension.Pixels = 2; // 2‑pixel narrow bar + + // First image: 30‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 30; + generator.Save(@"C:\Barcodes\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 30‑pixel barcode."); + + // Second image: 60‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 60; + generator.Save(@"C:\Barcodes\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 60‑pixel barcode."); + + // Dispose the generator to free native resources + generator.Dispose(); + } +} +``` + +**Očekávaný výstup** + +Po spuštění programu konzole vypíše: + +``` +Saved 30-pixel barcode. +Saved 60-pixel barcode. +``` + +A složka `C:\Barcodes` (nebo cesta, kterou jste zadali) obsahuje dva PNG soubory. Oba obrázky zobrazují platný Databar Omnidirectional čárový kód, který lze načíst standardními GS1 čtečkami. + +--- + +## Často kladené otázky + +**Funguje to s jinými formáty obrázků?** +Ano. Nahraďte `BarCodeImageFormat.Png` za `Jpeg`, `Bmp`, `Gif` nebo `Tiff`, abyste vygenerovali odpovídající typ souboru. + +**Mohu změnit barvu popředí?** +Nastavte `generator.Parameters.Barcode.ForeColor` na libovolnou hodnotu `System.Drawing.Color`, např. `Color.Blue`. + +**Co když potřebuji jinou symbologii?** +Předávejte konstruktoru jinou hodnotu `EncodeTypes`, například `EncodeTypes.Code128` pro lineární čárový kód nebo `EncodeTypes.QR` pro maticový kód. + +**Existuje způsob, jak vložit čárový kód do PDF?** +Aspose.Barcode poskytuje třídu `PdfGenerator`. Po vygenerování obrázku jej můžete přidat na stránku PDF pomocí Aspose.PDF. + +--- + +## Nejlepší postupy pro generování čárových kódů v C# + +* **Znovu použijte instanci `BarcodeGenerator`**, pokud potřebujete pouze upravit rozměry – tím se vyhnete zbytečným alokacím paměti. +* **Uvolněte generátor** (`generator.Dispose()`) po dokončení, aby se rychle uvolnily nativní zdroje. +* **Ověřte vstupní data** (např. délku GTIN) před vytvořením čárového kódu, aby se předešlo výjimkám za běhu. +* **Otestujte fyzickou čtečkou** po změně X‑dimenze nebo výšky čáry; extrémní hodnoty mohou ovlivnit čitelnost. +* **Ujistěte se, že výstupní složka je zapisovatelná** pro účet, pod kterým běží aplikace; jinak `Save` vyhodí `UnauthorizedAccessException`. + +--- + +## Závěr + +Nyní víte, **how to set barcode** vlastnosti jako X‑dimenzi a výšku čáry, **how to generate barcode** obrázky v C# a přesné kroky k **create Databar barcode** souborům pomocí Aspose.Barcode. Dodržením kompletního příkladu můžete generovat více PNG souborů s různými vizuálními charakteristikami, čímž splníte požadavek **generate barcode image C#** pro jakoukoli .NET aplikaci. + +Dále prozkoumejte související témata, jako **how to generate barcode** hromadně, vkládání čárových kódů do PDF nebo přechod na jiné symbologie jako QR nebo Code 128. Experimentujte s zde uvedenými parametry, abyste doladili vzhled čárových kódů pro vaše konkrétní skenovací prostředí. Šťastné programování! + +## Co byste se měli naučit dál? + +Následující tutoriály pokrývají úzce související témata, která staví na technikách předvedených v tomto průvodci. Každý zdroj obsahuje kompletní funkční ukázky kódu s podrobnými vysvětleními, které vám pomohou zvládnout další funkce API a prozkoumat alternativní přístupy k implementaci ve vašich projektech. + +- [Jak generovat DataMatrix čárové kódy (ECC 200) s Aspose.BarCode pro .NET](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-ecc-200-configuration/) +- [Jak generovat Aztec čárový kód s vlastním poměrem stran pomocí Aspose.BarCode pro .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [Jak generovat čárový kód – konfigurace Code 39 s Aspose.BarCode](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-code-39-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/dutch/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md b/barcode/dutch/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md new file mode 100644 index 000000000..da7f9717c --- /dev/null +++ b/barcode/dutch/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md @@ -0,0 +1,185 @@ +--- +category: general +date: 2026-08-15 +description: Barcode‑afbeelding PNG in C# – leer hoe je postbarcodes genereert, een + Planet‑barcode maakt en de barcodehoogte wijzigt met een eenvoudige generator. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- barcode image png +- barcode generator c# +- generate postal barcode +- create planet barcode +- change barcode height +language: nl +lastmod: 2026-08-15 +og_description: Barcode-afbeelding PNG in C#-tutorial laat zien hoe je postbarcodes + genereert, een Planet-barcode maakt en de barcodehoogte wijzigt met behulp van de + BarcodeGenerator API. +og_image_alt: Screenshot of generated PNG barcode with custom height using C# BarcodeGenerator +og_title: Barcode‑afbeelding PNG in C# – genereer en pas barcodes aan +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Barcode image PNG in C# – learn how to generate postal barcodes, create + a Planet barcode, and change barcode height with a simple generator. + headline: Barcode image PNG in C# generate barcodes, change height + type: TechArticle +tags: +- barcode +- C# +- PNG +- postal +- generator +title: Barcode‑afbeelding PNG in C# – barcodes genereren, hoogte wijzigen +url: /nl/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Barcode-afbeelding PNG in C# – barcodes genereren, hoogte wijzigen + +Als je een **barcode image PNG** in C# nodig hebt, leidt deze gids je door het volledige proces. Je leert hoe je postbarcodes genereert, een Planet‑barcode maakt en de barcodehoogte wijzigt zonder je IDE te verlaten. + +Het genereren van betrouwbare PNG‑barcodes is een veelvoorkomende eis voor verzendetiketten, voorraadsystemen en geautomatiseerde postoplossingen. Aan het einde van deze tutorial heb je een herbruikbare code‑snippet die hoogwaardige PNG‑bestanden produceert voor zowel Planet‑ als RM4SCC‑formaten, en begrijp je hoe je de balkhoogte kunt aanpassen aan de postvoorschriften. + +## Wat je nodig hebt + +- .NET 6+ of .NET Framework 4.7.2 (de BarcodeGenerator API werkt met elke recente .NET runtime) +- Een referentie naar het **Aspose.BarCode for .NET** NuGet‑pakket (of een compatibele bibliotheek die `BarcodeGenerator`, `EncodeTypes` en `BarCodeImageFormat` levert) +- Basiskennis van C#‑syntaxis en bestands‑I/O + +Er zijn geen extra tools nodig; de code draait in Visual Studio, Rider of de `dotnet` CLI. + +## Barcode image PNG – basisgeneratie + +De eerste stap is het maken van een **barcode image PNG** met standaardafmetingen. Dit legt het basisbestand vast dat je later kunt aanpassen. + +```csharp +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +// Define the output folder (replace with your own path) +string outputFolder = @"C:\Barcodes"; + +// Ensure the folder exists +Directory.CreateDirectory(outputFolder); + +// 1️⃣ Create a Planet barcode generator with default height +BarcodeGenerator planetGenerator = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + +// Set the module width (X‑dimension) to 4 pixels – this defines the thin bar size +planetGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the image as PNG; this is the first **barcode image PNG** you’ll produce +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +**Waarom dit werkt:** +- `EncodeTypes.Planet` vertelt de generator om de Planet‑symbologie te gebruiken, wat vereist is voor veel postdiensten. +- `XDimension.Pixels` bepaalt de breedte van de kleinste balk; een waarde van 4 px levert een leesbare barcode op typische etiketgroottes. +- De `Save`‑methode schrijft een **barcode image PNG**‑bestand naar schijf, waarbij alle vectorinformatie wordt bewaard als rasterpixels. + +## Barcodehoogte wijzigen – de visuele weging aanpassen + +Postrichtlijnen vereisen vaak een specifieke balkhoogte. De onderstaande snippet toont hoe je een aangepaste hoogte van 100 pixel instelt voor dezelfde Planet‑barcode. + +```csharp +// 2️⃣ Apply a custom 100‑pixel bar height +planetGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Overwrite or save as a new file to keep both versions +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +**Waarom je de hoogte wijzigt:** +Een hogere balk verbetert de scanbetrouwbaarheid op laag‑resolutieprinters, terwijl een kortere balk minder labelruimte inneemt. De `BarHeight.Pixels`‑eigenschap stelt je in staat dit attribuut nauwkeurig af te stemmen zonder de X‑dimensie te beïnvloeden. + +## Postbarcode genereren – een RM4SCC‑voorbeeld maken + +Het RM4SCC‑formaat is een andere veelgebruikte postbarcode in het Verenigd Koninkrijk. De generatie‑stappen spiegelen het Planet‑voorbeeld en versterken het **barcode generator c#**‑patroon. + +```csharp +// 3️⃣ Create an RM4SCC barcode generator with default height +BarcodeGenerator rm4sccGenerator = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Keep the same module width for consistency +rm4sccGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the default‑height PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +## Barcodehoogte wijzigen – RM4SCC‑variant + +Net als bij de Planet‑barcode kun je de RM4SCC‑balkhoogte aanpassen. De onderstaande code stelt de hoogte in op 100 px, waardoor een tweede **barcode image PNG** voor dezelfde gegevensreeks wordt geproduceerd. + +```csharp +// 4️⃣ Set a custom 100‑pixel bar height for RM4SCC +rm4sccGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Save the customized PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +## Volledig, uitvoerbaar voorbeeld + +Alle stappen samenvoegen levert een enkel, zelfstandig programma op dat vier PNG‑bestanden maakt: + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +class Program +{ + static void Main() + { + string outputFolder = @"C:\Barcodes"; + Directory.CreateDirectory(outputFolder); + + // Planet barcode – default height + var planet = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planet.Parameters.Barcode.XDimension.Pixels = 4; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // Planet barcode – custom 100‑pixel height + planet.Parameters.Barcode.BarHeight.Pixels = 100; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – default height + var rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – custom 100‑pixel height + rm4scc.Parameters.Barcode.BarHeight.Pixels = 100; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); + + Console.WriteLine("All barcode PNG files have been generated in " + + + +## Wat moet je hierna leren? + +De volgende tutorials behandelen nauw verwante onderwerpen die voortbouwen op de technieken die in deze gids worden getoond. Elke bron bevat volledige werkende code‑voorbeelden met stapsgewijze uitleg om je te helpen extra API‑functies onder de knie te krijgen en alternatieve implementatie‑benaderingen in je eigen projecten te verkennen. + +- [Barcode met aangepaste hoogte maken – één-dimensionale barcodes](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-barcode-height-adjustment/) +- [Barcode PNG maken – DataMatrix-beeldverhouding – Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-aspect-ratio-customization/) +- [Barcode‑afbeelding C# maken – GS1 DataMatrix‑voorbeeld](/barcode/english/net/gs1-barcode-encoding/gs1-datamatrix-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/dutch/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md b/barcode/dutch/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md new file mode 100644 index 000000000..500d92a93 --- /dev/null +++ b/barcode/dutch/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-08-15 +description: Maak een planet barcode in C# en leer hoe je de afmetingen van de barcode + instelt voor perfecte grootte. Stapsgewijs codevoorbeeld met gevulde en lege streepjes. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create planet barcode +- how to set barcode dimensions +- planet barcode C# +- barcode X‑dimension +- empty barcode bars +language: nl +lastmod: 2026-08-15 +og_description: Maak een Planet-barcode in C# en leer hoe je de afmetingen van de + barcode instelt. Volg deze gids om direct gevulde en lege Planet-barcodes te genereren. +og_image_alt: Screenshot showing a Planet barcode with filled bars generated by C# + code +og_title: Maak een planet barcode in C# – volledige stapsgewijze handleiding +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Create planet barcode in C# and learn how to set barcode dimensions + for perfect sizing. Step‑by‑step code example with filled and empty bars. + headline: Create planet barcode in C# – complete programming guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.BarCode +title: Maak planet barcode in C# – volledige programmeergids +url: /nl/python-java/general/create-planet-barcode-in-c-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Planet-barcode maken in C# – volledige programmeergids + +Als je een **planet-barcode** in C# moet **maken**, laat deze gids je precies zien hoe. Je ontdekt ook **hoe je de afmetingen van de barcode instelt** zodat de strepen exact de gewenste breedte hebben. + +Het genereren van Planet-barcodes komt vaak voor bij postdiensten of logistieke systemen. De code hieronder behandelt zowel de standaard versie met gevulde strepen als de optionele versie met lege strepen, plus een snel voorbeeld voor het RM4SCC‑formaat. Aan het einde van deze tutorial heb je een herbruikbaar fragment dat je in elk .NET‑project kunt gebruiken. + +## Vereisten + +Voordat je begint, zorg dat je het volgende hebt: + +* .NET 6.0 of hoger geïnstalleerd (de API werkt ook met .NET Framework 4.6+) +* Het **Aspose.BarCode for .NET** NuGet‑pakket (`Aspose.BarCode`) aan je project toegevoegd +* Een schrijfbare map waar de PNG‑bestanden worden opgeslagen +* Basiskennis van C#‑syntaxis en Visual Studio (of een andere IDE) + +> **Pro tip:** Gebruik een absoluut pad of `Path.Combine(Environment.CurrentDirectory, "output")` om machtigingsproblemen bij het opslaan van afbeeldingen te voorkomen. + +## Stap 1 – Initialiseer een Planet‑barcodegenerator (gevulde strepen) + +De eerste stap is het aanmaken van een `BarcodeGenerator`‑instantie voor de Planet‑symbologie. Standaard genereert de generator **gevulde** strepen. + +```csharp +// Step 1: Create a Planet barcode with the default (filled) bars +BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +De `EncodeTypes.Planet`‑enum vertelt Aspose.BarCode om het Planet‑formaat te gebruiken, terwijl `"123456"` de gegevenspayload is die wordt gecodeerd. + +## Stap 2 – Hoe je de afmetingen van de barcode instelt voor consistente grootte + +Om de breedte van elke streep te regelen, pas je de **X‑dimensie** aan. Dit is de primaire manier om **de afmetingen van de barcode in te stellen** en zorgt ervoor dat de barcode in je label past. + +```csharp +// Step 2: Set the X‑dimension (width of each bar) to 4 pixels +planetFilled.Parameters.Barcode.XDimension.Pixels = 4; +``` + +De eigenschap `Pixels` bepaalt de streepbreedte in schermpixels. Veelvoorkomende waarden zijn 2 – 5 pixels voor standaard postlabels; verhoog de waarde voor grotere afdrukken. + +## Stap 3 – Sla de gevulde Planet‑barcode op als PNG + +Schrijf nu de afbeelding naar schijf. PNG behoudt scherpe randen, wat ideaal is voor scannen. + +```csharp +// Step 3: Save the Planet barcode as a PNG image +planetFilled.Save("YOUR_DIRECTORY/PostalPlanetFilledBars.png", BarCodeImageFormat.Png); +``` + +Vervang `YOUR_DIRECTORY` door het pad dat je eerder hebt voorbereid. Na het uitvoeren van deze code zie je een bestand dat lijkt op de afbeelding hieronder. + +![Planet barcode with filled bars](planet_filled.png "Planet barcode with filled bars – created by C# code") + +*Alt‑tekst:* **Planet barcode with filled bars generated by C# code** (matches `og_image_alt`). + +## Stap 4 – Maak een Planet‑barcode met lege (ongevulde) strepen + +Als je postdienst vereist dat de strepen **leeg** zijn, moet je de `FilledBars`‑vlag omzetten na het initialiseren van de generator. + +```csharp +// Step 4: Create a Planet barcode with empty (unfilled) bars +BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +De constructor is identiek; het verschil zit in de volgende configuratiestap. + +## Stap 5 – Hoe je de afmetingen van de barcode instelt en strepen leeg maakt + +Stel opnieuw de X‑dimensie in voor visuele consistentie, en schakel vervolgens de gevulde strepen uit. + +```csharp +// Step 5: Set the X‑dimension and specify that bars should be empty +planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; +planetEmpty.Parameters.Barcode.FilledBars = false; // makes bars empty +``` + +De eigenschap `FilledBars = false` is wat daadwerkelijk de weergavestijl wijzigt. Het behouden van dezelfde X‑dimensie zorgt ervoor dat de barcode met lege strepen perfect op één lijn ligt met de versie met gevulde strepen. + +## Stap 6 – Sla de lege Planet‑barcode op + +```csharp +// Step 6: Save the Planet barcode with empty bars as a PNG image +planetEmpty.Save("YOUR_DIRECTORY/PostalPlanetEmptyBars.png", BarCodeImageFormat.Png); +``` + +Je hebt nu twee PNG‑bestanden: één met solide strepen en één met holle strepen, beide met dezelfde afmetingen. + +## Stap 7 – (Optioneel) Genereer een RM4SCC‑barcode ter vergelijking + +RM4SCC is een andere post‑symbologie die dezelfde standaard gevulde‑streep‑stijl gebruikt. De stappen spiegelen het Planet‑voorbeeld, waarmee wordt aangetoond dat **hoe je de afmetingen van de barcode instelt** werkt voor verschillende formaten. + +```csharp +// Step 7: Create an RM4SCC barcode (filled bars are the default) +BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Step 8: Set the X‑dimension for consistency +rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + +// Step 9: Save the RM4SCC barcode as a PNG image +rm4scc.Save("YOUR_DIRECTORY/PostalRM4SCCFilledBars.png", BarCodeImageFormat.Png); +``` + +Het uitvoeren van deze drie stappen produceert `PostalRM4SCCFilledBars.png`, die je naast de Planet‑uitvoer kunt vergelijken. + +## Waarom X‑dimensie belangrijk is + +De X‑dimensie bepaalt de **minimale afdrukbare breedte** van elke streep. Als je deze te laag instelt, kan de barcode vervagen op laag‑resolutieprinters, wat scan‑fouten veroorzaakt. Omgekeerd kan een te grote X‑dimensie de labelafmetingen overschrijden en ruimte verspillen. Door expliciet **hoe je de afmetingen van de barcode instelt** te bepalen, krijg je deterministische controle over de uiteindelijke afbeeldingsgrootte, wat essentieel is voor geautomatiseerde postprocessen. + +## Veelvoorkomende valkuilen en hoe ze te vermijden + +| Probleem | Oorzaak | Oplossing | +|----------|---------|-----------| +| Barcode lijkt uitgerekt | X‑dimensie ingesteld in points in plaats van pixels | Gebruik altijd de `Pixels`‑eigenschap voor pixel‑perfecte controle | +| Lege strepen zien er toch gevuld uit | `FilledBars` niet op `false` gezet na wijziging van X‑dimensie | Zet `FilledBars = false` *na* het aanpassen van de X‑dimensie | +| Opgeslagen bestand is leeg | Doelmap bestaat niet of heeft geen schrijfrechten | Zorg dat de map bestaat (`Directory.CreateDirectory`) en dat je app voldoende rechten heeft | +| Afbeelding is onscherp bij afdrukken | Lage DPI PNG opgeslagen vanaf een hoge‑resolutie monitor | Gebruik `BarCodeImageFormat.Png` (lossless) en overweeg de `Resolution`‑eigenschap indien nodig | + +## Volledig, uitvoerbaar voorbeeld + +Kopieer het volledige blok hieronder naar een nieuw console‑project (`dotnet new console`) en voer het uit. Het programma maakt drie PNG‑bestanden aan in de map `output`. + +```csharp +using System; +using System.IO; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Ensure output folder exists + string outDir = Path.Combine(Environment.CurrentDirectory, "output"); + Directory.CreateDirectory(outDir); + + // ---------- Planet barcode – filled bars ---------- + BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetFilled.Parameters.Barcode.XDimension.Pixels = 4; // set dimensions + planetFilled.Save(Path.Combine(outDir, "PostalPlanetFilledBars.png"), BarCodeImageFormat.Png); + + // ---------- Planet barcode – empty bars ---------- + BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; // same dimensions + planetEmpty.Parameters.Barcode.FilledBars = false; // make bars empty + planetEmpty.Save(Path.Combine(outDir, "PostalPlanetEmptyBars.png"), BarCodeImageFormat.Png); + + // ---------- RM4SCC barcode (filled bars) ---------- + BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; // consistent size + rm4scc.Save(Path.Combine(outDir, "PostalRM4SCCFilledBars.png"), BarCodeImageFormat.Png); + + Console.WriteLine($"Barcodes generated in: {outDir}"); + } +} +``` + +**Verwachte output:** drie PNG‑bestanden—`PostalPlanetFilledBars.png`, `PostalPlanetEmptyBars.png` en `PostalRM4SCCFilledBars.png`—elk met 4‑pixel brede strepen, klaar voor afdrukken of verdere verwerking. + +## Conclusie + +Je weet nu hoe je een **planet‑barcode** in C# kunt **maken** en precies **hoe je de afmetingen van de barcode instelt** voor zowel gevulde als lege streep‑stijlen. Hetzelfde patroon geldt voor andere symbologieën zoals RM4SCC, waardoor je een flexibele basis hebt voor elke post‑barcode‑vereiste. + +Vervolgens kun je verkennen: + +* Het toevoegen van menselijk leesbare tekst onder de barcode (`BarcodeGenerator.Parameters.Barcode.CodeText`) +* Het wijzigen van de kleur van de strepen met `Parameters.Barcode.BarColor` +* Het genereren van barcodes in vectorformaten (SVG, EPS) voor schaalbare afdrukken + +Voel je vrij om te experimenteren met verschillende X‑dimensie‑waarden, gegevensreeksen en uitvoerformaten om ze aan jouw specifieke workflow aan te passen. Veel programmeerplezier! + +## Wat moet je hierna leren? + +De volgende tutorials behandelen nauw verwante onderwerpen die voortbouwen op de technieken die in deze gids zijn gedemonstreerd. Elke bron bevat volledige werkende code‑voorbeelden met stap‑voor‑stap‑uitleg om je te helpen extra API‑functies onder de knie te krijgen en alternatieve implementatie‑benaderingen in je eigen projecten te verkennen. + +- [How to create barcode quiet zone for Code 16K using Aspose.BarCode for .NET](/barcode/english/net/code-16k-encoding/code-16k-quiet-zone-settings/) +- [How to Create Barcode Quiet Zone for ITF-14 Using Aspose.BarCode for .NET](/barcode/english/net/itf-14-barcode-customization/itf-14-barcode-quiet-zone-configuration/) +- [How to create Aztec barcode with error correction in .NET](/barcode/english/net/aztec-barcode-encoding/aztec-error-level-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/dutch/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md b/barcode/dutch/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md new file mode 100644 index 000000000..0f66ba0bd --- /dev/null +++ b/barcode/dutch/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md @@ -0,0 +1,238 @@ +--- +category: general +date: 2026-08-15 +description: Databar uitgebreide gestapelde barcodegeneratie in C#. Leer hoe je een + barcode‑afbeelding genereert, kolommen en rijen instelt voor DataBar‑lay‑outs. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- databar expanded stacked +- generate barcode image +- how to generate barcode +- how to set columns +- how to set rows +language: nl +lastmod: 2026-08-15 +og_description: Databar uitgebreide gestapelde barcodegeneratie in C#. Volg deze stap‑voor‑stap + handleiding om barcode‑afbeeldingen te genereren, kolommen in te stellen en rijen + efficiënt in te stellen. +og_image_alt: Screenshot of a databar expanded stacked barcode generated with C# +og_title: Databar expanded stacked – genereer barcode‑afbeelding in C# +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + headline: 'Databar expanded stacked: generate barcode image in C#' + type: TechArticle +- description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + name: 'Databar expanded stacked: generate barcode image in C#' + steps: + - name: 1. Install the Aspose.BarCode library + text: 'The code uses the **Aspose.BarCode for .NET** library, which provides the + `BarcodeGenerator` class. Install the NuGet package with the following command:' + - name: 2. Create a barcode generator for **databar expanded stacked** + text: The generator is the entry point for all barcode operations. You must specify + the symbology (`EncodeTypes.DatabarExpandedStacked`) and the text to encode. + - name: 3. How to set columns for DataBar + text: The `Columns` property controls how many vertical modules appear in the + stacked barcode. Valid values are 2, 3, or 4. Setting columns influences the + barcode’s width and the amount of data it can store. + - name: 4. Save the 4‑column barcode image + text: Saving the image produces a file that you can embed in reports, invoices, + or mobile apps. The `Save` method accepts a file path and an image format. + - name: 5. How to set rows for DataBar + text: Rows add a second dimension to the stacked layout, allowing more data to + be encoded without widening the barcode. The `Rows` property defaults to 1; + you can increase it up to 3 for the expanded stacked variant. + - name: 6. Save the 3‑row barcode image + text: '```csharp // Step 5: Save the 3‑row barcode image barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", + BarCodeImageFormat.Png); ```' + - name: 7. Complete C# example to generate barcode image + text: 'Putting all steps together yields a self‑contained program you can copy + into a console application:' + type: HowTo +tags: +- barcode +- C# +- Aspose.BarCode +title: 'Databar expanded stacked: barcode‑afbeelding genereren in C#' +url: /nl/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Databar expanded stacked: barcodeafbeelding genereren in C# + +Als je een **databar expanded stacked** barcode‑afbeelding in C# moet genereren, laat deze gids je precies zien **hoe je barcode**‑afbeeldingen maakt met aangepaste kolom‑ en rij‑indelingen. Je ziet hoe je kolommen instelt, hoe je rijen instelt en hoe je de resulterende afbeeldingen opslaat zonder de IDE te verlaten. + +De tutorial behandelt: + +* Het maken van een barcode‑generator voor de **databar expanded stacked** symbologie. +* Het configureren van een 4‑koloms indeling en een 3‑rij indeling. +* Het opslaan van elke configuratie als een PNG‑bestand. +* Tips voor het omgaan met randgevallen zoals ongeldige kolomaantallen. + +Er is geen externe documentatie nodig; het volledige, uitvoerbare voorbeeld is inbegrepen. + +![Databar expanded stacked barcode example](YOUR_DIRECTORY/DatabarCols4.png){: .center alt="databar expanded stacked barcode gegenereerd met C#" } + +## Stappen voor het genereren van een databar expanded stacked barcode + +### 1. Installeer de Aspose.BarCode‑bibliotheek + +De code maakt gebruik van de **Aspose.BarCode for .NET**‑bibliotheek, die de `BarcodeGenerator`‑klasse levert. Installeer het NuGet‑pakket met het volgende commando: + +```bash +dotnet add package Aspose.BarCode +``` + +Nadat het pakket is geïnstalleerd, voeg je de vereiste namespace toe aan de bovenkant van je bestand: + +```csharp +using Aspose.BarCode.Generation; +``` + +### 2. Maak een barcode‑generator voor **databar expanded stacked** + +De generator is het startpunt voor alle barcode‑bewerkingen. Je moet de symbologie (`EncodeTypes.DatabarExpandedStacked`) en de te coderen tekst opgeven. + +```csharp +// Step 1: Create a barcode generator for Databar Expanded Stacked +BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); +``` + +*Waarom dit belangrijk is:* De `EncodeTypes`‑enum vertelt de bibliotheek welk barcode‑formaat moet worden geproduceerd. Het gebruik van **databar expanded stacked** zorgt ervoor dat de resulterende afbeelding voldoet aan de GS1 DataBar‑specificatie voor gestapelde indelingen. + +### 3. Hoe kolommen instellen voor DataBar + +De eigenschap `Columns` bepaalt hoeveel verticale modules er in de gestapelde barcode verschijnen. Geldige waarden zijn 2, 3 of 4. Het instellen van kolommen beïnvloedt de breedte van de barcode en de hoeveelheid data die kan worden opgeslagen. + +```csharp +// Step 2: Configure a 4‑column layout +barcode.Parameters.Barcode.DataBar.Columns = 4; +``` + +**Tip:** Als je een waarde buiten het toegestane bereik probeert toe te wijzen, gooit de bibliotheek een `ArgumentException`. Valideer altijd de invoer wanneer je kolomselectie aan gebruikers blootstelt. + +### 4. Sla de 4‑koloms barcode‑afbeelding op + +Het opslaan van de afbeelding produceert een bestand dat je kunt insluiten in rapporten, facturen of mobiele apps. De `Save`‑methode accepteert een bestandspad en een afbeeldingsformaat. + +```csharp +// Step 3: Save the 4‑column barcode image +barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); +``` + +Wanneer het bestand is geschreven, kun je het met elke afbeeldingsviewer openen om te bevestigen dat het **databar expanded stacked**‑patroon correct wordt weergegeven. + +### 5. Hoe rijen instellen voor DataBar + +Rijen voegen een tweede dimensie toe aan de gestapelde indeling, waardoor meer data kan worden gecodeerd zonder de barcode breder te maken. De eigenschap `Rows` heeft standaard de waarde 1; je kunt deze verhogen tot maximaal 3 voor de expanded stacked‑variant. + +```csharp +// Step 4: Switch to a 3‑row layout (columns remain unchanged) +barcode.Parameters.Barcode.DataBar.Rows = 3; +``` + +**Waarom rijen belangrijk zijn:** Het verhogen van het aantal rijen verkleint de totale breedte terwijl de gegevenscapaciteit behouden blijft, wat nuttig is voor smalle etiketten of beperkte schermruimte op mobiele apparaten. + +### 6. Sla de 3‑rij barcode‑afbeelding op + +```csharp +// Step 5: Save the 3‑row barcode image +barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); +``` + +Je hebt nu twee PNG‑bestanden — één met een 4‑koloms indeling en één met een 3‑rij indeling — beide met de **databar expanded stacked**‑symbologie. + +### 7. Volledig C#‑voorbeeld om een barcode‑afbeelding te genereren + +Alle stappen samengevoegd leveren een zelfstandige applicatie die je kunt kopiëren naar een console‑applicatie: + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace DatabarExpandedStackedDemo +{ + class Program + { + static void Main() + { + // Create the generator for Databar Expanded Stacked + BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); + + // Configure a 4‑column layout and save + barcode.Parameters.Barcode.DataBar.Columns = 4; + barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); + Console.WriteLine("4‑column barcode saved."); + + // Change to a 3‑row layout (columns stay at 4) and save + barcode.Parameters.Barcode.DataBar.Rows = 3; + barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); + Console.WriteLine("3‑row barcode saved."); + } + } +} +``` + +**Verwachte uitvoer** + +Het uitvoeren van het programma geeft het volgende weer: + +``` +4‑column barcode saved. +3‑row barcode saved. +``` + +en maakt twee PNG‑bestanden aan in `YOUR_DIRECTORY`. Open de bestanden om te verifiëren dat elk een geldige **databar expanded stacked**‑barcode toont. + +## Veelvoorkomende valkuilen en praktische tips + +* **Bestandsmap bestaat** – `Save` maakt geen ontbrekende mappen aan. Zorg ervoor dat `YOUR_DIRECTORY` bestaat of gebruik `Directory.CreateDirectory` vóór het opslaan. +* **Kolomlimieten** – Waarden anders dan 2, 3 of 4 veroorzaken een uitzondering. Bescherm tegen gebruikersinvoerfouten met een eenvoudige bereikcontrole: + + ```csharp + int columns = 4; + if (columns < 2 || columns > 4) throw new ArgumentOutOfRangeException(nameof(columns)); + barcode.Parameters.Barcode.DataBar.Columns = columns; + ``` + +* **Rijlimieten** – De expanded stacked‑variant ondersteunt maximaal 3 rijen. Het instellen van `Rows` op 0 of een waarde groter dan 3 veroorzaakt eveneens een uitzondering. +* **Afbeeldingsformaat** – `BarCodeImageFormat.Png` levert verliesvrije kwaliteit, ideaal voor afdrukken. Gebruik `Jpeg` alleen wanneer bestandsgrootte een primaire zorg is. + +## Volgende stappen + +Nu je weet **hoe je barcode**‑afbeeldingen maakt met aangepaste kolom‑ en rij‑configuraties, kun je: + +* De generator integreren in een web‑API om barcode‑afbeeldingen on‑demand te leveren. +* De barcode combineren met PDF‑generatiebibliotheken om deze in facturen in te sluiten. +* Experimenteren met andere DataBar‑varianten (`DatabarExpanded`, `DatabarLimited`) met hetzelfde `Parameters.Barcode.DataBar`‑object. + +Voor diepere aanpassingen — zoals het wijzigen van de balkkleur, het toevoegen van mens‑leesbare tekst, of het toepassen van QR‑code‑overlays — raadpleeg de Aspose.BarCode‑documentatie over `BarcodeGenerator`‑eigenschappen. + +--- + +Door deze gids te volgen heb je de **databar expanded stacked**‑workflow onder de knie, geleerd **hoe je kolommen instelt**, **hoe je rijen instelt**, en twee verschillende barcode‑afbeeldingen geproduceerd die klaar zijn voor productie. Veel programmeerplezier! + +## Wat moet je hierna leren? + +De volgende tutorials behandelen nauw verwante onderwerpen die voortbouwen op de technieken die in deze gids worden getoond. Elke bron bevat volledige werkende code‑voorbeelden met stap‑voor‑stap uitleg om je te helpen extra API‑functies onder de knie te krijgen en alternatieve implementatie‑benaderingen in je eigen projecten te verkennen. + +- [Generate barcode image – GS1 Coupon UPC-A Databar](/barcode/english/net/gs1-barcode-encoding/gs1-coupon-upc-a-databar-configuration/) +- [Create DotCode barcode image – rows & columns (Aspose.BarCode)](/barcode/english/net/dotcode-barcode-configuration/dotcode-rows-columns-configuration/) +- [How to Generate Barcode - One-Dimensional Barcode Types](/barcode/english/net/one-dimensional-barcode-types/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/dutch/python-java/general/how-to-set-barcode-complete-c-guide/_index.md b/barcode/dutch/python-java/general/how-to-set-barcode-complete-c-guide/_index.md new file mode 100644 index 000000000..526f5e209 --- /dev/null +++ b/barcode/dutch/python-java/general/how-to-set-barcode-complete-c-guide/_index.md @@ -0,0 +1,236 @@ +--- +category: general +date: 2026-08-15 +description: Hoe barcode‑parameters in C# in te stellen en barcode‑afbeeldingen te + genereren. Leer stap voor stap hoe je een Databar‑barcode maakt en PNG‑bestanden + opslaat. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to set barcode +- how to generate barcode +- create databar barcode +- generate barcode image c# +language: nl +lastmod: 2026-08-15 +og_description: Hoe een barcode instellen in C# met Aspose.Barcode, vervolgens een + barcode‑afbeelding genereren in C#. Volg deze gids om een Databar‑barcode te maken + en PNG‑bestanden op te slaan. +og_image_alt: Screenshot of a Databar barcode saved as PNG using C# code +og_title: Hoe barcode in C# instellen – stap‑voor‑stap gids +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: How to set barcode parameters in C# and generate barcode images. Learn + step‑by‑step to create Databar barcode and save PNG files. + headline: How to set barcode – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.Barcode +title: Hoe een barcode instellen – volledige C#‑gids +url: /nl/python-java/general/how-to-set-barcode-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hoe barcode in te stellen – volledige C# gids + +Als je op zoek bent naar **how to set barcode** parameters in een .NET‑project, laat deze tutorial de exacte stappen zien die je nodig hebt. Je leert **how to generate barcode** afbeeldingen maken, een Databar‑barcode creëren, en de balkhoogte pixel‑voor‑pixel regelen — allemaal met nette, productie‑klare C#‑code. + +In deze gids leer je: + +* Installeer het vereiste NuGet‑pakket. +* Maak een Databar Omnidirectional barcode (het “create Databar barcode” gedeelte). +* Pas X‑dimension en balkhoogte aan om **how to set barcode** dimensies te demonstreren. +* Sla het resultaat op als PNG‑bestanden, waarmee het **generate barcode image C#** scenario wordt behandeld. + +De code werkt met de nieuwste Aspose.Barcode voor .NET (v 24.12 op het moment van schrijven) en draait op .NET 6 of later. + +--- + +## Vereisten + +Voordat je begint, zorg dat je het volgende hebt: + +* .NET 6 SDK (of een latere versie). +* Een IDE zoals Visual Studio 2022 of VS Code. +* Internettoegang om het Aspose.Barcode NuGet‑pakket te downloaden. + +Er zijn geen extra externe bibliotheken vereist. + +--- + +## Stap 1: Installeer Aspose.Barcode voor .NET + +De meest betrouwbare manier om **generate barcode** afbeeldingen in C# te maken is door Aspose.Barcode te gebruiken. Open een terminal in je projectmap en voer uit: + +```bash +dotnet add package Aspose.BarCode +``` + +Het commando voegt de nieuwste stabiele versie toe aan je projectbestand, waardoor je de `BarcodeGenerator`‑klasse en de `EncodeTypes`‑enumeratie hebt. + +*Pro tip:* Houd het pakket up‑to‑date (`dotnet list package --outdated`) om te profiteren van bugfixes en nieuwe barcode‑symbologieën. + +--- + +## Stap 2: Maak een Databar‑barcode (create Databar barcode) + +Databar Omnidirectional is ideaal voor retail en logistiek omdat het een GTIN‑14‑waarde plus extra gegevens kan coderen. De volgende code maakt het barcode‑object: + +```csharp +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +// Step 2: Initialize the generator for a Databar Omnidirectional barcode +BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); +``` + +*Waarom dit belangrijk is:* De `EncodeTypes.DatabarOmniDirectional`‑enum vertelt de bibliotheek om de Databar‑symbologie te gebruiken, terwijl de string `"(01)12345678901231"` het GS1 Application Identifier‑formaat volgt voor een 14‑cijferige GTIN. + +--- + +## Stap 3: Definieer algemene parameters – X‑dimension en basishoogte + +De meeste barcode‑scanners verwachten een minimale X‑dimension (de breedte van de smalste balk). Instellen op 2 pixels geeft een compact maar leesbaar beeld. + +```csharp +// Step 3: Set a 2‑pixel X‑dimension (common for most scanners) +generator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +Je kunt later de balkhoogte aanpassen zonder de generator opnieuw te maken — dit is de kern van **how to set barcode** attributen na instantiering. + +--- + +## Stap 4: Stel de eerste balkhoogte in en sla de afbeelding op (generate barcode image C#) + +Nu demonstreren we het eerste deel van **how to set barcode** hoogte. De balkhoogte bepaalt de visuele lengte van elke balk; een waarde van 30 pixels levert een korte barcode op, terwijl 60 pixels een hogere versie creëert. + +```csharp +// Step 4a: 30‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 30; + +// Save the first PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); +``` + +Na uitvoering bevat `DatabarBarHeight30Pixels.png` een Databar‑barcode met een 30‑pixel hoge balk. Open het bestand in een willekeurige afbeeldingsviewer om het resultaat te verifiëren. + +--- + +## Stap 5: Verander de balkhoogte en sla een tweede afbeelding op + +Om te illustreren dat **how to set barcode** waarden dynamisch kunnen worden aangepast, wijzigen we de balkhoogte naar 60 pixels en schrijven we een tweede bestand. + +```csharp +// Step 5a: 60‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 60; + +// Save the second PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); +``` + +Nu heb je twee PNG‑bestanden die dezelfde Databar‑gegevens tonen maar met verschillende visuele hoogtes. Dit is handig wanneer je een grotere barcode nodig hebt voor afgedrukte etiketten of een kleinere voor weergave op het scherm. + +--- + +## Stap 6: Volledig, uitvoerbaar voorbeeld + +Alles samenvoegend, hier is een zelfstandige console‑applicatie die alle bovenstaande stappen uitvoert. Kopieer de code naar een nieuw `Program.cs`‑bestand, vervang `YOUR_DIRECTORY` door een echt mappad, en voer het uit. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Initialize the generator for a Databar Omnidirectional barcode + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); + + // Common parameters + generator.Parameters.Barcode.XDimension.Pixels = 2; // 2‑pixel narrow bar + + // First image: 30‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 30; + generator.Save(@"C:\Barcodes\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 30‑pixel barcode."); + + // Second image: 60‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 60; + generator.Save(@"C:\Barcodes\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 60‑pixel barcode."); + + // Dispose the generator to free native resources + generator.Dispose(); + } +} +``` + +**Verwachte output** + +Wanneer je het programma uitvoert, print de console: + +``` +Saved 30-pixel barcode. +Saved 60-pixel barcode. +``` + +En de map `C:\Barcodes` (of het pad dat je hebt opgegeven) bevat de twee PNG‑bestanden. Beide afbeeldingen tonen een geldige Databar Omnidirectional barcode die kan worden gescand door standaard GS1‑lezers. + +--- + +## Veelgestelde vragen + +**Werkt dit met andere afbeeldingsformaten?** +Ja. Vervang `BarCodeImageFormat.Png` door `Jpeg`, `Bmp`, `Gif` of `Tiff` om het overeenkomstige bestandsformaat te genereren. + +**Kan ik de voorgrondkleur wijzigen?** +Stel `generator.Parameters.Barcode.ForeColor` in op een willekeurige `System.Drawing.Color`‑waarde, bijvoorbeeld `Color.Blue`. + +**Wat als ik een andere symbologie nodig heb?** +Geef een andere `EncodeTypes`‑waarde door aan de constructor, zoals `EncodeTypes.Code128` voor een lineaire barcode of `EncodeTypes.QR` voor een matrixcode. + +**Is er een manier om de barcode in een PDF in te sluiten?** +Aspose.Barcode biedt een `PdfGenerator`‑klasse. Na het genereren van de afbeelding kun je deze toevoegen aan een PDF‑pagina met Aspose.PDF. + +--- + +## Best practices voor barcode‑generatie in C# + +* **Herbruik de `BarcodeGenerator`‑instantie** wanneer je alleen de dimensies wilt aanpassen — dit voorkomt onnodige geheugenallocaties. +* **Dispose de generator** (`generator.Dispose()`) nadat je klaar bent om native resources direct vrij te geven. +* **Valideer invoergegevens** (bijv. GTIN‑lengte) voordat je de barcode maakt om runtime‑exceptions te voorkomen. +* **Test met een fysieke scanner** na het wijzigen van X‑dimension of balkhoogte; extreme waarden kunnen de leesbaarheid beïnvloeden. +* **Zorg dat de uitvoermap schrijfbaar is** voor het uitvoerende account; anders zal `Save` een `UnauthorizedAccessException` werpen. + +--- + +## Conclusie + +Je weet nu **how to set barcode** eigenschappen zoals X‑dimension en balkhoogte, **how to generate barcode** afbeeldingen in C#, en de exacte stappen om **create Databar barcode** bestanden te maken met Aspose.Barcode. Door het volledige voorbeeld te volgen, kun je meerdere PNG‑bestanden genereren met verschillende visuele kenmerken, waarmee je voldoet aan de **generate barcode image C#** eis voor elke .NET‑applicatie. + +Vervolgens kun je gerelateerde onderwerpen verkennen, zoals **how to generate barcode** in bulk, barcodes in PDFs insluiten, of overschakelen naar andere symbologieën zoals QR of Code 128. Experimenteer met de hier getoonde parameters om de barcode‑weergave af te stemmen op jouw specifieke scanomgeving. Veel programmeerplezier! + +## Wat moet je hierna leren? + +De volgende tutorials behandelen nauw verwante onderwerpen die voortbouwen op de technieken die in deze gids worden getoond. Elke bron bevat volledige werkende code‑voorbeelden met stap‑voor‑stap uitleg om je te helpen extra API‑functies onder de knie te krijgen en alternatieve implementatie‑benaderingen in je eigen projecten te verkennen. + +- [Hoe DataMatrix‑barcodes (ECC 200) genereren met Aspose.BarCode voor .NET](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-ecc-200-configuration/) +- [Hoe Aztec‑barcode genereren met aangepaste beeldverhouding met Aspose.BarCode voor .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [Hoe Barcode genereren – Code 39‑configuratie met Aspose.BarCode](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-code-39-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/english/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md b/barcode/english/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md new file mode 100644 index 000000000..4bd5cf1e4 --- /dev/null +++ b/barcode/english/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md @@ -0,0 +1,185 @@ +--- +category: general +date: 2026-08-15 +description: Barcode image PNG in C# – learn how to generate postal barcodes, create + a Planet barcode, and change barcode height with a simple generator. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- barcode image png +- barcode generator c# +- generate postal barcode +- create planet barcode +- change barcode height +language: en +lastmod: 2026-08-15 +og_description: Barcode image PNG in C# tutorial shows how to generate postal barcodes, + create a Planet barcode, and change barcode height using the BarcodeGenerator API. +og_image_alt: Screenshot of generated PNG barcode with custom height using C# BarcodeGenerator +og_title: Barcode image PNG in C# – generate and adjust barcodes +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Barcode image PNG in C# – learn how to generate postal barcodes, create + a Planet barcode, and change barcode height with a simple generator. + headline: Barcode image PNG in C# generate barcodes, change height + type: TechArticle +tags: +- barcode +- C# +- PNG +- postal +- generator +title: Barcode image PNG in C# generate barcodes, change height +url: /python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Barcode image PNG in C# – generate barcodes, change height + +If you need a **barcode image PNG** in C#, this guide walks you through the complete process. You’ll learn how to generate postal barcodes, create a Planet barcode, and change the barcode height without leaving your IDE. + +Generating reliable PNG barcodes is a common requirement for shipping labels, inventory systems, and automated mailing solutions. By the end of this tutorial you’ll have a reusable code snippet that produces high‑quality PNG files for both Planet and RM4SCC formats, and you’ll understand how to adjust the bar height to meet postal specifications. + +## What you’ll need + +- .NET 6+ or .NET Framework 4.7.2 (the BarcodeGenerator API works with any recent .NET runtime) +- A reference to the **Aspose.BarCode for .NET** NuGet package (or any compatible library that provides `BarcodeGenerator`, `EncodeTypes`, and `BarCodeImageFormat`) +- Basic familiarity with C# syntax and file I/O + +No additional tools are required; the code runs in Visual Studio, Rider, or the `dotnet` CLI. + +## Barcode image PNG – basic generation + +The first step is to create a **barcode image PNG** with default dimensions. This establishes the baseline file that you can later customize. + +```csharp +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +// Define the output folder (replace with your own path) +string outputFolder = @"C:\Barcodes"; + +// Ensure the folder exists +Directory.CreateDirectory(outputFolder); + +// 1️⃣ Create a Planet barcode generator with default height +BarcodeGenerator planetGenerator = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + +// Set the module width (X‑dimension) to 4 pixels – this defines the thin bar size +planetGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the image as PNG; this is the first **barcode image PNG** you’ll produce +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +**Why this works:** +- `EncodeTypes.Planet` tells the generator to use the Planet symbology, which is required for many postal services. +- `XDimension.Pixels` controls the width of the smallest bar; a value of 4 px yields a readable barcode at typical label sizes. +- The `Save` method writes a **barcode image PNG** file to disk, preserving all vector information as raster pixels. + +## Change barcode height – customizing the visual weight + +Postal guidelines often require a specific bar height. The following snippet demonstrates how to set a custom 100‑pixel height for the same Planet barcode. + +```csharp +// 2️⃣ Apply a custom 100‑pixel bar height +planetGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Overwrite or save as a new file to keep both versions +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +**Why you change the height:** +A taller bar improves scan reliability on low‑resolution printers, while a shorter bar reduces label space. The `BarHeight.Pixels` property lets you fine‑tune this attribute without affecting the X‑dimension. + +## Generate postal barcode – creating an RM4SCC example + +The RM4SCC format is another common postal barcode used in the United Kingdom. The generation steps mirror the Planet example, reinforcing the **barcode generator c#** pattern. + +```csharp +// 3️⃣ Create an RM4SCC barcode generator with default height +BarcodeGenerator rm4sccGenerator = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Keep the same module width for consistency +rm4sccGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the default‑height PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +## Change barcode height – RM4SCC variation + +Just like the Planet barcode, you can adjust the RM4SCC bar height. The code below sets the height to 100 px, producing a second **barcode image PNG** for the same data string. + +```csharp +// 4️⃣ Set a custom 100‑pixel bar height for RM4SCC +rm4sccGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Save the customized PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +## Full, runnable example + +Putting all steps together yields a single, self‑contained program that creates four PNG files: + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +class Program +{ + static void Main() + { + string outputFolder = @"C:\Barcodes"; + Directory.CreateDirectory(outputFolder); + + // Planet barcode – default height + var planet = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planet.Parameters.Barcode.XDimension.Pixels = 4; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // Planet barcode – custom 100‑pixel height + planet.Parameters.Barcode.BarHeight.Pixels = 100; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – default height + var rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – custom 100‑pixel height + rm4scc.Parameters.Barcode.BarHeight.Pixels = 100; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); + + Console.WriteLine("All barcode PNG files have been generated in " + + + +## What Should You Learn Next? + + +The following tutorials cover closely related topics that build on the techniques demonstrated in this guide. Each resource includes complete working code examples with step-by-step explanations to help you master additional API features and explore alternative implementation approaches in your own projects. + +- [Create Barcode Custom Height – One-Dimensional Barcodes](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-barcode-height-adjustment/) +- [Create Barcode PNG – DataMatrix Aspect Ratio – Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-aspect-ratio-customization/) +- [Create barcode image C# – GS1 DataMatrix Example](/barcode/english/net/gs1-barcode-encoding/gs1-datamatrix-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/english/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/og-image.png b/barcode/english/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/og-image.png new file mode 100644 index 0000000000000000000000000000000000000000..74f030533d01ceea45902ac7a1c45f7bcb17938b GIT binary patch literal 49482 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 literal 0 HcmV?d00001 diff --git a/barcode/english/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md b/barcode/english/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md new file mode 100644 index 000000000..a923da773 --- /dev/null +++ b/barcode/english/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-08-15 +description: Create planet barcode in C# and learn how to set barcode dimensions for + perfect sizing. Step‑by‑step code example with filled and empty bars. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create planet barcode +- how to set barcode dimensions +- planet barcode C# +- barcode X‑dimension +- empty barcode bars +language: en +lastmod: 2026-08-15 +og_description: Create planet barcode in C# and learn how to set barcode dimensions. + Follow this guide to generate filled and empty Planet barcodes instantly. +og_image_alt: Screenshot showing a Planet barcode with filled bars generated by C# + code +og_title: Create planet barcode in C# – full step‑by‑step guide +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Create planet barcode in C# and learn how to set barcode dimensions + for perfect sizing. Step‑by‑step code example with filled and empty bars. + headline: Create planet barcode in C# – complete programming guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.BarCode +title: Create planet barcode in C# – complete programming guide +url: /python-java/general/create-planet-barcode-in-c-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Create planet barcode in C# – complete programming guide + +If you need to **create planet barcode** in C#, this guide shows you exactly how to do it. You’ll also discover **how to set barcode dimensions** so the bars render at the exact width you require. + +Generating Planet barcodes is common when you work with postal services or logistics systems. The code below covers both the default filled‑bar version and the optional empty‑bar style, plus a quick example for the RM4SCC format. By the end of this tutorial you will have a reusable snippet that you can drop into any .NET project. + +## Prerequisites + +Before you start, make sure you have: + +* .NET 6.0 or later installed (the API works with .NET Framework 4.6+ as well) +* The **Aspose.BarCode for .NET** NuGet package (`Aspose.BarCode`) added to your project +* A writable folder path where the PNG files will be saved +* Basic familiarity with C# syntax and Visual Studio (or any IDE) + +> **Pro tip:** Use an absolute path or `Path.Combine(Environment.CurrentDirectory, "output")` to avoid permission issues when saving images. + +## Step 1 – Initialize a Planet barcode generator (filled bars) + +The first step is to create a `BarcodeGenerator` instance for the Planet symbology. By default the generator produces **filled** bars. + +```csharp +// Step 1: Create a Planet barcode with the default (filled) bars +BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +The `EncodeTypes.Planet` enum tells Aspose.BarCode to use the Planet format, while `"123456"` is the data payload that will be encoded. + +## Step 2 – How to set barcode dimensions for consistent sizing + +To control the width of each bar, adjust the **X‑dimension**. This is the primary way to **set barcode dimensions** and ensures the barcode fits your label size. + +```csharp +// Step 2: Set the X‑dimension (width of each bar) to 4 pixels +planetFilled.Parameters.Barcode.XDimension.Pixels = 4; +``` + +The `Pixels` property defines the bar width in screen pixels. Common values are 2 – 5 pixels for standard mailing labels; increase the value for larger prints. + +## Step 3 – Save the filled Planet barcode as PNG + +Now write the image to disk. PNG preserves crisp edges, which is ideal for scanning. + +```csharp +// Step 3: Save the Planet barcode as a PNG image +planetFilled.Save("YOUR_DIRECTORY/PostalPlanetFilledBars.png", BarCodeImageFormat.Png); +``` + +Replace `YOUR_DIRECTORY` with the path you prepared earlier. After running this code you’ll see a file similar to the image below. + +![Planet barcode with filled bars](planet_filled.png "Planet barcode with filled bars – created by C# code") + +*Alt text:* **Planet barcode with filled bars generated by C# code** (matches `og_image_alt`). + +## Step 4 – Create a Planet barcode with empty (unfilled) bars + +If your postal service requires the bars to be **empty**, you need to toggle the `FilledBars` flag after initializing the generator. + +```csharp +// Step 4: Create a Planet barcode with empty (unfilled) bars +BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +The constructor is identical; the difference lies in the next configuration step. + +## Step 5 – How to set barcode dimensions and make bars empty + +Again, set the X‑dimension for visual consistency, then disable filled bars. + +```csharp +// Step 5: Set the X‑dimension and specify that bars should be empty +planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; +planetEmpty.Parameters.Barcode.FilledBars = false; // makes bars empty +``` + +The `FilledBars = false` property is what actually changes the rendering style. Keeping the same X‑dimension ensures the empty‑bar barcode aligns perfectly with the filled version. + +## Step 6 – Save the empty Planet barcode + +```csharp +// Step 6: Save the Planet barcode with empty bars as a PNG image +planetEmpty.Save("YOUR_DIRECTORY/PostalPlanetEmptyBars.png", BarCodeImageFormat.Png); +``` + +You’ll now have two PNG files: one with solid bars and one with hollow bars, both sharing the same dimensions. + +## Step 7 – (Optional) Generate an RM4SCC barcode for comparison + +RM4SCC is another postal symbology that uses the same default filled‑bar style. The steps mirror the Planet example, demonstrating that **how to set barcode dimensions** works across formats. + +```csharp +// Step 7: Create an RM4SCC barcode (filled bars are the default) +BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Step 8: Set the X‑dimension for consistency +rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + +// Step 9: Save the RM4SCC barcode as a PNG image +rm4scc.Save("YOUR_DIRECTORY/PostalRM4SCCFilledBars.png", BarCodeImageFormat.Png); +``` + +Running these three steps produces `PostalRM4SCCFilledBars.png`, which you can compare side‑by‑side with the Planet outputs. + +## Why X‑dimension matters + +The X‑dimension determines the **minimum printable width** of each bar. If you set it too low, the barcode may blur on low‑resolution printers, causing scan failures. Conversely, a too‑large X‑dimension can exceed label dimensions and waste space. By explicitly **how to set barcode dimensions**, you gain deterministic control over the final image size, which is essential for automated mailing workflows. + +## Common pitfalls and how to avoid them + +| Issue | Cause | Fix | +|-------|-------|-----| +| Barcode appears stretched | X‑dimension set in points instead of pixels | Always use `Pixels` property for pixel‑perfect control | +| Empty bars still look filled | `FilledBars` not set to `false` after X‑dimension change | Set `FilledBars = false` *after* adjusting X‑dimension | +| Saved file is blank | Output directory does not exist or lacks write permission | Ensure the directory exists (`Directory.CreateDirectory`) and your app runs with sufficient rights | +| Image is blurry on print | Low DPI PNG saved from a high‑resolution monitor | Use `BarCodeImageFormat.Png` (lossless) and consider `Resolution` property if needed | + +## Full, runnable example + +Copy the entire block below into a new console project (`dotnet new console`) and run it. The program creates three PNG files in the `output` folder. + +```csharp +using System; +using System.IO; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Ensure output folder exists + string outDir = Path.Combine(Environment.CurrentDirectory, "output"); + Directory.CreateDirectory(outDir); + + // ---------- Planet barcode – filled bars ---------- + BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetFilled.Parameters.Barcode.XDimension.Pixels = 4; // set dimensions + planetFilled.Save(Path.Combine(outDir, "PostalPlanetFilledBars.png"), BarCodeImageFormat.Png); + + // ---------- Planet barcode – empty bars ---------- + BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; // same dimensions + planetEmpty.Parameters.Barcode.FilledBars = false; // make bars empty + planetEmpty.Save(Path.Combine(outDir, "PostalPlanetEmptyBars.png"), BarCodeImageFormat.Png); + + // ---------- RM4SCC barcode (filled bars) ---------- + BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; // consistent size + rm4scc.Save(Path.Combine(outDir, "PostalRM4SCCFilledBars.png"), BarCodeImageFormat.Png); + + Console.WriteLine($"Barcodes generated in: {outDir}"); + } +} +``` + +**Expected output:** three PNG files—`PostalPlanetFilledBars.png`, `PostalPlanetEmptyBars.png`, and `PostalRM4SCCFilledBars.png`—each 4‑pixel wide bars, ready for printing or further processing. + +## Conclusion + +You now know how to **create planet barcode** in C# and precisely **how to set barcode dimensions** for both filled and empty bar styles. The same pattern applies to other symbologies such as RM4SCC, giving you a flexible foundation for any postal‑barcode requirement. + +Next, you might explore: + +* Adding human‑readable text beneath the barcode (`BarcodeGenerator.Parameters.Barcode.CodeText`) +* Changing bar colors with `Parameters.Barcode.BarColor` +* Generating barcodes in vector formats (SVG, EPS) for scalable printing + +Feel free to experiment with different X‑dimension values, data strings, and output formats to fit your specific workflow. Happy coding! + + +## What Should You Learn Next? + + +The following tutorials cover closely related topics that build on the techniques demonstrated in this guide. Each resource includes complete working code examples with step-by-step explanations to help you master additional API features and explore alternative implementation approaches in your own projects. + +- [How to create barcode quiet zone for Code 16K using Aspose.BarCode for .NET](/barcode/english/net/code-16k-encoding/code-16k-quiet-zone-settings/) +- [How to Create Barcode Quiet Zone for ITF-14 Using Aspose.BarCode for .NET](/barcode/english/net/itf-14-barcode-customization/itf-14-barcode-quiet-zone-configuration/) +- [How to create Aztec barcode with error correction in .NET](/barcode/english/net/aztec-barcode-encoding/aztec-error-level-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/english/python-java/general/create-planet-barcode-in-c-complete-programming-guide/og-image.png b/barcode/english/python-java/general/create-planet-barcode-in-c-complete-programming-guide/og-image.png new file mode 100644 index 0000000000000000000000000000000000000000..3ce36dba561d9c336e5ea20f726d518215bb7b14 GIT binary patch literal 50685 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 Dze7fo literal 0 HcmV?d00001 diff --git a/barcode/english/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md b/barcode/english/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md new file mode 100644 index 000000000..f36ba25c9 --- /dev/null +++ b/barcode/english/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md @@ -0,0 +1,239 @@ +--- +category: general +date: 2026-08-15 +description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- databar expanded stacked +- generate barcode image +- how to generate barcode +- how to set columns +- how to set rows +language: en +lastmod: 2026-08-15 +og_description: Databar expanded stacked barcode generation in C#. Follow this step‑by‑step + guide to generate barcode images, set columns, and set rows efficiently. +og_image_alt: Screenshot of a databar expanded stacked barcode generated with C# +og_title: Databar expanded stacked – generate barcode image in C# +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + headline: 'Databar expanded stacked: generate barcode image in C#' + type: TechArticle +- description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + name: 'Databar expanded stacked: generate barcode image in C#' + steps: + - name: 1. Install the Aspose.BarCode library + text: 'The code uses the **Aspose.BarCode for .NET** library, which provides the + `BarcodeGenerator` class. Install the NuGet package with the following command:' + - name: 2. Create a barcode generator for **databar expanded stacked** + text: The generator is the entry point for all barcode operations. You must specify + the symbology (`EncodeTypes.DatabarExpandedStacked`) and the text to encode. + - name: 3. How to set columns for DataBar + text: The `Columns` property controls how many vertical modules appear in the + stacked barcode. Valid values are 2, 3, or 4. Setting columns influences the + barcode’s width and the amount of data it can store. + - name: 4. Save the 4‑column barcode image + text: Saving the image produces a file that you can embed in reports, invoices, + or mobile apps. The `Save` method accepts a file path and an image format. + - name: 5. How to set rows for DataBar + text: Rows add a second dimension to the stacked layout, allowing more data to + be encoded without widening the barcode. The `Rows` property defaults to 1; + you can increase it up to 3 for the expanded stacked variant. + - name: 6. Save the 3‑row barcode image + text: '```csharp // Step 5: Save the 3‑row barcode image barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", + BarCodeImageFormat.Png); ```' + - name: 7. Complete C# example to generate barcode image + text: 'Putting all steps together yields a self‑contained program you can copy + into a console application:' + type: HowTo +tags: +- barcode +- C# +- Aspose.BarCode +title: 'Databar expanded stacked: generate barcode image in C#' +url: /python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Databar expanded stacked: generate barcode image in C# + +If you need to generate a **databar expanded stacked** barcode image in C#, this guide shows you exactly **how to generate barcode** images with custom column and row layouts. You will see how to set columns, how to set rows, and how to save the resulting images without leaving the IDE. + +The tutorial covers: + +* Creating a barcode generator for the **databar expanded stacked** symbology. +* Configuring a 4‑column layout and a 3‑row layout. +* Saving each configuration as a PNG file. +* Tips for handling edge cases such as invalid column counts. + +No external documentation is required; the complete, runnable example is included. + +![Databar expanded stacked barcode example](YOUR_DIRECTORY/DatabarCols4.png){: .center alt="databar expanded stacked barcode generated with C#" } + +## Databar expanded stacked barcode generation steps + +### 1. Install the Aspose.BarCode library + +The code uses the **Aspose.BarCode for .NET** library, which provides the `BarcodeGenerator` class. Install the NuGet package with the following command: + +```bash +dotnet add package Aspose.BarCode +``` + +After the package is installed, add the required namespace at the top of your file: + +```csharp +using Aspose.BarCode.Generation; +``` + +### 2. Create a barcode generator for **databar expanded stacked** + +The generator is the entry point for all barcode operations. You must specify the symbology (`EncodeTypes.DatabarExpandedStacked`) and the text to encode. + +```csharp +// Step 1: Create a barcode generator for Databar Expanded Stacked +BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); +``` + +*Why this matters:* The `EncodeTypes` enum tells the library which barcode format to produce. Using **databar expanded stacked** ensures the resulting image follows the GS1 DataBar specification for stacked layouts. + +### 3. How to set columns for DataBar + +The `Columns` property controls how many vertical modules appear in the stacked barcode. Valid values are 2, 3, or 4. Setting columns influences the barcode’s width and the amount of data it can store. + +```csharp +// Step 2: Configure a 4‑column layout +barcode.Parameters.Barcode.DataBar.Columns = 4; +``` + +**Tip:** If you attempt to assign a value outside the allowed range, the library throws an `ArgumentException`. Always validate input when exposing column selection to users. + +### 4. Save the 4‑column barcode image + +Saving the image produces a file that you can embed in reports, invoices, or mobile apps. The `Save` method accepts a file path and an image format. + +```csharp +// Step 3: Save the 4‑column barcode image +barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); +``` + +When the file is written, you can open it with any image viewer to confirm that the **databar expanded stacked** pattern appears correctly. + +### 5. How to set rows for DataBar + +Rows add a second dimension to the stacked layout, allowing more data to be encoded without widening the barcode. The `Rows` property defaults to 1; you can increase it up to 3 for the expanded stacked variant. + +```csharp +// Step 4: Switch to a 3‑row layout (columns remain unchanged) +barcode.Parameters.Barcode.DataBar.Rows = 3; +``` + +**Why rows matter:** Increasing rows reduces the overall width while preserving data capacity, which is useful for narrow labels or mobile screen space. + +### 6. Save the 3‑row barcode image + +```csharp +// Step 5: Save the 3‑row barcode image +barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); +``` + +You now have two PNG files—one with a 4‑column layout and another with a 3‑row layout—both using the **databar expanded stacked** symbology. + +### 7. Complete C# example to generate barcode image + +Putting all steps together yields a self‑contained program you can copy into a console application: + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace DatabarExpandedStackedDemo +{ + class Program + { + static void Main() + { + // Create the generator for Databar Expanded Stacked + BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); + + // Configure a 4‑column layout and save + barcode.Parameters.Barcode.DataBar.Columns = 4; + barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); + Console.WriteLine("4‑column barcode saved."); + + // Change to a 3‑row layout (columns stay at 4) and save + barcode.Parameters.Barcode.DataBar.Rows = 3; + barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); + Console.WriteLine("3‑row barcode saved."); + } + } +} +``` + +**Expected output** + +Running the program prints: + +``` +4‑column barcode saved. +3‑row barcode saved. +``` + +and creates two PNG files in `YOUR_DIRECTORY`. Open the files to verify that each image displays a valid **databar expanded stacked** barcode. + +## Common pitfalls and practical tips + +* **Directory existence** – `Save` does not create missing folders. Ensure `YOUR_DIRECTORY` exists or use `Directory.CreateDirectory` before saving. +* **Column limits** – Values other than 2, 3, or 4 trigger an exception. Guard against user input errors with a simple range check: + + ```csharp + int columns = 4; + if (columns < 2 || columns > 4) throw new ArgumentOutOfRangeException(nameof(columns)); + barcode.Parameters.Barcode.DataBar.Columns = columns; + ``` + +* **Row limits** – The expanded stacked variant supports up to 3 rows. Setting `Rows` to 0 or a value greater than 3 also raises an exception. +* **Image format** – `BarCodeImageFormat.Png` provides lossless quality, which is ideal for printing. Use `Jpeg` only when file size is a primary concern. + +## Next steps + +Now that you know **how to generate barcode** images with custom column and row configurations, you can: + +* Integrate the generator into a web API to serve barcode images on demand. +* Combine the barcode with PDF generation libraries to embed it in invoices. +* Experiment with other DataBar variants (`DatabarExpanded`, `DatabarLimited`) using the same `Parameters.Barcode.DataBar` object. + +For deeper customization—such as changing bar color, adding human‑readable text, or applying QR‑code overlays—refer to the Aspose.BarCode documentation on `BarcodeGenerator` properties. + +--- + +By following this guide you have mastered the **databar expanded stacked** workflow, learned **how to set columns**, **how to set rows**, and produced two distinct barcode images ready for production use. Happy coding! + + +## What Should You Learn Next? + + +The following tutorials cover closely related topics that build on the techniques demonstrated in this guide. Each resource includes complete working code examples with step-by-step explanations to help you master additional API features and explore alternative implementation approaches in your own projects. + +- [Generate barcode image – GS1 Coupon UPC-A Databar](/barcode/english/net/gs1-barcode-encoding/gs1-coupon-upc-a-databar-configuration/) +- [Create DotCode barcode image – rows & columns (Aspose.BarCode)](/barcode/english/net/dotcode-barcode-configuration/dotcode-rows-columns-configuration/) +- [How to Generate Barcode - One-Dimensional Barcode Types](/barcode/english/net/one-dimensional-barcode-types/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/english/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/og-image.png b/barcode/english/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/og-image.png new file mode 100644 index 0000000000000000000000000000000000000000..1ba85f7e5b4ab9bd8a2e2c1d1e85b6e3155dc55e GIT binary patch literal 52497 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 z%0A2mj6qdZacPSH6%{9!5CtC}5?-4+G4i!8raB4|>~)|gIQQs*r-$dv>|9bx$`%~{ z1iD0V^#Xo&-!|$Gdl$RwG8hMTS;4`zv?#*#VyCCW%79$iu+GvXg(zTZ?Ep! zUPy7h@PCMEe~D56ZwwzFAc!gQVT^{35~qgxlVSYk3Hd{2i>Fihw_!J$%`dR2yXH?H zFSmVvL_qf6p3=7du9#a+RF+(OVfZboGW9S23TR!{Hfa<4nrQi#@T0}uBKEhn_`fH6 z{eQ?=zz_f1_5aT=vF-T%X?EoG8D3t_we zFXfFXJh^E5QAt88yK_ogTU*XRQ*&ear#APl<1PS4)w-N6D4Dh^23&hE?rgPn$r=j) z?31t=>9o#%Vl;EQlIeR&@FXy!jWjegtWqqS0+8)!o|$~+FM=gcfYE0`YQDD_b-<{{ zqYz@Ds0;wl!Kecda2MN)dI+e34B^}8x~bPW3*=ln_Wl5dPeFWN)8Vhq{bmC696(ix zgj~K8k57zGtFZmvMDP0QEMK0;0LsuUkAW$s%85efZ19 z8?8%9NlFuF0%CEQc`n8p(DkM`xsYdnNg2?7l1%~eQOsIn(IGon&ZU{D{v-UX^+uQV zl;m2h{yU1-DTU^PCi|D>%>)wuALg(Exbp=u=Sn2GsZYwt&;V3oZDpmHdFQVxadZTq zT(o!0JTWAZJ+F>};XdAfGm;h`AJ1*K*y_2r5q9|1uOp|!Pn1-b)R~hV9h8rdQ(48T>Kl<*`uYZ>Ub?~0;sRL?JddVj(H-sxIoCk<<5uGmoC}= z%&vy@+ykDO`E58{ zU1NG}ZLRy(n7M9FY@c*dQ4uqmQdes`B-&Bv&evi&xH;9-)^d$bn^%4UXcb*l`IeU3 zER?zA0-jEYxuO1k=^=H|KLI3QN=$j`i;KJE9+N& z9aAwX)Umwo22glozAeke1x#irrP+FR1-*$6;)x}ViP*q+1^a(cRA@$uz`o0`#{ae$wc+^`cc#yJ&DJGqI;!>T2+*)h6V=jtbRuO z`dpq}o&!cS6tpr>xHX_rp2_E|w++#+v6W=d(4}f@Y&zXuq%73^oCpa{PcJJ92?365 zG$!D7ftX&8iW;aGc%E%-1JD2vO~mo~!naQ0vrG-vn{Ic|^71%S>gs?!XQZwM&}rb5 zGw{<0QLyfcpGBmC{)zpj#`u&VjMrxCH--O2J?@j5`f6bAWyQtAeSHy;A+5eA!$3tD zh$hAyINB$>Jb;36s~6(%`1lqr$53w)^A1J;s_r2QE;I&J)gcay{A*pRVP~Ld6T!y_1u)aX6IMqYQA$%(PrQ9FcGVnlaqAu zKig5SSSO~sJ?A4A`)yBzfzDCZ-7viwi(Yt^IGrkcBF z(@nLtOzyMDqL4mZ*tPx4XnXZ06EiKN6^AC%!kDzGMxW{Ch|gv&?h?SeQTy#MVuIXW ztX4S4n1Wq37>?IT$edl;LsJACZE^_*sLn6Xua0(b0UM0o4YOy~X?k=lmzf!pMiR0B|;C&F_Y_VKVO-)VDr{`dv$gMh?F3A;{cK|$diL|NU z{$?n4eSvKAJwKfwaz0q_%BtPN*A3jr*+z%t5DaI^3Hpn?{?uTS?=<$BVhuo4Bgh_) z$L6dl9HR8wZmts#NN_&{} zqKLB7RnxCcg!GhIZxXO1QQlDKRgKrV99_w5Dk$nuCuRl*&&OlYkO zbf=aE5)l1#$2WINPX+Zo-pt14bUH;Je7!xtQMRX5OBpwn?b94)9@Xao4a57D>vh^U#7@W7#&IKx4+oL;d<;InDd?$fN6bhY;F(`dm`*0 zffHw*hcr?9)*Qt6&LC$&@P!2c6k71m|1Z|wIx6bueHT?xK|(-ET0~kvq@+tix{;Rd zj)9?6O1itdLApU&nxPx%t^o$=v+?`;oqN|=>)d-k-H=wx!+0GWhz4^N{|{QS>_!;+ag z7nM)3yUlU*r`3YZ470tc;**Vm%hOerL6x~`b8*_i!HM;wZwtB9)ToT>+uNRB4w*QD zCfJAzN=Zu`otzw;>OC*+iGjp^gESq!q2v$wP-ch4WOX-Zs{+o``tdr*R82?97*KXMX4) ze4}7<*;zZ5ESvhL4P3xwR{lKjm$LvmcT+I0U`6c5=k3H~e9p=AH zhs~I>$*9(=^yBT17y7F1qo_!e2z1X6NY{H#6yixG9ZYA!Lsc6ZG=K(>w`NHvs@%Ud zZFrGyF5gWQPRwEWC$05HkZ%|$_5+YL57Y8n219gAd0clab#y%Y=}lxheTZg_f%}hBmeW(8 zZx1~Ipl5b@2AHpuISzT=9u-Z^+Rde#tZrGmb8DN`KQkFpWpezwDM?8*7M`HqPiwi; z9W&|t_3O*tRsT8c5H^DS@Fk1oQAHP8a4`D%R!;BR zg2}kt`~3t!aL>+Ns&xC2 zmL}&YU7U+h@NSqw=MnDOj}rlTd+fd!$i0~8xO}lzc2;VF$mfIv=URl zf3APXs0r$D*@!y9SJPfcK$t?Kzq-=TKyPJLeC3DGsQ8lF$TM-1N#1g^vl3H;ho|WG z{qJAz^L!h{fY1qmF-b^E;*%G}F(oojmEe_dt6Eeok7#te^1k~uJT=8b%^@o_Yeu|7 zUsbvzz967LbOsBy*m#< zY7QoT4kk~4l;njTe&{{x`c->WOtYaK)rI<)Ib62=wRWgE`&oE$DRz1f8>6QsGn zvxZBn^!cc1HUi0}0gWsTHOBVgGCDo+jocR*HG4zhYFU^w{B zb1xry6Q)^vm^f1>ky6rRJXgOJZH4g)%xSC508*UZoarhmm*t{{1DuRsg6t zOd?=vWkqGt28KH`Giz*QB9$`xm`5XPLdAdZb}#FkSjPNz)*4dqLmm@v7GIJs#Vw=}8O=vCxXn{K%}ZP)NP$WIKH+e9pk0)S1j0`9ro2HNbe@!|w{8zLBU5!z0ksNio}8!6 z_G>QxKirUI_~d@$>n!~`UL6q7nFX%$#W@T6@xf(eqM#&IfM+V5YJ5&WArVBzGafV` zKLu%YB2x&cVS1l?PiI~@cwQfrB>ke1O-X6ARqxOsJ>K(dUabjI<2j4PtCB1^ihzMm zEJaK!P8*nguSnBpRcAz}*&*#s^)A5k6@&fDJvPY-{9PjE=bHd9)}Kf;n-@2_NhU1e zDWumbMA>?MdG+(?2Pon|0RYh7q2%T-pt}fHYI|$zH*^>DBys2biqUZ8aa$4?`1Am6(o$h2NIx`yihi2=$*(82NAqR{!k^rC3@Z+TX}|Eip{G}#AB>1NZPo;Fv# zmCuw+7+nv&S5_kZl=5T~1#fAq4f7+A+O(CUbI)1#WNHnGX-Pi?eyUGN(`vv?FI#fNT?CAZG54(29f#w_!G zZp7E==;*AvD^Q;uCX8g|KF2kFhkI_E0fJH8^-Y6^-hC-=7uSzrn$C3mazz1Sq?jkSnxqs_~n; zh6X+kF*DUGOZi4J#n9%*Bj!l$UmpkrGDiX#=q~4>d|r5LDmF1e*%lOl67us*D41c< zG!fU|h1H{GYtfVsvUVB~*HSF({1g%Th2w2xRUCP{oYo~JR+*cx^AC3be!$koVY(kG zuOXxtQ9Sf*`o=#j2cawa`E72pZl5)Rv_#&?iX2yh@3gCQ!A)hr?8^Be?ov7d%45)K zXUY~K6<4MpT|xjFJn9u&%N@>UWp*aIXqtc)QM^MTQSj9V*URGKf^EVC+0IDSsMy+EL)jP-J6Ke^xis500x))v5-?!`+Gs z`@p!+wY7r-F^{$EtraN}u7XgGvlgw*jU8bY2WMwlyH5eUPTe!T%E(VtJBa7MPJn+C>1`nr6*QH09h!_JEirYR6F zHl4!C_rQp!i$VF~0X=y4`at50nwlD?H8!zhamanMNsWz;+_9qn`;fvDnU%F~kXW^BUj$bw8|CBgu0(~hbhj>D8 z5JZ4Iy3*}O+4tv(uxZglifS=(2^@tLd$+7I%A(MctRwoqKB8@9@KjDlj49^$-NDaK zxSDKgOB$GGI0hL=?w67RfvRdd9@+{jIomsLHcQP;6BufqYm#8u ze^8clpZML_O$2HM1VzWu5aC%i;oFthZM5)$YKvkCfsf0$B$ zeQ8;M3IxR*vOj9(Y7r4CD+~S3>u}rbK}kVOj9;A7%=6Gi(}Gyp532P=BvcDCh2ePe z{?a-7)k|P#mXgWCRjhfEyqfx;*$*`H%~2CR5W}eg3q)8>t(4~786Ek!rOTZ>8l)<7 zA_l7KaC*kBow7F14uwL;S&!bNzR7NB%w#wua)Q}L=k`tYn!B2}xQ%t*m;c6j0k;8x zM5Ge{EqsVVoL(L2>K`s<%E%%xF79e!Vc`k~iPjl6hK$Cta^47z(t@MQbyxEtDsQu<0q4MR1`P_Pbe(>VZ%jNFT(F$k)TYspk zjT2*DQ?#|Qb?&8gVK(|OItCZKxc&D?cmso$rY4Q7|K;rif66H$3_1pHRnj8%DO+0A zyiRPL49h~hHfrlUtCFG->4~y}D;j#}(N^z@uLGU&OCIC3sihm~MX&%6Ex3{4I3XSJcppfm#wh4RA=$DIP4s;~dPOPPRx1_|j#thIj+C=^u;q81Cw1A3J$0L0G1!ofsmwPqwm zPR`7hteU=kAM!@zRa7QG`2~8jgjj~blrw9$I3I${grMqu$v&yDjuoR*k7-}0-8kJq zJcoLK_>u0%kBUtX7P8zVis+UB)jAp4#1Jj@&yX#6}X^@kc+m93|k=?+*%w@<%;Zo|ai;X=yH(>}h< z>~D1x6(to|CLrBUpPL$nq>>!~Xwt&W1hnkqS}(Rpu{f>xu(zt7MPwXI6&HW1qVNo{x4oegF^vgi}&d z(72fA-(Lq}$bC`kYXz0KN&;7ZJ=P=lCn~RifVryBM^i|)KwPFchs53HclvE1x+kbI z#aOCAH$?ck0$bGiGV6YYb4VU=nhErGmZE8%)$*KD1X7Vz&Y2CA(Wk7y{TVdy% zC}4vBKc_;lkh$fu2BucQ_;!FfnGexXtE=E%D_;y4B7m;UH#(V(eDy@Ndgk4>1^c7l zv(Ix*JT%j&cK)<-p`+BNh78NtWK*loB|-lwk7m-`)R5QNg*cD{U|?{85V@$63M?g@ z4>zdfFxS)m2so~}m=z4PcmgnAieOlcwvE5p4d`wEtie3MXZ|xSXtb^C3-wCK>QMvI zGG4dG#44&Ov8h5V?0}&GAm%O*vW%O^8#NPQtr3 zPwo~V@@~#miAe3MdGHf7T4P%Xq}l!UW84ra-NrEjK40UykeZS-I3S&^O0!e@xYk;0 zjw`Ue^HKU!6@{a$2rwf6q>A zruuyb`%0y=KOZBhmXn(}sS9+X4+Z5x&iCed4QAJVJrE!!w%`adGW~65=e#pbv6Ygb zRBNq4Oo;fiSI}V~hLQKdwRbebgGWR}w)s{>(mXNx>rWGi>x$Te!snlh1}2zW%Sd@$ z9wc=|vU>v{wC_9?K$QVRYJf_vcD~7-(Dk6V@Uyu+PpGe-8E(Dq&APr0Eh!m{SLiSq zj2Gr}5o0xf!X+b_Ni?EA#KZcWj2oXIZN%0a^SW^i)}|Aql9!zgSWYGPU*AX%G?%>+wX&s&H$oTB1L8K~R?$xb_W-Xg057uQ( z1OaUz{AzZ|>mpU344}f`k>n;GC}m-1t*$OVSY)izH9Z{R=c6lq z9~~28Gu^Zg3_to3+kOe&od$ScJtyIEUvsh45;ii*sjgPJUn%&5C$^BRodW_~>!td} z_cSIshs#Xl1+GE(pU(>`Y-;zr zMfT(Rtleb-UJ$d?B=cnDU*uN2i8oKei-Ui zU!IG%VB#xbq547&`Cf83VmUt+rP%{g%|+dM>040{zFY3LIZI|?<^b$OTI~smg@(zF z{<`&82PsP-=&cI{Z7(Ya$SJaETpsX&?I=7+M9`fF%`WRH7=-71d<1UJpgs%1P+GI? zttCmDM)`*MeH<^w>8naO8A{=wZ)$TkJ@k8+5q;(90qw`*d{ou-H5{t~TrAS1uk-%s zC)ktzeug3KIyR$G7b;c2!>3e!*#>>}(lXM9g9Zi$H!$QwkJC0c#s(KnsH~J!KS25f zSsJP$B9_&3-LEGI$Sw5uLEl<_>DQn8%JpJ%Zqk-bpz1z*f$|vihql@;XQz~e_^B!= zDY4ot!%yaADX;4 z&!!yN!~t&V;H?>5n=J~(uz9oC5b_lZSInk_u&8KNE{$E+oIFBURCFEmd>ZJlM(fxp zD)#yGRubK~t1^s?I$Q!N)g*C*qAV~z5f4pKHkz2Sp3fv>tFTh72Z@Y=m%m`_(T_N< z(uH(i9*uoa+4o4ti`~dr;facM4Y)vroSdpP6dM6?i%jk%#5W97#T?wh*~MfRz~N)W zR>S|_oJ*_^0&z}tI(;_63J}Mn{LqyghN&c@B$4ktyFX_lTLBD)hl@LzBy;(T6>?}{ zjrn>#Hq|}}4dodH7%iokTx4reL}Dzz{odLYCi$+s=X&gAxu@{&prbf%zmO0)mx&#@ zWk&8iAUq6;1I=Gw^v{%4R0drj56}GD?=^?`Z`Bi$lLJW=%KX{Pb{c^!0F^N&KAzX8 zTZ<_y4-5_G1y0lzCgBZeA0I4PL8Q2W(E|yn3QLN1<9Q1!gyqbi^BIM3hArZnYMk8H zBEO=-{Ib}!@bvfGcsUWWp(7sdPJrZ%X7j)dSS)Uk7jct!a6+Qv^dPnrc}PK#on7U)G7jOtUX$8+cv+`)0EB9nr{wrR zoropOrzNDKvN|<{gA*l!9Q@Z|-w%jmC$-zbh=GDpx8fSK3Gn%f? z@LnPJDfF*3*$%DSd;Pr#d#>$vS8goQ(S}J3Hbbz?AqTgRq3fKi9+`=a7uGN?KKngG z0AZIc)h$Snxi*14{q%t6)b(>+gQ~WU&hcWQ+#?>xtF;pVrYHXh4e0OhS6f$To>W+W zp+kirX4|P1nCvI=`#AsYYG;=m=rKo+u!%rnm-uV*gwtvU2Iv>yZSm=Lj?$g~4lJFZ zxRTlO-6b&-CMG)d%SC^WOUya1Bb2iqiZ`M?ogSy#YHbTw+I23X86+yo%Cc$fHtWb~ z8yg$FQvkPeoY zT<)e|O9K)hgtPPIB@{>;d3er^l!3&N69{Vaw2tO4oq@wa$3lr*8JUpKLy&m`Sv24t z8ydJDefybNky)3&rlP2*bzRgWm%7k=o?cw66>tg?7wGvO*^7CuSHA$m*EZWHDW@CO z`^C0?9u$bhd&xdNotw<C_T%h#Hzym6NN@&86ny;iTp` z*w}BRkxNlJ&CmzQekMLlR?|pLXs7u{9V&%ltn^HKJMWu1DgSgq8)i8-Hy%x53l9$u zAm9Hde}n_@JGrT8Yik;Sg?h~GSq3ZeLlWx5ieiHK@k}W^I=l=H>ED6gv6Sy}*%AY| zT^m=glnOWB<`cPP0-fMLr$ymiFGFPokT^=RoWUn{X`a@;4GiAc{d%Lg^6;mM=ivKWb0s~!e})S zv}FvqLj20hvCjrbLfgs&JWlp^hUqry-Or!^Jd;fWAKs!*FM9BxM8v|=|EM#fdF7!i zV0nNJh>Xwk5+v3DW>c`UlaUFb=ouN9XQO?WE`A;kNL)aJ;}!rJDTp4RPc={ySf`C} z-~XjwmXsIcFc{%`mtWy+NYS!-z(;8r3lm5!OCL3$0;T5{`GorxhvAm%4e;F4qJnD> zRD1Y91BW{BtHvj@ZJ?G4e}DczYCAA%S@9LrBk~;o{_{Zz z(f@k*$p5q$9NA&fl#z|Rtd4K0(=HPkytg(4GxHpUr8sya-SVGnT>8aw#Q!p$k=UwK z2+Bg~NjcBIw>(($=lL(w!vDU6|NS^d0)LYk;V#Mk$KcL%;=d%85B~R``2TnM5+5od z-uyq?E+%SkeQooyoWJPlPI*f5Trx}ai2AgkRN zfQXB!W~`CXMo0h9YBPNdK7_A2xk4^*b(tr?ae%%vO<4V0o9^pIyQR^E-TA3b1>B%l z7mzX_=;Y=$6j!maQZn+fbFFk$?iAARxq&+n4)Rz`%O%(x=dYQGg^>{nHMy{!_1IY4 zyxcb}=$JtvP&!;xVwuja!4$D9&`gcDwjSuo!uG!AXVq(;H#F4w&6JL3D>G;&vR{@S z3WCguI1^^t0PtTZlseZ~mZ@|BiXh}PgHBiWn8=cpf~=&UzTq5|RKSRuV$J`~Ls9wj zSB)nnFLt;dBs$FDPPeS)+eHlyFuw5u+SjSEsoL^N%!9?opRevtk3}Mu^~SetGJ>vuJr+@KY)k<>+Y&*{&q8c?(` zrwMp$&(m=QjW3KfN=e9ZVq%I=8i4aq>=d*d$4hqO0)qnIn4qETymM=N5Atx6u)Bro zYMs|4q03ikB^(?qjLZx-t372Pl_IhRAdFK~j96ajf-n?OUS4hRF5dTv>+*2we1m5~ z&*~?}he*%!4u56be%qHB9H`T>b~f&A)|}Gy6Hrrw6|}rAkd_{V`XSEY2-eyv!%8Q5 zhQ9tj$;$Vml z!MXL)pUH7H8q=BSDsK6e zgA@z(@ptiaYYajzRmb14=qRKlDQcc@mF9~O8ENqHxS2ZxZVp%7?4SXxL^9Em!)-EI zlx(pjQjL%_MXTZQ`Sj%!`AYbwGraQ8dlyohZdXrfHR8Fsxs^-?(JYq~;NlDxnhX|m z;i=8%hl|+9D+zzke;@r!nqu-rfG$a;sq9W4x7t!EGV;7;o~7wd7;)wWX;TCt=Q=1Oq8z-My_LXf=y`tYb~hv=Gv&a?cT-Tgaan7@e34b}8v|ao zHedbY1{FviOY}QO*3`xDrl*JV-JiM! zSMUOr!_lD?v0_wIViASBt-W1Rt6@&dw{I@QyiFc_O&*5}4P>N*r3fn^1j{%Lq($5> z1>ETTmwhoY^aQ%fy4WFNXgedmSnaEJY5WaK4LqWOs!}o#j&U6oTp9TcNiuTcb@G>n zU;#;Y;|hDr}W z-(Mh#n}&+|^4^ZMzWJo-J)&M8q*mt!#SzY=?6A?Qk55RY$3@ki=k*Iq`15BANN+Pk zEIdDbf>Pe=p4pY-ts8N3H;7SFgGmu0Z5(eQ zBo%TvOYYTY{ETRc3Syvm!$iGRInwkd22Y9pH%0?cFptJqNKqX~RR>$s2 zo#-@^!l$D5vp32?tuFrEJ*nepM#)H}Uf-x#4vQdvn{vhdO7FebwFgpE*X8axc~{m< z$>pin^Uxvj=hr7k2PMXP&*>Bx*%xNy-Bc84g+v+ZKjfdlkE2Kqe)so;VYQbP8N5r- zY4MDFm|+?z_{s&3T&j89p5wC$5%mKKpJVm(`tfJGiavnMGv2`07KVZiQKw6Zla;@f zsp{?vIE_s6|A_z<9&VFyc}WTk28=t>Jp@lhUE^XjOZnQ2KY%Q_qT%W8uNziN;r z6?o_Ny&X2w#r*0Ami=b;#EvGK><4?^V;HSQ~khOHR}qjqSVEf zD3gI)m??__b`R!$QEjX-ErvxBhJ|M+I_B!+ILednU}py{)*$l5$0yEC&n`81s?)+e z$a(A%i;|Ej49^iEU=B*a=ow!SkgE5uo*i&Xu+6O^L#U>5KEmi~U#s&rdx$_06h3?N z75wj4L}g^E1z+Wttb_E!$i&!(&qKNFk!fZsCJA?i0XQY*cZo&Z`QeO0c$%7~CIc2q zVNoF}8a#`#!yr?KW1fezRHu0T7=;4KFZd;=8Mk-ak5Kfbax-lem7KsBrRM)yn4pLY z^pC@&So?kJWvx{&ucA(ei(+nG7=@#olk*0$GYgKqQdggoKzJq=Q^>#MF-r_eYLus) zuU;?93p<<|S4MmCy|AzE@AMW(J%EKrp#^a?k7|C^>lrsyoIFMzH*wfa=6z)6-^u;h zC0|-h`+Jt-tn_!+M6<|dsZaRU?;oE7ax+LwOs1@xg?D#$WJzY2HF%N+$yoL1L&O?w zFI{}AX!H})DYG4`$46Ks_fdijGJO*@0N+oF*DbqeliEa7>+ z=J9I6klc&w-VVRoet=KYaeF!L&WLL>KrgpiGQ)6ymCDGiHws0UsA!(tc&mQTs-39X zf~DpDJny20nc1h~mW4TRQeZ-T*SPvgu#B|HfR11m45UPe!x^Dt*ClF(kjC0Flia+C z#+$RFMMgOEcTGab@FU2#rrR zH4R^bSL5RN-)U1=jx~s+FwW|v3JUoV7;Jl_00cAo6;Ul|!{!2zxrDnXf7YIRbyqIj zg-2)iL-oo`Dj+aJOT9pXk>Le7MGm4BZ++!J2<4NU41TND=GLBM-k61Xp+g00(m5iX zXfC~ho7lXJJ}`MKreN*3oMmm$qjf6of!2bPqZ0rOCZsmOp*;l&^)8;&K~xRS_+`19 zqAHg04}4Z46g2t=Fl7$jj!@-tCXe+nr+aLE0r{|jk`gJYHqm~GdT@x0+51V^az)=! z+&fZiM3r9Rbwfjb9P|BF1hE|*n*avfsve>d%&80wV<33}nY~Z=Pa4c8PEHsEUU&q6 zH3i@hZDi5yW2a%$(6sy=79BgD!=pAPzVEtW;sXnPgQn9 zU&%S}eq~$`-eS2ogYv>YX2kjD$?19OC~-VSm9^oxS`RW&OIl$6G3vIk#^q}IY zjc-wCH0LoURuTRumq;EAq+ZP~i^U5-3(pNDizrH>p?E`ejJMya%Zox`M%Vk1R@o*@ z>NYey&`N$k1!GVJPjqOzPZ{nrozFzE5E3k7X|-=(QQ6t1r!QX}G85&R35?CC4k_6RJFPM-UF9!e;4# zoXyg3%LN?|E9JI|yCl3Q+s9@7fRJ9}&kAH|SG&$?y#1X29cyj=`Z40RnUVgrw04Zr zK2@>G{pO5M;9KlQup+}=`O|d8Pq2Ds1K$RfLh80%!H#%MKsCSab)ZNU$k%oX@6)xw z@rum8z$p(TSPU*+eO*0{aAedi@!aIhU<%gj&HnPlEUoHsM-vecr~(`sgk!X>i8AuS zS`7thFZn1qX4`sa`lk+WQ;1hSRr99)wHn>9ihp3m{i>?M(*x_RTjL>*Gu#oz!URx& zJj??l6C-8i=&6axz*K|l%eZQi&~_xL{K(wmi0@skyIWg@W}*{;8&ci#d?GQo;-`*NR_>=sdB?$^a35%9 z53Gp&gI~^-sF8DM_Dn9eO)h4Lr+NB>kFRAH5e#>J6f><#4H|9>oaBRLX}LdaU6k_H z_}o4_7LG@6b=>`XeveZ$yQpZY6GNzUFqQ>{LT>hu-rD>6euaK4UuCnKRaCo={mR*~ zczAegtO zRGx~NnYn+c?`O5c5&W#tVKp$cv@|M+*!4u-)ZJ2fNl0X&*?r5g0c0s2Cr2v0XEZ&D z#d?pbw!e;?4UQdsDtqyUJ24r+G}ywaymfA-hf8Ppz!e1=SWAUBX1KfcqJaF%2&`ag zNJT3moR&8j>u|8pjE(5*VPe}Cwrg1blrC>KQczba;^2Cp_!d{ubGo)yQsi4GzuJ7p zRD@@CtTUrhK&Fzl=(xFS6KfBqHm_TI$5_wA!r08Eir#_Y7SOyxN%8JbPuN`*wc1Gnh)qS3~vi%^fOKPcvMMsye zJu8RRI6pr~T|}oITNq1{%>$UskJMlZS!s}40B0ll%2kbW+##>+M(-qLrfG z95o2S(M9ucsFV7?>9hCq1u0hMa3@Q`z}NK9)x04e4Ra8O3=4D+QgD=rVpFEM7 z$I9op8dTDoOPqU(LHdpz5~y%#OJmYyS`WtIG97i$d|5HW4N7&T(|)X0 z_bcDOhlCFJHHYJ8-7#pJvSfHSqmYpifHpS;2F+C5o^K51zL==k<{_5(w0&QyEi^8@ z0#8!c#6o{hnnW<65-`C`{@d5zGYnqi16sH)MJ%r@l`wGF@CbX8g)PeO)~0XUD7$~O zxZx0D$0kKl-KO+HJ#e#FUt+}VjF#k$cXp8r=tE&9cEgBQfA-gcvo_ANP^Wwd{7*?>nO zMh@(YxrVvDwpB^7RTj)_pW89AB6>wMZ$1$BMy;pJ?fClmOltEP#asNj_E`;wGhRma zPp1PWn|}`2xMdb|Wl%CAR#w_U{WjFwXZS7weAnJ+iT_TF5+zkJyNX)IC{U#pmaJn7 z&q8+So&27sc#B#{x#P`sVtiZCg_77LnCD z|EX#W6F@T+XQ>tz-Z*d)36>5f-dB64E?p3%wZIp!^`yPl>yxCkX?JM&=!BwoN(glk zeFctkMdX;oXpswlYbe&r_UK%R%&T2iQgUl6QsZMS+B zWoxWZ@l{Vbd=q>{^lE&z+xqX;vp{P@SM}}O>elQW>ap$9Ph%$M=%nd`RP%fH6JNT1 zoXX!IhhpdKga+W*MP;x%B2pS&2(K7qqAt$sm{#}+e(PTk)DcD4Otp>8l`W0~K=6m( z%ZV)x)0MBEWI*Q5t{RMAQkQ=;a4h13h4kD6=0={NDM4Pb^tB@abX*ziO_=Jb1hKWQ&(4i^%wbt@QW4weBE$`{I;5Ezh^RT{y*^mcL?x0P;vnp|Mogb_Y#v#HVf9* z-|uX#qj^YC`u$o9CKyM-cNzSWr?-7Hu-6b=$0;$JW!tDqz;U@^D;Wc-84865GCDih z^3QQw!2N1Q_u{uX?n});3Jwk-M9-}bS@0>S{P@sHLvj?}7A`s^=FL&NtlFc7j7XLpY4v$HAR4S9xZkc^?fy za!EmC>3kiX09=E9{;bk}_p+NhHv`FUK>aUSh#072Nd%h8)QKKB85Eb60*v4g2JZ*1RM*p=SQCwj$K8HKXF*DD$MBy}(TfE+pHEir#tq{L7Z+OzT*4bcGn323 zUqT`xmY3+ydq%nj4FHss=6)v9!$eV`h^76kuYV99^ShCiK~b3vI5KSQ;^*2SvGZ+< z-X_74x$RFv(ITTtM~=kE(HLF|ro<+~gAX(el}*LUydcGE&df}1`$CiyAGjH5tLaK{Kxq^}ue@J?Ug-EpC=)_lFuP2Hz40Fa|^!)UVoPY*4|7I_o&%#Hb-CV7cMRKwFC zE=$(Eu8L7O!)g2+_Iqz2a)&?!qxHd|DJNPCJi`bXi%muyvtP^Twc zImlii6h_zldWJyqbLyfehD~-8(`a$9M`Nu;L+Z(e(;R0>0=Gq~*B3YP)(7ORU!kmQ zMBV@s-A|evNNk*Deq{JpwmVQ zY8Qi;6y)}_eBg8(+khq^F#&QoQR`OLGTIJr0+SY$nixxjMNLCJenrK~r!vG@#SX)M zK^kqX)0nMQZFxB)rli;q+0!G2Nyvg2T(W5{WW+_)?dtk*Fpk|N@M+1^+sYdQ2Mdc{ zj20JOH=mfeGddbs99&fuoee-1aClO0q5vn&)o_~XIWgP(RBK8=0bN`_ zt`)=1UIWkTl!S=M76SqXVohK$2_>+JmQwQRS+$-!5(lnJ+>m`^YctU-*olKfJ5W79 zb~UuU9|C8lh*6NkiMZXhIINlj{$qi+NqUgc(b2J}@SbD{LPOK(>gnte+gt|+dxBG@ zKqJ)I>DjKi#obJO{j#ZAZK<}s!}+PrRK`-eUT?rLhIrWc?5KpC%3GuXV76s6j9(DRC&UV`E}LDktja&rZT9wnLS=FvlV7 zX5x7zt1WVc37V<-oR4&2UE>>!dW^*ls4>o-ItPaW*JT#xz*rnoQSJcxI5+Jr;Pw?+ zIxTfxn||ZRgGm7Pk@y5X+lA=*JSW)!7_`2A_qu&$0P3lzXde~=#jP(%!!kVWhjmixuBz06WF zV5v>%wrKB7fY2U!b7KkHSFmDZfPdawNPXqF2g4DeLq6dk9Hg@W+O9MH-+S5p!pMdV z-ve9?A26D+vG2AViFvO68~{piR}_Wr_pqDoCcfk|@PT_Dohsp{B(ea_f}W91+bRlq zE)EUu9yQT|-#!usUz{?O${QOKvAj?4MNiMn)Nnw*67-%_u#Qqvwv!3e&Dlz;0VxE> z^Q_=|;t>2fg_p|rVg~T@e`xsh@3a3O2>B*3TGK}vz;Wg!PXt!Q{wtns(2TmexYgay|Lh{ zJ90s&X!5Tfm_i>gssU~nJtX+aqqf_HIRgXG6IxVleqzd&Selv&UI7IOQI!_8sUE#RK{I@=Ky2?JD=1Ljk!tY zM>Fbe+D>6182mrNy#gQQi8|r-6lm}I5rjS1YrN~YJCUaphvk4KMS*RcowL{krQ_gM zJo6Yg3{f@%dJev;)05L(hYj!Vd(S$m+v0*xfWycx4!4ZSlnMJTR%9)rWIS|0 zGT&U4z1GN_gU*aSQrgjo22RADytx#CY6Nc3Cyk10Q#qT86q1MHa?8+qJTQ~E&C0y4 zHX3R-^86+=qn_Y({kMAUkfX+#-18WN;v+3?>FudU@2o@?tmWcD&I1WpqjQFlFXojt zQ}Ry+oNg`Dg4mkbx~iX9W2051r76FqoLMEcDeJUDq_1zj0k#zbleDOq0xgfIlj+RU z<-`Wlj&49+qN+FV=Vw&_Ln@IV5-k4Nz1BX~XJN=(|&r#J^}=D7pOIMXdz zYhkLB9N-1W1oG+1`=zVCJQ&P{_MO`i|4!e+#KywpkbK&+|8l8btF%G2Q@?zZF=2Cm zm)S1f?Z)3b>m)F&HJ`J!JRktP%Dlb|k9hKMlrS(bs#Lv+SyV=Si|@9P>`SJ@zoJW$ zq6J>u$dIKPJsDTmgtdXfwV=#86bdNxQptGm7!$n^63tor^AvFgIfpMcS|t62NHOfz z2Q5|pta@>mY4Zyd2ex)6TMLk12m48YY~CqZfb|+JM&dms39Wkp2=IR#xDy}8j*$|6 z-CoglF;`IR)!!#Syujdr9%H|;!*S%QA`zTG1KEg-{#U5=YFo8|}F0lTEI&*N<8=uF6FIi7$cK3<)PZ9x5@ zu_1-u^TX>sbt5C+prXcrg6-X?K>6_4ND=_<#AE5IYAEWc7G@P$m>Vx~@I2u|2Qz%x5?rlh436Y_v>g{Tvn)VN}yDO+26(4FawqfI$bPrfZKcJoDmd)7a> zsE24bBEG#=hkqmYg;ROi{g2|lGpfn1OWX2@6+uyu{vc8W0qIIrlrFt@rT0#N1c*uy zX(GLY^cs*}LzF7Lh7wAUPUt1{@*RBN`7vwFnwfXzTi?gZ50`;Ech1@OK6_u+wfE-M zDLClR6nb9!C)>BjRmDe#cg{Eg5l0sX5?j9hYhjzIXaGp6Uzw1ReR$!xd^jh)w+0Rs zN-9dX#c{WP^3lr=B{9=PPiUmNjwYiWxZkU;B>jVQzlF*0zPAJ%RIO6~}<{y8XMdb0{R zQ?hK7iMhQP^msNlCnkJBhG|!2Kv4Axw9|HX$9*2K31*p03rZ<~a@JEZY#Hj~7vL@~ zb-9KgsV*$kTtbGIE~(HK@$0+szcz?c2uLqX6OPPVFKqZNlRAKKzDjxkL3DzNV&#%v z?!z5pTF%F8O7!9q*HVmH-#$fo9Y4A(p;Ev~dhPDa4CqYMblLJ`e}PCqZ((wkn&tL- zkzgpB-G{W^L5X7;M85w5Amt+S9h~X()N>mNTs=#8?5OY#?X$tYQ9n{=uqJ_9&TdF~ zlv&|oG>GR*-O(TTs5mk#)`Kh*1wMa>1H|~}_!sY9`l!)4%#C(fi%egdBXY&bj#FsQuz(?%CnB7*F;A<^pEiU6DYTn*}luuII?LI zfx;8FgR3c{*iofeAwcVE2|h{LrL8?CEcC=tTBV(J^>mC@!fHVnQyQe_xM#S~llZkx zxTrl4>$X_t)WwziSaw>nNsX7cf9Py8-SqjOh9>AbV49H)(zQBactC=GOi%(WaQ2yb z2=SY5omr}1e>F!F&@ATXVV1UUGQMxOy9fq!WRjPkk`6 z-tDA4j?BL~h@5<$f_xsNc(Pf%rn3)#xk>ygeg$i$f5!Rvag7tf*jx&G%)}1p!B&Oj z3We#P8DKR&b0R>SGaFaasw(3|A)lPGGSjBm>(==Q=X)L}mCLweT5wolarHf2Z9Wr^ zL0+;~5ke0?p!NN!Uv=y)>V3kG_R`Z;eK`3EK%P3AeH3rV^IaS(L3oy15*l9^#@0PC zAn&SYj!UKuxL#C?bkn%6p>cmyhq5PGtYFws-KtNH#+={4jha64!%*VCS=LA3=KK`@ zxH*yIb|E%4T|H-)QhE76@K}M*G^Ai;a1}Bbq@f!}fsSk9T=e2?96MW^j0n?=OwD2S z03WTH$<)Hkys|5S5)tmytQOrp9iA?ko!ZWd3W-A+vMxWSeqSacafmgyb)9X5Rf1Fi zk5qY;?ZDIx4YZei_s&QEO=PIi3&+Z2pk55CYnQraHC!CAm^TN0`O$FN8(Ov1DmJ&5 z3gwS2FY98y@c`u&tq_C(@fzjDux2S|NN9`ppnJ7N1yAt-3^r4t;;K~cnTmF3tgLFKrDjNVC-nVjieGij)I=i!HOSwP%nxl>k{%D1`#7-fUkjE9zoI}@fHd%#H`NMA9|yob=@Ir>o+ ztPB}-1$=n3Dsno9ge--Z`Ga|Mly0sNvl4B@*BBl{Y``rzrzie?vAgSCQN;Ffz>Z*^ zQFE(fwLa+B4Dg@~qMyNoPJfq_^1Oz}#>SatWan8(h7hw%%~15#t7%EISeTHVGvU}V zk_pfnt-~ms&7RHg^Y?6GctL)C5cJ?7plUz_3?L35dckZnl1c%B(oExTGK%b z3Nj3<4t)iX66JVjb0SFHl^pug|5kKhOC3BPn{`S(erh7P1r0%6A0ZC z*5clRIvpV)K04Z89qiwYA}vxJ1EMWWY*>V>MSVP!wz^YyY0kF=_*^>+b9;uhH!?{K zf?DnCLqip5;{Bjo11Bg23%qgDc69|=kQtn(uddy@(TW!wK6Z6;#gsqPiF=6ne$H+` z*&&c*u+oqRalmEss&em{uEi(XN?Z$(0wWZ9x;vFcjY>34-&t`SGV-D}xtQa0>Izk! z_uK2;k!Y$cZE{np``npmZozN%p+i;wQRd`O9VHP!*p-LWff;Dv4NLh{55V5HG{5#d zIs|$~pNhlQmCoRdrv1p-j0~+!Vy-HIO~V0K42H%{LxAZ^&5c!M>pYq-v$(f&xBq6N z^NGsmnC|T!XjQsL8c26T;d2lu&~Iva_Dl%oc{G7`Q4`6HZjJEj&P=8}ht1qOO|0hZ;{7aG{~FQ4*)^W&{48k|&D-5o+6 z@cx__80&8r66ey|fmJ4_&JtEn#;~4scJTsN?AZUd4d{8WjIS3%ZdK{$j`hHJV-sc> zN2eP%3#x;F;63btRP`k85PC=)F*l6qGmW8BF!sE!)r8CqD^~+aIkV6R3MdZS(qYea z;(*8x=&#bsy-o&Fh-hA={ZL!XvuC@K9IU@l#XnttN5RjFUsoSGEvKrcp!Q9Qzhbne zNKmita{=*Gz0T{9sIMOj_JT8p^dt~zPo-E%W#SH@jf;Hu|E#y)%4o6GuMKVnQ5Xn# zD|T;#mnd|P5s{Jg$e`AP6KF}B&C_<+5%GmJTj~i?@Igy6wdtJv-rJd3?Z0JCi8a?Q zJY>?pdmeV^(eOhIE`DBqgLDPLp<{%8PdcZjcUFrZx-!+C!Zk1+9KfZDhZip8O)Wl#W zv%Vp(A~?eKdAUjo+2v0RL}mp;G>aHj=#zdbTWzZwgel`Y4~Y`L7)ZQsEowZ142x&= zo)-!z)aRBIVU`xZI#Z(26B8=WjrxP+y^JKJwUolBGTGCmmWJdj`s8xhIdYlv5%|m| zvHmS7xoaR@2OS{2HpgXws{v0pV1=YDw8(?zR;C3k`nJHW;_96;b#~*k@;Np1ptQ+t z&w{>}9f~|WyRG4%G2E;3Myus^RH!nloQZ)GJJdbdH4yakZ4C?xxGsR!k0(AkCz&Md z?9TNkz7Z}jed?2Z89k3YRruFvi7T(9N-bw6_-8MM0=Oz$@;A;QeoxZSuE zS%8$RY~XV}w2zO7l+iG24q8wGN!dEh_(?+?8L&0l+P{FV?2ZK9+fHIhC@Xcwnylitpdb3hhJ$czj~6K8|im;1pR zj!|`q&mqX9L4PdLZsm2W^yaon{4WZI*T*aVsPvg-6-qPqCmsgrwks>t5VLCx0u@C# z2)mEkUQ>|v7*@6jQ32`FzK)R(@XnYEQQu0Wq9&;BbO|y?P?8S58=s{Fnd2*|FWw&O z0->#Thsb_cOy=M1MFlSgJI7Uzmh(h}%K}JB2Za?=FMqDl%(JwU{T#A3;r=%mU$uhY zo%ie;4g#VYCKhHu)_8gz#l_DB7RJgb=o3%_k#;Xpi>^?BZAijfrKGLP>iJ*Nnm^T1 z7&qjLUxrmW0KTNK$bob)bsN-c00}<>A~GtPk7iZ2S||&o;ZkGwKr=b($iAJySx~hn zA@f%GoavQ066IjZt;q`{y-PZ1n0~%&0bGm$U!a7~VzC2X_q{E1<*f?eTpDu^cP4-L z^yCr3vvP_7A``t?QFB_Ro!zO#`%!3bIftG^&4b?Om}pxu#~G?R~cao0dHJ z)Qp_Zq-p8tjD#z(pDu4&J=YOdU-j2v>M;(af1xfa_*hRb+>q%r-5n6yk$Iax6%)|q z(SL;SINT2)O2}p9q6ke-pZv$t5fRhd8Cy$T3kbeOHlc$Vw=#I;27r8>vAQpiCWl;p z9ax`bN0*E|P}4CZT$k_TXQ!>#r(R$4Jf5;|3}T$@j3SdXRo9V6f3E89g>eAwV|$km)6I5Xt!g zMH*W(6Zy&dtE`6&h|>IoP@@YBj~K+Hc7hYJdx~lmSIP;f#T^F5)?Mmnk)*0RDo(qr z>qC~)ATkpgFP8tjcmxAk&zxE2xn)i`OX5--Ax_l%J~!?VvkXk--<2EYp8Jw7m-2FO zBIX!TpET9Kro=>tugp$U0jY85 zx%PQAeEK1X6oK~P>MgqDSW+8{GpM7NEWo!VQol;2``vz^ud1&OB93)+WGWAc6UE#& z13}s-g%Cv+6ac0ePl*-Jkam!e(Usc*G_^)&j0lkFF3wO)t>Edf@b5_ENm7E=fNF$| zrwF47*-iQ7AG@@Fd42FGJ4e?Juaxl$aMKEUeyaAvfIklmx&gF~v_fvQe75%h-|K9n zNHfV5ck0K>a&mcWnc5NH&|Y&5OCZSyqT_`4I5%Ke`Rnh^ixAcs<6_qBQUFks13FTP zU-aTWNfAk-mR}BcsApFxNa@L3RrDz*Bdc3_tgTB)@4il zCYUHDex}E~j9rsIb3tj323t(l0rXu%&DqHtF~4phl+`^R70PXCy|1^+6PR-oqG&_+ltD`%R%f6#ep&c zdU(j#qDaFHN%QCjxTkU2!`IpUHA3~Xs$OF7;URR3V&V`}hO|uRWZHfPLwx(IB5O-Y z|J@UmX|psDO{3V!)gWx0j1(0A0S>7@8yzO5c+Ae>xx4=oXl?3GSG`Wg0^qn(?})_+ z9V+Z#DNCsHtq>`tSRQD@y*6AaFE7MlOnF`Q7Sk3J&M;@J*mEK>&IKr2>rO6#7gh4* z(^@Jm70`oSeEtcv2NW!<{{Y&E+hK`-PPhdP7z&b$k{$*5{?#jf;Um-E3kFsPM+o7XE>H7|TCyvpgM?c`c$y2*l68VMNR0 zT(Bsu!u9=caV49}5|ZvY(EJ+bNa6Q6GE3OI^c12VO|ippc@ZwQJUUQtG3`HhcRG!~ z(w#3-7(<{JsY3^^OMyW2lPJtKeu^%eaw4rzMOLcT2&2;i%$TeN=+>d&Bz#v`}gYtLxF9b!eM)qX}0c`?lC%=P~8Y_I8=G>GVCQB!T4C z?eg+cHP(C8qoWo|wBpW|DTk0qA*Al13(#tLnCh`mXsM}{V%?ceDD(5w+2(r=(p>hE z?XYgnj;@hyw?GUE_(jll$&i3F+p9OIVP)qyu{xzeM}M#rcHOoAZDD7ZemAe-&F4HRoojUaO10cQX{VY&uzm{b_e?wA7)4b)JKA{<5aSPI&5v=PmS6uH~ z=$q!37SDdkz#!P9BxA`M^vNuzxXhFO$@(4jQBejg+L zl(h-ll2w+$cL1F}MF|%f1RM$DUX37Vp>Q-_VW5ocm#8(il4-7m(BFTTz^HBQo_z;? zkS0V5QW#93ZgnVZK?z%PB$KK7I4ZEDzog;g@nGaEwQN8!JTW?1^5E?$64$!!2)fx@ z$;xV)Lyt3Wf=PBm1(ZG;tsN=QSvt`&rKGhR_Va*2IX(4hjfWT_Ex5#gncRR%X+9l7 zci-_jA~@O{?NIkROnn6u?o!c-zhd--6EPWLVq)Cc4s~_$=BOG=^f6yb$(0LyfuTjX zn-MrtiIwphr{M~Pd)IcNeu`V$U}ztJdZBQlizsm!QB>VrOAA|+_1#qj?V82W=pe3j!tf;|2;m%N+C+OmE zZ=Z!G<0cwZ%@SSUYeyT!;pbKvQKH}7Ep)AUnlD}Y{mQ)K6F;bz`hb+6p`k?<*v__W zg@=cOIBf*j4vnaKExY^$nv4q7T>D3{`6WQQgWvhzyyfvCxa>=q%Cqweee20#_%l7~U%W0I9hUx0PsGxB zDg28fm46I$`U_D0;OE1i!vAl3Ws|Rd(f+yXZ@B;2r~F^|&QpdDtmv82UC(c9ik|XX zoA3F*z71RQoVQxI@b7N<1rSDnAJS{*-|GMATZE_m0us!ok+;u3c#+%s&mH`)Hu;}c zb1Lw^-|PQq7xu@V_KV5=o57}k`m^Q#(J%gAx88qVaE*-7j?pv{^b-LK#{cgYY@ekM zYZ@t#e*V_KS>Ag%>ncA&{m!|}}=4DdIm);yYBueWsP^RA)PlKH*!-`}C)|Kphc#V7tp%SwSWZ z-?sbBh?@BB)Pb-tGL0FA{9fS(dVi|R_iso7xe20a`6>zR!NIT@C1u=UFG5rs zSFRCU6t)JV_j1Nj{GOgZZl8^Tiu7X|C%T%NUW3yUy~u0Pb5ec;I#ZW?`~Fny6rYSb zf}fgMDcUEKHh{J|z4facUUis(#8A{ot&yvwq~HA2SFb+qu8o^oTITp1t&U%5{B$c% z6mB=qq0L7?Qt}U3V|OTB7P#_?BTrxzat>pVm9Vd|>L!|9D3R6>+R<{CR&ue)3P?pD zk0eB~JFavAvNB%kGZRgfZ&1ss&Ze>M(`Rw^tmyemsB>LFv6JXcyYC1a2l@1F8TOdd z!EARD!m=6rP~Cot7CsTv=UaP8_b}fGzI6bGdF-5^*cl?JV|glC1b%_^?r-!uScJ z`0Q2M)sl{c9}NxDwWFoCZdtw^f5!bPePUey>~z`6!J^W2^AeX52}4sVV=MVt%^NDh z{PLL^i56^ki3JdUm?8}}%xp|{WOTIHR5?EnkM3?q+QJzD^bZ^&x;@#25XUJ|Dy^7T*Y&Drac2-uKmT0kZ3;u`ZpLY(M+6Kz=xt||hyzm|l{hKek z!~Zs=_AvjbGQ{&FOCjam`ikB93N7ild7lzmt`XefiI<+TSjhCugg#Uh{#&UqnFC{X z^!Heh^%xr2fQ26r-1{AQc}vf4=a4YA?j4()%s_m096^$?{-f-1ksSSjS=$yU$iKnx zkx?jbA@`K}Y%rs?KdXfmX5rul>w{qtkBh*dIRj{|%kbpn2~jQdO4%*z6I@L8?A(Gp z%ZDp2XeS5Oui~+C5)(Z#H~frevXE4x4vrz$O?gJYGx%my#`6azo?JMNprmXwN%nYb z{i_N+J3~;;%^P}>Tik&y}cR_^BhW^{5g5r zC1^MaO06Zv>2-3oiu8rN->z3&*{=6=KGv3QHSaeS5E$}|lf|PWn}Q@hgPy>4`jsNw zr~20YnG<7z!E}^r(s!sIye7e;_gmLZdT11sz9=cwxZ?LtTo$}kEHH>KHV?Zzf0(F< za~!XYFEK6&PKT3m(oCXfk}4-1ZRZ`=&0>=xg!hi<*J^tCqHXHk++Dn#k4I7{x`aJ# zjljng4CY^Vf&+5GsYO@~l>o!U>aC_xgQG;15NgpALeaymh>omX@0O%QKVhyNx81 z-5qbBn+Fz|3=zqmY@%Q!G4E2tsENYJjftDe(xAEgI(&aAEWI_8AxYRx8O_R8L)fwz z$oTCI-FqP9@r`tPAkDbGW}XL! z#CmI+E5OH}E}^p*=QKkGExF5~tDkzmP8Fy7-(&#h@ay+0@uO+#t^i=T?sf**qwJr2 zQ7B)Ow~S+cY-(S+^lg}J?}kv!)=!uNYGa(Ye{3l1H?AugQ~YYIt*GuXv8$_Xg-2f< zm1j$9ZFQ*oHh6qFjH=CnGs##UmO=*jqE6EMaFFGGSs+p~?q_@YP2=qk1PeXfdD`WO zgswh@2TTq)8!jcwsI2z%)GB1QRQ&F~kVQoaU}y@8&hLHF2Rfo&!6 z_|48HmW)cCxHn0j^=G^JIrS*M>|2&g^u7J?@z^^bQdfbyPf*U2`26ehhFiW*)LQD+ zru}LE&4{$C1aas}RfXM|T1SPIUf-dhA_+77H>Z=fCx2JQPFXrb*b)~T09l!Fk}m%EmX0n0&{$h z69m`IbimOMeQ*staG5E`z-Kdk}%uU7gb!KozbK6iV|Bz9x3hn^2%vDQmmH(`>J zt<6SOE08X)v(>nDw1LStiPYHRt$U#6e&)>^1%(CgBQuYLLa-BV_;rhz zIEK@3B-f--(3QVJo#V+9A49%MNGKJUlNRsZD*C2XD6taCXLaP%E}s7SEgK4& zzTch2-q$ya310dq*uLgQan|w4J`GMm&FCm|i>#LBWVT;D$oegAUizoT#y<8#A83~^ zHDW#a_CR^_8^t>3tquFQ&bK4`6aWn7(+knn9TV6ic7<%0d@teV<70cw*(oDi<8>OT zs-k%oE%dDB@T%kpzY7mHzZRQZ&<%TL15|9dt43yC-h!GCXW?m_mcvXp;pZLNag>)r zXQ!NeUxj?UMVga`C6Mh3+g2fxg6 zBwQI0k)It`4dC384RgcksGE;vwfNwd><5#H11;Al$9o0`>oTeq+cQf6UMO*mVsHLp zs-5j>d@kaboc!s`?9cvbJ(7t#8U6}VCZ8m!I~)YFp0z z4Uya=)sl6k8=J57!Ug@cdm=pOF^)nO?Mr*wH2-E_@)%JUtw%PUkjgzCW$&dI}l5_8j4*vWeKYjXSJ|C@ENVi%m3HrTZ z(AR68D7MB?KX?FH7j7!jsEYH;{O}>wFVpR<<(R$7E55T3ysB}{lkVom+MXYMVy8dJ zqlbuyJ~>xA@v;m<42~++1~*W2_Q_)2L|^Rtc$)g#TY7tYn+7}kno-`BIp*E=3ge~T zSC6hr#_MTQKA-|mjTB_@H}!*|G&7l)N#FSA)s$@^bIvB<{tRFw*3Pv^^jEqeQtRFC zmG5RW84x9PUdy`%CQ{8ZWQihfS%+BNRCTm6+dVKp_y%xb%KBe|&@>c9qqVQ>25<*& z7Yb1lpFyZDBD$10BfXnPLZn2p*ZcLGcz5${>bo2Y#~tBwsv@yGs}m4A#>`17|J!sq zYi6(a_$j%)KJP#`i#jaeN2o)B3)kuTN}DfUH_1>GOo6P<%FM*U!s>xPZj|`gDthq7 z)00p-L3Eok_j$Ntuko7uNbf@~0m3)&z3DR{h~>icw7$s%-J4MX2s_o27qnLSL7?dr z(y1ed)R=%J=59z3gkC%^c zXK#-d^jQx#%f~0$4%FN?5OU8sX#6>&v_4Y4(DRJ(Izyp>yolSOZNktUiED9h$a!ry zhD#R$YmX=lYVFll$(t3l$uBH^$d5Udsd0AN7=hovKfkVzo)z;M#||+R*l97m?#Bde zQgla><4Q`3Z(2>XwP8vPhU>?MPYcvFD^oyClyYPg&{+uca#R=js4ZF<)t<98${? zU-69A!ro*-xllb(s6*A!+FH>;I zEJL)eu5-sPnYF1E^2v()P`D%1*%&GpUa<#Mekd*0 zdj{(VsuG{X?saWPFhfCz9gEINs@;`oj0i6@l9!2;x3bz-<`g;5m2hPyCEj&L%6YY?{_s$* zxfyfTzq>MlhISoFaTKcHgqDh=*H7KLvllhpcyEDev_cEER_}a<;XfN5+ATu}?d4JV zL%BxiQ@klzbzQfgfXAl-3w5$?89e$vRo6@Drd!e1-EXwl z+4OMi>H6Zcy6!fwV_#Dq9c&0^R0&9o;g?W0$9adEa%2Nk`zr{ysC z*7q};2}M7CPf(LhcT-GsA`4iHl-Znl2fmzCNM`0ayY1OK5`#u6hWZ|A8ala8*xTA< zL_ICFG_fIv@=`I)OFS;+1JZkjXsC*gX4(^Wl+)_gQX>pO3Y=mHTQL#E!Wd7}FBzY; zrl0#GYR!^Y06i-wsdE^DAiL^*ok0Y3vOGFTev#qRCn?Iuvi=aeUtMq5wIZX~+nssT zlxRl65~3!{L}4qHNGriY@V}8}nG`*zhU#Cr1O;RjYMjA!r_(;>1qLQ|4t6XkUSn8^ ze=h3U`lTKNoaMIX)*xl>Z3|qzub-bJzUC6h_QkxR_NakNj%(w7?-+jireDp$>FVkt z{D}Phh+1!joW5<@S)b?dI+}Vc>64?da~dT3UCnrE6?2k;1%&bQ^SKm6nv` z!QH9`CNkG-(w;AbENfb_6I)nhGsl=3`keNg$Z1vh}gbbNd`1PTod z&yGXpTHJ1HMaRf1@#mCMu`n@}CyxTN!W>C(?5*V?g~l$6zb~G z!?R`=FO(I#INp_bWKjL>`S-j$wx#yw-UMeN9U zYQadFuzH`0YGqMG0&F=Je&ziWSWzXaZ|IO}Szgk*!dC3F@JpTT0*w+uN zrT>a|NbCJ)LPByynQ@Et%<(RT{?*k7qU1~EHW(vUr4UYS^KK74xz|B(gWWkTTvk>l z$a%g{ih6YqrwohtfU#m&Q6X#lFn|A}C0^ao-!0L2q+YY?^JmXSaQxl|JzqVZnvIQ| z$4_p2c89^9+Z3X8t^2>z(Ihk*IfrifKQ7R(&j-j3+q@Y#EB1+(Hnv@9hMLDFh97SC z$R~TxKW1oRk1*o-is`d_2wlv%>M0fO6E=!Esyq#q%*EXfrKBOJdKhBhlx@6S58|h9 zA>$+3*HlzhOB25Khd*RM9Ixq}$_2XN;bWcSB@6HGWSNtfOJm@#U~>IYfq~9w&EIxH zd%(Rv(PAs%RVAA-SyoCF;sjw)O!Q!%i5%Fu;(*-ok&Lno?bf?Cj!w*3SrRaDJbqHB zOa(`+vydlX*TdFfJ(;Phq45}@JT9s~F^T!{V#O z6+%El`^RK^6!#Z>$3!h$SNn4zf8UeXS)Bl50EzL#0IA|j87oZ2_yxseik+k%?oOgC zj0iU@Mf4eV8<@IA@g>Z~6r7NyaTQU=*;tlkebkXe>D{c7w3>CFF1hf*Af1zw4DnlXb-I5KRR4!1g{9ehY8R^KscV2#5W0dkC7!^Cg@s3kg`2*8 zYiVX;vA(#nN->_Pv=e7?ba%#N-P@_A6UQZSbxI-Wd>gf+M!_^OJ)F+$z=%J#ifqfUU+9DT?2ecyL!c9$rx3fS!35~Z#7lL&6tw>bh3MBsAIsS zdqu}hY&QM6+1Otp6E||q%+0;gQ_@STCZW40Zkr!BHk8RsOs>L?oJ^z(^-2eu_91$6 zX=!>!KK$7~J;9u&PNR(h+(Pi9(cI10m*;pN<^0GxOCe6C9_;gbe}kwzxoht%wYTFH za+R-vAd!Y|IUZEZC5qO$9eDWIN0T;;iEF!jdt=@^UKB<8P@EdL|MfK7@oD-%x;8^pJ2Lxb|+^UfwFfnVGrIH%~Y%c4r(u z1T5Gjes41Fu>WRdZ4nJW&wOi2%ryqv0=rMQ>7D_=$IeB}Y0EXKF)5Ko>j`p3Xlq*s zm&48!{lws)X~v|XK>~3O=(O_U&M_l?X2S|E!l>|s48EROJ{sxeHO}hhY&q2VZmrU2 zD7nh2G7hu-`dL@DNy;-PxjdE8 z4(y%lXgeJJRQBYWbM^S*Kq$~e%CEdi#_403}hw88vpBathR* z*~K5P=&!M}cSPObb&;2**c&gnYrk2X-5w=pBkVu*OEKCV zhsau;k=5clB>GhCS#CLzI~)~cAs6JJqdP`axn^o-V+77VS?l&!0UdJk2-1rTNE0P` zj%p24WApj>(TA*QuYBoO`dNgygc*4W&`o56b7p^MLj%`S{qc#y5*RwQD{+E9pWv#W z$jPf^Gf*9)Z=VjtZ*&NW5Ha6_B_xxsP*a={2L_Rm1;#7L2VBQ+pm09 zE;97#u{ndCQ%!u>^*d&k3V~b;pGE%Wf%t7B2b{1aC=Z zB0VJ#iI6k7(W~m~*SW!HNxBVD<|tR$K|r_A)2}zx(Agrbwxd`38{7G!A|sE>JginN z2Do%;wg5Vtxm?{Bs-zE|LTvI$xpmi}mSIBP43TxAtfXY~VlkPI_S0-VwFFB6IWQ8a zGgJ%*pZdx-ySfL)CHeTp#l_8=Ha9l|KreA;1(C&JJWkfrd9=&kMHJy?ZJRq;qapG; zjzY6&U$WGllA$SNHqxZ^%Wz@8*HbeX98G=3il^n9nXn>b2_A+NHG{VojE-@|IHkpB zJs&?djDn$xLxaO>-h_;KiM_dCFmfJC^+7pRy%1M*@Dp$WQ@_KL6Bp;GM>wo=4(&9d z?WqRKexyzdN}np%*Qg&bW5lA^@3&odO6Iskb?ouZ#~utFOSP+o9$oc3(%O3k`pJ9Z zd)J6k7>%+KRolrNx;35$)|%y+h5!heP92?*w~N*k=(aaRHjE8FpreN!PEusgbl!BB z*VNRkSaKd_%-wS4nd!l;K@|TSteMS~J~%Y;gfX-Rx(saDD~xqt zUzo)MFf8}E9A0w1XQcG626Xa#)X6-@n7sV5ht%l7NRZQ})}=KO|F?smQ|aM{bJS|M zNwB3w$)T?i{x#2p`CV+Y@<7+s?&t2D5HLiCTF?$N^r3afU2OkkzfHDBIAASLe~T;1gxx<^eWb333Ikf zhgF}%Yi$!M?)L@{sAZvq9Zu7Lrw4<%+5m`;L?R_p0mLWjvOC_L1RE;Efs~*x$I}Nr z)e09CPQ6}vr`?oiX-&+HuC|poeEu&M#biYp8QZ?JL;ByltFPTUvw|P9bFV;o*0cQvPoLYv12y zjM=$$2rrP>C>?TUhkF@#<-#`$AeTN0jrHIav{{diiu{z^XZVUW-I0ooEb!X?RbFmx zpnN~F9%}9X+TY(l!=mH@Mx-omn>{_7KYa<*P~Rlc^{ANBtydu*T+nAPt+17tN$uw%1R#9)hl=Ar6MKX~>4X{nA%S`k`X6bv{#Vj~|KyYZyKlWvIJ*i7 X>073+y71!sTggf)zAlt_`|}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# How to set barcode – complete C# guide + +If you’re looking for **how to set barcode** parameters in a .NET project, this tutorial shows the exact steps you need. You’ll learn **how to generate barcode** images, create a Databar barcode, and control the bar height pixel‑by‑pixel—all with clean, production‑ready C# code. + +In this guide you’ll: + +* Install the required NuGet package. +* Create a Databar Omnidirectional barcode (the “create Databar barcode” part). +* Adjust X‑dimension and bar height to demonstrate **how to set barcode** dimensions. +* Save the result as PNG files, covering the **generate barcode image C#** scenario. + +The code works with the latest Aspose.Barcode for .NET (v 24.12 at time of writing) and runs on .NET 6 or later. + +--- + +## Prerequisites + +Before you start, make sure you have: + +* .NET 6 SDK (or any later version). +* An IDE such as Visual Studio 2022 or VS Code. +* Internet access to download the Aspose.Barcode NuGet package. + +No additional third‑party libraries are required. + +--- + +## Step 1: Install Aspose.Barcode for .NET + +The most reliable way to **generate barcode** images in C# is to use Aspose.Barcode. Open a terminal in your project folder and run: + +```bash +dotnet add package Aspose.BarCode +``` + +The command adds the latest stable version to your project file, ensuring you have the `BarcodeGenerator` class and the `EncodeTypes` enumeration. + +*Pro tip:* Keep the package up to date (`dotnet list package --outdated`) to benefit from bug fixes and new barcode symbologies. + +--- + +## Step 2: Create a Databar barcode (create Databar barcode) + +Databar Omnidirectional is ideal for retail and logistics because it can encode a GTIN‑14 value plus additional data. The following code creates the barcode object: + +```csharp +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +// Step 2: Initialize the generator for a Databar Omnidirectional barcode +BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); +``` + +*Why this matters:* The `EncodeTypes.DatabarOmniDirectional` enum tells the library to use the Databar symbology, while the string `"(01)12345678901231"` follows the GS1 Application Identifier format for a 14‑digit GTIN. + +--- + +## Step 3: Define common parameters – X‑dimension and base height + +Most barcode scanners expect a minimum X‑dimension (the width of the narrowest bar). Setting it to 2 pixels gives a compact yet readable image. + +```csharp +// Step 3: Set a 2‑pixel X‑dimension (common for most scanners) +generator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +You can later adjust the bar height without recreating the generator—this is the core of **how to set barcode** attributes after instantiation. + +--- + +## Step 4: Set the first bar height and save the image (generate barcode image C#) + +Now we demonstrate the first part of **how to set barcode** height. The bar height controls the visual length of each bar; a value of 30 pixels yields a short barcode, while 60 pixels creates a taller version. + +```csharp +// Step 4a: 30‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 30; + +// Save the first PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); +``` + +After execution, `DatabarBarHeight30Pixels.png` contains a Databar barcode with a 30‑pixel tall bar. Open the file in any image viewer to verify the result. + +--- + +## Step 5: Change the bar height and save a second image + +To illustrate that **how to set barcode** values can be changed on the fly, we modify the bar height to 60 pixels and write a second file. + +```csharp +// Step 5a: 60‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 60; + +// Save the second PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); +``` + +Now you have two PNG files showing the same Databar data but with different visual heights. This is useful when you need a larger barcode for printed labels or a smaller one for on‑screen display. + +--- + +## Step 6: Full, runnable example + +Putting everything together, here’s a self‑contained console program that performs all steps described above. Copy the code into a new `Program.cs` file, replace `YOUR_DIRECTORY` with an actual folder path, and run it. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Initialize the generator for a Databar Omnidirectional barcode + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); + + // Common parameters + generator.Parameters.Barcode.XDimension.Pixels = 2; // 2‑pixel narrow bar + + // First image: 30‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 30; + generator.Save(@"C:\Barcodes\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 30‑pixel barcode."); + + // Second image: 60‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 60; + generator.Save(@"C:\Barcodes\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 60‑pixel barcode."); + + // Dispose the generator to free native resources + generator.Dispose(); + } +} +``` + +**Expected output** + +When you run the program, the console prints: + +``` +Saved 30-pixel barcode. +Saved 60-pixel barcode. +``` + +And the folder `C:\Barcodes` (or the path you supplied) contains the two PNG files. Both images display a valid Databar Omnidirectional barcode that can be scanned by standard GS1 readers. + +--- + +## Frequently asked questions + +**Does this work with other image formats?** +Yes. Replace `BarCodeImageFormat.Png` with `Jpeg`, `Bmp`, `Gif`, or `Tiff` to generate the corresponding file type. + +**Can I change the foreground color?** +Set `generator.Parameters.Barcode.ForeColor` to any `System.Drawing.Color` value, e.g., `Color.Blue`. + +**What if I need a different symbology?** +Pass a different `EncodeTypes` value to the constructor, such as `EncodeTypes.Code128` for a linear barcode or `EncodeTypes.QR` for a matrix code. + +**Is there a way to embed the barcode in a PDF?** +Aspose.Barcode provides a `PdfGenerator` class. After generating the image, you can add it to a PDF page using Aspose.PDF. + +--- + +## Best practices for barcode generation in C# + +* **Reuse the `BarcodeGenerator` instance** when you only need to tweak dimensions—this avoids unnecessary memory allocations. +* **Dispose the generator** (`generator.Dispose()`) after you finish to release native resources promptly. +* **Validate input data** (e.g., GTIN length) before creating the barcode to prevent runtime exceptions. +* **Test with a physical scanner** after changing X‑dimension or bar height; extreme values may affect readability. +* **Keep the output folder writable** for the executing account; otherwise `Save` will throw an `UnauthorizedAccessException`. + +--- + +## Conclusion + +You now know **how to set barcode** properties such as X‑dimension and bar height, **how to generate barcode** images in C#, and the exact steps to **create Databar barcode** files with Aspose.Barcode. By following the complete example, you can generate multiple PNG files with different visual characteristics, fulfilling the **generate barcode image C#** requirement for any .NET application. + +Next, explore related topics such as **how to generate barcode** in bulk, embedding barcodes into PDFs, or switching to other symbologies like QR or Code 128. Experiment with the parameters shown here to fine‑tune barcode appearance for your specific scanning environment. Happy coding! + + +## What Should You Learn Next? + + +The following tutorials cover closely related topics that build on the techniques demonstrated in this guide. Each resource includes complete working code examples with step-by-step explanations to help you master additional API features and explore alternative implementation approaches in your own projects. + +- [How to Generate DataMatrix Barcodes (ECC 200) with Aspose.BarCode for .NET](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-ecc-200-configuration/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [How to Generate Barcode – Code 39 Configuration with Aspose.BarCode](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-code-39-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/english/python-java/general/how-to-set-barcode-complete-c-guide/og-image.png b/barcode/english/python-java/general/how-to-set-barcode-complete-c-guide/og-image.png new file mode 100644 index 0000000000000000000000000000000000000000..9da16c6e88d1d970ff2fcaf0c01ad228320f7671 GIT binary patch literal 46834 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 z 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 n2}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Image de code-barres PNG en C# – générer des codes-barres, modifier la hauteur + +Si vous avez besoin d’une **barcode image PNG** en C#, ce guide vous accompagne tout au long du processus complet. Vous apprendrez à générer des codes-barres postaux, créer un code-barres Planet, et modifier la hauteur du code-barres sans quitter votre IDE. + +Générer des codes-barres PNG fiables est une exigence courante pour les étiquettes d’expédition, les systèmes d’inventaire et les solutions de mailing automatisées. À la fin de ce tutoriel, vous disposerez d’un extrait de code réutilisable qui produit des fichiers PNG de haute qualité pour les formats Planet et RM4SCC, et vous comprendrez comment ajuster la hauteur des barres pour répondre aux spécifications postales. + +## Ce dont vous aurez besoin + +- .NET 6+ ou .NET Framework 4.7.2 (l’API BarcodeGenerator fonctionne avec n’importe quel runtime .NET récent) +- Une référence au package NuGet **Aspose.BarCode for .NET** (ou toute bibliothèque compatible qui fournit `BarcodeGenerator`, `EncodeTypes` et `BarCodeImageFormat`) +- Une connaissance de base de la syntaxe C# et des opérations d’E/S de fichiers + +Aucun outil supplémentaire n’est requis ; le code s’exécute dans Visual Studio, Rider ou le CLI `dotnet`. + +## Image de code-barres PNG – génération de base + +La première étape consiste à créer une **barcode image PNG** avec les dimensions par défaut. Cela établit le fichier de base que vous pourrez personnaliser ultérieurement. + +```csharp +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +// Define the output folder (replace with your own path) +string outputFolder = @"C:\Barcodes"; + +// Ensure the folder exists +Directory.CreateDirectory(outputFolder); + +// 1️⃣ Create a Planet barcode generator with default height +BarcodeGenerator planetGenerator = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + +// Set the module width (X‑dimension) to 4 pixels – this defines the thin bar size +planetGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the image as PNG; this is the first **barcode image PNG** you’ll produce +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +**Pourquoi cela fonctionne :** +- `EncodeTypes.Planet` indique au générateur d’utiliser la symbologie Planet, requise par de nombreux services postaux. +- `XDimension.Pixels` contrôle la largeur de la plus petite barre ; une valeur de 4 px donne un code-barres lisible aux tailles d’étiquette typiques. +- La méthode `Save` écrit un fichier **barcode image PNG** sur le disque, en conservant toutes les informations vectorielles sous forme de pixels raster. + +## Modifier la hauteur du code-barres – personnaliser le poids visuel + +Les directives postales exigent souvent une hauteur de barre spécifique. L’extrait suivant montre comment définir une hauteur personnalisée de 100 pixels pour le même code-barres Planet. + +```csharp +// 2️⃣ Apply a custom 100‑pixel bar height +planetGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Overwrite or save as a new file to keep both versions +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +**Pourquoi modifier la hauteur :** +Une barre plus haute améliore la fiabilité du scan sur les imprimantes basse résolution, tandis qu’une barre plus courte libère de l’espace sur l’étiquette. La propriété `BarHeight.Pixels` vous permet d’ajuster finement cet attribut sans affecter la dimension X. + +## Générer un code-barres postal – créer un exemple RM4SCC + +Le format RM4SCC est un autre code-barres postal couramment utilisé au Royaume‑Uni. Les étapes de génération reflètent l’exemple Planet, renforçant le modèle **barcode generator c#**. + +```csharp +// 3️⃣ Create an RM4SCC barcode generator with default height +BarcodeGenerator rm4sccGenerator = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Keep the same module width for consistency +rm4sccGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the default‑height PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +## Modifier la hauteur du code-barres – variante RM4SCC + +Tout comme pour le code-barres Planet, vous pouvez ajuster la hauteur des barres RM4SCC. Le code ci‑dessous fixe la hauteur à 100 px, produisant un second **barcode image PNG** pour la même chaîne de données. + +```csharp +// 4️⃣ Set a custom 100‑pixel bar height for RM4SCC +rm4sccGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Save the customized PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +## Exemple complet, exécutable + +Assembler toutes les étapes donne un programme autonome qui crée quatre fichiers PNG : + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +class Program +{ + static void Main() + { + string outputFolder = @"C:\Barcodes"; + Directory.CreateDirectory(outputFolder); + + // Planet barcode – default height + var planet = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planet.Parameters.Barcode.XDimension.Pixels = 4; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // Planet barcode – custom 100‑pixel height + planet.Parameters.Barcode.BarHeight.Pixels = 100; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – default height + var rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – custom 100‑pixel height + rm4scc.Parameters.Barcode.BarHeight.Pixels = 100; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); + + Console.WriteLine("All barcode PNG files have been generated in " + + + +## Que devriez‑vous apprendre ensuite ? + +Les tutoriels suivants couvrent des sujets étroitement liés qui s’appuient sur les techniques démontrées dans ce guide. Chaque ressource comprend des exemples de code complets et fonctionnels avec des explications pas à pas pour vous aider à maîtriser des fonctionnalités API supplémentaires et explorer des approches d’implémentation alternatives dans vos propres projets. + +- [Créer un code-barres hauteur personnalisée – Codes-barres unidimensionnels](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-barcode-height-adjustment/) +- [Créer un code-barres PNG – Ratio d’aspect DataMatrix – Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-aspect-ratio-customization/) +- [Créer une image de code-barres C# – Exemple GS1 DataMatrix](/barcode/english/net/gs1-barcode-encoding/gs1-datamatrix-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/french/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md b/barcode/french/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md new file mode 100644 index 000000000..aa0d0a4d7 --- /dev/null +++ b/barcode/french/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-08-15 +description: Créez un code‑barres planet en C# et apprenez à définir les dimensions + du code‑barres pour un dimensionnement parfait. Exemple de code étape par étape + avec des barres pleines et vides. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create planet barcode +- how to set barcode dimensions +- planet barcode C# +- barcode X‑dimension +- empty barcode bars +language: fr +lastmod: 2026-08-15 +og_description: Créez un code‑barres Planet en C# et apprenez à définir les dimensions + du code‑barres. Suivez ce guide pour générer instantanément des codes‑barres Planet + remplis et vides. +og_image_alt: Screenshot showing a Planet barcode with filled bars generated by C# + code +og_title: Créer un code‑barres planétaire en C# – guide complet étape par étape +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Create planet barcode in C# and learn how to set barcode dimensions + for perfect sizing. Step‑by‑step code example with filled and empty bars. + headline: Create planet barcode in C# – complete programming guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.BarCode +title: Créer un code‑barres planétaire en C# – guide complet de programmation +url: /fr/python-java/general/create-planet-barcode-in-c-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Créer un code-barres Planet en C# – guide complet de programmation + +Si vous devez **créer un code‑barres planet** en C#, ce guide vous montre exactement comment le faire. Vous découvrirez également **comment définir les dimensions du code‑barres** afin que les barres soient rendues à la largeur exacte dont vous avez besoin. + +La génération de codes‑barres Planet est courante lorsque vous travaillez avec les services postaux ou les systèmes logistiques. Le code ci‑dessous couvre à la fois la version à barres pleines par défaut et le style optionnel à barres vides, ainsi qu’un exemple rapide pour le format RM4SCC. À la fin de ce tutoriel, vous disposerez d’un extrait réutilisable que vous pourrez intégrer à n’importe quel projet .NET. + +## Prérequis + +Avant de commencer, assurez‑vous d’avoir : + +* .NET 6.0 ou version ultérieure installé (l’API fonctionne également avec .NET Framework 4.6+) +* Le package NuGet **Aspose.BarCode for .NET** (`Aspose.BarCode`) ajouté à votre projet +* Un chemin de dossier accessible en écriture où les fichiers PNG seront enregistrés +* Une connaissance de base de la syntaxe C# et de Visual Studio (ou tout autre IDE) + +> **Astuce :** Utilisez un chemin absolu ou `Path.Combine(Environment.CurrentDirectory, "output")` pour éviter les problèmes de permissions lors de l’enregistrement des images. + +## Étape 1 – Initialiser un générateur de code‑barres Planet (barres pleines) + +La première étape consiste à créer une instance de `BarcodeGenerator` pour la symbologie Planet. Par défaut, le générateur produit des barres **pleines**. + +```csharp +// Step 1: Create a Planet barcode with the default (filled) bars +BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +L’énumération `EncodeTypes.Planet` indique à Aspose.BarCode d’utiliser le format Planet, tandis que `"123456"` représente la charge utile de données qui sera encodée. + +## Étape 2 – Comment définir les dimensions du code‑barres pour une taille cohérente + +Pour contrôler la largeur de chaque barre, ajustez la **X‑dimension**. C’est le moyen principal de **définir les dimensions du code‑barres** et cela garantit que le code‑barres s’adapte à la taille de votre étiquette. + +```csharp +// Step 2: Set the X‑dimension (width of each bar) to 4 pixels +planetFilled.Parameters.Barcode.XDimension.Pixels = 4; +``` + +La propriété `Pixels` définit la largeur de la barre en pixels d’écran. Les valeurs courantes sont de 2 à 5 pixels pour les étiquettes postales standard ; augmentez la valeur pour des impressions plus grandes. + +## Étape 3 – Enregistrer le code‑barres Planet plein au format PNG + +Écrivez maintenant l’image sur le disque. Le PNG conserve des bords nets, ce qui est idéal pour la lecture. + +```csharp +// Step 3: Save the Planet barcode as a PNG image +planetFilled.Save("YOUR_DIRECTORY/PostalPlanetFilledBars.png", BarCodeImageFormat.Png); +``` + +Remplacez `YOUR_DIRECTORY` par le chemin que vous avez préparé précédemment. Après l’exécution de ce code, vous verrez un fichier similaire à l’image ci‑dessous. + +![Code‑barres Planet avec barres pleines](planet_filled.png "Code‑barres Planet avec barres pleines – créé par du code C#") + +*Texte alternatif :* **Code‑barres Planet avec barres pleines généré par du code C#** (correspond à `og_image_alt`). + +## Étape 4 – Créer un code‑barres Planet avec des barres vides (non remplies) + +Si votre service postal exige que les barres soient **vides**, vous devez basculer le drapeau `FilledBars` après l’initialisation du générateur. + +```csharp +// Step 4: Create a Planet barcode with empty (unfilled) bars +BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +Le constructeur est identique ; la différence réside dans l’étape de configuration suivante. + +## Étape 5 – Comment définir les dimensions du code‑barres et rendre les barres vides + +Encore une fois, définissez la X‑dimension pour une cohérence visuelle, puis désactivez les barres pleines. + +```csharp +// Step 5: Set the X‑dimension and specify that bars should be empty +planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; +planetEmpty.Parameters.Barcode.FilledBars = false; // makes bars empty +``` + +La propriété `FilledBars = false` est celle qui modifie réellement le style de rendu. Conserver la même X‑dimension garantit que le code‑barres à barres vides s’aligne parfaitement avec la version à barres pleines. + +## Étape 6 – Enregistrer le code‑barres Planet vide + +```csharp +// Step 6: Save the Planet barcode with empty bars as a PNG image +planetEmpty.Save("YOUR_DIRECTORY/PostalPlanetEmptyBars.png", BarCodeImageFormat.Png); +``` + +Vous disposerez maintenant de deux fichiers PNG : l’un avec des barres solides et l’autre avec des barres creuses, tous deux partageant les mêmes dimensions. + +## Étape 7 – (Optionnel) Générer un code‑barres RM4SCC pour comparaison + +RM4SCC est une autre symbologie postale qui utilise le même style par défaut à barres pleines. Les étapes reflètent l’exemple Planet, démontrant que **comment définir les dimensions du code‑barres** fonctionne quel que soit le format. + +```csharp +// Step 7: Create an RM4SCC barcode (filled bars are the default) +BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Step 8: Set the X‑dimension for consistency +rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + +// Step 9: Save the RM4SCC barcode as a PNG image +rm4scc.Save("YOUR_DIRECTORY/PostalRM4SCCFilledBars.png", BarCodeImageFormat.Png); +``` + +L’exécution de ces trois étapes produit `PostalRM4SCCFilledBars.png`, que vous pouvez comparer côte à côte avec les résultats Planet. + +## Pourquoi la X‑dimension est importante + +La X‑dimension détermine la **largeur imprimable minimale** de chaque barre. Si vous la définissez trop petite, le code‑barres peut devenir flou sur des imprimantes basse résolution, entraînant des échecs de lecture. À l’inverse, une X‑dimension trop grande peut dépasser les dimensions de l’étiquette et gaspiller de l’espace. En maîtrisant explicitement **comment définir les dimensions du code‑barres**, vous obtenez un contrôle déterministe sur la taille finale de l’image, ce qui est essentiel pour les flux de travail d’envoi automatisés. + +## Pièges courants et comment les éviter + +| Problème | Cause | Solution | +|----------|-------|----------| +| Le code‑barres apparaît étiré | X‑dimension définie en points au lieu de pixels | Utilisez toujours la propriété `Pixels` pour un contrôle pixel‑parfait | +| Les barres vides semblent toujours pleines | `FilledBars` non mis à `false` après le changement de X‑dimension | Définissez `FilledBars = false` *après* avoir ajusté la X‑dimension | +| Le fichier enregistré est vide | Le répertoire de sortie n’existe pas ou manque de droits d’écriture | Assurez‑vous que le répertoire existe (`Directory.CreateDirectory`) et que votre application s’exécute avec les droits suffisants | +| L’image est floue à l’impression | PNG à faible DPI enregistré depuis un écran haute résolution | Utilisez `BarCodeImageFormat.Png` (sans perte) et envisagez la propriété `Resolution` si nécessaire | + +## Exemple complet, exécutable + +Copiez le bloc entier ci‑dess dessous dans un nouveau projet console (`dotnet new console`) et exécutez‑le. Le programme crée trois fichiers PNG dans le dossier `output`. + +```csharp +using System; +using System.IO; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Ensure output folder exists + string outDir = Path.Combine(Environment.CurrentDirectory, "output"); + Directory.CreateDirectory(outDir); + + // ---------- Planet barcode – filled bars ---------- + BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetFilled.Parameters.Barcode.XDimension.Pixels = 4; // set dimensions + planetFilled.Save(Path.Combine(outDir, "PostalPlanetFilledBars.png"), BarCodeImageFormat.Png); + + // ---------- Planet barcode – empty bars ---------- + BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; // same dimensions + planetEmpty.Parameters.Barcode.FilledBars = false; // make bars empty + planetEmpty.Save(Path.Combine(outDir, "PostalPlanetEmptyBars.png"), BarCodeImageFormat.Png); + + // ---------- RM4SCC barcode (filled bars) ---------- + BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; // consistent size + rm4scc.Save(Path.Combine(outDir, "PostalRM4SCCFilledBars.png"), BarCodeImageFormat.Png); + + Console.WriteLine($"Barcodes generated in: {outDir}"); + } +} +``` + +**Résultat attendu :** trois fichiers PNG — `PostalPlanetFilledBars.png`, `PostalPlanetEmptyBars.png` et `PostalRM4SCCFilledBars.png` — avec des barres de 4 pixels de large, prêts à être imprimés ou traités davantage. + +## Conclusion + +Vous savez maintenant comment **créer un code‑barres planet** en C# et définir précisément **les dimensions du code‑barres** pour les styles à barres pleines et vides. Le même schéma s’applique à d’autres symbologies comme RM4SCC, vous offrant une base flexible pour toute exigence de code‑barres postal. + +Ensuite, vous pourriez explorer : + +* Ajouter du texte lisible par l’homme sous le code‑barres (`BarcodeGenerator.Parameters.Barcode.CodeText`) +* Modifier les couleurs des barres avec `Parameters.Barcode.BarColor` +* Générer des codes‑barres en formats vectoriels (SVG, EPS) pour une impression évolutive + +N’hésitez pas à expérimenter avec différentes valeurs de X‑dimension, chaînes de données et formats de sortie afin d’adapter le tout à votre flux de travail spécifique. Bon codage ! + +## Que devriez‑vous apprendre ensuite ? + +Les tutoriels suivants couvrent des sujets étroitement liés qui s’appuient sur les techniques démontrées dans ce guide. Chaque ressource comprend des exemples de code complets et fonctionnels avec des explications pas à pas pour vous aider à maîtriser des fonctionnalités API supplémentaires et explorer des approches d’implémentation alternatives dans vos propres projets. + +- [Comment créer une zone silencieuse (quiet zone) pour le Code 16K avec Aspose.BarCode for .NET](/barcode/english/net/code-16k-encoding/code-16k-quiet-zone-settings/) +- [Comment créer une zone silencieuse (quiet zone) pour ITF-14 avec Aspose.BarCode for .NET](/barcode/english/net/itf-14-barcode-customization/itf-14-barcode-quiet-zone-configuration/) +- [Comment créer un code‑barres Aztec avec correction d’erreurs en .NET](/barcode/english/net/aztec-barcode-encoding/aztec-error-level-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/french/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md b/barcode/french/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md new file mode 100644 index 000000000..61fca2d96 --- /dev/null +++ b/barcode/french/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md @@ -0,0 +1,239 @@ +--- +category: general +date: 2026-08-15 +description: Génération de codes-barres empilés étendus Databar en C#. Apprenez à + générer une image de code-barres, à définir les colonnes et les lignes pour les + mises en page DataBar. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- databar expanded stacked +- generate barcode image +- how to generate barcode +- how to set columns +- how to set rows +language: fr +lastmod: 2026-08-15 +og_description: Génération de codes-barres empilés étendue avec Databar en C#. Suivez + ce guide étape par étape pour générer des images de codes-barres, définir les colonnes + et les lignes efficacement. +og_image_alt: Screenshot of a databar expanded stacked barcode generated with C# +og_title: Databar étendu empilé – générer une image de code‑barres en C# +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + headline: 'Databar expanded stacked: generate barcode image in C#' + type: TechArticle +- description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + name: 'Databar expanded stacked: generate barcode image in C#' + steps: + - name: 1. Install the Aspose.BarCode library + text: 'The code uses the **Aspose.BarCode for .NET** library, which provides the + `BarcodeGenerator` class. Install the NuGet package with the following command:' + - name: 2. Create a barcode generator for **databar expanded stacked** + text: The generator is the entry point for all barcode operations. You must specify + the symbology (`EncodeTypes.DatabarExpandedStacked`) and the text to encode. + - name: 3. How to set columns for DataBar + text: The `Columns` property controls how many vertical modules appear in the + stacked barcode. Valid values are 2, 3, or 4. Setting columns influences the + barcode’s width and the amount of data it can store. + - name: 4. Save the 4‑column barcode image + text: Saving the image produces a file that you can embed in reports, invoices, + or mobile apps. The `Save` method accepts a file path and an image format. + - name: 5. How to set rows for DataBar + text: Rows add a second dimension to the stacked layout, allowing more data to + be encoded without widening the barcode. The `Rows` property defaults to 1; + you can increase it up to 3 for the expanded stacked variant. + - name: 6. Save the 3‑row barcode image + text: '```csharp // Step 5: Save the 3‑row barcode image barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", + BarCodeImageFormat.Png); ```' + - name: 7. Complete C# example to generate barcode image + text: 'Putting all steps together yields a self‑contained program you can copy + into a console application:' + type: HowTo +tags: +- barcode +- C# +- Aspose.BarCode +title: 'Databar étendu empilé : générer une image de code-barres en C#' +url: /fr/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Databar expanded stacked : générer une image de code‑barres en C# + +Si vous devez générer une image de code‑barres **databar expanded stacked** en C#, ce guide vous montre exactement **comment générer des code‑barres** avec des dispositions personnalisées de colonnes et de lignes. Vous verrez comment définir les colonnes, comment définir les lignes, et comment enregistrer les images résultantes sans quitter l’IDE. + +Le tutoriel couvre : + +* Créer un générateur de code‑barres pour la symbologie **databar expanded stacked**. +* Configurer une disposition à 4 colonnes et à 3 lignes. +* Enregistrer chaque configuration sous forme de fichier PNG. +* Astuces pour gérer les cas limites tels que des nombres de colonnes invalides. + +Aucune documentation externe n’est requise ; l’exemple complet et exécutable est inclus. + +![Databar expanded stacked barcode example](YOUR_DIRECTORY/DatabarCols4.png){: .center alt="code‑barres databar expanded stacked généré avec C#" } + +## Étapes de génération du code‑barres Databar expanded stacked + +### 1. Installer la bibliothèque Aspose.BarCode + +Le code utilise la bibliothèque **Aspose.BarCode for .NET**, qui fournit la classe `BarcodeGenerator`. Installez le package NuGet avec la commande suivante : + +```bash +dotnet add package Aspose.BarCode +``` + +Après l’installation du package, ajoutez l’espace de noms requis en haut de votre fichier : + +```csharp +using Aspose.BarCode.Generation; +``` + +### 2. Créer un générateur de code‑barres pour **databar expanded stacked** + +Le générateur est le point d’entrée pour toutes les opérations de code‑barres. Vous devez spécifier la symbologie (`EncodeTypes.DatabarExpandedStacked`) et le texte à encoder. + +```csharp +// Step 1: Create a barcode generator for Databar Expanded Stacked +BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); +``` + +*Pourquoi c’est important :* L’énumération `EncodeTypes` indique à la bibliothèque quel format de code‑barres produire. Utiliser **databar expanded stacked** garantit que l’image résultante suit la spécification GS1 DataBar pour les dispositions empilées. + +### 3. Comment définir les colonnes pour DataBar + +La propriété `Columns` contrôle le nombre de modules verticaux apparaissant dans le code‑barres empilé. Les valeurs valides sont 2, 3 ou 4. Le réglage des colonnes influence la largeur du code‑barres et la quantité de données qu’il peut stocker. + +```csharp +// Step 2: Configure a 4‑column layout +barcode.Parameters.Barcode.DataBar.Columns = 4; +``` + +**Conseil :** Si vous essayez d’attribuer une valeur en dehors de la plage autorisée, la bibliothèque lève une `ArgumentException`. Validez toujours l’entrée lorsqu’elle est exposée aux utilisateurs. + +### 4. Enregistrer l’image de code‑barres à 4 colonnes + +Enregistrer l’image crée un fichier que vous pouvez intégrer dans des rapports, factures ou applications mobiles. La méthode `Save` accepte un chemin de fichier et un format d’image. + +```csharp +// Step 3: Save the 4‑column barcode image +barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); +``` + +Lorsque le fichier est écrit, vous pouvez l’ouvrir avec n’importe quel visualiseur d’images pour vérifier que le motif **databar expanded stacked** apparaît correctement. + +### 5. Comment définir les lignes pour DataBar + +Les lignes ajoutent une seconde dimension à la disposition empilée, permettant d’encoder plus de données sans élargir le code‑barres. La propriété `Rows` vaut 1 par défaut ; vous pouvez l’augmenter jusqu’à 3 pour la variante empilée étendue. + +```csharp +// Step 4: Switch to a 3‑row layout (columns remain unchanged) +barcode.Parameters.Barcode.DataBar.Rows = 3; +``` + +*Pourquoi les lignes sont importantes :* Augmenter le nombre de lignes réduit la largeur globale tout en préservant la capacité de données, ce qui est utile pour les étiquettes étroites ou les écrans mobiles. + +### 6. Enregistrer l’image de code‑barres à 3 lignes + +```csharp +// Step 5: Save the 3‑row barcode image +barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); +``` + +Vous disposez maintenant de deux fichiers PNG — l’un avec une disposition à 4 colonnes et l’autre avec une disposition à 3 lignes — tous deux utilisant la symbologie **databar expanded stacked**. + +### 7. Exemple complet en C# pour générer une image de code‑barres + +Assembler toutes les étapes donne un programme autonome que vous pouvez copier dans une application console : + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace DatabarExpandedStackedDemo +{ + class Program + { + static void Main() + { + // Create the generator for Databar Expanded Stacked + BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); + + // Configure a 4‑column layout and save + barcode.Parameters.Barcode.DataBar.Columns = 4; + barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); + Console.WriteLine("4‑column barcode saved."); + + // Change to a 3‑row layout (columns stay at 4) and save + barcode.Parameters.Barcode.DataBar.Rows = 3; + barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); + Console.WriteLine("3‑row barcode saved."); + } + } +} +``` + +**Sortie attendue** + +L’exécution du programme affiche : + +``` +4‑column barcode saved. +3‑row barcode saved. +``` + +et crée deux fichiers PNG dans `YOUR_DIRECTORY`. Ouvrez les fichiers pour vérifier que chaque image affiche un code‑barres **databar expanded stacked** valide. + +## Problèmes courants et astuces pratiques + +* **Existence du répertoire** – `Save` ne crée pas les dossiers manquants. Assurez‑vous que `YOUR_DIRECTORY` existe ou utilisez `Directory.CreateDirectory` avant d’enregistrer. +* **Limites de colonnes** – Des valeurs autres que 2, 3 ou 4 déclenchent une exception. Protégez les entrées utilisateur avec une simple vérification de plage : + + ```csharp + int columns = 4; + if (columns < 2 || columns > 4) throw new ArgumentOutOfRangeException(nameof(columns)); + barcode.Parameters.Barcode.DataBar.Columns = columns; + ``` + +* **Limites de lignes** – La variante empilée étendue prend en charge jusqu’à 3 lignes. Définir `Rows` à 0 ou à une valeur supérieure à 3 lève également une exception. +* **Format d’image** – `BarCodeImageFormat.Png` offre une qualité sans perte, idéale pour l’impression. N’utilisez `Jpeg` que lorsque la taille du fichier est une préoccupation principale. + +## Prochaines étapes + +Maintenant que vous savez **comment générer des code‑barres** avec des configurations personnalisées de colonnes et de lignes, vous pouvez : + +* Intégrer le générateur dans une API web pour fournir des images de code‑barres à la demande. +* Combiner le code‑barres avec des bibliothèques de génération PDF pour l’intégrer dans des factures. +* Expérimenter d’autres variantes DataBar (`DatabarExpanded`, `DatabarLimited`) en utilisant le même objet `Parameters.Barcode.DataBar`. + +Pour une personnalisation plus poussée—comme changer la couleur des barres, ajouter du texte lisible par l’homme, ou appliquer des superpositions de QR‑code—référez‑vous à la documentation Aspose.BarCode sur les propriétés de `BarcodeGenerator`. + +--- + +En suivant ce guide, vous avez maîtrisé le flux de travail **databar expanded stacked**, appris **comment définir les colonnes**, **comment définir les lignes**, et produit deux images de code‑barres distinctes prêtes pour une utilisation en production. Bon codage ! + +## Que devriez‑vous apprendre ensuite ? + +Les tutoriels suivants couvrent des sujets étroitement liés qui s’appuient sur les techniques démontrées dans ce guide. Chaque ressource inclut des exemples de code complets avec des explications étape par étape pour vous aider à maîtriser des fonctionnalités API supplémentaires et explorer des approches d’implémentation alternatives dans vos propres projets. + +- [Générer une image de code‑barres – GS1 Coupon UPC‑A Databar](/barcode/english/net/gs1-barcode-encoding/gs1-coupon-upc-a-databar-configuration/) +- [Créer une image de code‑barres DotCode – lignes & colonnes (Aspose.BarCode)](/barcode/english/net/dotcode-barcode-configuration/dotcode-rows-columns-configuration/) +- [Comment générer un code‑barres – Types de codes‑barres unidimensionnels](/barcode/english/net/one-dimensional-barcode-types/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/french/python-java/general/how-to-set-barcode-complete-c-guide/_index.md b/barcode/french/python-java/general/how-to-set-barcode-complete-c-guide/_index.md new file mode 100644 index 000000000..75f14cd3f --- /dev/null +++ b/barcode/french/python-java/general/how-to-set-barcode-complete-c-guide/_index.md @@ -0,0 +1,236 @@ +--- +category: general +date: 2026-08-15 +description: Comment définir les paramètres du code‑barres en C# et générer des images + de code‑barres. Apprenez étape par étape à créer un code‑barres Databar et à enregistrer + des fichiers PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to set barcode +- how to generate barcode +- create databar barcode +- generate barcode image c# +language: fr +lastmod: 2026-08-15 +og_description: Comment définir un code-barres en C# avec Aspose.Barcode, puis générer + une image de code-barres C#. Suivez ce guide pour créer un code-barres Databar et + enregistrer des fichiers PNG. +og_image_alt: Screenshot of a Databar barcode saved as PNG using C# code +og_title: Comment définir un code‑barres en C# – guide étape par étape +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: How to set barcode parameters in C# and generate barcode images. Learn + step‑by‑step to create Databar barcode and save PNG files. + headline: How to set barcode – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.Barcode +title: Comment définir le code‑barres – guide complet C# +url: /fr/python-java/general/how-to-set-barcode-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Comment définir un code‑barres – guide complet C# + +Si vous cherchez **comment définir les paramètres d’un code‑barres** dans un projet .NET, ce tutoriel montre les étapes exactes dont vous avez besoin. Vous apprendrez **comment générer des images de code‑barres**, créer un code‑barres Databar, et contrôler la hauteur des barres pixel par pixel — le tout avec du code C# propre et prêt pour la production. + +Dans ce guide vous : + +* Installerez le package NuGet requis. +* Créerez un code‑barres Databar Omnidirectionnel (la partie « create Databar barcode »). +* Ajusterez la X‑dimension et la hauteur des barres pour démontrer **comment définir un code‑barres**. +* Enregistrerez le résultat sous forme de fichiers PNG, couvrant le scénario **generate barcode image C#**. + +Le code fonctionne avec la dernière version d’Aspose.Barcode for .NET (v 24.12 au moment de la rédaction) et s’exécute sur .NET 6 ou version ultérieure. + +--- + +## Prérequis + +Avant de commencer, assurez‑vous d’avoir : + +* .NET 6 SDK (ou toute version ultérieure). +* Un IDE tel que Visual Studio 2022 ou VS Code. +* Un accès Internet pour télécharger le package NuGet Aspose.Barcode. + +Aucune bibliothèque tierce supplémentaire n’est requise. + +--- + +## Étape 1 : Installer Aspose.Barcode for .NET + +La façon la plus fiable de **générer des images de code‑barres** en C# est d’utiliser Aspose.Barcode. Ouvrez un terminal dans le dossier de votre projet et exécutez : + +```bash +dotnet add package Aspose.BarCode +``` + +La commande ajoute la dernière version stable à votre fichier projet, vous assurant d’avoir la classe `BarcodeGenerator` et l’énumération `EncodeTypes`. + +*Astuce :* Gardez le package à jour (`dotnet list package --outdated`) pour profiter des corrections de bugs et des nouvelles symbologies de code‑barres. + +--- + +## Étape 2 : Créer un code‑barres Databar (create Databar barcode) + +Databar Omnidirectionnel est idéal pour le commerce de détail et la logistique car il peut encoder une valeur GTIN‑14 plus des données supplémentaires. Le code suivant crée l’objet code‑barres : + +```csharp +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +// Step 2: Initialize the generator for a Databar Omnidirectional barcode +BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); +``` + +*Pourquoi c’est important :* L’énumération `EncodeTypes.DatabarOmniDirectional` indique à la bibliothèque d’utiliser la symbologie Databar, tandis que la chaîne `"(01)12345678901231"` suit le format GS1 Application Identifier pour un GTIN à 14 chiffres. + +--- + +## Étape 3 : Définir les paramètres courants – X‑dimension et hauteur de base + +La plupart des lecteurs de code‑barres attendent une X‑dimension minimale (la largeur de la barre la plus fine). La régler à 2 pixels donne une image compacte mais lisible. + +```csharp +// Step 3: Set a 2‑pixel X‑dimension (common for most scanners) +generator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +Vous pourrez plus tard ajuster la hauteur des barres sans recréer le générateur — c’est le cœur de **comment définir un code‑barres** après l’instanciation. + +--- + +## Étape 4 : Définir la première hauteur de barre et enregistrer l’image (generate barcode image C#) + +Nous démontrons maintenant la première partie de **comment définir un code‑barres** hauteur. La hauteur de la barre contrôle la longueur visuelle de chaque barre ; une valeur de 30 pixels produit un code‑barres court, tandis que 60 pixels crée une version plus haute. + +```csharp +// Step 4a: 30‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 30; + +// Save the first PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); +``` + +Après exécution, `DatabarBarHeight30Pixels.png` contient un code‑barres Databar avec une barre de 30 pixels de hauteur. Ouvrez le fichier dans n’importe quel visualiseur d’images pour vérifier le résultat. + +--- + +## Étape 5 : Modifier la hauteur de la barre et enregistrer une seconde image + +Pour illustrer que **comment définir un code‑barres** peut être modifié à la volée, nous changeons la hauteur de la barre à 60 pixels et écrivons un second fichier. + +```csharp +// Step 5a: 60‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 60; + +// Save the second PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); +``` + +Vous disposez maintenant de deux fichiers PNG montrant les mêmes données Databar mais avec des hauteurs visuelles différentes. Ceci est utile lorsque vous avez besoin d’un code‑barres plus grand pour des étiquettes imprimées ou plus petit pour un affichage à l’écran. + +--- + +## Étape 6 : Exemple complet, exécutable + +En rassemblant tout, voici un programme console autonome qui exécute toutes les étapes décrites ci‑dessus. Copiez le code dans un nouveau fichier `Program.cs`, remplacez `YOUR_DIRECTORY` par un chemin de dossier réel, puis lancez‑le. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Initialize the generator for a Databar Omnidirectional barcode + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); + + // Common parameters + generator.Parameters.Barcode.XDimension.Pixels = 2; // 2‑pixel narrow bar + + // First image: 30‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 30; + generator.Save(@"C:\Barcodes\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 30‑pixel barcode."); + + // Second image: 60‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 60; + generator.Save(@"C:\Barcodes\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 60‑pixel barcode."); + + // Dispose the generator to free native resources + generator.Dispose(); + } +} +``` + +**Sortie attendue** + +Lorsque vous exécutez le programme, la console affiche : + +``` +Saved 30-pixel barcode. +Saved 60-pixel barcode. +``` + +Et le dossier `C:\Barcodes` (ou le chemin que vous avez fourni) contient les deux fichiers PNG. Les deux images affichent un code‑barres Databar Omnidirectionnel valide qui peut être scanné par des lecteurs GS1 standards. + +--- + +## Questions fréquentes + +**Ce code fonctionne‑t‑il avec d’autres formats d’image ?** +Oui. Remplacez `BarCodeImageFormat.Png` par `Jpeg`, `Bmp`, `Gif` ou `Tiff` pour générer le type de fichier correspondant. + +**Puis‑je changer la couleur de premier plan ?** +Définissez `generator.Parameters.Barcode.ForeColor` à n’importe quelle valeur `System.Drawing.Color`, par ex. `Color.Blue`. + +**Et si j’ai besoin d’une symbologie différente ?** +Passez une autre valeur `EncodeTypes` au constructeur, comme `EncodeTypes.Code128` pour un code‑barres linéaire ou `EncodeTypes.QR` pour un code matriciel. + +**Existe‑t‑il un moyen d’intégrer le code‑barres dans un PDF ?** +Aspose.Barcode fournit une classe `PdfGenerator`. Après avoir généré l’image, vous pouvez l’ajouter à une page PDF à l’aide d’Aspose.PDF. + +--- + +## Bonnes pratiques pour la génération de code‑barres en C# + +* **Réutilisez l’instance `BarcodeGenerator`** lorsque vous ne faites qu’ajuster les dimensions — cela évite des allocations mémoire inutiles. +* **Libérez le générateur** (`generator.Dispose()`) après utilisation pour libérer rapidement les ressources natives. +* **Validez les données d’entrée** (par ex. la longueur du GTIN) avant de créer le code‑barres afin d’éviter les exceptions d’exécution. +* **Testez avec un scanner physique** après avoir modifié la X‑dimension ou la hauteur de la barre ; des valeurs extrêmes peuvent affecter la lisibilité. +* **Assurez‑vous que le dossier de sortie est accessible en écriture** pour le compte d’exécution ; sinon `Save` lèvera une `UnauthorizedAccessException`. + +--- + +## Conclusion + +Vous savez maintenant **comment définir les propriétés d’un code‑barres** telles que la X‑dimension et la hauteur des barres, **comment générer des images de code‑barres** en C#, et les étapes exactes pour **créer des fichiers Databar barcode** avec Aspose.Barcode. En suivant l’exemple complet, vous pouvez générer plusieurs fichiers PNG avec des caractéristiques visuelles différentes, répondant ainsi à la demande **generate barcode image C#** pour toute application .NET. + +Ensuite, explorez des sujets connexes comme **how to generate barcode** en masse, l’insertion de codes‑barres dans des PDF, ou le passage à d’autres symbologies telles que QR ou Code 128. Expérimentez avec les paramètres présentés ici pour affiner l’apparence du code‑barres selon votre environnement de numérisation. Bon codage ! + +## Que devez‑vous apprendre ensuite ? + +Les tutoriels suivants couvrent des sujets étroitement liés qui s’appuient sur les techniques démontrées dans ce guide. Chaque ressource inclut des exemples de code complets et fonctionnels avec des explications pas à pas pour vous aider à maîtriser d’autres fonctionnalités de l’API et à explorer des approches d’implémentation alternatives dans vos projets. + +- [How to Generate DataMatrix Barcodes (ECC 200) with Aspose.BarCode for .NET](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-ecc-200-configuration/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [How to Generate Barcode – Code 39 Configuration with Aspose.BarCode](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-code-39-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/german/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md b/barcode/german/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md new file mode 100644 index 000000000..6c7b2cf89 --- /dev/null +++ b/barcode/german/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md @@ -0,0 +1,186 @@ +--- +category: general +date: 2026-08-15 +description: Barcode‑Bild PNG in C# – lernen Sie, wie Sie Post‑Barcodes erzeugen, + einen Planet‑Barcode erstellen und die Barcode‑Höhe mit einem einfachen Generator + ändern. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- barcode image png +- barcode generator c# +- generate postal barcode +- create planet barcode +- change barcode height +language: de +lastmod: 2026-08-15 +og_description: Das Barcode‑Bild‑PNG‑Tutorial in C# zeigt, wie man Postleitzahlen‑Barcodes + erzeugt, einen Planet‑Barcode erstellt und die Barcode‑Höhe mit der BarcodeGenerator‑API + ändert. +og_image_alt: Screenshot of generated PNG barcode with custom height using C# BarcodeGenerator +og_title: Barcode-Bild PNG in C# – Barcodes erzeugen und anpassen +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Barcode image PNG in C# – learn how to generate postal barcodes, create + a Planet barcode, and change barcode height with a simple generator. + headline: Barcode image PNG in C# generate barcodes, change height + type: TechArticle +tags: +- barcode +- C# +- PNG +- postal +- generator +title: Barcode‑Bild PNG in C# generieren, Höhe ändern +url: /de/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Barcode‑Bild PNG in C# – Barcodes generieren, Höhe ändern + +Wenn Sie ein **barcode image PNG** in C# benötigen, führt Sie diese Anleitung durch den gesamten Prozess. Sie lernen, wie man Post‑Barcodes generiert, einen Planet‑Barcode erstellt und die Barcode‑Höhe ändert, ohne Ihre IDE zu verlassen. + +Das Erzeugen zuverlässiger PNG‑Barcodes ist eine gängige Anforderung für Versandetiketten, Inventursysteme und automatisierte Versandlösungen. Am Ende dieses Tutorials verfügen Sie über ein wiederverwendbares Code‑Snippet, das hochwertige PNG‑Dateien für sowohl das Planet‑ als auch das RM4SCC‑Format erzeugt, und Sie verstehen, wie Sie die Balkenhöhe an die Postvorschriften anpassen. + +## Was Sie benötigen + +- .NET 6+ oder .NET Framework 4.7.2 (die BarcodeGenerator‑API funktioniert mit jeder aktuellen .NET‑Runtime) +- Ein Verweis auf das **Aspose.BarCode for .NET** NuGet‑Paket (oder eine kompatible Bibliothek, die `BarcodeGenerator`, `EncodeTypes` und `BarCodeImageFormat` bereitstellt) +- Grundlegende Kenntnisse der C#‑Syntax und von Datei‑I/O + +Keine zusätzlichen Werkzeuge sind erforderlich; der Code läuft in Visual Studio, Rider oder der `dotnet`‑CLI. + +## Barcode‑Bild PNG – Grundgenerierung + +Der erste Schritt besteht darin, ein **barcode image PNG** mit Standardabmessungen zu erstellen. Dies legt die Basisdatei fest, die Sie später anpassen können. + +```csharp +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +// Define the output folder (replace with your own path) +string outputFolder = @"C:\Barcodes"; + +// Ensure the folder exists +Directory.CreateDirectory(outputFolder); + +// 1️⃣ Create a Planet barcode generator with default height +BarcodeGenerator planetGenerator = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + +// Set the module width (X‑dimension) to 4 pixels – this defines the thin bar size +planetGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the image as PNG; this is the first **barcode image PNG** you’ll produce +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +**Warum das funktioniert:** +- `EncodeTypes.Planet` weist den Generator an, die Planet‑Symbologie zu verwenden, die für viele Postdienste erforderlich ist. +- `XDimension.Pixels` steuert die Breite des kleinsten Balkens; ein Wert von 4 px liefert einen lesbaren Barcode bei typischen Etikettengrößen. +- Die Methode `Save` schreibt eine **barcode image PNG**‑Datei auf die Festplatte und bewahrt alle Vektorinformationen als Rasterpixel. + +## Barcode‑Höhe ändern – Anpassung des visuellen Gewichts + +Postrichtlinien verlangen häufig eine bestimmte Balkenhöhe. Das folgende Snippet zeigt, wie man für denselben Planet‑Barcode eine benutzerdefinierte Höhe von 100 Pixel festlegt. + +```csharp +// 2️⃣ Apply a custom 100‑pixel bar height +planetGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Overwrite or save as a new file to keep both versions +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +**Warum Sie die Höhe ändern:** +Ein höherer Balken verbessert die Scan‑Zuverlässigkeit bei Niedrigauflösungs‑Druckern, während ein kürzerer Balken Platz auf dem Etikett spart. Die Eigenschaft `BarHeight.Pixels` ermöglicht es, dieses Attribut fein abzustimmen, ohne die X‑Dimension zu beeinflussen. + +## Post‑Barcode generieren – ein RM4SCC‑Beispiel erstellen + +Das RM4SCC‑Format ist ein weiterer gängiger Post‑Barcode, der im Vereinigten Königreich verwendet wird. Die Generierungsschritte spiegeln das Planet‑Beispiel wider und verstärken das **barcode generator c#**‑Muster. + +```csharp +// 3️⃣ Create an RM4SCC barcode generator with default height +BarcodeGenerator rm4sccGenerator = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Keep the same module width for consistency +rm4sccGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the default‑height PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +## Barcode‑Höhe ändern – RM4SCC‑Variante + +Wie beim Planet‑Barcode können Sie die RM4SCC‑Balkenhöhe anpassen. Der untenstehende Code setzt die Höhe auf 100 px und erzeugt ein zweites **barcode image PNG** für dieselbe Datenzeichenfolge. + +```csharp +// 4️⃣ Set a custom 100‑pixel bar height for RM4SCC +rm4sccGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Save the customized PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +## Vollständiges, ausführbares Beispiel + +Das Zusammenführen aller Schritte ergibt ein einzelnes, eigenständiges Programm, das vier PNG‑Dateien erstellt: + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +class Program +{ + static void Main() + { + string outputFolder = @"C:\Barcodes"; + Directory.CreateDirectory(outputFolder); + + // Planet barcode – default height + var planet = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planet.Parameters.Barcode.XDimension.Pixels = 4; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // Planet barcode – custom 100‑pixel height + planet.Parameters.Barcode.BarHeight.Pixels = 100; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – default height + var rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – custom 100‑pixel height + rm4scc.Parameters.Barcode.BarHeight.Pixels = 100; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); + + Console.WriteLine("All barcode PNG files have been generated in " + + + +## Was sollten Sie als Nächstes lernen? + +Die folgenden Tutorials behandeln eng verwandte Themen, die auf den in diesem Leitfaden gezeigten Techniken aufbauen. Jede Ressource enthält vollständige, funktionierende Code‑Beispiele mit Schritt‑für‑Schritt‑Erklärungen, um Ihnen zu helfen, weitere API‑Funktionen zu beherrschen und alternative Implementierungsansätze in Ihren eigenen Projekten zu erkunden. + +- [Barcode mit benutzerdefinierter Höhe erstellen – Ein‑dimensionaler Barcode](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-barcode-height-adjustment/) +- [Barcode PNG erstellen – DataMatrix Seitenverhältnis – Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-aspect-ratio-customization/) +- [Barcode‑Bild C# erstellen – GS1 DataMatrix Beispiel](/barcode/english/net/gs1-barcode-encoding/gs1-datamatrix-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/german/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md b/barcode/german/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md new file mode 100644 index 000000000..78920f207 --- /dev/null +++ b/barcode/german/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-08-15 +description: Erstelle einen Planet‑Barcode in C# und lerne, wie du die Barcode‑Abmessungen + für perfekte Größe einstellst. Schritt‑für‑Schritt‑Codebeispiel mit gefüllten und + leeren Balken. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create planet barcode +- how to set barcode dimensions +- planet barcode C# +- barcode X‑dimension +- empty barcode bars +language: de +lastmod: 2026-08-15 +og_description: Erstellen Sie einen Planet-Barcode in C# und lernen Sie, wie Sie die + Barcode-Abmessungen festlegen. Folgen Sie dieser Anleitung, um sofort ausgefüllte + und leere Planet-Barcodes zu erzeugen. +og_image_alt: Screenshot showing a Planet barcode with filled bars generated by C# + code +og_title: Planet‑Barcode in C# erstellen – vollständige Schritt‑für‑Schritt‑Anleitung +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Create planet barcode in C# and learn how to set barcode dimensions + for perfect sizing. Step‑by‑step code example with filled and empty bars. + headline: Create planet barcode in C# – complete programming guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.BarCode +title: Planet-Barcode in C# erstellen – vollständiger Programmierleitfaden +url: /de/python-java/general/create-planet-barcode-in-c-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Erstellen eines Planet-Barcodes in C# – vollständige Programmieranleitung + +Wenn Sie in C# **einen Planet-Barcode erstellen** müssen, zeigt Ihnen dieser Leitfaden genau, wie das geht. Außerdem erfahren Sie **wie Sie die Barcode‑Abmessungen festlegen**, sodass die Striche exakt die gewünschte Breite haben. + +Das Erzeugen von Planet‑Barcodes ist üblich, wenn Sie mit Postdiensten oder Logistiksystemen arbeiten. Der untenstehende Code deckt sowohl die standardmäßige gefüllte‑Bar‑Version als auch den optionalen leeren‑Bar‑Stil ab und enthält ein kurzes Beispiel für das RM4SCC‑Format. Am Ende dieses Tutorials verfügen Sie über ein wiederverwendbares Snippet, das Sie in jedes .NET‑Projekt einbinden können. + +## Voraussetzungen + +Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben: + +* .NET 6.0 oder höher installiert (die API funktioniert auch mit .NET Framework 4.6+). +* Das NuGet‑Paket **Aspose.BarCode for .NET** (`Aspose.BarCode`) zu Ihrem Projekt hinzugefügt. +* Ein beschreibbarer Ordnerpfad, in dem die PNG‑Dateien gespeichert werden. +* Grundlegende Kenntnisse der C#‑Syntax und von Visual Studio (oder einer anderen IDE). + +> **Pro‑Tipp:** Verwenden Sie einen absoluten Pfad oder `Path.Combine(Environment.CurrentDirectory, "output")`, um Berechtigungsprobleme beim Speichern von Bildern zu vermeiden. + +## Schritt 1 – Initialisieren eines Planet‑Barcode‑Generators (gefüllte Balken) + +Der erste Schritt besteht darin, eine `BarcodeGenerator`‑Instanz für die Planet‑Symbologie zu erstellen. Standardmäßig erzeugt der Generator **gefüllte** Balken. + +```csharp +// Step 1: Create a Planet barcode with the default (filled) bars +BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +Das Enum `EncodeTypes.Planet` weist Aspose.BarCode an, das Planet‑Format zu verwenden, während `"123456"` die zu kodierenden Daten darstellt. + +## Schritt 2 – Wie Sie die Barcode‑Abmessungen für konsistente Größen festlegen + +Um die Breite jedes Balkens zu steuern, passen Sie die **X‑Dimension** an. Dies ist die primäre Methode, um **Barcode‑Abmessungen festzulegen**, und sorgt dafür, dass der Barcode in Ihre Etikettengröße passt. + +```csharp +// Step 2: Set the X‑dimension (width of each bar) to 4 pixels +planetFilled.Parameters.Barcode.XDimension.Pixels = 4; +``` + +Die Eigenschaft `Pixels` definiert die Balkenbreite in Bildschirm‑Pixeln. Übliche Werte liegen bei 2 – 5 Pixeln für Standard‑Versandetiketten; erhöhen Sie den Wert für größere Drucke. + +## Schritt 3 – Speichern des gefüllten Planet‑Barcodes als PNG + +Jetzt schreiben Sie das Bild auf die Festplatte. PNG bewahrt scharfe Kanten, was ideal zum Scannen ist. + +```csharp +// Step 3: Save the Planet barcode as a PNG image +planetFilled.Save("YOUR_DIRECTORY/PostalPlanetFilledBars.png", BarCodeImageFormat.Png); +``` + +Ersetzen Sie `YOUR_DIRECTORY` durch den Pfad, den Sie zuvor vorbereitet haben. Nach dem Ausführen dieses Codes sehen Sie eine Datei, die dem Bild unten ähnelt. + +![Planet-Barcode mit gefüllten Balken](planet_filled.png "Planet-Barcode mit gefüllten Balken – erstellt mit C#‑Code") + +*Alt‑Text:* **Planet‑Barcode mit gefüllten Balken, erzeugt durch C#‑Code** (matches `og_image_alt`). + +## Schritt 4 – Erstellen eines Planet‑Barcodes mit leeren (nicht gefüllten) Balken + +Wenn Ihr Postdienst verlangt, dass die Balken **leer** sein sollen, müssen Sie nach der Initialisierung des Generators das `FilledBars`‑Flag umschalten. + +```csharp +// Step 4: Create a Planet barcode with empty (unfilled) bars +BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +Der Konstruktor ist identisch; der Unterschied liegt im nächsten Konfigurationsschritt. + +## Schritt 5 – Wie Sie die Barcode‑Abmessungen festlegen und die Balken leer machen + +Setzen Sie erneut die X‑Dimension für visuelle Konsistenz und deaktivieren Sie dann gefüllte Balken. + +```csharp +// Step 5: Set the X‑dimension and specify that bars should be empty +planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; +planetEmpty.Parameters.Barcode.FilledBars = false; // makes bars empty +``` + +Die Eigenschaft `FilledBars = false` ist das, was den Renderstil tatsächlich ändert. Die Beibehaltung derselben X‑Dimension stellt sicher, dass der leere‑Bar‑Barcode perfekt mit der gefüllten Version ausgerichtet ist. + +## Schritt 6 – Speichern des leeren Planet‑Barcodes + +```csharp +// Step 6: Save the Planet barcode with empty bars as a PNG image +planetEmpty.Save("YOUR_DIRECTORY/PostalPlanetEmptyBars.png", BarCodeImageFormat.Png); +``` + +Sie haben jetzt zwei PNG‑Dateien: eine mit soliden Balken und eine mit hohlen Balken, beide mit denselben Abmessungen. + +## Schritt 7 – (Optional) Erzeugen eines RM4SCC‑Barcodes zum Vergleich + +RM4SCC ist eine weitere Post‑Symbologie, die denselben standardmäßigen gefüllten‑Bar‑Stil verwendet. Die Schritte spiegeln das Planet‑Beispiel wider und zeigen, dass **wie man Barcode‑Abmessungen festlegt** formatübergreifend funktioniert. + +```csharp +// Step 7: Create an RM4SCC barcode (filled bars are the default) +BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Step 8: Set the X‑dimension for consistency +rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + +// Step 9: Save the RM4SCC barcode as a PNG image +rm4scc.Save("YOUR_DIRECTORY/PostalRM4SCCFilledBars.png", BarCodeImageFormat.Png); +``` + +Durch das Ausführen dieser drei Schritte entsteht `PostalRM4SCCFilledBars.png`, das Sie nebeneinander mit den Planet‑Ausgaben vergleichen können. + +## Warum die X‑Dimension wichtig ist + +Die X‑Dimension bestimmt die **mindeste druckbare Breite** jedes Balkens. Wenn Sie sie zu niedrig einstellen, kann der Barcode auf Niedrigauflösungs‑Druckern verschwimmen, was zu Scan‑Fehlern führt. Umgekehrt kann eine zu große X‑Dimension die Etikettengröße überschreiten und Platz verschwenden. Indem Sie explizit **wie Sie Barcode‑Abmessungen festlegen**, erhalten Sie eine deterministische Kontrolle über die endgültige Bildgröße, was für automatisierte Versand‑Workflows unerlässlich ist. + +## Häufige Fallstricke und wie man sie vermeidet + +| Problem | Ursache | Lösung | +|---------|---------|--------| +| Barcode erscheint gestreckt | X‑Dimension in Punkten statt in Pixeln eingestellt | Verwenden Sie stets die `Pixels`‑Eigenschaft für pixelgenaue Kontrolle | +| Leere Balken sehen immer noch gefüllt aus | `FilledBars` nicht auf `false` gesetzt nach Änderung der X‑Dimension | `FilledBars = false` *nach* Anpassen der X‑Dimension setzen | +| Gespeicherte Datei ist leer | Ausgabeverzeichnis existiert nicht oder hat keine Schreibberechtigung | Stellen Sie sicher, dass das Verzeichnis existiert (`Directory.CreateDirectory`) und Ihre Anwendung mit ausreichenden Rechten läuft | +| Bild ist beim Druck unscharf | PNG mit niedriger DPI von einem hochauflösenden Monitor gespeichert | `BarCodeImageFormat.Png` (verlustfrei) verwenden und ggf. die `Resolution`‑Eigenschaft berücksichtigen | + +## Vollständiges, ausführbares Beispiel + +Kopieren Sie den gesamten Block unten in ein neues Konsolenprojekt (`dotnet new console`) und führen Sie es aus. Das Programm erstellt drei PNG‑Dateien im Ordner `output`. + +```csharp +using System; +using System.IO; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Ensure output folder exists + string outDir = Path.Combine(Environment.CurrentDirectory, "output"); + Directory.CreateDirectory(outDir); + + // ---------- Planet barcode – filled bars ---------- + BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetFilled.Parameters.Barcode.XDimension.Pixels = 4; // set dimensions + planetFilled.Save(Path.Combine(outDir, "PostalPlanetFilledBars.png"), BarCodeImageFormat.Png); + + // ---------- Planet barcode – empty bars ---------- + BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; // same dimensions + planetEmpty.Parameters.Barcode.FilledBars = false; // make bars empty + planetEmpty.Save(Path.Combine(outDir, "PostalPlanetEmptyBars.png"), BarCodeImageFormat.Png); + + // ---------- RM4SCC barcode (filled bars) ---------- + BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; // consistent size + rm4scc.Save(Path.Combine(outDir, "PostalRM4SCCFilledBars.png"), BarCodeImageFormat.Png); + + Console.WriteLine($"Barcodes generated in: {outDir}"); + } +} +``` + +**Erwartete Ausgabe:** drei PNG‑Dateien – `PostalPlanetFilledBars.png`, `PostalPlanetEmptyBars.png` und `PostalRM4SCCFilledBars.png` – jeweils mit 4‑Pixel‑breiten Balken, bereit zum Drucken oder zur Weiterverarbeitung. + +## Fazit + +Sie wissen jetzt, wie Sie in C# **einen Planet‑Barcode erstellen** und genau **wie Sie Barcode‑Abmessungen festlegen** für sowohl gefüllte als auch leere Balkenstile. Das gleiche Muster gilt für andere Symbologien wie RM4SCC und bietet Ihnen eine flexible Grundlage für jede postalische Barcode‑Anforderung. + +Als Nächstes könnten Sie erkunden: + +* Hinzufügen von menschenlesbarem Text unterhalb des Barcodes (`BarcodeGenerator.Parameters.Barcode.CodeText`) +* Ändern der Balkenfarben mit `Parameters.Barcode.BarColor` +* Erzeugen von Barcodes in Vektorformaten (SVG, EPS) für skalierbaren Druck + +Fühlen Sie sich frei, mit verschiedenen X‑Dimension‑Werten, Datenzeichenketten und Ausgabeformaten zu experimentieren, um Ihren spezifischen Workflow zu unterstützen. Viel Spaß beim Coden! + +## Was sollten Sie als Nächstes lernen? + +Die folgenden Tutorials behandeln eng verwandte Themen, die auf den in diesem Leitfaden gezeigten Techniken aufbauen. Jede Ressource enthält vollständige funktionierende Code‑Beispiele mit Schritt‑für‑Schritt‑Erklärungen, um Ihnen zu helfen, weitere API‑Funktionen zu meistern und alternative Implementierungsansätze in Ihren eigenen Projekten zu erkunden. + +- [Wie man die Barcode‑Ruhezone für Code 16K mit Aspose.BarCode für .NET erstellt](/barcode/english/net/code-16k-encoding/code-16k-quiet-zone-settings/) +- [Wie man die Barcode‑Ruhezone für ITF‑14 mit Aspose.BarCode für .NET erstellt](/barcode/english/net/itf-14-barcode-customization/itf-14-barcode-quiet-zone-configuration/) +- [Wie man einen Aztec‑Barcode mit Fehlerkorrektur in .NET erstellt](/barcode/english/net/aztec-barcode-encoding/aztec-error-level-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/german/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md b/barcode/german/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md new file mode 100644 index 000000000..4ab09a082 --- /dev/null +++ b/barcode/german/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md @@ -0,0 +1,238 @@ +--- +category: general +date: 2026-08-15 +description: Databar erweiterte gestapelte Barcode-Generierung in C#. Erfahren Sie, + wie Sie ein Barcode‑Bild erzeugen und Spalten sowie Zeilen für DataBar‑Layouts festlegen. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- databar expanded stacked +- generate barcode image +- how to generate barcode +- how to set columns +- how to set rows +language: de +lastmod: 2026-08-15 +og_description: Databar erweiterte gestapelte Barcode-Generierung in C#. Befolgen + Sie diese Schritt‑für‑Schritt‑Anleitung, um Barcode‑Bilder zu erzeugen, Spalten + und Zeilen effizient festzulegen. +og_image_alt: Screenshot of a databar expanded stacked barcode generated with C# +og_title: Databar expanded stacked – Barcode‑Bild in C# erzeugen +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + headline: 'Databar expanded stacked: generate barcode image in C#' + type: TechArticle +- description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + name: 'Databar expanded stacked: generate barcode image in C#' + steps: + - name: 1. Install the Aspose.BarCode library + text: 'The code uses the **Aspose.BarCode for .NET** library, which provides the + `BarcodeGenerator` class. Install the NuGet package with the following command:' + - name: 2. Create a barcode generator for **databar expanded stacked** + text: The generator is the entry point for all barcode operations. You must specify + the symbology (`EncodeTypes.DatabarExpandedStacked`) and the text to encode. + - name: 3. How to set columns for DataBar + text: The `Columns` property controls how many vertical modules appear in the + stacked barcode. Valid values are 2, 3, or 4. Setting columns influences the + barcode’s width and the amount of data it can store. + - name: 4. Save the 4‑column barcode image + text: Saving the image produces a file that you can embed in reports, invoices, + or mobile apps. The `Save` method accepts a file path and an image format. + - name: 5. How to set rows for DataBar + text: Rows add a second dimension to the stacked layout, allowing more data to + be encoded without widening the barcode. The `Rows` property defaults to 1; + you can increase it up to 3 for the expanded stacked variant. + - name: 6. Save the 3‑row barcode image + text: '```csharp // Step 5: Save the 3‑row barcode image barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", + BarCodeImageFormat.Png); ```' + - name: 7. Complete C# example to generate barcode image + text: 'Putting all steps together yields a self‑contained program you can copy + into a console application:' + type: HowTo +tags: +- barcode +- C# +- Aspose.BarCode +title: 'Databar expanded stacked: Barcode‑Bild in C# generieren' +url: /de/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Databar expanded stacked: Barcode-Bild in C# generieren + +Wenn Sie ein **databar expanded stacked** Barcode-Bild in C# generieren müssen, zeigt Ihnen diese Anleitung genau **wie man Barcode**-Bilder mit benutzerdefinierten Spalten- und Zeilenlayouts erzeugt. Sie sehen, wie man Spalten festlegt, wie man Zeilen festlegt und wie man die resultierenden Bilder speichert, ohne die IDE zu verlassen. + +Die Anleitung behandelt: + +* Erstellen eines Barcode-Generators für die **databar expanded stacked** Symbologie. +* Konfigurieren eines 4‑Spalten-Layouts und eines 3‑Zeilen-Layouts. +* Speichern jeder Konfiguration als PNG-Datei. +* Tipps zum Umgang mit Randfällen wie ungültigen Spaltenzahlen. + +Keine externe Dokumentation ist erforderlich; das vollständige, ausführbare Beispiel ist enthalten. + +![Databar expanded stacked barcode example](YOUR_DIRECTORY/DatabarCols4.png){: .center alt="databar expanded stacked Barcode mit C# generiert" } + +## Databar expanded stacked Barcode-Generierungsschritte + +### 1. Installieren der Aspose.BarCode Bibliothek + +Der Code verwendet die **Aspose.BarCode for .NET** Bibliothek, die die Klasse `BarcodeGenerator` bereitstellt. Installieren Sie das NuGet-Paket mit dem folgenden Befehl: + +```bash +dotnet add package Aspose.BarCode +``` + +Nachdem das Paket installiert ist, fügen Sie den erforderlichen Namespace am Anfang Ihrer Datei hinzu: + +```csharp +using Aspose.BarCode.Generation; +``` + +### 2. Erstellen eines Barcode-Generators für **databar expanded stacked** + +Der Generator ist der Einstiegspunkt für alle Barcode-Operationen. Sie müssen die Symbologie (`EncodeTypes.DatabarExpandedStacked`) und den zu codierenden Text angeben. + +```csharp +// Step 1: Create a barcode generator for Databar Expanded Stacked +BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); +``` + +*Warum das wichtig ist:* Das `EncodeTypes`‑Enum teilt der Bibliothek mit, welches Barcode‑Format erzeugt werden soll. Die Verwendung von **databar expanded stacked** stellt sicher, dass das resultierende Bild der GS1 DataBar‑Spezifikation für gestapelte Layouts entspricht. + +### 3. Wie man Spalten für DataBar festlegt + +Die Eigenschaft `Columns` steuert, wie viele vertikale Module im gestapelten Barcode erscheinen. Gültige Werte sind 2, 3 oder 4. Das Festlegen der Spalten beeinflusst die Breite des Barcodes und die Menge der Daten, die er speichern kann. + +```csharp +// Step 2: Configure a 4‑column layout +barcode.Parameters.Barcode.DataBar.Columns = 4; +``` + +**Tipp:** Wenn Sie versuchen, einen Wert außerhalb des zulässigen Bereichs zuzuweisen, wirft die Bibliothek eine `ArgumentException`. Validieren Sie immer die Eingabe, wenn Sie die Spaltenauswahl Benutzern zur Verfügung stellen. + +### 4. Speichern des 4‑Spalten-Barcode-Bildes + +Das Speichern des Bildes erzeugt eine Datei, die Sie in Berichten, Rechnungen oder mobilen Apps einbetten können. Die Methode `Save` akzeptiert einen Dateipfad und ein Bildformat. + +```csharp +// Step 3: Save the 4‑column barcode image +barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); +``` + +Wenn die Datei geschrieben ist, können Sie sie mit jedem Bildbetrachter öffnen, um zu bestätigen, dass das **databar expanded stacked**‑Muster korrekt angezeigt wird. + +### 5. Wie man Zeilen für DataBar festlegt + +Zeilen fügen dem gestapelten Layout eine zweite Dimension hinzu, sodass mehr Daten codiert werden können, ohne den Barcode zu verbreitern. Die Eigenschaft `Rows` hat standardmäßig den Wert 1; Sie können sie für die erweiterte gestapelte Variante bis zu 3 erhöhen. + +```csharp +// Step 4: Switch to a 3‑row layout (columns remain unchanged) +barcode.Parameters.Barcode.DataBar.Rows = 3; +``` + +**Warum Zeilen wichtig sind:** Das Erhöhen der Zeilen reduziert die Gesamtlänge, während die Datenkapazität erhalten bleibt, was für schmale Etiketten oder mobilen Bildschirmen nützlich ist. + +### 6. Speichern des 3‑Zeilen-Barcode-Bildes + +```csharp +// Step 5: Save the 3‑row barcode image +barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); +``` + +Sie haben jetzt zwei PNG-Dateien – eine mit einem 4‑Spalten-Layout und eine andere mit einem 3‑Zeilen-Layout – beide verwenden die **databar expanded stacked** Symbologie. + +### 7. Vollständiges C#‑Beispiel zum Generieren eines Barcode-Bildes + +Wenn Sie alle Schritte zusammenführen, erhalten Sie ein eigenständiges Programm, das Sie in eine Konsolenanwendung kopieren können: + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace DatabarExpandedStackedDemo +{ + class Program + { + static void Main() + { + // Create the generator for Databar Expanded Stacked + BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); + + // Configure a 4‑column layout and save + barcode.Parameters.Barcode.DataBar.Columns = 4; + barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); + Console.WriteLine("4‑column barcode saved."); + + // Change to a 3‑row layout (columns stay at 4) and save + barcode.Parameters.Barcode.DataBar.Rows = 3; + barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); + Console.WriteLine("3‑row barcode saved."); + } + } +} +``` + +**Erwartete Ausgabe** + +Das Ausführen des Programms gibt aus: + +``` +4‑column barcode saved. +3‑row barcode saved. +``` + +und erstellt zwei PNG-Dateien in `YOUR_DIRECTORY`. Öffnen Sie die Dateien, um zu überprüfen, dass jedes Bild einen gültigen **databar expanded stacked** Barcode anzeigt. + +## Häufige Fallstricke und praktische Tipps + +* **Verzeichnisexistenz** – `Save` erstellt fehlende Ordner nicht. Stellen Sie sicher, dass `YOUR_DIRECTORY` existiert, oder verwenden Sie `Directory.CreateDirectory` vor dem Speichern. +* **Spaltenbeschränkungen** – Werte außer 2, 3 oder 4 lösen eine Ausnahme aus. Schützen Sie sich vor Benutzereingabefehlern mit einer einfachen Bereichsprüfung: + + ```csharp + int columns = 4; + if (columns < 2 || columns > 4) throw new ArgumentOutOfRangeException(nameof(columns)); + barcode.Parameters.Barcode.DataBar.Columns = columns; + ``` + +* **Zeilenbeschränkungen** – Die erweiterte gestapelte Variante unterstützt bis zu 3 Zeilen. Das Setzen von `Rows` auf 0 oder einen Wert größer als 3 löst ebenfalls eine Ausnahme aus. +* **Bildformat** – `BarCodeImageFormat.Png` liefert verlustfreie Qualität, was ideal für den Druck ist. Verwenden Sie `Jpeg` nur, wenn die Dateigröße ein Hauptanliegen ist. + +## Nächste Schritte + +Jetzt, da Sie wissen, **wie man Barcode**-Bilder mit benutzerdefinierten Spalten- und Zeilenkonfigurationen erzeugt, können Sie: + +* Den Generator in eine Web‑API integrieren, um Barcode‑Bilder bei Bedarf bereitzustellen. +* Den Barcode mit PDF‑Generierungsbibliotheken kombinieren, um ihn in Rechnungen einzubetten. +* Mit anderen DataBar‑Varianten (`DatabarExpanded`, `DatabarLimited`) experimentieren, indem Sie dasselbe `Parameters.Barcode.DataBar`‑Objekt verwenden. + +Für tiefere Anpassungen – wie das Ändern der Balkenfarbe, das Hinzufügen von menschenlesbarem Text oder das Anwenden von QR‑Code‑Overlays – lesen Sie die Aspose.BarCode‑Dokumentation zu den Eigenschaften von `BarcodeGenerator`. + +--- + +Durch das Befolgen dieser Anleitung haben Sie den **databar expanded stacked**‑Workflow gemeistert, gelernt, **wie man Spalten festlegt**, **wie man Zeilen festlegt**, und zwei unterschiedliche Barcode‑Bilder erstellt, die bereit für den Produktionseinsatz sind. Viel Spaß beim Programmieren! + +## Was sollten Sie als Nächstes lernen? + +Die folgenden Tutorials behandeln eng verwandte Themen, die auf den in dieser Anleitung gezeigten Techniken aufbauen. Jede Ressource enthält vollständige, funktionierende Codebeispiele mit Schritt‑für‑Schritt‑Erklärungen, um Ihnen zu helfen, zusätzliche API‑Funktionen zu meistern und alternative Implementierungsansätze in Ihren eigenen Projekten zu erkunden. + +- [Barcode-Bild generieren – GS1 Coupon UPC‑A Databar](/barcode/english/net/gs1-barcode-encoding/gs1-coupon-upc-a-databar-configuration/) +- [DotCode‑Barcode‑Bild erstellen – Zeilen & Spalten (Aspose.BarCode)](/barcode/english/net/dotcode-barcode-configuration/dotcode-rows-columns-configuration/) +- [Wie man Barcode generiert – Ein‑Dimensionale Barcode‑Typen](/barcode/english/net/one-dimensional-barcode-types/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/german/python-java/general/how-to-set-barcode-complete-c-guide/_index.md b/barcode/german/python-java/general/how-to-set-barcode-complete-c-guide/_index.md new file mode 100644 index 000000000..427fa215d --- /dev/null +++ b/barcode/german/python-java/general/how-to-set-barcode-complete-c-guide/_index.md @@ -0,0 +1,236 @@ +--- +category: general +date: 2026-08-15 +description: Wie man Barcode‑Parameter in C# festlegt und Barcode‑Bilder erzeugt. + Lernen Sie Schritt für Schritt, wie man einen Databar‑Barcode erstellt und PNG‑Dateien + speichert. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to set barcode +- how to generate barcode +- create databar barcode +- generate barcode image c# +language: de +lastmod: 2026-08-15 +og_description: Wie man einen Barcode in C# mit Aspose.Barcode festlegt und dann ein + Barcode‑Bild in C# generiert. Folgen Sie dieser Anleitung, um einen Databar‑Barcode + zu erstellen und PNG‑Dateien zu speichern. +og_image_alt: Screenshot of a Databar barcode saved as PNG using C# code +og_title: Wie man einen Barcode in C# festlegt – Schritt‑für‑Schritt‑Anleitung +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: How to set barcode parameters in C# and generate barcode images. Learn + step‑by‑step to create Databar barcode and save PNG files. + headline: How to set barcode – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.Barcode +title: Wie man Barcode einstellt – vollständiger C#‑Leitfaden +url: /de/python-java/general/how-to-set-barcode-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Wie man Barcode festlegt – vollständige C#‑Anleitung + +Wenn Sie nach **how to set barcode** Parametern in einem .NET‑Projekt suchen, zeigt dieses Tutorial die genauen Schritte, die Sie benötigen. Sie lernen **how to generate barcode** Bilder zu erzeugen, einen Databar‑Barcode zu erstellen und die Balkenhöhe Pixel für Pixel zu steuern – alles mit sauberem, produktionsreifem C#‑Code. + +In diesem Leitfaden erfahren Sie: + +* Das erforderliche NuGet‑Paket installieren. +* Einen Databar Omnidirectional‑Barcode erstellen (der Teil „create Databar barcode“). +* X‑Dimension und Balkenhöhe anpassen, um **how to set barcode** Dimensionen zu demonstrieren. +* Das Ergebnis als PNG‑Dateien speichern, wodurch das Szenario **generate barcode image C#** abgedeckt wird. + +Der Code funktioniert mit der neuesten Aspose.Barcode für .NET (v 24.12 zum Zeitpunkt des Schreibens) und läuft auf .NET 6 oder höher. + +--- + +## Voraussetzungen + +Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben: + +* .NET 6 SDK (oder eine neuere Version). +* Eine IDE wie Visual Studio 2022 oder VS Code. +* Internetzugang, um das Aspose.Barcode NuGet‑Paket herunterzuladen. + +Weitere Drittanbieter‑Bibliotheken sind nicht erforderlich. + +--- + +## Schritt 1: Aspose.Barcode für .NET installieren + +Der zuverlässigste Weg, **generate barcode** Bilder in C# zu erzeugen, ist die Verwendung von Aspose.Barcode. Öffnen Sie ein Terminal in Ihrem Projektordner und führen Sie aus: + +```bash +dotnet add package Aspose.BarCode +``` + +Der Befehl fügt die neueste stabile Version zu Ihrer Projektdatei hinzu und stellt sicher, dass Sie die Klasse `BarcodeGenerator` und die Aufzählung `EncodeTypes` zur Verfügung haben. + +*Pro‑Tipp:* Halten Sie das Paket aktuell (`dotnet list package --outdated`), um von Fehlerbehebungen und neuen Barcode‑Symbologien zu profitieren. + +--- + +## Schritt 2: Einen Databar‑Barcode erstellen (create Databar barcode) + +Databar Omnidirectional ist ideal für Einzelhandel und Logistik, da er einen GTIN‑14‑Wert plus zusätzliche Daten codieren kann. Der folgende Code erstellt das Barcode‑Objekt: + +```csharp +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +// Step 2: Initialize the generator for a Databar Omnidirectional barcode +BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); +``` + +*Warum das wichtig ist:* Die Aufzählung `EncodeTypes.DatabarOmniDirectional` weist die Bibliothek an, die Databar‑Symbologie zu verwenden, während die Zeichenkette `"(01)12345678901231"` dem GS1‑Application‑Identifier‑Format für einen 14‑stelligen GTIN folgt. + +--- + +## Schritt 3: Gemeinsame Parameter festlegen – X‑Dimension und Grundhöhe + +Die meisten Barcode‑Scanner erwarten eine minimale X‑Dimension (die Breite des schmalsten Balkens). Auf 2 Pixel gesetzt ergibt ein kompaktes, aber gut lesbares Bild. + +```csharp +// Step 3: Set a 2‑pixel X‑dimension (common for most scanners) +generator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +Sie können die Balkenhöhe später anpassen, ohne den Generator neu zu erstellen – das ist der Kern von **how to set barcode** Attributen nach der Instanziierung. + +--- + +## Schritt 4: Erste Balkenhöhe festlegen und Bild speichern (generate barcode image C#) + +Jetzt demonstrieren wir den ersten Teil von **how to set barcode** Höhe. Die Balkenhöhe steuert die visuelle Länge jedes Balkens; ein Wert von 30 Pixel ergibt einen kurzen Barcode, während 60 Pixel eine höhere Version erzeugen. + +```csharp +// Step 4a: 30‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 30; + +// Save the first PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); +``` + +Nach der Ausführung enthält `DatabarBarHeight30Pixels.png` einen Databar‑Barcode mit einer 30‑Pixel‑hohen Leiste. Öffnen Sie die Datei in einem Bildbetrachter, um das Ergebnis zu prüfen. + +--- + +## Schritt 5: Balkenhöhe ändern und zweites Bild speichern + +Um zu zeigen, dass **how to set barcode** Werte zur Laufzeit geändert werden können, passen wir die Balkenhöhe auf 60 Pixel an und schreiben eine zweite Datei. + +```csharp +// Step 5a: 60‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 60; + +// Save the second PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); +``` + +Jetzt haben Sie zwei PNG‑Dateien, die dieselben Databar‑Daten, aber unterschiedliche visuelle Höhen zeigen. Das ist nützlich, wenn Sie einen größeren Barcode für gedruckte Etiketten oder einen kleineren für die Bildschirmanzeige benötigen. + +--- + +## Schritt 6: Vollständiges, ausführbares Beispiel + +Alles zusammengeführt, hier ein eigenständiges Konsolenprogramm, das alle oben beschriebenen Schritte ausführt. Kopieren Sie den Code in eine neue `Program.cs`‑Datei, ersetzen Sie `YOUR_DIRECTORY` durch einen tatsächlichen Ordnerpfad und führen Sie das Programm aus. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Initialize the generator for a Databar Omnidirectional barcode + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); + + // Common parameters + generator.Parameters.Barcode.XDimension.Pixels = 2; // 2‑pixel narrow bar + + // First image: 30‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 30; + generator.Save(@"C:\Barcodes\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 30‑pixel barcode."); + + // Second image: 60‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 60; + generator.Save(@"C:\Barcodes\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 60‑pixel barcode."); + + // Dispose the generator to free native resources + generator.Dispose(); + } +} +``` + +**Erwartete Ausgabe** + +Beim Ausführen des Programms gibt die Konsole Folgendes aus: + +``` +Saved 30-pixel barcode. +Saved 60-pixel barcode. +``` + +Und der Ordner `C:\Barcodes` (oder der von Ihnen angegebene Pfad) enthält die beiden PNG‑Dateien. Beide Bilder zeigen einen gültigen Databar Omnidirectional‑Barcode, der von Standard‑GS1‑Lesegeräten gescannt werden kann. + +--- + +## Häufig gestellte Fragen + +**Funktioniert das mit anderen Bildformaten?** +Ja. Ersetzen Sie `BarCodeImageFormat.Png` durch `Jpeg`, `Bmp`, `Gif` oder `Tiff`, um den entsprechenden Dateityp zu erzeugen. + +**Kann ich die Vordergrundfarbe ändern?** +Setzen Sie `generator.Parameters.Barcode.ForeColor` auf einen beliebigen `System.Drawing.Color`‑Wert, z. B. `Color.Blue`. + +**Was, wenn ich eine andere Symbologie benötige?** +Übergeben Sie einen anderen `EncodeTypes`‑Wert an den Konstruktor, z. B. `EncodeTypes.Code128` für einen linearen Barcode oder `EncodeTypes.QR` für einen Matrixcode. + +**Gibt es eine Möglichkeit, den Barcode in ein PDF einzubetten?** +Aspose.Barcode stellt eine `PdfGenerator`‑Klasse bereit. Nach der Bildgenerierung können Sie das Bild mit Aspose.PDF zu einer PDF‑Seite hinzufügen. + +--- + +## Best Practices für die Barcode‑Generierung in C# + +* **Die `BarcodeGenerator`‑Instanz wiederverwenden**, wenn Sie nur Dimensionen anpassen müssen – das vermeidet unnötige Speicherzuweisungen. +* **Den Generator entsorgen** (`generator.Dispose()`), nachdem Sie fertig sind, um native Ressourcen sofort freizugeben. +* **Eingabedaten validieren** (z. B. GTIN‑Länge), bevor Sie den Barcode erstellen, um Laufzeit‑Exceptions zu vermeiden. +* **Mit einem physischen Scanner testen**, nachdem Sie X‑Dimension oder Balkenhöhe geändert haben; extreme Werte können die Lesbarkeit beeinträchtigen. +* **Den Ausgabepfad beschreibbar halten** für das ausführende Konto; sonst wirft `Save` eine `UnauthorizedAccessException`. + +--- + +## Fazit + +Sie wissen jetzt **how to set barcode** Eigenschaften wie X‑Dimension und Balkenhöhe, **how to generate barcode** Bilder in C# zu erzeugen und die genauen Schritte, um **create Databar barcode** Dateien mit Aspose.Barcode zu erstellen. Durch das Befolgen des vollständigen Beispiels können Sie mehrere PNG‑Dateien mit unterschiedlichen visuellen Merkmalen erzeugen und damit die Anforderung **generate barcode image C#** für jede .NET‑Anwendung erfüllen. + +Als Nächstes können Sie verwandte Themen wie **how to generate barcode** in großen Mengen, das Einbetten von Barcodes in PDFs oder das Umschalten zu anderen Symbologien wie QR oder Code 128 erkunden. Experimentieren Sie mit den hier gezeigten Parametern, um das Aussehen des Barcodes für Ihre spezifische Scan‑Umgebung zu optimieren. Viel Spaß beim Coden! + +## Was sollten Sie als Nächstes lernen? + +Die folgenden Tutorials behandeln eng verwandte Themen, die auf den in diesem Leitfaden gezeigten Techniken aufbauen. Jede Ressource enthält vollständige, funktionierende Codebeispiele mit Schritt‑für‑Schritt‑Erklärungen, um Ihnen zu helfen, weitere API‑Funktionen zu meistern und alternative Implementierungsansätze in Ihren eigenen Projekten zu erkunden. + +- [Wie man DataMatrix‑Barcodes (ECC 200) mit Aspose.BarCode für .NET generiert](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-ecc-200-configuration/) +- [Wie man Aztec‑Barcode mit benutzerdefiniertem Seitenverhältnis mit Aspose.BarCode für .NET erzeugt](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [Wie man Barcode – Code 39 Konfiguration mit Aspose.BarCode erstellt](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-code-39-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/greek/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md b/barcode/greek/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md new file mode 100644 index 000000000..27b50bcd9 --- /dev/null +++ b/barcode/greek/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md @@ -0,0 +1,186 @@ +--- +category: general +date: 2026-08-15 +description: Εικόνα barcode PNG σε C# – μάθετε πώς να δημιουργείτε ταχυδρομικούς κωδικούς, + να δημιουργείτε έναν κωδικό Planet και να αλλάζετε το ύψος του barcode με έναν απλό + γεννήτρια. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- barcode image png +- barcode generator c# +- generate postal barcode +- create planet barcode +- change barcode height +language: el +lastmod: 2026-08-15 +og_description: Το tutorial για εικόνα barcode PNG σε C# δείχνει πώς να δημιουργήσετε + ταχυδρομικούς κωδικούς, να δημιουργήσετε έναν κωδικό Planet και να αλλάξετε το ύψος + του barcode χρησιμοποιώντας το API BarcodeGenerator. +og_image_alt: Screenshot of generated PNG barcode with custom height using C# BarcodeGenerator +og_title: Εικόνα barcode PNG σε C# – δημιουργία και προσαρμογή barcode +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Barcode image PNG in C# – learn how to generate postal barcodes, create + a Planet barcode, and change barcode height with a simple generator. + headline: Barcode image PNG in C# generate barcodes, change height + type: TechArticle +tags: +- barcode +- C# +- PNG +- postal +- generator +title: Δημιουργία εικόνας barcode PNG σε C#, αλλαγή ύψους +url: /el/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Εικόνα Barcode PNG σε C# – δημιουργία barcode, αλλαγή ύψους + +Αν χρειάζεστε μια **εικόνα barcode PNG** σε C#, αυτός ο οδηγός σας καθοδηγεί βήμα‑βήμα στη διαδικασία. Θα μάθετε πώς να δημιουργήσετε ταχυδρομικά barcodes, να δημιουργήσετε ένα Planet barcode και να αλλάξετε το ύψος του barcode χωρίς να φύγετε από το IDE σας. + +Η δημιουργία αξιόπιστων PNG barcodes είναι συχνή απαίτηση για ετικέτες αποστολής, συστήματα αποθεμάτων και αυτοματοποιημένες λύσεις ταχυδρομείου. Στο τέλος αυτού του tutorial θα έχετε ένα επαναχρησιμοποιήσιμο απόσπασμα κώδικα που παράγει υψηλής ποιότητας αρχεία PNG για τις μορφές Planet και RM4SCC, και θα κατανοήσετε πώς να προσαρμόσετε το ύψος των γραμμών ώστε να πληρούν τις προδιαγραφές των ταχυδρομείων. + +## Τι θα χρειαστείτε + +- .NET 6+ ή .NET Framework 4.7.2 (το API BarcodeGenerator λειτουργεί με οποιοδήποτε πρόσφατο runtime .NET) +- Αναφορά στο πακέτο NuGet **Aspose.BarCode for .NET** (ή οποιαδήποτε συμβατή βιβλιοθήκη που παρέχει `BarcodeGenerator`, `EncodeTypes` και `BarCodeImageFormat`) +- Βασική εξοικείωση με τη σύνταξη C# και το I/O αρχείων + +Δεν απαιτούνται πρόσθετα εργαλεία· ο κώδικας εκτελείται σε Visual Studio, Rider ή το `dotnet` CLI. + +## Barcode image PNG – βασική δημιουργία + +Το πρώτο βήμα είναι η δημιουργία μιας **εικόνας barcode PNG** με προεπιλεγμένες διαστάσεις. Αυτό δημιουργεί το αρχικό αρχείο που μπορείτε αργότερα να προσαρμόσετε. + +```csharp +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +// Define the output folder (replace with your own path) +string outputFolder = @"C:\Barcodes"; + +// Ensure the folder exists +Directory.CreateDirectory(outputFolder); + +// 1️⃣ Create a Planet barcode generator with default height +BarcodeGenerator planetGenerator = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + +// Set the module width (X‑dimension) to 4 pixels – this defines the thin bar size +planetGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the image as PNG; this is the first **barcode image PNG** you’ll produce +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +**Γιατί λειτουργεί αυτό:** +- `EncodeTypes.Planet` λέει στον δημιουργό να χρησιμοποιήσει τη συμβολική γραμματοσειρά Planet, η οποία απαιτείται από πολλές ταχυδρομικές υπηρεσίες. +- `XDimension.Pixels` ελέγχει το πλάτος της μικρότερης γραμμής· μια τιμή 4 px παράγει ένα αναγνώσιμο barcode σε τυπικά μεγέθη ετικετών. +- Η μέθοδος `Save` γράφει ένα **barcode image PNG** αρχείο στο δίσκο, διατηρώντας όλες τις πληροφορίες ως raster pixels. + +## Αλλαγή ύψους barcode – προσαρμογή του οπτικού βάρους + +Οι ταχυδρομικές οδηγίες συχνά απαιτούν συγκεκριμένο ύψος γραμμής. Το παρακάτω απόσπασμα δείχνει πώς να ορίσετε προσαρμοσμένο ύψος 100 pixel για το ίδιο Planet barcode. + +```csharp +// 2️⃣ Apply a custom 100‑pixel bar height +planetGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Overwrite or save as a new file to keep both versions +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +**Γιατί αλλάζετε το ύψος:** +Ένα υψηλότερο barcode βελτιώνει την αξιοπιστία σάρωσης σε εκτυπωτές χαμηλής ανάλυσης, ενώ ένα χαμηλότερο μειώνει το χώρο στην ετικέτα. Η ιδιότητα `BarHeight.Pixels` σας επιτρέπει να ρυθμίσετε αυτήν την παράμετρο χωρίς να επηρεάσετε τη διάσταση X. + +## Δημιουργία ταχυδρομικού barcode – παράδειγμα RM4SCC + +Η μορφή RM4SCC είναι ένα ακόμη κοινό ταχυδρομικό barcode που χρησιμοποιείται στο Ηνωμένο Βασίλειο. Τα βήματα δημιουργίας αντικατοπτρίζουν το παράδειγμα Planet, ενισχύοντας το πρότυπο **barcode generator c#**. + +```csharp +// 3️⃣ Create an RM4SCC barcode generator with default height +BarcodeGenerator rm4sccGenerator = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Keep the same module width for consistency +rm4sccGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the default‑height PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +## Αλλαγή ύψους barcode – παραλλαγή RM4SCC + +Όπως και με το Planet barcode, μπορείτε να προσαρμόσετε το ύψος του RM4SCC. Ο παρακάτω κώδικας ορίζει το ύψος στα 100 px, δημιουργώντας ένα δεύτερο **barcode image PNG** για το ίδιο δεδομένο. + +```csharp +// 4️⃣ Set a custom 100‑pixel bar height for RM4SCC +rm4sccGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Save the customized PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +## Πλήρες, εκτελέσιμο παράδειγμα + +Συνδυάζοντας όλα τα βήματα παίρνουμε ένα αυτόνομο πρόγραμμα που δημιουργεί τέσσερα αρχεία PNG: + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +class Program +{ + static void Main() + { + string outputFolder = @"C:\Barcodes"; + Directory.CreateDirectory(outputFolder); + + // Planet barcode – default height + var planet = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planet.Parameters.Barcode.XDimension.Pixels = 4; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // Planet barcode – custom 100‑pixel height + planet.Parameters.Barcode.BarHeight.Pixels = 100; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – default height + var rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – custom 100‑pixel height + rm4scc.Parameters.Barcode.BarHeight.Pixels = 100; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); + + Console.WriteLine("All barcode PNG files have been generated in " + + + +## Τι θα πρέπει να μάθετε στη συνέχεια; + +Τα παρακάτω tutorials καλύπτουν στενά σχετιζόμενα θέματα που επεκτείνουν τις τεχνικές που παρουσιάστηκαν σε αυτόν τον οδηγό. Κάθε πόρος περιλαμβάνει πλήρη λειτουργικό κώδικα με βήμα‑βήμα εξηγήσεις για να σας βοηθήσει να κυριαρχήσετε επιπλέον δυνατότητες του API και να εξερευνήσετε εναλλακτικές προσεγγίσεις υλοποίησης στα δικά σας έργα. + +- [Create Barcode Custom Height – One-Dimensional Barcodes](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-barcode-height-adjustment/) +- [Create Barcode PNG – DataMatrix Aspect Ratio – Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-aspect-ratio-customization/) +- [Create barcode image C# – GS1 DataMatrix Example](/barcode/english/net/gs1-barcode-encoding/gs1-datamatrix-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/greek/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md b/barcode/greek/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md new file mode 100644 index 000000000..f3a469b6e --- /dev/null +++ b/barcode/greek/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md @@ -0,0 +1,230 @@ +--- +category: general +date: 2026-08-15 +description: Δημιουργήστε κωδικό γραμμής πλανήτη σε C# και μάθετε πώς να ορίζετε τις + διαστάσεις του κωδικού για τέλεια προσαρμογή. Παράδειγμα κώδικα βήμα‑βήμα με γεμάτες + και κενές γραμμές. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create planet barcode +- how to set barcode dimensions +- planet barcode C# +- barcode X‑dimension +- empty barcode bars +language: el +lastmod: 2026-08-15 +og_description: Δημιουργήστε κωδικό Planet σε C# και μάθετε πώς να ορίζετε τις διαστάσεις + του κωδικού. Ακολουθήστε αυτόν τον οδηγό για να δημιουργήσετε αμέσως γεμιστούς και + κενούς κωδικούς Planet. +og_image_alt: Screenshot showing a Planet barcode with filled bars generated by C# + code +og_title: Δημιουργήστε barcode πλανήτη σε C# – πλήρης οδηγός βήμα‑βήμα +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Create planet barcode in C# and learn how to set barcode dimensions + for perfect sizing. Step‑by‑step code example with filled and empty bars. + headline: Create planet barcode in C# – complete programming guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.BarCode +title: Δημιουργία barcode πλανήτη σε C# – πλήρης οδηγός προγραμματισμού +url: /el/python-java/general/create-planet-barcode-in-c-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Δημιουργία κωδικού planet σε C# – πλήρης οδηγός προγραμματισμού + +Αν χρειάζεστε **να δημιουργήσετε κωδικό planet** σε C#, αυτός ο οδηγός σας δείχνει ακριβώς πώς να το κάνετε. Θα ανακαλύψετε επίσης **πώς να ορίσετε τις διαστάσεις του κωδικού** ώστε οι γραμμές να αποδίδονται στο ακριβές πλάτος που απαιτείτε. + +Η δημιουργία κωδικών Planet είναι συνηθισμένη όταν εργάζεστε με ταχυδρομικές υπηρεσίες ή συστήματα logistics. Ο παρακάτω κώδικας καλύπτει τόσο την προεπιλεγμένη έκδοση με γεμιστές γραμμές όσο και το προαιρετικό στυλ με κενές γραμμές, καθώς και ένα γρήγορο παράδειγμα για τη μορφή RM4SCC. Στο τέλος αυτού του οδηγού θα έχετε ένα επαναχρησιμοποιήσιμο απόσπασμα που μπορείτε να ενσωματώσετε σε οποιοδήποτε έργο .NET. + +## Προαπαιτούμενα + +* .NET 6.0 ή νεότερο εγκατεστημένο (το API λειτουργεί επίσης με .NET Framework 4.6+) +* Το πακέτο NuGet **Aspose.BarCode for .NET** (`Aspose.BarCode`) προστιθέμενο στο έργο σας +* Μια διαδρομή φακέλου με δικαιώματα εγγραφής όπου θα αποθηκευτούν τα αρχεία PNG +* Βασική εξοικείωση με τη σύνταξη C# και το Visual Studio (ή οποιοδήποτε IDE) + +> **Συμβουλή επαγγελματία:** Χρησιμοποιήστε απόλυτη διαδρομή ή `Path.Combine(Environment.CurrentDirectory, "output")` για να αποφύγετε προβλήματα δικαιωμάτων κατά την αποθήκευση των εικόνων. + +## Βήμα 1 – Αρχικοποίηση γεννήτριας κωδικού Planet (γεμιστές γραμμές) + +Το πρώτο βήμα είναι να δημιουργήσετε μια παρουσία `BarcodeGenerator` για τη συμβολική γραφή Planet. Από προεπιλογή η γεννήτρια παράγει **γεμιστές** γραμμές. + +```csharp +// Step 1: Create a Planet barcode with the default (filled) bars +BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +Το enum `EncodeTypes.Planet` ενημερώνει το Aspose.BarCode να χρησιμοποιήσει τη μορφή Planet, ενώ το `"123456"` είναι το δεδομένο που θα κωδικοποιηθεί. + +## Βήμα 2 – Πώς να ορίσετε τις διαστάσεις του κωδικού για συνεπή μεγέθυνση + +Για να ελέγξετε το πλάτος κάθε γραμμής, προσαρμόστε την **διάσταση X**. Αυτή είναι η κύρια μέθοδος για **ορισμό διαστάσεων κωδικού** και εξασφαλίζει ότι ο κωδικός ταιριάζει στο μέγεθος της ετικέτας σας. + +```csharp +// Step 2: Set the X‑dimension (width of each bar) to 4 pixels +planetFilled.Parameters.Barcode.XDimension.Pixels = 4; +``` + +Η ιδιότητα `Pixels` ορίζει το πλάτος της γραμμής σε εικονοστοιχεία οθόνης. Συνηθισμένες τιμές είναι 2 – 5 pixel για τυπικές ετικέτες αλληλογραφίας· αυξήστε την τιμή για μεγαλύτερες εκτυπώσεις. + +## Βήμα 3 – Αποθήκευση του γεμιστού κωδικού Planet ως PNG + +Τώρα γράψτε την εικόνα στο δίσκο. Το PNG διατηρεί καθαρά άκρα, κάτι που είναι ιδανικό για σάρωση. + +```csharp +// Step 3: Save the Planet barcode as a PNG image +planetFilled.Save("YOUR_DIRECTORY/PostalPlanetFilledBars.png", BarCodeImageFormat.Png); +``` + +Αντικαταστήστε το `YOUR_DIRECTORY` με τη διαδρομή που προετοιμάσατε νωρίτερα. Μετά την εκτέλεση αυτού του κώδικα θα δείτε ένα αρχείο παρόμοιο με την παρακάτω εικόνα. + +![Κωδικός Planet με γεμιστές γραμμές](planet_filled.png "Κωδικός Planet με γεμιστές γραμμές – δημιουργήθηκε με κώδικα C#") + +*Κείμενο alt:* **Κωδικός Planet με γεμιστές γραμμές που δημιουργήθηκε από κώδικα C#** (ταιριάζει με `og_image_alt`). + +## Βήμα 4 – Δημιουργία κωδικού Planet με κενές (μη γεμιστές) γραμμές + +Αν η ταχυδρομική σας υπηρεσία απαιτεί οι γραμμές να είναι **κενές**, πρέπει να αλλάξετε τη σημαία `FilledBars` μετά την αρχικοποίηση της γεννήτριας. + +```csharp +// Step 4: Create a Planet barcode with empty (unfilled) bars +BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +Ο κατασκευαστής είναι ίδιος· η διαφορά βρίσκεται στο επόμενο βήμα διαμόρφωσης. + +## Βήμα 5 – Πώς να ορίσετε τις διαστάσεις του κωδικού και να κάνετε τις γραμμές κενές + +Ξανά, ορίστε τη διάσταση X για οπτική συνέπεια, στη συνέχεια απενεργοποιήστε τις γεμιστές γραμμές. + +```csharp +// Step 5: Set the X‑dimension and specify that bars should be empty +planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; +planetEmpty.Parameters.Barcode.FilledBars = false; // makes bars empty +``` + +Η ιδιότητα `FilledBars = false` είναι αυτή που πραγματικά αλλάζει το στυλ απόδοσης. Η διατήρηση της ίδιας διάστασης X εξασφαλίζει ότι ο κωδικός με κενές γραμμές ευθυγραμμίζεται τέλεια με την γεμιστή έκδοση. + +## Βήμα 6 – Αποθήκευση του κενό κωδικού Planet + +```csharp +// Step 6: Save the Planet barcode with empty bars as a PNG image +planetEmpty.Save("YOUR_DIRECTORY/PostalPlanetEmptyBars.png", BarCodeImageFormat.Png); +``` + +Τώρα θα έχετε δύο αρχεία PNG: ένα με συμπαγείς γραμμές και ένα με κενές γραμμές, και τα δύο μοιράζονται τις ίδιες διαστάσεις. + +## Βήμα 7 – (Προαιρετικό) Δημιουργία κωδικού RM4SCC για σύγκριση + +Το RM4SCC είναι μια άλλη ταχυδρομική συμβολική γραφή που χρησιμοποιεί το ίδιο προεπιλεγμένο στυλ γεμιστών γραμμών. Τα βήματα αντικατοπτρίζουν το παράδειγμα Planet, δείχνοντας ότι **ο ορισμός διαστάσεων κωδικού** λειτουργεί σε διαφορετικές μορφές. + +```csharp +// Step 7: Create an RM4SCC barcode (filled bars are the default) +BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Step 8: Set the X‑dimension for consistency +rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + +// Step 9: Save the RM4SCC barcode as a PNG image +rm4scc.Save("YOUR_DIRECTORY/PostalRM4SCCFilledBars.png", BarCodeImageFormat.Png); +``` + +Η εκτέλεση αυτών των τριών βημάτων παράγει το `PostalRM4SCCFilledBars.png`, το οποίο μπορείτε να συγκρίνετε πλάι‑πλάι με τα αποτελέσματα Planet. + +## Γιατί η διάσταση X είναι σημαντική + +Η διάσταση X καθορίζει το **ελάχιστο εκτυπώσιμο πλάτος** κάθε γραμμής. Αν τη ρυθμίσετε πολύ χαμηλά, ο κωδικός μπορεί να θολώσει σε εκτυπωτές χαμηλής ανάλυσης, προκαλώντας αποτυχίες σάρωσης. Αντίστροφα, μια πολύ μεγάλη διάσταση X μπορεί να υπερβεί τις διαστάσεις της ετικέτας και να σπαταλήσει χώρο. Με το σαφές **πώς να ορίσετε τις διαστάσεις του κωδικού**, αποκτάτε καθοριστικό έλεγχο του τελικού μεγέθους της εικόνας, κάτι που είναι ουσιώδες για αυτοματοποιημένες διαδικασίες ταχυδρομικής αποστολής. + +## Συνηθισμένα προβλήματα και πώς να τα αποφύγετε + +| Issue | Cause | Fix | +|-------|-------|-----| +| Barcode appears stretched | X‑dimension set in points instead of pixels | Always use `Pixels` property for pixel‑perfect control | +| Empty bars still look filled | `FilledBars` not set to `false` after X‑dimension change | Set `FilledBars = false` *after* adjusting X‑dimension | +| Saved file is blank | Output directory does not exist or lacks write permission | Ensure the directory exists (`Directory.CreateDirectory`) and your app runs with sufficient rights | +| Image is blurry on print | Low DPI PNG saved from a high‑resolution monitor | Use `BarCodeImageFormat.Png` (lossless) and consider `Resolution` property if needed | + +*Με ελληνική μετάφραση:* + +| Πρόβλημα | Αιτία | Διόρθωση | +|----------|-------|----------| +| Ο κωδικός εμφανίζεται τεντωμένος | Η διάσταση X ορίστηκε σε σημεία αντί για pixel | Πάντα χρησιμοποιήστε την ιδιότητα `Pixels` για έλεγχο σε pixel | +| Οι κενές γραμμές φαίνονται ακόμη γεμιστές | `FilledBars` δεν έχει οριστεί σε `false` μετά την αλλαγή της διάστασης X | Ορίστε `FilledBars = false` *μετά* την προσαρμογή της διάστασης X | +| Το αποθηκευμένο αρχείο είναι κενό | Ο φάκελος εξόδου δεν υπάρχει ή δεν έχει δικαιώματα εγγραφής | Βεβαιωθείτε ότι ο φάκελος υπάρχει (`Directory.CreateDirectory`) και η εφαρμογή σας εκτελείται με επαρκή δικαιώματα | +| Η εικόνα είναι θολή στην εκτύπωση | PNG χαμηλής DPI αποθηκευμένο από οθόνη υψηλής ανάλυσης | Χρησιμοποιήστε `BarCodeImageFormat.Png` (χωρίς απώλειες) και εξετάστε την ιδιότητα `Resolution` αν χρειάζεται | + +## Πλήρες, εκτελέσιμο παράδειγμα + +Αντιγράψτε ολόκληρο το παρακάτω τμήμα σε ένα νέο έργο κονσόλας (`dotnet new console`) και εκτελέστε το. Το πρόγραμμα δημιουργεί τρία αρχεία PNG στο φάκελο `output`. + +```csharp +using System; +using System.IO; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Ensure output folder exists + string outDir = Path.Combine(Environment.CurrentDirectory, "output"); + Directory.CreateDirectory(outDir); + + // ---------- Planet barcode – filled bars ---------- + BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetFilled.Parameters.Barcode.XDimension.Pixels = 4; // set dimensions + planetFilled.Save(Path.Combine(outDir, "PostalPlanetFilledBars.png"), BarCodeImageFormat.Png); + + // ---------- Planet barcode – empty bars ---------- + BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; // same dimensions + planetEmpty.Parameters.Barcode.FilledBars = false; // make bars empty + planetEmpty.Save(Path.Combine(outDir, "PostalPlanetEmptyBars.png"), BarCodeImageFormat.Png); + + // ---------- RM4SCC barcode (filled bars) ---------- + BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; // consistent size + rm4scc.Save(Path.Combine(outDir, "PostalRM4SCCFilledBars.png"), BarCodeImageFormat.Png); + + Console.WriteLine($"Barcodes generated in: {outDir}"); + } +} +``` + +**Αναμενόμενο αποτέλεσμα:** τρία αρχεία PNG—`PostalPlanetFilledBars.png`, `PostalPlanetEmptyBars.png` και `PostalRM4SCCFilledBars.png`—με γραμμές πλάτους 4 pixel, έτοιμα για εκτύπωση ή περαιτέρω επεξεργασία. + +## Συμπέρασμα + +Τώρα ξέρετε πώς να **δημιουργήσετε κωδικό planet** σε C# και με ακρίβεια **πώς να ορίσετε τις διαστάσεις του κωδικού** για στυλ γεμιστών και κενών γραμμών. Το ίδιο μοτίβο ισχύει για άλλες συμβολικές γραφές όπως το RM4SCC, παρέχοντάς σας μια ευέλικτη βάση για οποιαδήποτε απαίτηση ταχυδρομικού κωδικού. + +Next, you might explore: + +* Προσθήκη κειμένου αναγνώσιμου από άνθρωπο κάτω από τον κωδικό (`BarcodeGenerator.Parameters.Barcode.CodeText`) +* Αλλαγή χρωμάτων των γραμμών με `Parameters.Barcode.BarColor` +* Δημιουργία κωδικών σε διανυσματικές μορφές (SVG, EPS) για κλιμακούμενη εκτύπωση + +Μη διστάσετε να πειραματιστείτε με διαφορετικές τιμές διάστασης X, αλφαριθμητικά δεδομένα και μορφές εξόδου ώστε να ταιριάζουν στη δική σας ροή εργασίας. Καλή προγραμματιστική! + +## Τι θα πρέπει να μάθετε στη συνέχεια; + +Τα παρακάτω tutorials καλύπτουν στενά σχετιζόμενα θέματα που βασίζονται στις τεχνικές που παρουσιάζονται σε αυτόν τον οδηγό. Κάθε πόρος περιλαμβάνει πλήρη παραδείγματα κώδικα με βήμα‑βήμα εξηγήσεις για να σας βοηθήσει να κυριαρχήσετε σε πρόσθετες δυνατότητες του API και να εξερευνήσετε εναλλακτικές προσεγγίσεις υλοποίησης στα δικά σας έργα. + +- [Πώς να δημιουργήσετε ζώνη ησυχίας κωδικού για Code 16K χρησιμοποιώντας Aspose.BarCode for .NET](/barcode/english/net/code-16k-encoding/code-16k-quiet-zone-settings/) +- [Πώς να δημιουργήσετε ζώνη ησυχίας κωδικού για ITF-14 χρησιμοποιώντας Aspose.BarCode for .NET](/barcode/english/net/itf-14-barcode-customization/itf-14-barcode-quiet-zone-configuration/) +- [Πώς να δημιουργήσετε κωδικό Aztec με διόρθωση σφαλμάτων σε .NET](/barcode/english/net/aztec-barcode-encoding/aztec-error-level-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/greek/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md b/barcode/greek/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md new file mode 100644 index 000000000..ee596d941 --- /dev/null +++ b/barcode/greek/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md @@ -0,0 +1,239 @@ +--- +category: general +date: 2026-08-15 +description: Το Databar επεκτείνει τη δημιουργία στοίβαξης barcode σε C#. Μάθετε πώς + να δημιουργήσετε εικόνα barcode, να ορίσετε στήλες και γραμμές για τις διατάξεις + DataBar. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- databar expanded stacked +- generate barcode image +- how to generate barcode +- how to set columns +- how to set rows +language: el +lastmod: 2026-08-15 +og_description: Η δημιουργία επεκταμένων στοίβων κωδικών Databar σε C#. Ακολουθήστε + αυτόν τον οδηγό βήμα‑βήμα για να δημιουργήσετε εικόνες κωδικών, να ορίσετε στήλες + και να ορίσετε γραμμές αποδοτικά. +og_image_alt: Screenshot of a databar expanded stacked barcode generated with C# +og_title: Databar expanded stacked – δημιουργία εικόνας barcode σε C# +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + headline: 'Databar expanded stacked: generate barcode image in C#' + type: TechArticle +- description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + name: 'Databar expanded stacked: generate barcode image in C#' + steps: + - name: 1. Install the Aspose.BarCode library + text: 'The code uses the **Aspose.BarCode for .NET** library, which provides the + `BarcodeGenerator` class. Install the NuGet package with the following command:' + - name: 2. Create a barcode generator for **databar expanded stacked** + text: The generator is the entry point for all barcode operations. You must specify + the symbology (`EncodeTypes.DatabarExpandedStacked`) and the text to encode. + - name: 3. How to set columns for DataBar + text: The `Columns` property controls how many vertical modules appear in the + stacked barcode. Valid values are 2, 3, or 4. Setting columns influences the + barcode’s width and the amount of data it can store. + - name: 4. Save the 4‑column barcode image + text: Saving the image produces a file that you can embed in reports, invoices, + or mobile apps. The `Save` method accepts a file path and an image format. + - name: 5. How to set rows for DataBar + text: Rows add a second dimension to the stacked layout, allowing more data to + be encoded without widening the barcode. The `Rows` property defaults to 1; + you can increase it up to 3 for the expanded stacked variant. + - name: 6. Save the 3‑row barcode image + text: '```csharp // Step 5: Save the 3‑row barcode image barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", + BarCodeImageFormat.Png); ```' + - name: 7. Complete C# example to generate barcode image + text: 'Putting all steps together yields a self‑contained program you can copy + into a console application:' + type: HowTo +tags: +- barcode +- C# +- Aspose.BarCode +title: 'Databar expanded stacked: δημιουργία εικόνας barcode σε C#' +url: /el/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Databar expanded stacked: δημιουργία εικόνας barcode σε C# + +Αν χρειάζεστε να δημιουργήσετε μια εικόνα barcode **databar expanded stacked** σε C#, αυτός ο οδηγός σας δείχνει ακριβώς **πώς να δημιουργήσετε εικόνες barcode** με προσαρμοσμένες διατάξεις στηλών και γραμμών. Θα δείτε πώς να ορίσετε στήλες, πώς να ορίσετε γραμμές και πώς να αποθηκεύσετε τις προκύπτουσες εικόνες χωρίς να αφήσετε το IDE. + +Το tutorial καλύπτει: + +* Δημιουργία ενός barcode generator για τη συμβολολογία **databar expanded stacked**. +* Διαμόρφωση διάταξης 4‑στηλών και 3‑γραμμών. +* Αποθήκευση κάθε διαμόρφωσης ως αρχείο PNG. +* Συμβουλές για τη διαχείριση ειδικών περιπτώσεων όπως μη έγκυροι αριθμοί στηλών. + +Δεν απαιτείται εξωτερική τεκμηρίωση· το πλήρες, εκτελέσιμο παράδειγμα περιλαμβάνεται. + +![Databar expanded stacked barcode example](YOUR_DIRECTORY/DatabarCols4.png){: .center alt="databar expanded stacked barcode generated with C#" } + +## Βήματα δημιουργίας barcode Databar expanded stacked + +### 1. Εγκατάσταση της βιβλιοθήκης Aspose.BarCode + +Ο κώδικας χρησιμοποιεί τη βιβλιοθήκη **Aspose.BarCode for .NET**, η οποία παρέχει την κλάση `BarcodeGenerator`. Εγκαταστήστε το πακέτο NuGet με την ακόλουθη εντολή: + +```bash +dotnet add package Aspose.BarCode +``` + +Μετά την εγκατάσταση του πακέτου, προσθέστε το απαιτούμενο namespace στην αρχή του αρχείου σας: + +```csharp +using Aspose.BarCode.Generation; +``` + +### 2. Δημιουργία ενός barcode generator για **databar expanded stacked** + +Ο generator είναι το σημείο εισόδου για όλες τις λειτουργίες barcode. Πρέπει να καθορίσετε τη συμβολολογία (`EncodeTypes.DatabarExpandedStacked`) και το κείμενο που θα κωδικοποιηθεί. + +```csharp +// Step 1: Create a barcode generator for Databar Expanded Stacked +BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); +``` + +*Γιατί είναι σημαντικό:* Το enum `EncodeTypes` λέει στη βιβλιοθήκη ποια μορφή barcode πρέπει να παραχθεί. Η χρήση του **databar expanded stacked** εξασφαλίζει ότι η τελική εικόνα ακολουθεί την προδιαγραφή GS1 DataBar για στοίβαξη. + +### 3. Πώς να ορίσετε στήλες για DataBar + +Η ιδιότητα `Columns` ελέγχει πόσες κάθετες μονάδες εμφανίζονται στο στοίβαγμα του barcode. Έγκυρες τιμές είναι 2, 3 ή 4. Η ρύθμιση των στηλών επηρεάζει το πλάτος του barcode και την ποσότητα δεδομένων που μπορεί να αποθηκεύσει. + +```csharp +// Step 2: Configure a 4‑column layout +barcode.Parameters.Barcode.DataBar.Columns = 4; +``` + +**Συμβουλή:** Αν προσπαθήσετε να ορίσετε τιμή εκτός του επιτρεπτού εύρους, η βιβλιοθήκη θα ρίξει `ArgumentException`. Πάντα να επικυρώνετε την είσοδο όταν εκθέτετε την επιλογή στηλών στους χρήστες. + +### 4. Αποθήκευση της εικόνας barcode με 4‑στήλες + +Η αποθήκευση της εικόνας δημιουργεί ένα αρχείο που μπορείτε να ενσωματώσετε σε αναφορές, τιμολόγια ή κινητές εφαρμογές. Η μέθοδος `Save` δέχεται διαδρομή αρχείου και μορφή εικόνας. + +```csharp +// Step 3: Save the 4‑column barcode image +barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); +``` + +Μόλις γραφτεί το αρχείο, μπορείτε να το ανοίξετε με οποιονδήποτε προβολέα εικόνων για να επιβεβαιώσετε ότι το μοτίβο **databar expanded stacked** εμφανίζεται σωστά. + +### 5. Πώς να ορίσετε γραμμές για DataBar + +Οι γραμμές προσθέτουν μια δεύτερη διάσταση στη στοίβαξη, επιτρέποντας περισσότερα δεδομένα χωρίς να αυξάνεται το πλάτος του barcode. Η ιδιότητα `Rows` έχει προεπιλογή 1· μπορείτε να την αυξήσετε έως 3 για την εκδοχή expanded stacked. + +```csharp +// Step 4: Switch to a 3‑row layout (columns remain unchanged) +barcode.Parameters.Barcode.DataBar.Rows = 3; +``` + +**Γιατί οι γραμμές έχουν σημασία:** Η αύξηση των γραμμών μειώνει το συνολικό πλάτος διατηρώντας την χωρητικότητα δεδομένων, κάτι χρήσιμο για στενά ετικέτες ή περιορισμένο χώρο σε οθόνες κινητών. + +### 6. Αποθήκευση της εικόνας barcode με 3‑γραμμές + +```csharp +// Step 5: Save the 3‑row barcode image +barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); +``` + +Τώρα έχετε δύο αρχεία PNG—ένα με διάταξη 4‑στηλών και ένα με διάταξη 3‑γραμμών—και τα δύο χρησιμοποιούν τη συμβολολογία **databar expanded stacked**. + +### 7. Πλήρες παράδειγμα C# για δημιουργία εικόνας barcode + +Συνδυάζοντας όλα τα βήματα προκύπτει ένα αυτόνομο πρόγραμμα που μπορείτε να αντιγράψετε σε μια εφαρμογή console: + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace DatabarExpandedStackedDemo +{ + class Program + { + static void Main() + { + // Create the generator for Databar Expanded Stacked + BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); + + // Configure a 4‑column layout and save + barcode.Parameters.Barcode.DataBar.Columns = 4; + barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); + Console.WriteLine("4‑column barcode saved."); + + // Change to a 3‑row layout (columns stay at 4) and save + barcode.Parameters.Barcode.DataBar.Rows = 3; + barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); + Console.WriteLine("3‑row barcode saved."); + } + } +} +``` + +**Αναμενόμενη έξοδος** + +Η εκτέλεση του προγράμματος εμφανίζει: + +``` +4‑column barcode saved. +3‑row barcode saved. +``` + +και δημιουργεί δύο αρχεία PNG στο `YOUR_DIRECTORY`. Ανοίξτε τα αρχεία για να επαληθεύσετε ότι κάθε εικόνα εμφανίζει ένα έγκυρο **databar expanded stacked** barcode. + +## Συνηθισμένα προβλήματα και πρακτικές συμβουλές + +* **Υπάρχουσα διαδρομή** – Η μέθοδος `Save` δεν δημιουργεί ελλείπουσους φακέλους. Βεβαιωθείτε ότι το `YOUR_DIRECTORY` υπάρχει ή χρησιμοποιήστε `Directory.CreateDirectory` πριν την αποθήκευση. +* **Όρια στηλών** – Τιμές διαφορετικές από 2, 3 ή 4 προκαλούν εξαίρεση. Προστατέψτε την είσοδο του χρήστη με έναν απλό έλεγχο εύρους: + + ```csharp + int columns = 4; + if (columns < 2 || columns > 4) throw new ArgumentOutOfRangeException(nameof(columns)); + barcode.Parameters.Barcode.DataBar.Columns = columns; + ``` + +* **Όρια γραμμών** – Η εκδοχή expanded stacked υποστηρίζει έως 3 γραμμές. Ορισμός `Rows` σε 0 ή σε τιμή μεγαλύτερη του 3 επίσης προκαλεί εξαίρεση. +* **Μορφή εικόνας** – `BarCodeImageFormat.Png` παρέχει απώλεια‑ποιότητας ποιότητα, ιδανική για εκτύπωση. Χρησιμοποιήστε `Jpeg` μόνο όταν το μέγεθος αρχείου είναι κύριος παράγοντας. + +## Επόμενα βήματα + +Τώρα που ξέρετε **πώς να δημιουργήσετε εικόνες barcode** με προσαρμοσμένες ρυθμίσεις στηλών και γραμμών, μπορείτε: + +* Να ενσωματώσετε τον generator σε ένα web API για παροχή εικόνων barcode κατ’ απαίτηση. +* Να συνδυάσετε το barcode με βιβλιοθήκες δημιουργίας PDF για ενσωμάτωση σε τιμολόγια. +* Να πειραματιστείτε με άλλες παραλλαγές DataBar (`DatabarExpanded`, `DatabarLimited`) χρησιμοποιώντας το ίδιο αντικείμενο `Parameters.Barcode.DataBar`. + +Για πιο βαθιά προσαρμογή—όπως αλλαγή χρώματος γραμμών, προσθήκη κειμένου αναγνώσιμου από άνθρωπο ή εφαρμογή επικάλυψης QR‑code—ανατρέξτε στην τεκμηρίωση Aspose.BarCode για τις ιδιότητες `BarcodeGenerator`. + +--- + +Ακολουθώντας αυτόν τον οδηγό έχετε κατακτήσει τη ροή εργασίας **databar expanded stacked**, μάθει **πώς να ορίζετε στήλες**, **πώς να ορίζετε γραμμές**, και έχετε παραγάγει δύο διαφορετικές εικόνες barcode έτοιμες για παραγωγική χρήση. Καλό προγραμματισμό! + +## Τι πρέπει να μάθετε στη συνέχεια; + +Τα παρακάτω tutorials καλύπτουν στενά συναφή θέματα που επεκτείνουν τις τεχνικές που παρουσιάστηκαν σε αυτόν τον οδηγό. Κάθε πόρος περιλαμβάνει πλήρη λειτουργικό κώδικα με βήμα‑βήμα εξηγήσεις για να σας βοηθήσει να κυριαρχήσετε επιπλέον δυνατότητες του API και να εξερευνήσετε εναλλακτικές προσεγγίσεις υλοποίησης στα δικά σας έργα. + +- [Δημιουργία εικόνας barcode – GS1 Coupon UPC-A Databar](/barcode/english/net/gs1-barcode-encoding/gs1-coupon-upc-a-databar-configuration/) +- [Δημιουργία εικόνας DotCode barcode – γραμμές & στήλες (Aspose.BarCode)](/barcode/english/net/dotcode-barcode-configuration/dotcode-rows-columns-configuration/) +- [Πώς να δημιουργήσετε Barcode - Τύποι One-Dimensional Barcode](/barcode/english/net/one-dimensional-barcode-types/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/greek/python-java/general/how-to-set-barcode-complete-c-guide/_index.md b/barcode/greek/python-java/general/how-to-set-barcode-complete-c-guide/_index.md new file mode 100644 index 000000000..7c1f4cd5e --- /dev/null +++ b/barcode/greek/python-java/general/how-to-set-barcode-complete-c-guide/_index.md @@ -0,0 +1,236 @@ +--- +category: general +date: 2026-08-15 +description: Πώς να ορίσετε τις παραμέτρους barcode σε C# και να δημιουργήσετε εικόνες + barcode. Μάθετε βήμα‑βήμα πώς να δημιουργήσετε barcode Databar και να αποθηκεύσετε + αρχεία PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to set barcode +- how to generate barcode +- create databar barcode +- generate barcode image c# +language: el +lastmod: 2026-08-15 +og_description: Πώς να ορίσετε γραμμωτό κώδικα σε C# με το Aspose.Barcode, στη συνέχεια + να δημιουργήσετε εικόνα γραμμωτού κώδικα C#. Ακολουθήστε αυτόν τον οδηγό για να + δημιουργήσετε έναν γραμμωτό κώδικα Databar και να αποθηκεύσετε αρχεία PNG. +og_image_alt: Screenshot of a Databar barcode saved as PNG using C# code +og_title: Πώς να ορίσετε γραμμωτό κώδικα σε C# – βήμα‑βήμα οδηγός +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: How to set barcode parameters in C# and generate barcode images. Learn + step‑by‑step to create Databar barcode and save PNG files. + headline: How to set barcode – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.Barcode +title: Πώς να ορίσετε τον γραμμωτό κώδικα – πλήρης οδηγός C# +url: /el/python-java/general/how-to-set-barcode-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Πώς να ορίσετε barcode – πλήρης οδηγός C# + +Αν ψάχνετε για **how to set barcode** παραμέτρους σε ένα .NET project, αυτό το tutorial δείχνει τα ακριβή βήματα που χρειάζεστε. Θα μάθετε **how to generate barcode** εικόνες, να δημιουργήσετε ένα Databar barcode και να ελέγξετε το ύψος της γραμμής pixel‑by‑pixel—όλα με καθαρό, έτοιμο για παραγωγή C# κώδικα. + +Σε αυτόν τον οδηγό θα: + +* Εγκαταστήσετε το απαιτούμενο πακέτο NuGet. +* Δημιουργήσετε ένα Databar Omnidirectional barcode (το τμήμα “create Databar barcode”). +* Ρυθμίσετε την X‑διάσταση και το ύψος της γραμμής για να δείξετε **how to set barcode** διαστάσεις. +* Αποθηκεύσετε το αποτέλεσμα ως αρχεία PNG, καλύπτοντας το σενάριο **generate barcode image C#**. + +Ο κώδικας λειτουργεί με την πιο πρόσφατη έκδοση του Aspose.Barcode for .NET (v 24.12 τη στιγμή της συγγραφής) και τρέχει σε .NET 6 ή νεότερη έκδοση. + +--- + +## Προαπαιτήσεις + +Πριν ξεκινήσετε, βεβαιωθείτε ότι έχετε: + +* .NET 6 SDK (ή οποιαδήποτε νεότερη έκδοση). +* Ένα IDE όπως το Visual Studio 2022 ή το VS Code. +* Πρόσβαση στο Internet για λήψη του πακέτου NuGet Aspose.Barcode. + +Δεν απαιτούνται πρόσθετες βιβλιοθήκες τρίτων. + +--- + +## Βήμα 1: Εγκατάσταση Aspose.Barcode for .NET + +Ο πιο αξιόπιστος τρόπος για **generate barcode** εικόνες σε C# είναι η χρήση του Aspose.Barcode. Ανοίξτε ένα τερματικό στον φάκελο του έργου σας και εκτελέστε: + +```bash +dotnet add package Aspose.BarCode +``` + +Η εντολή προσθέτει την πιο πρόσφατη σταθερή έκδοση στο αρχείο του έργου, εξασφαλίζοντας ότι έχετε την κλάση `BarcodeGenerator` και την απαρίθμηση `EncodeTypes`. + +*Pro tip:* Κρατήστε το πακέτο ενημερωμένο (`dotnet list package --outdated`) για να επωφεληθείτε από διορθώσεις σφαλμάτων και νέες barcode συμβολιότητες. + +--- + +## Βήμα 2: Δημιουργία Databar barcode (create Databar barcode) + +Το Databar Omnidirectional είναι ιδανικό για λιανική και λογιστική, επειδή μπορεί να κωδικοποιήσει μια τιμή GTIN‑14 μαζί με πρόσθετα δεδομένα. Ο παρακάτω κώδικας δημιουργεί το αντικείμενο barcode: + +```csharp +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +// Step 2: Initialize the generator for a Databar Omnidirectional barcode +BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); +``` + +*Γιατί είναι σημαντικό:* Η απαρίθμηση `EncodeTypes.DatabarOmniDirectional` λέει στη βιβλιοθήκη να χρησιμοποιήσει τη συμβολιότητα Databar, ενώ η συμβολοσειρά `"(01)12345678901231"` ακολουθεί τη μορφή GS1 Application Identifier για ένα 14‑ψήφιο GTIN. + +--- + +## Βήμα 3: Ορισμός κοινών παραμέτρων – X‑διάσταση και βασικό ύψος + +Οι περισσότεροι σαρωτές barcode αναμένουν μια ελάχιστη X‑διάσταση (το πλάτος της πιο στενής γραμμής). Ορίζοντάς την στα 2 pixels παίρνετε μια συμπαγή αλλά ευανάγνωστη εικόνα. + +```csharp +// Step 3: Set a 2‑pixel X‑dimension (common for most scanners) +generator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +Μπορείτε αργότερα να προσαρμόσετε το ύψος της γραμμής χωρίς να δημιουργήσετε ξανά τον generator—αυτή είναι η ουσία του **how to set barcode** χαρακτηριστικών μετά την αρχικοποίηση. + +--- + +## Βήμα 4: Ορισμός του πρώτου ύψους γραμμής και αποθήκευση της εικόνας (generate barcode image C#) + +Τώρα δείχνουμε το πρώτο μέρος του **how to set barcode** ύψους. Το ύψος της γραμμής ελέγχει το οπτικό μήκος κάθε γραμμής· μια τιμή 30 pixels δίνει ένα σύντομο barcode, ενώ 60 pixels δημιουργεί μια πιο ψηλή έκδοση. + +```csharp +// Step 4a: 30‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 30; + +// Save the first PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); +``` + +Μετά την εκτέλεση, το `DatabarBarHeight30Pixels.png` περιέχει ένα Databar barcode με γραμμή ύψους 30 pixels. Ανοίξτε το αρχείο σε οποιονδήποτε προβολέα εικόνων για να επαληθεύσετε το αποτέλεσμα. + +--- + +## Βήμα 5: Αλλαγή του ύψους γραμμής και αποθήκευση δεύτερης εικόνας + +Για να δείξουμε ότι οι τιμές του **how to set barcode** μπορούν να αλλάξουν «on the fly», τροποποιούμε το ύψος της γραμμής σε 60 pixels και γράφουμε ένα δεύτερο αρχείο. + +```csharp +// Step 5a: 60‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 60; + +// Save the second PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); +``` + +Τώρα έχετε δύο αρχεία PNG που δείχνουν τα ίδια δεδομένα Databar αλλά με διαφορετικά οπτικά ύψη. Αυτό είναι χρήσιμο όταν χρειάζεστε μεγαλύτερο barcode για εκτυπωμένες ετικέτες ή μικρότερο για εμφάνιση στην οθόνη. + +--- + +## Βήμα 6: Πλήρες, εκτελέσιμο παράδειγμα + +Συνδυάζοντας όλα τα παραπάνω, ακολουθεί ένα αυτόνομο πρόγραμμα κονσόλας που εκτελεί όλα τα βήματα. Αντιγράψτε τον κώδικα σε ένα νέο αρχείο `Program.cs`, αντικαταστήστε το `YOUR_DIRECTORY` με πραγματική διαδρομή φακέλου και τρέξτε το. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Initialize the generator for a Databar Omnidirectional barcode + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); + + // Common parameters + generator.Parameters.Barcode.XDimension.Pixels = 2; // 2‑pixel narrow bar + + // First image: 30‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 30; + generator.Save(@"C:\Barcodes\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 30‑pixel barcode."); + + // Second image: 60‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 60; + generator.Save(@"C:\Barcodes\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 60‑pixel barcode."); + + // Dispose the generator to free native resources + generator.Dispose(); + } +} +``` + +**Αναμενόμενο αποτέλεσμα** + +Όταν τρέξετε το πρόγραμμα, η κονσόλα εμφανίζει: + +``` +Saved 30-pixel barcode. +Saved 60-pixel barcode. +``` + +Και ο φάκελος `C:\Barcodes` (ή η διαδρομή που δώσατε) περιέχει τα δύο αρχεία PNG. Και οι δύο εικόνες εμφανίζουν ένα έγκυρο Databar Omnidirectional barcode που μπορεί να διαβαστεί από τυπικούς αναγνώστες GS1. + +--- + +## Συχνές ερωτήσεις + +**Λειτουργεί αυτό με άλλες μορφές εικόνας;** +Ναι. Αντικαταστήστε το `BarCodeImageFormat.Png` με `Jpeg`, `Bmp`, `Gif` ή `Tiff` για να δημιουργήσετε τον αντίστοιχο τύπο αρχείου. + +**Μπορώ να αλλάξω το χρώμα του προσκηνίου;** +Ορίστε `generator.Parameters.Barcode.ForeColor` σε οποιαδήποτε τιμή `System.Drawing.Color`, π.χ. `Color.Blue`. + +**Τι γίνεται αν χρειαστώ διαφορετική συμβολιότητα;** +Περάστε μια διαφορετική τιμή `EncodeTypes` στον κατασκευαστή, όπως `EncodeTypes.Code128` για γραμμικό barcode ή `EncodeTypes.QR` για κωδικό μήτρας. + +**Υπάρχει τρόπος να ενσωματώσω το barcode σε PDF;** +Το Aspose.Barcode παρέχει κλάση `PdfGenerator`. Μετά τη δημιουργία της εικόνας, μπορείτε να την προσθέσετε σε σελίδα PDF χρησιμοποιώντας το Aspose.PDF. + +--- + +## Καλές πρακτικές για τη δημιουργία barcode σε C# + +* **Επαναχρησιμοποιήστε το αντικείμενο `BarcodeGenerator`** όταν χρειάζεται μόνο να ρυθμίσετε διαστάσεις—αποφεύγετε περιττές κατανομές μνήμης. +* **Κλείστε (Dispose) τον generator** (`generator.Dispose()`) αφού τελειώσετε για να απελευθερώσετε άμεσα τους εγγενείς πόρους. +* **Επικυρώστε τα εισερχόμενα δεδομένα** (π.χ. μήκος GTIN) πριν δημιουργήσετε το barcode ώστε να αποφύγετε εξαιρέσεις χρόνου εκτέλεσης. +* **Δοκιμάστε με φυσικό σαρωτή** μετά την αλλαγή X‑διάστασης ή ύψους γραμμής· ακραίες τιμές μπορεί να επηρεάσουν την αναγνωσιμότητα. +* **Βεβαιωθείτε ότι ο φάκελος εξόδου είναι εγγράψιμος** για το λογαριασμό που εκτελεί το πρόγραμμα· διαφορετικά το `Save` θα ρίξει `UnauthorizedAccessException`. + +--- + +## Συμπέρασμα + +Τώρα γνωρίζετε **how to set barcode** ιδιότητες όπως η X‑διάσταση και το ύψος γραμμής, **how to generate barcode** εικόνες σε C#, και τα ακριβή βήματα για **create Databar barcode** αρχεία με το Aspose.Barcode. Ακολουθώντας το πλήρες παράδειγμα, μπορείτε να δημιουργήσετε πολλαπλά αρχεία PNG με διαφορετικά οπτικά χαρακτηριστικά, καλύπτοντας την απαίτηση **generate barcode image C#** για οποιαδήποτε .NET εφαρμογή. + +Στη συνέχεια, εξερευνήστε σχετικά θέματα όπως **how to generate barcode** μαζικά, ενσωμάτωση barcode σε PDF, ή μετάβαση σε άλλες συμβολιότητες όπως QR ή Code 128. Πειραματιστείτε με τις παραμέτρους που παρουσιάστηκαν εδώ για να βελτιστοποιήσετε την εμφάνιση του barcode στο συγκεκριμένο περιβάλλον σάρωσης. Καλή προγραμματιστική! + +## Τι πρέπει να μάθετε στη συνέχεια; + +Οι παρακάτω οδηγίες καλύπτουν στενά συναφή θέματα που επεκτείνουν τις τεχνικές που παρουσιάστηκαν σε αυτόν τον οδηγό. Κάθε πόρος περιλαμβάνει πλήρη λειτουργικά παραδείγματα κώδικα με βήμα‑βήμα εξηγήσεις για να σας βοηθήσουν να κυριαρχήσετε πρόσθετες λειτουργίες του API και να εξερευνήσετε εναλλακτικές προσεγγίσεις στην υλοποίηση των δικών σας έργων. + +- [Πώς να δημιουργήσετε DataMatrix Barcodes (ECC 200) με Aspose.BarCode for .NET](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-ecc-200-configuration/) +- [Πώς να δημιουργήσετε Aztec barcode με προσαρμοσμένη αναλογία διαστάσεων χρησιμοποιώντας Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [Πώς να δημιουργήσετε Barcode – Code 39 Configuration με Aspose.BarCode](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-code-39-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/hindi/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md b/barcode/hindi/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md new file mode 100644 index 000000000..635635a98 --- /dev/null +++ b/barcode/hindi/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md @@ -0,0 +1,185 @@ +--- +category: general +date: 2026-08-15 +description: C# में बारकोड इमेज PNG – पोस्टल बारकोड बनाना, प्लैनेट बारकोड बनाना, और + एक सरल जेनरेटर से बारकोड की ऊँचाई बदलना सीखें। +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- barcode image png +- barcode generator c# +- generate postal barcode +- create planet barcode +- change barcode height +language: hi +lastmod: 2026-08-15 +og_description: C# ट्यूटोरियल में बारकोड इमेज PNG दिखाता है कि कैसे पोस्टल बारकोड + जेनरेट करें, प्लैनेट बारकोड बनाएं, और BarcodeGenerator API का उपयोग करके बारकोड + की ऊँचाई बदलें। +og_image_alt: Screenshot of generated PNG barcode with custom height using C# BarcodeGenerator +og_title: C# में बारकोड इमेज PNG – बारकोड बनाएं और समायोजित करें +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Barcode image PNG in C# – learn how to generate postal barcodes, create + a Planet barcode, and change barcode height with a simple generator. + headline: Barcode image PNG in C# generate barcodes, change height + type: TechArticle +tags: +- barcode +- C# +- PNG +- postal +- generator +title: C# में बारकोड इमेज PNG जनरेट करें, ऊँचाई बदलें +url: /hi/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# में Barcode image PNG – बारकोड बनाएं, ऊँचाई बदलें + +यदि आपको C# में **barcode image PNG** चाहिए, तो यह गाइड आपको पूरी प्रक्रिया से परिचित कराएगा। आप पोस्टल बारकोड बनाना, Planet बारकोड बनाना, और अपने IDE से बाहर निकले बिना बारकोड की ऊँचाई बदलना सीखेंगे। + +विश्वसनीय PNG बारकोड बनाना शिपिंग लेबल, इन्वेंटरी सिस्टम और स्वचालित मेलिंग समाधान के लिए सामान्य आवश्यकता है। इस ट्यूटोरियल के अंत तक आपके पास एक पुन: उपयोग योग्य कोड स्निपेट होगा जो Planet और RM4SCC दोनों फ़ॉर्मेट के लिए उच्च‑गुणवत्ता वाले PNG फ़ाइलें उत्पन्न करता है, और आप पोस्टल स्पेसिफिकेशन्स को पूरा करने के लिए बार की ऊँचाई कैसे समायोजित करें, यह समझ पाएंगे। + +## What you’ll need + +- .NET 6+ या .NET Framework 4.7.2 (BarcodeGenerator API किसी भी हालिया .NET रनटाइम के साथ काम करता है) +- **Aspose.BarCode for .NET** NuGet पैकेज का रेफ़रेंस (या कोई भी संगत लाइब्रेरी जो `BarcodeGenerator`, `EncodeTypes`, और `BarCodeImageFormat` प्रदान करती हो) +- C# सिंटैक्स और फ़ाइल I/O का बुनियादी ज्ञान + +कोई अतिरिक्त टूल आवश्यक नहीं है; कोड Visual Studio, Rider, या `dotnet` CLI में चलता है। + +## Barcode image PNG – basic generation + +पहला कदम डिफ़ॉल्ट आयामों के साथ **barcode image PNG** बनाना है। यह बेसलाइन फ़ाइल स्थापित करता है जिसे बाद में कस्टमाइज़ किया जा सकता है। + +```csharp +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +// Define the output folder (replace with your own path) +string outputFolder = @"C:\Barcodes"; + +// Ensure the folder exists +Directory.CreateDirectory(outputFolder); + +// 1️⃣ Create a Planet barcode generator with default height +BarcodeGenerator planetGenerator = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + +// Set the module width (X‑dimension) to 4 pixels – this defines the thin bar size +planetGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the image as PNG; this is the first **barcode image PNG** you’ll produce +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +**Why this works:** +- `EncodeTypes.Planet` जेनरेटर को Planet सिम्बोलॉजी उपयोग करने के लिए बताता है, जो कई पोस्टल सर्विसेज़ के लिए आवश्यक है। +- `XDimension.Pixels` सबसे छोटे बार की चौड़ाई नियंत्रित करता है; 4 px का मान सामान्य लेबल आकारों पर पढ़ने योग्य बारकोड देता है। +- `Save` मेथड **barcode image PNG** फ़ाइल को डिस्क पर लिखता है, सभी वेक्टर जानकारी को रास्टर पिक्सेल के रूप में संरक्षित करता है। + +## Change barcode height – customizing the visual weight + +पोस्टल गाइडलाइन अक्सर विशिष्ट बार ऊँचाई की मांग करती हैं। नीचे दिया गया स्निपेट समान Planet बारकोड के लिए कस्टम 100‑पिक्सेल ऊँचाई सेट करने का तरीका दर्शाता है। + +```csharp +// 2️⃣ Apply a custom 100‑pixel bar height +planetGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Overwrite or save as a new file to keep both versions +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +**Why you change the height:** +ऊँचा बार कम‑रिज़ॉल्यूशन प्रिंटरों पर स्कैन विश्वसनीयता को बढ़ाता है, जबकि छोटा बार लेबल की जगह बचाता है। `BarHeight.Pixels` प्रॉपर्टी आपको इस एट्रिब्यूट को X‑डायमेंशन को प्रभावित किए बिना फाइन‑ट्यून करने देती है। + +## Generate postal barcode – creating an RM4SCC example + +RM4SCC फ़ॉर्मेट यूनाइटेड किंगडम में उपयोग किया जाने वाला एक और सामान्य पोस्टल बारकोड है। जेनरेशन स्टेप्स Planet उदाहरण के समान हैं, जिससे **barcode generator c#** पैटर्न मजबूत होता है। + +```csharp +// 3️⃣ Create an RM4SCC barcode generator with default height +BarcodeGenerator rm4sccGenerator = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Keep the same module width for consistency +rm4sccGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the default‑height PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +## Change barcode height – RM4SCC variation + +Planet बारकोड की तरह, आप RM4SCC बारकोड की ऊँचाई भी समायोजित कर सकते हैं। नीचे दिया गया कोड ऊँचाई को 100 px पर सेट करता है, जिससे समान डेटा स्ट्रिंग के लिए दूसरा **barcode image PNG** बनता है। + +```csharp +// 4️⃣ Set a custom 100‑pixel bar height for RM4SCC +rm4sccGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Save the customized PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +## Full, runnable example + +सभी चरणों को मिलाकर एक एकल, स्व-समाहित प्रोग्राम बनता है जो चार PNG फ़ाइलें उत्पन्न करता है: + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +class Program +{ + static void Main() + { + string outputFolder = @"C:\Barcodes"; + Directory.CreateDirectory(outputFolder); + + // Planet barcode – default height + var planet = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planet.Parameters.Barcode.XDimension.Pixels = 4; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // Planet barcode – custom 100‑pixel height + planet.Parameters.Barcode.BarHeight.Pixels = 100; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – default height + var rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – custom 100‑pixel height + rm4scc.Parameters.Barcode.BarHeight.Pixels = 100; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); + + Console.WriteLine("All barcode PNG files have been generated in " + + + +## What Should You Learn Next? + +नीचे दिए गए ट्यूटोरियल्स उन विषयों को कवर करते हैं जो इस गाइड में दिखाए गए तकनीकों पर आधारित हैं। प्रत्येक संसाधन में पूर्ण कार्यशील कोड उदाहरण और चरण‑दर‑चरण व्याख्याएँ शामिल हैं, जिससे आप अतिरिक्त API फीचर्स में महारत हासिल कर सकें और अपने प्रोजेक्ट्स में वैकल्पिक इम्प्लीमेंटेशन एप्रोच को एक्सप्लोर कर सकें। + +- [Create Barcode Custom Height – One-Dimensional Barcodes](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-barcode-height-adjustment/) +- [Create Barcode PNG – DataMatrix Aspect Ratio – Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-aspect-ratio-customization/) +- [Create barcode image C# – GS1 DataMatrix Example](/barcode/english/net/gs1-barcode-encoding/gs1-datamatrix-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/hindi/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md b/barcode/hindi/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md new file mode 100644 index 000000000..9dbab4c75 --- /dev/null +++ b/barcode/hindi/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-08-15 +description: C# में प्लैनेट बारकोड बनाएं और परिपूर्ण आकार के लिए बारकोड आयाम कैसे + सेट करें, सीखें। भरे और खाली बारों के साथ चरण‑दर‑चरण कोड उदाहरण। +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create planet barcode +- how to set barcode dimensions +- planet barcode C# +- barcode X‑dimension +- empty barcode bars +language: hi +lastmod: 2026-08-15 +og_description: C# में प्लैनेट बारकोड बनाएं और बारकोड के आयाम सेट करना सीखें। इस गाइड + का पालन करके तुरंत भरे और खाली प्लैनेट बारकोड बनाएं। +og_image_alt: Screenshot showing a Planet barcode with filled bars generated by C# + code +og_title: C# में प्लैनेट बारकोड बनाएं – पूर्ण चरण‑दर‑चरण मार्गदर्शिका +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Create planet barcode in C# and learn how to set barcode dimensions + for perfect sizing. Step‑by‑step code example with filled and empty bars. + headline: Create planet barcode in C# – complete programming guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.BarCode +title: C# में प्लैनेट बारकोड बनाएं – पूर्ण प्रोग्रामिंग गाइड +url: /hi/python-java/general/create-planet-barcode-in-c-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# में Planet बारकोड बनाएं – पूर्ण प्रोग्रामिंग गाइड + +यदि आपको C# में **Planet बारकोड बनाना** है, तो यह गाइड आपको बिल्कुल बताता है कि इसे कैसे करें। आप यह भी जानेंगे **बारकोड के आयाम कैसे सेट करें** ताकि बार्स आपकी आवश्यक सटीक चौड़ाई पर प्रदर्शित हों। + +Planet बारकोड बनाना अक्सर तब आवश्यक होता है जब आप डाक सेवाओं या लॉजिस्टिक्स सिस्टम के साथ काम करते हैं। नीचे दिया गया कोड डिफ़ॉल्ट फ़िल्ड‑बार संस्करण और वैकल्पिक खाली‑बार शैली दोनों को कवर करता है, साथ ही RM4SCC फ़ॉर्मेट का एक त्वरित उदाहरण भी देता है। इस ट्यूटोरियल के अंत तक आपके पास एक पुन: उपयोग योग्य स्निपेट होगा जिसे आप किसी भी .NET प्रोजेक्ट में डाल सकते हैं। + +## आवश्यकताएँ + +शुरू करने से पहले सुनिश्चित करें कि आपके पास निम्नलिखित हों: + +* .NET 6.0 या बाद का संस्करण स्थापित हो (API .NET Framework 4.6+ के साथ भी काम करता है) +* **Aspose.BarCode for .NET** NuGet पैकेज (`Aspose.BarCode`) आपके प्रोजेक्ट में जोड़ा गया हो +* वह फ़ोल्डर पाथ जहाँ PNG फ़ाइलें सहेजी जाएँगी, लिखने योग्य हो +* C# सिंटैक्स और Visual Studio (या कोई भी IDE) की बुनियादी जानकारी + +> **Pro tip:** इमेज सहेजते समय अनुमति समस्याओं से बचने के लिए एक पूर्ण पाथ या `Path.Combine(Environment.CurrentDirectory, "output")` का उपयोग करें। + +## चरण 1 – Planet बारकोड जेनरेटर (फ़िल्ड बार) को इनिशियलाइज़ करें + +पहला कदम Planet सिंबोलॉजी के लिए `BarcodeGenerator` इंस्टेंस बनाना है। डिफ़ॉल्ट रूप से जेनरेटर **फ़िल्ड** बार बनाता है। + +```csharp +// Step 1: Create a Planet barcode with the default (filled) bars +BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +`EncodeTypes.Planet` एनेम Aspose.BarCode को Planet फ़ॉर्मेट उपयोग करने के लिए बताता है, जबकि `"123456"` वह डेटा पेलोड है जिसे एन्कोड किया जाएगा। + +## चरण 2 – लगातार आकार के लिए बारकोड आयाम कैसे सेट करें + +प्रत्येक बार की चौड़ाई को नियंत्रित करने के लिए **X‑dimension** को समायोजित करें। यह **बारकोड आयाम सेट करने** का मुख्य तरीका है और यह सुनिश्चित करता है कि बारकोड आपके लेबल के आकार में फिट हो। + +```csharp +// Step 2: Set the X‑dimension (width of each bar) to 4 pixels +planetFilled.Parameters.Barcode.XDimension.Pixels = 4; +``` + +`Pixels` प्रॉपर्टी स्क्रीन पिक्सेल में बार की चौड़ाई निर्धारित करती है। मानक मेलिंग लेबल्स के लिए सामान्य मान 2 – 5 पिक्सेल होते हैं; बड़े प्रिंट के लिए मान बढ़ाएँ। + +## चरण 3 – फ़िल्ड Planet बारकोड को PNG के रूप में सहेजें + +अब इमेज को डिस्क पर लिखें। PNG तेज किनारे रखता है, जो स्कैनिंग के लिए आदर्श है। + +```csharp +// Step 3: Save the Planet barcode as a PNG image +planetFilled.Save("YOUR_DIRECTORY/PostalPlanetFilledBars.png", BarCodeImageFormat.Png); +``` + +`YOUR_DIRECTORY` को उस पाथ से बदलें जो आपने पहले तैयार किया था। इस कोड को चलाने के बाद आपको नीचे दिखाए गए इमेज जैसा फ़ाइल मिलेगा। + +![Planet barcode with filled bars](planet_filled.png "Planet barcode with filled bars – created by C# code") + +*Alt text:* **C# कोड द्वारा उत्पन्न फ़िल्ड बार वाला Planet बारकोड** (matches `og_image_alt`)। + +## चरण 4 – खाली (अनफ़िल्ड) बार वाला Planet बारकोड बनाएं + +यदि आपका डाक सेवा बार को **खाली** चाहती है, तो जेनरेटर को इनिशियलाइज़ करने के बाद `FilledBars` फ़्लैग को टॉगल करें। + +```csharp +// Step 4: Create a Planet barcode with empty (unfilled) bars +BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +कंस्ट्रक्टर समान है; अंतर अगले कॉन्फ़िगरेशन चरण में है। + +## चरण 5 – बारकोड आयाम सेट करें और बार को खाली बनाएं + +फिर से विज़ुअल कंसिस्टेंसी के लिए X‑dimension सेट करें, फिर फ़िल्ड बार को डिसेबल करें। + +```csharp +// Step 5: Set the X‑dimension and specify that bars should be empty +planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; +planetEmpty.Parameters.Barcode.FilledBars = false; // makes bars empty +``` + +`FilledBars = false` प्रॉपर्टी ही रेंडरिंग स्टाइल को बदलती है। समान X‑dimension रखने से खाली‑बार वाला बारकोड फ़िल्ड संस्करण के साथ पूरी तरह संरेखित रहता है। + +## चरण 6 – खाली Planet बारकोड को सहेजें + +```csharp +// Step 6: Save the Planet barcode with empty bars as a PNG image +planetEmpty.Save("YOUR_DIRECTORY/PostalPlanetEmptyBars.png", BarCodeImageFormat.Png); +``` + +अब आपके पास दो PNG फ़ाइलें होंगी: एक ठोस बार वाली और एक खोखली बार वाली, दोनों के आयाम समान हैं। + +## चरण 7 – (वैकल्पिक) तुलना के लिए RM4SCC बारकोड बनाएं + +RM4SCC एक अन्य डाक सिंबोलॉजी है जो डिफ़ॉल्ट फ़िल्ड‑बार स्टाइल का उपयोग करता है। चरण Planet उदाहरण के समान हैं, यह दर्शाते हुए कि **बारकोड आयाम कैसे सेट करें** विभिन्न फ़ॉर्मेट में भी काम करता है। + +```csharp +// Step 7: Create an RM4SCC barcode (filled bars are the default) +BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Step 8: Set the X‑dimension for consistency +rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + +// Step 9: Save the RM4SCC barcode as a PNG image +rm4scc.Save("YOUR_DIRECTORY/PostalRM4SCCFilledBars.png", BarCodeImageFormat.Png); +``` + +इन तीन चरणों को चलाने से `PostalRM4SCCFilledBars.png` बनता है, जिसे आप Planet आउटपुट के साथ साइड‑बाय‑साइड तुलना कर सकते हैं। + +## X‑dimension क्यों महत्वपूर्ण है + +X‑dimension प्रत्येक बार की **न्यूनतम प्रिंटेबल चौड़ाई** निर्धारित करता है। यदि इसे बहुत कम सेट किया जाए, तो बारकोड कम‑रिज़ॉल्यूशन प्रिंटरों पर धुंधला हो सकता है, जिससे स्कैन विफल हो सकता है। दूसरी ओर, बहुत बड़ा X‑dimension लेबल के आकार से अधिक हो सकता है और जगह बर्बाद कर सकता है। **बारकोड आयाम कैसे सेट करें** को स्पष्ट रूप से समझकर आप अंतिम इमेज आकार पर निर्धारक नियंत्रण प्राप्त करते हैं, जो स्वचालित मेलिंग वर्कफ़्लो के लिए आवश्यक है। + +## सामान्य समस्याएँ और उनके समाधान + +| Issue | Cause | Fix | +|-------|-------|-----| +| बारकोड खिंचा हुआ दिखता है | X‑dimension को पिक्सेल के बजाय पॉइंट्स में सेट किया गया | पिक्सेल‑परफेक्ट नियंत्रण के लिए हमेशा `Pixels` प्रॉपर्टी का उपयोग करें | +| खाली बार अभी भी भरे हुए दिखते हैं | `FilledBars` को X‑dimension बदलने के बाद `false` नहीं किया गया | `FilledBars = false` को X‑dimension समायोजित करने के बाद सेट करें | +| सहेजी गई फ़ाइल खाली है | आउटपुट डायरेक्टरी मौजूद नहीं है या लिखने की अनुमति नहीं है | डायरेक्टरी मौजूद है (`Directory.CreateDirectory`) यह सुनिश्चित करें और आपका ऐप पर्याप्त अधिकारों के साथ चल रहा हो | +| प्रिंट पर इमेज धुंधली है | उच्च‑रिज़ॉल्यूशन मॉनीटर से कम DPI PNG सहेजा गया | `BarCodeImageFormat.Png` (लॉसलेस) का उपयोग करें और आवश्यकता होने पर `Resolution` प्रॉपर्टी पर विचार करें | + +## पूर्ण, चलाने योग्य उदाहरण + +नीचे दिया गया पूरा ब्लॉक एक नए कंसोल प्रोजेक्ट (`dotnet new console`) में कॉपी करें और चलाएँ। प्रोग्राम `output` फ़ोल्डर में तीन PNG फ़ाइलें बनाता है। + +```csharp +using System; +using System.IO; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Ensure output folder exists + string outDir = Path.Combine(Environment.CurrentDirectory, "output"); + Directory.CreateDirectory(outDir); + + // ---------- Planet barcode – filled bars ---------- + BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetFilled.Parameters.Barcode.XDimension.Pixels = 4; // set dimensions + planetFilled.Save(Path.Combine(outDir, "PostalPlanetFilledBars.png"), BarCodeImageFormat.Png); + + // ---------- Planet barcode – empty bars ---------- + BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; // same dimensions + planetEmpty.Parameters.Barcode.FilledBars = false; // make bars empty + planetEmpty.Save(Path.Combine(outDir, "PostalPlanetEmptyBars.png"), BarCodeImageFormat.Png); + + // ---------- RM4SCC barcode (filled bars) ---------- + BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; // consistent size + rm4scc.Save(Path.Combine(outDir, "PostalRM4SCCFilledBars.png"), BarCodeImageFormat.Png); + + Console.WriteLine($"Barcodes generated in: {outDir}"); + } +} +``` + +**अपेक्षित आउटपुट:** तीन PNG फ़ाइलें—`PostalPlanetFilledBars.png`, `PostalPlanetEmptyBars.png`, और `PostalRM4SCCFilledBars.png`—प्रत्येक में 4‑पिक्सेल चौड़े बार, प्रिंट या आगे की प्रोसेसिंग के लिए तैयार। + +## निष्कर्ष + +अब आप जानते हैं कि C# में **Planet बारकोड कैसे बनाएं** और फ़िल्ड तथा खाली बार स्टाइल दोनों के लिए **बारकोड आयाम कैसे सेट करें**। वही पैटर्न अन्य सिंबोलॉजी जैसे RM4SCC पर भी लागू होता है, जिससे आप किसी भी डाक‑बारकोड आवश्यकता के लिए एक लचीला आधार प्राप्त करते हैं। + +अगले कदम में आप यह कर सकते हैं: + +* बारकोड के नीचे मानव‑पठनीय टेक्स्ट जोड़ें (`BarcodeGenerator.Parameters.Barcode.CodeText`) +* `Parameters.Barcode.BarColor` से बार का रंग बदलें +* स्केलेबल प्रिंटिंग के लिए वेक्टर फ़ॉर्मेट (SVG, EPS) में बारकोड जनरेट करें + +विभिन्न X‑dimension मान, डेटा स्ट्रिंग और आउटपुट फ़ॉर्मेट के साथ प्रयोग करें ताकि आपका वर्कफ़्लो पूरी तरह फिट हो सके। कोडिंग का आनंद लें! + +## अगला क्या सीखें? + +निम्नलिखित ट्यूटोरियल्स उन विषयों को कवर करते हैं जो इस गाइड में दिखाए गए तकनीकों पर आधारित हैं। प्रत्येक संसाधन में पूर्ण कार्यशील कोड उदाहरण और चरण‑दर‑चरण व्याख्याएँ शामिल हैं, जिससे आप अतिरिक्त API फीचर्स में महारत हासिल कर सकें और अपने प्रोजेक्ट में वैकल्पिक इम्प्लीमेंटेशन एप्रोच का अन्वेषण कर सकें। + +- [How to create barcode quiet zone for Code 16K using Aspose.BarCode for .NET](/barcode/english/net/code-16k-encoding/code-16k-quiet-zone-settings/) +- [How to Create Barcode Quiet Zone for ITF-14 Using Aspose.BarCode for .NET](/barcode/english/net/itf-14-barcode-customization/itf-14-barcode-quiet-zone-configuration/) +- [How to create Aztec barcode with error correction in .NET](/barcode/english/net/aztec-barcode-encoding/aztec-error-level-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/hindi/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md b/barcode/hindi/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md new file mode 100644 index 000000000..04554916a --- /dev/null +++ b/barcode/hindi/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md @@ -0,0 +1,238 @@ +--- +category: general +date: 2026-08-15 +description: डेटाबार ने C# में विस्तारित स्टैक्ड बारकोड जेनरेशन जोड़ा। जानिए कैसे + बारकोड इमेज बनाएं, और डेटा बार लेआउट्स के लिए कॉलम और रो सेट करें। +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- databar expanded stacked +- generate barcode image +- how to generate barcode +- how to set columns +- how to set rows +language: hi +lastmod: 2026-08-15 +og_description: Databar ने C# में विस्तारित स्टैक्ड बारकोड जेनरेशन किया। बारकोड इमेजेज + जेनरेट करने, कॉलम सेट करने और पंक्तियों को कुशलतापूर्वक सेट करने के लिए इस चरण-दर-चरण + गाइड का पालन करें। +og_image_alt: Screenshot of a databar expanded stacked barcode generated with C# +og_title: डेटाबार विस्तारित स्टैक्ड – C# में बारकोड छवि बनाएं +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + headline: 'Databar expanded stacked: generate barcode image in C#' + type: TechArticle +- description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + name: 'Databar expanded stacked: generate barcode image in C#' + steps: + - name: 1. Install the Aspose.BarCode library + text: 'The code uses the **Aspose.BarCode for .NET** library, which provides the + `BarcodeGenerator` class. Install the NuGet package with the following command:' + - name: 2. Create a barcode generator for **databar expanded stacked** + text: The generator is the entry point for all barcode operations. You must specify + the symbology (`EncodeTypes.DatabarExpandedStacked`) and the text to encode. + - name: 3. How to set columns for DataBar + text: The `Columns` property controls how many vertical modules appear in the + stacked barcode. Valid values are 2, 3, or 4. Setting columns influences the + barcode’s width and the amount of data it can store. + - name: 4. Save the 4‑column barcode image + text: Saving the image produces a file that you can embed in reports, invoices, + or mobile apps. The `Save` method accepts a file path and an image format. + - name: 5. How to set rows for DataBar + text: Rows add a second dimension to the stacked layout, allowing more data to + be encoded without widening the barcode. The `Rows` property defaults to 1; + you can increase it up to 3 for the expanded stacked variant. + - name: 6. Save the 3‑row barcode image + text: '```csharp // Step 5: Save the 3‑row barcode image barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", + BarCodeImageFormat.Png); ```' + - name: 7. Complete C# example to generate barcode image + text: 'Putting all steps together yields a self‑contained program you can copy + into a console application:' + type: HowTo +tags: +- barcode +- C# +- Aspose.BarCode +title: 'डेटाबार विस्तारित स्टैक्ड: C# में बारकोड छवि उत्पन्न करें' +url: /hi/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Databar expanded stacked: C# में बारकोड इमेज जनरेट करें + +यदि आपको C# में **databar expanded stacked** बारकोड इमेज जनरेट करनी है, तो यह गाइड आपको बिल्कुल **बारकोड कैसे जनरेट करें** कस्टम कॉलम और रो लेआउट के साथ दिखाएगा। आप देखेंगे कि कॉलम कैसे सेट करें, रो कैसे सेट करें, और IDE छोड़े बिना परिणामी इमेज कैसे सेव करें। + +ट्यूटोरियल में शामिल हैं: + +* **databar expanded stacked** सिम्बोलॉजी के लिए बारकोड जेनरेटर बनाना। +* 4‑कॉलम लेआउट और 3‑रो लेआउट को कॉन्फ़िगर करना। +* प्रत्येक कॉन्फ़िगरेशन को PNG फ़ाइल के रूप में सेव करना। +* अमान्य कॉलम काउंट जैसे एज केस को संभालने के टिप्स। + +कोई बाहरी दस्तावेज़ आवश्यक नहीं है; पूर्ण, चलाने योग्य उदाहरण शामिल है। + +![Databar expanded stacked barcode example](YOUR_DIRECTORY/DatabarCols4.png){: .center alt="C# के साथ जनरेट किया गया databar expanded stacked बारकोड" } + +## Databar expanded stacked बारकोड जनरेशन चरण + +### 1. Aspose.BarCode लाइब्रेरी इंस्टॉल करें + +कोड **Aspose.BarCode for .NET** लाइब्रेरी का उपयोग करता है, जो `BarcodeGenerator` क्लास प्रदान करती है। नीचे दिए गए कमांड से NuGet पैकेज इंस्टॉल करें: + +```bash +dotnet add package Aspose.BarCode +``` + +पैकेज इंस्टॉल होने के बाद, फ़ाइल के शीर्ष पर आवश्यक नेमस्पेस जोड़ें: + +```csharp +using Aspose.BarCode.Generation; +``` + +### 2. **databar expanded stacked** के लिए बारकोड जेनरेटर बनाएं + +जेनरेटर सभी बारकोड ऑपरेशन्स का एंट्री पॉइंट है। आपको सिम्बोलॉजी (`EncodeTypes.DatabarExpandedStacked`) और एन्कोड करने के लिए टेक्स्ट निर्दिष्ट करना होगा। + +```csharp +// Step 1: Create a barcode generator for Databar Expanded Stacked +BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); +``` + +*Why this matters:* `EncodeTypes` एन्‍उम लाइब्रेरी को बताता है कि कौन सा बारकोड फ़ॉर्मेट बनाना है। **databar expanded stacked** का उपयोग करने से सुनिश्चित होता है कि परिणामी इमेज स्टैक्ड लेआउट के लिए GS1 DataBar स्पेसिफ़िकेशन का पालन करे। + +### 3. DataBar के लिए कॉलम सेट करना + +`Columns` प्रॉपर्टी निर्धारित करती है कि स्टैक्ड बारकोड में कितने वर्टिकल मॉड्यूल दिखेंगे। वैध मान 2, 3, या 4 हैं। कॉलम सेट करने से बारकोड की चौड़ाई और वह डेटा मात्रा प्रभावित होती है जो वह संग्रहीत कर सकता है। + +```csharp +// Step 2: Configure a 4‑column layout +barcode.Parameters.Barcode.DataBar.Columns = 4; +``` + +**Tip:** यदि आप अनुमत रेंज के बाहर का मान असाइन करने का प्रयास करते हैं, तो लाइब्रेरी `ArgumentException` फेंकेगी। उपयोगकर्ताओं को कॉलम चयन प्रदान करते समय हमेशा इनपुट वैधता जांचें। + +### 4. 4‑कॉलम बारकोड इमेज सेव करें + +इमेज को सेव करने से एक फ़ाइल बनती है जिसे आप रिपोर्ट, इनवॉइस या मोबाइल ऐप्स में एम्बेड कर सकते हैं। `Save` मेथड फ़ाइल पाथ और इमेज फ़ॉर्मेट लेता है। + +```csharp +// Step 3: Save the 4‑column barcode image +barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); +``` + +फ़ाइल लिखे जाने के बाद, आप इसे किसी भी इमेज व्यूअर से खोल कर पुष्टि कर सकते हैं कि **databar expanded stacked** पैटर्न सही ढंग से दिख रहा है। + +### 5. DataBar के लिए रो सेट करना + +रो स्टैक्ड लेआउट में दूसरी डाइमेंशन जोड़ते हैं, जिससे बारकोड की चौड़ाई बढ़ाए बिना अधिक डेटा एन्कोड किया जा सकता है। `Rows` प्रॉपर्टी डिफ़ॉल्ट रूप से 1 होती है; आप इसे विस्तारित स्टैक्ड वेरिएंट के लिए अधिकतम 3 तक बढ़ा सकते हैं। + +```csharp +// Step 4: Switch to a 3‑row layout (columns remain unchanged) +barcode.Parameters.Barcode.DataBar.Rows = 3; +``` + +**Why rows matter:** रो बढ़ाने से कुल चौड़ाई कम होती है जबकि डेटा क्षमता बनी रहती है, जो संकरी लेबल या मोबाइल स्क्रीन स्पेस के लिए उपयोगी है। + +### 6. 3‑रो बारकोड इमेज सेव करें + +```csharp +// Step 5: Save the 3‑row barcode image +barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); +``` + +अब आपके पास दो PNG फ़ाइलें हैं—एक 4‑कॉलम लेआउट के साथ और दूसरी 3‑रो लेआउट के साथ—दोनों **databar expanded stacked** सिम्बोलॉजी का उपयोग करती हैं। + +### 7. बारकोड इमेज जनरेट करने के लिए पूर्ण C# उदाहरण + +सभी चरणों को मिलाकर एक स्व-समाहित प्रोग्राम बनता है जिसे आप कंसोल एप्लिकेशन में कॉपी कर सकते हैं: + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace DatabarExpandedStackedDemo +{ + class Program + { + static void Main() + { + // Create the generator for Databar Expanded Stacked + BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); + + // Configure a 4‑column layout and save + barcode.Parameters.Barcode.DataBar.Columns = 4; + barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); + Console.WriteLine("4‑column barcode saved."); + + // Change to a 3‑row layout (columns stay at 4) and save + barcode.Parameters.Barcode.DataBar.Rows = 3; + barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); + Console.WriteLine("3‑row barcode saved."); + } + } +} +``` + +**Expected output** + +प्रोग्राम चलाने पर यह प्रिंट करेगा: + +``` +4‑column barcode saved. +3‑row barcode saved. +``` + +और `YOUR_DIRECTORY` में दो PNG फ़ाइलें बनाता है। फ़ाइलें खोलें और सत्यापित करें कि प्रत्येक इमेज में वैध **databar expanded stacked** बारकोड दिख रहा है। + +## सामान्य समस्याएँ और व्यावहारिक टिप्स + +* **Directory existence** – `Save` गायब फ़ोल्डर नहीं बनाता। सुनिश्चित करें कि `YOUR_DIRECTORY` मौजूद है या सेव करने से पहले `Directory.CreateDirectory` का उपयोग करें। +* **Column limits** – 2, 3, या 4 के अलावा कोई भी मान अपवाद उत्पन्न करता है। उपयोगकर्ता इनपुट त्रुटियों से बचने के लिए एक सरल रेंज चेक लागू करें: + + ```csharp + int columns = 4; + if (columns < 2 || columns > 4) throw new ArgumentOutOfRangeException(nameof(columns)); + barcode.Parameters.Barcode.DataBar.Columns = columns; + ``` + +* **Row limits** – विस्तारित स्टैक्ड वेरिएंट अधिकतम 3 रो का समर्थन करता है। `Rows` को 0 या 3 से अधिक सेट करने पर भी अपवाद उठता है। +* **Image format** – `BarCodeImageFormat.Png` लॉसलेस क्वालिटी देता है, जो प्रिंटिंग के लिए आदर्श है। फ़ाइल आकार प्राथमिकता होने पर ही `Jpeg` उपयोग करें। + +## अगले कदम + +अब जब आप कस्टम कॉलम और रो कॉन्फ़िगरेशन के साथ **बारकोड कैसे जनरेट करें** जानते हैं, तो आप: + +* जेनरेटर को वेब API में इंटीग्रेट कर सकते हैं ताकि ऑन‑डिमांड बारकोड इमेज सर्व की जा सके। +* बारकोड को PDF जनरेशन लाइब्रेरी के साथ मिलाकर इनवॉइस में एम्बेड कर सकते हैं। +* उसी `Parameters.Barcode.DataBar` ऑब्जेक्ट का उपयोग करके अन्य DataBar वेरिएंट (`DatabarExpanded`, `DatabarLimited`) के साथ प्रयोग कर सकते हैं। + +बार रंग बदलना, ह्यूमन‑रीडेबल टेक्स्ट जोड़ना, या QR‑कोड ओवरले लागू करने जैसे गहन कस्टमाइज़ेशन के लिए `BarcodeGenerator` प्रॉपर्टीज़ पर Aspose.BarCode दस्तावेज़ देखें। + +--- + +इस गाइड को फॉलो करके आपने **databar expanded stacked** वर्कफ़्लो में महारत हासिल की, **कॉलम कैसे सेट करें**, **रो कैसे सेट करें** सीखें, और दो अलग-अलग बारकोड इमेज बनाईं जो प्रोडक्शन उपयोग के लिए तैयार हैं। कोडिंग का आनंद लें! + +## आप अगला क्या सीखें? + +निम्नलिखित ट्यूटोरियल्स उन विषयों को कवर करते हैं जो इस गाइड में दिखाए गए तकनीकों पर आधारित हैं। प्रत्येक संसाधन में पूर्ण कार्यशील कोड उदाहरण और चरण‑दर‑चरण व्याख्याएँ शामिल हैं, जिससे आप अतिरिक्त API फीचर्स में निपुण हो सकें और अपने प्रोजेक्ट्स में वैकल्पिक इम्प्लीमेंटेशन अप्रोच को एक्सप्लोर कर सकें। + +- [बारकोड इमेज जनरेट करें – GS1 कूपन UPC‑A Databar](/barcode/english/net/gs1-barcode-encoding/gs1-coupon-upc-a-databar-configuration/) +- [DotCode बारकोड इमेज बनाएं – पंक्तियाँ और कॉलम (Aspose.BarCode)](/barcode/english/net/dotcode-barcode-configuration/dotcode-rows-columns-configuration/) +- [बारकोड कैसे जनरेट करें - एक-आयामी बारकोड प्रकार](/barcode/english/net/one-dimensional-barcode-types/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/hindi/python-java/general/how-to-set-barcode-complete-c-guide/_index.md b/barcode/hindi/python-java/general/how-to-set-barcode-complete-c-guide/_index.md new file mode 100644 index 000000000..3f748a1f7 --- /dev/null +++ b/barcode/hindi/python-java/general/how-to-set-barcode-complete-c-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-08-15 +description: C# में बारकोड पैरामीटर कैसे सेट करें और बारकोड इमेज जनरेट करें। चरण‑बद्ध + तरीके से सीखें कि डेटाबार बारकोड बनाएं और PNG फ़ाइलें सहेजें। +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to set barcode +- how to generate barcode +- create databar barcode +- generate barcode image c# +language: hi +lastmod: 2026-08-15 +og_description: C# में Aspose.Barcode के साथ बारकोड कैसे सेट करें, फिर बारकोड इमेज + जनरेट करें। इस गाइड का पालन करें ताकि आप Databar बारकोड बना सकें और PNG फ़ाइलें + सहेज सकें। +og_image_alt: Screenshot of a Databar barcode saved as PNG using C# code +og_title: C# में बारकोड कैसे सेट करें – चरण-दर-चरण गाइड +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: How to set barcode parameters in C# and generate barcode images. Learn + step‑by‑step to create Databar barcode and save PNG files. + headline: How to set barcode – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.Barcode +title: बारकोड कैसे सेट करें – पूर्ण C# गाइड +url: /hi/python-java/general/how-to-set-barcode-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# बारकोड सेट कैसे करें – पूर्ण C# गाइड + +यदि आप .NET प्रोजेक्ट में **how to set barcode** पैरामीटर खोज रहे हैं, तो यह ट्यूटोरियल आपको आवश्यक सटीक चरण दिखाता है। आप **how to generate barcode** इमेजेज बनाना, Databar बारकोड बनाना, और बार की ऊँचाई को पिक्सेल‑दर‑पिक्सेल नियंत्रित करना सीखेंगे—सभी साफ़, प्रोडक्शन‑रेडी C# कोड के साथ। + +इस गाइड में आप: + +* आवश्यक NuGet पैकेज इंस्टॉल करें। +* Databar Omnidirectional बारकोड बनाएं (“create Databar barcode” भाग)। +* X‑dimension और बार ऊँचाई को समायोजित करके **how to set barcode** आयाम दिखाएँ। +* परिणाम को PNG फ़ाइलों के रूप में सहेजें, **generate barcode image C#** परिदृश्य को कवर करते हुए। + +कोड नवीनतम Aspose.Barcode for .NET (लेखन समय पर v 24.12) के साथ काम करता है और .NET 6 या बाद के संस्करण पर चलता है। + +## आवश्यकताएँ + +शुरू करने से पहले सुनिश्चित करें कि आपके पास है: + +* .NET 6 SDK (या कोई बाद का संस्करण)। +* Visual Studio 2022 या VS Code जैसे IDE। +* Aspose.Barcode NuGet पैकेज डाउनलोड करने के लिए इंटरनेट एक्सेस। + +कोई अतिरिक्त थर्ड‑पार्टी लाइब्रेरीज़ आवश्यक नहीं हैं। + +## चरण 1: Aspose.Barcode for .NET इंस्टॉल करें + +C# में **generate barcode** इमेजेज बनाने का सबसे भरोसेमंद तरीका Aspose.Barcode का उपयोग करना है। अपने प्रोजेक्ट फ़ोल्डर में टर्मिनल खोलें और चलाएँ: + +```bash +dotnet add package Aspose.BarCode +``` + +यह कमांड आपके प्रोजेक्ट फ़ाइल में नवीनतम स्थिर संस्करण जोड़ता है, जिससे आपके पास `BarcodeGenerator` क्लास और `EncodeTypes` एनेमरेशन उपलब्ध हो जाता है। + +*Pro tip:* पैकेज को अपडेटेड रखें (`dotnet list package --outdated`) ताकि बग फिक्स और नई बारकोड सिम्बोलॉजीज़ का लाभ मिल सके। + +## चरण 2: Databar बारकोड बनाएं (create Databar barcode) + +Databar Omnidirectional रिटेल और लॉजिस्टिक्स के लिए आदर्श है क्योंकि यह GTIN‑14 वैल्यू के साथ अतिरिक्त डेटा एन्कोड कर सकता है। नीचे दिया गया कोड बारकोड ऑब्जेक्ट बनाता है: + +```csharp +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +// Step 2: Initialize the generator for a Databar Omnidirectional barcode +BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); +``` + +*Why this matters:* `EncodeTypes.DatabarOmniDirectional` एनेम बताता है कि लाइब्रेरी Databar सिम्बोलॉजी का उपयोग करे, जबकि स्ट्रिंग `"(01)12345678901231"` 14‑अंकीय GTIN के लिए GS1 एप्लिकेशन आइडेंटिफ़ायर फ़ॉर्मेट का पालन करती है। + +## चरण 3: सामान्य पैरामीटर परिभाषित करें – X‑dimension और बेस ऊँचाई + +अधिकांश बारकोड स्कैनर न्यूनतम X‑dimension (सबसे पतली बार की चौड़ाई) की अपेक्षा करते हैं। इसे 2 पिक्सेल सेट करने से एक कॉम्पैक्ट लेकिन पठनीय इमेज मिलती है। + +```csharp +// Step 3: Set a 2‑pixel X‑dimension (common for most scanners) +generator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +आप बाद में बार की ऊँचाई को जनरेटर को फिर से बनाए बिना समायोजित कर सकते हैं—यह **how to set barcode** एट्रिब्यूट्स को इंस्टैंसिएशन के बाद बदलने का मूल है। + +## चरण 4: पहली बार ऊँचाई सेट करें और इमेज सहेजें (generate barcode image C#) + +अब हम **how to set barcode** ऊँचाई के पहले भाग को दिखाते हैं। बार की ऊँचाई प्रत्येक बार की दृश्य लंबाई को नियंत्रित करती है; 30 पिक्सेल का मान छोटा बारकोड देता है, जबकि 60 पिक्सेल एक लंबा संस्करण बनाता है। + +```csharp +// Step 4a: 30‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 30; + +// Save the first PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); +``` + +चलाने के बाद, `DatabarBarHeight30Pixels.png` में 30‑पिक्सेल ऊँचा बार वाला Databar बारकोड होता है। परिणाम की पुष्टि के लिए फ़ाइल को किसी भी इमेज व्यूअर में खोलें। + +## चरण 5: बार ऊँचाई बदलें और दूसरी इमेज सहेजें + +**how to set barcode** मानों को तुरंत बदल सकते हैं यह दिखाने के लिए, हम बार ऊँचाई को 60 पिक्सेल कर देते हैं और दूसरी फ़ाइल लिखते हैं। + +```csharp +// Step 5a: 60‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 60; + +// Save the second PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); +``` + +अब आपके पास दो PNG फ़ाइलें हैं जो समान Databar डेटा को अलग-अलग दृश्य ऊँचाइयों के साथ दिखाती हैं। यह तब उपयोगी है जब आपको प्रिंटेड लेबल के लिए बड़ा बारकोड या स्क्रीन पर दिखाने के लिए छोटा बारकोड चाहिए। + +## चरण 6: पूर्ण, चलाने योग्य उदाहरण + +सब कुछ मिलाकर, यहाँ एक स्व-निहित कंसोल प्रोग्राम है जो ऊपर वर्णित सभी चरणों को निष्पादित करता है। कोड को नई `Program.cs` फ़ाइल में कॉपी करें, `YOUR_DIRECTORY` को वास्तविक फ़ोल्डर पाथ से बदलें, और चलाएँ। + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Initialize the generator for a Databar Omnidirectional barcode + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); + + // Common parameters + generator.Parameters.Barcode.XDimension.Pixels = 2; // 2‑pixel narrow bar + + // First image: 30‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 30; + generator.Save(@"C:\Barcodes\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 30‑pixel barcode."); + + // Second image: 60‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 60; + generator.Save(@"C:\Barcodes\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 60‑pixel barcode."); + + // Dispose the generator to free native resources + generator.Dispose(); + } +} +``` + +**अपेक्षित आउटपुट** + +``` +Saved 30-pixel barcode. +Saved 60-pixel barcode. +``` + +और फ़ोल्डर `C:\Barcodes` (या आपने जो पाथ दिया) में दो PNG फ़ाइलें होंगी। दोनों इमेजेज वैध Databar Omnidirectional बारकोड दिखाती हैं जिसे मानक GS1 रीडर्स द्वारा स्कैन किया जा सकता है। + +## अक्सर पूछे जाने वाले प्रश्न + +**क्या यह अन्य इमेज फ़ॉर्मेट्स के साथ काम करता है?** +हां। `BarCodeImageFormat.Png` को `Jpeg`, `Bmp`, `Gif`, या `Tiff` से बदलें ताकि संबंधित फ़ाइल प्रकार जनरेट हो सके। + +**क्या मैं फ़ोरग्राउंड रंग बदल सकता हूँ?** +`generator.Parameters.Barcode.ForeColor` को किसी भी `System.Drawing.Color` वैल्यू पर सेट करें, उदाहरण के लिए `Color.Blue`। + +**अगर मुझे अलग सिम्बोलॉजी चाहिए तो?** +कंस्ट्रक्टर में अलग `EncodeTypes` वैल्यू पास करें, जैसे कि लीनियर बारकोड के लिए `EncodeTypes.Code128` या मैट्रिक्स कोड के लिए `EncodeTypes.QR`। + +**क्या बारकोड को PDF में एम्बेड करने का कोई तरीका है?** +Aspose.Barcode एक `PdfGenerator` क्लास प्रदान करता है। इमेज जनरेट करने के बाद, आप इसे Aspose.PDF का उपयोग करके PDF पेज में जोड़ सकते हैं। + +## C# में बारकोड जनरेशन के लिए सर्वोत्तम प्रैक्टिसेज + +- **Reuse the `BarcodeGenerator` instance** जब आपको केवल डायमेंशन बदलने हों—यह अनावश्यक मेमोरी एलोकेशन से बचाता है। +- **Dispose the generator** (`generator.Dispose()`) को समाप्ति के बाद कॉल करें ताकि नेटिव रिसोर्सेज तुरंत रिलीज़ हों। +- **Validate input data** (जैसे, GTIN लंबाई) को बारकोड बनाने से पहले वैलिडेट करें ताकि रनटाइम एक्सेप्शन से बचा जा सके। +- **Test with a physical scanner** X‑dimension या बार ऊँचाई बदलने के बाद; अत्यधिक मान पठनीयता को प्रभावित कर सकते हैं। +- **Keep the output folder writable** निष्पादित करने वाले अकाउंट के लिए; अन्यथा `Save` `UnauthorizedAccessException` फेंकेगा। + +## निष्कर्ष + +अब आप **how to set barcode** प्रॉपर्टीज़ जैसे X‑dimension और बार ऊँचाई, C# में **how to generate barcode** इमेजेज, और Aspose.Barcode के साथ **create Databar barcode** फ़ाइलें बनाने के सटीक चरण जानते हैं। पूर्ण उदाहरण का पालन करके, आप विभिन्न दृश्य विशेषताओं वाली कई PNG फ़ाइलें जनरेट कर सकते हैं, जिससे किसी भी .NET एप्लिकेशन के लिए **generate barcode image C#** आवश्यकता पूरी होती है। + +अगले चरण में, **how to generate barcode** को बल्क में बनाना, बारकोड को PDF में एम्बेड करना, या QR या Code 128 जैसी अन्य सिम्बोलॉजीज़ पर स्विच करना जैसे संबंधित विषयों को देखें। यहाँ दिखाए गए पैरामीटरों के साथ प्रयोग करके अपने स्कैनिंग वातावरण के अनुसार बारकोड की उपस्थिति को फाइन‑ट्यून करें। कोडिंग का आनंद लें! + +## अगला आप क्या सीखें? + +निम्नलिखित ट्यूटोरियल्स इस गाइड में दिखाए गए तकनीकों पर आधारित निकट-संबंधित विषयों को कवर करते हैं। प्रत्येक संसाधन में पूर्ण कार्यशील कोड उदाहरण और चरण‑दर‑चरण व्याख्याएँ शामिल हैं, जो आपको अतिरिक्त API फीचर्स में महारत हासिल करने और अपने प्रोजेक्ट्स में वैकल्पिक इम्प्लीमेंटेशन एप्रोचेज़ को एक्सप्लोर करने में मदद करेंगे। + +- [Aspose.BarCode for .NET के साथ DataMatrix बारकोड (ECC 200) कैसे जनरेट करें](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-ecc-200-configuration/) +- [Aspose.BarCode for .NET का उपयोग करके कस्टम आस्पेक्ट रेशियो के साथ Aztec बारकोड कैसे जनरेट करें](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [Aspose.BarCode के साथ बारकोड – Code 39 कॉन्फ़िगरेशन कैसे जनरेट करें](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-code-39-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/hongkong/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md b/barcode/hongkong/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md new file mode 100644 index 000000000..88cb60426 --- /dev/null +++ b/barcode/hongkong/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md @@ -0,0 +1,182 @@ +--- +category: general +date: 2026-08-15 +description: C# 中的條碼 PNG 圖像 – 學習如何產生郵政條碼、建立 Planet 條碼,並使用簡易產生器調整條碼高度。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- barcode image png +- barcode generator c# +- generate postal barcode +- create planet barcode +- change barcode height +language: zh-hant +lastmod: 2026-08-15 +og_description: C# 教學中的條碼 PNG 圖像示範如何產生郵政條碼、建立 Planet 條碼,並使用 BarcodeGenerator API 調整條碼高度。 +og_image_alt: Screenshot of generated PNG barcode with custom height using C# BarcodeGenerator +og_title: 條碼圖像 PNG(C#)– 產生及調整條碼 +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Barcode image PNG in C# – learn how to generate postal barcodes, create + a Planet barcode, and change barcode height with a simple generator. + headline: Barcode image PNG in C# generate barcodes, change height + type: TechArticle +tags: +- barcode +- C# +- PNG +- postal +- generator +title: C# 產生條碼 PNG 圖像,變更高度 +url: /zh-hant/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# 中的條碼 PNG 圖像 – 產生條碼,變更高度 + +如果您需要在 C# 中的 **barcode image PNG**,本指南將帶您完成完整的流程。您將學習如何產生郵政條碼、建立 Planet 條碼,並在不離開 IDE 的情況下變更條碼高度。 + +產生可靠的 PNG 條碼是運送標籤、庫存系統和自動郵寄解決方案的常見需求。完成本教學後,您將擁有可重複使用的程式碼片段,能產生高品質的 PNG 檔案,支援 Planet 與 RM4SCC 兩種格式,並了解如何調整條碼高度以符合郵政規範。 + +## 您需要的條件 + +- .NET 6+ 或 .NET Framework 4.7.2(BarcodeGenerator API 可在任何近期的 .NET 執行環境上運作) +- 參考 **Aspose.BarCode for .NET** NuGet 套件(或任何提供 `BarcodeGenerator`、`EncodeTypes` 與 `BarCodeImageFormat` 的相容函式庫) +- 基本熟悉 C# 語法與檔案 I/O + +不需要額外工具;程式碼可在 Visual Studio、Rider 或 `dotnet` CLI 中執行。 + +## 條碼 PNG 圖像 – 基本產生 + +第一步是使用預設尺寸建立 **barcode image PNG**。這會產生一個基礎檔案,之後您可以自行客製化。 + +```csharp +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +// Define the output folder (replace with your own path) +string outputFolder = @"C:\Barcodes"; + +// Ensure the folder exists +Directory.CreateDirectory(outputFolder); + +// 1️⃣ Create a Planet barcode generator with default height +BarcodeGenerator planetGenerator = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + +// Set the module width (X‑dimension) to 4 pixels – this defines the thin bar size +planetGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the image as PNG; this is the first **barcode image PNG** you’ll produce +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +**Why this works:** +- `EncodeTypes.Planet` 告訴產生器使用 Planet 符號,這是許多郵政服務所要求的。 +- `XDimension.Pixels` 控制最小條的寬度;設定為 4 px 可在一般標籤尺寸下產生可讀的條碼。 +- `Save` 方法將 **barcode image PNG** 檔案寫入磁碟,將所有向量資訊以點陣像素保存。 + +## 變更條碼高度 – 自訂視覺重量 + +郵政指南常規要求特定的條碼高度。以下程式碼示範如何為相同的 Planet 條碼設定自訂的 100 像素高度。 + +```csharp +// 2️⃣ Apply a custom 100‑pixel bar height +planetGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Overwrite or save as a new file to keep both versions +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +**Why you change the height:** +- 較高的條碼在低解析度印表機上提升掃描可靠性,而較低的條碼則可節省標籤空間。`BarHeight.Pixels` 屬性讓您在不影響 X‑dimension 的情況下微調此屬性。 + +## 產生郵政條碼 – 建立 RM4SCC 範例 + +RM4SCC 格式是英國常用的另一種郵政條碼。產生步驟與 Planet 範例相同,進一步鞏固 **barcode generator c#** 的使用模式。 + +```csharp +// 3️⃣ Create an RM4SCC barcode generator with default height +BarcodeGenerator rm4sccGenerator = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Keep the same module width for consistency +rm4sccGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the default‑height PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +## 變更條碼高度 – RM4SCC 變體 + +就像 Planet 條碼一樣,您也可以調整 RM4SCC 的條碼高度。以下程式碼將高度設定為 100 px,為相同的資料字串產生第二個 **barcode image PNG**。 + +```csharp +// 4️⃣ Set a custom 100‑pixel bar height for RM4SCC +rm4sccGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Save the customized PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +## 完整、可執行的範例 + +將所有步驟結合即可得到一個單一、獨立的程式,會產生四個 PNG 檔案: + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +class Program +{ + static void Main() + { + string outputFolder = @"C:\Barcodes"; + Directory.CreateDirectory(outputFolder); + + // Planet barcode – default height + var planet = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planet.Parameters.Barcode.XDimension.Pixels = 4; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // Planet barcode – custom 100‑pixel height + planet.Parameters.Barcode.BarHeight.Pixels = 100; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – default height + var rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – custom 100‑pixel height + rm4scc.Parameters.Barcode.BarHeight.Pixels = 100; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); + + Console.WriteLine("All barcode PNG files have been generated in " + + + +## 接下來您應該學習什麼? + +以下教學涵蓋與本指南密切相關的主題,進一步延伸所示技巧。每個資源皆提供完整可執行的程式碼範例,並以步驟說明協助您精通其他 API 功能,或在自己的專案中探索替代實作方式。 + +- [建立條碼自訂高度 – 一維條碼](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-barcode-height-adjustment/) +- [建立條碼 PNG – DataMatrix 長寬比 – Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-aspect-ratio-customization/) +- [建立條碼圖像 C# – GS1 DataMatrix 範例](/barcode/english/net/gs1-barcode-encoding/gs1-datamatrix-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/hongkong/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md b/barcode/hongkong/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md new file mode 100644 index 000000000..c3b7d4f1b --- /dev/null +++ b/barcode/hongkong/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md @@ -0,0 +1,219 @@ +--- +category: general +date: 2026-08-15 +description: 使用 C# 建立 Planet 條碼,了解如何設定條碼尺寸以達到完美大小。逐步程式碼範例,示範實心與空白條。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create planet barcode +- how to set barcode dimensions +- planet barcode C# +- barcode X‑dimension +- empty barcode bars +language: zh-hant +lastmod: 2026-08-15 +og_description: 在 C# 中建立 Planet 條碼,並學習如何設定條碼尺寸。遵循本指南,即可立即產生實心與空心的 Planet 條碼。 +og_image_alt: Screenshot showing a Planet barcode with filled bars generated by C# + code +og_title: 在 C# 中建立星球條碼 – 完整逐步指南 +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Create planet barcode in C# and learn how to set barcode dimensions + for perfect sizing. Step‑by‑step code example with filled and empty bars. + headline: Create planet barcode in C# – complete programming guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.BarCode +title: 在 C# 中建立行星條碼 – 完整程式設計指南 +url: /zh-hant/python-java/general/create-planet-barcode-in-c-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 在 C# 中建立 Planet 條碼 – 完整程式指南 + +如果你需要在 C# 中 **建立 Planet 條碼**,本指南會精確說明如何操作。你亦會了解 **如何設定條碼尺寸**,以確保條碼的條寬符合你的需求。 + +在處理郵務服務或物流系統時,產生 Planet 條碼是相當常見的需求。以下程式碼同時示範預設的實心條版本與可選的空心條樣式,並提供 RM4SCC 格式的快速範例。完成本教學後,你將擁有一段可重複使用的程式碼片段,能直接放入任何 .NET 專案中。 + +## 前置條件 + +在開始之前,請確保你已具備: + +* 已安裝 .NET 6.0 或更新版本(此 API 亦相容 .NET Framework 4.6+) +* 專案已加入 **Aspose.BarCode for .NET** NuGet 套件 (`Aspose.BarCode`) +* 可寫入的資料夾路徑,用於儲存 PNG 檔案 +* 具備基本的 C# 語法與 Visual Studio(或其他 IDE)使用經驗 + +> **專業提示:** 使用絕對路徑或 `Path.Combine(Environment.CurrentDirectory, "output")` 以避免儲存影像時的權限問題。 + +## 步驟 1 – 初始化 Planet 條碼產生器(實心條) + +第一步是為 Planet 符號建立 `BarcodeGenerator` 實例。預設情況下產生器會產生 **實心** 條。 + +```csharp +// Step 1: Create a Planet barcode with the default (filled) bars +BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +`EncodeTypes.Planet` 列舉告訴 Aspose.BarCode 使用 Planet 格式,而 `"123456"` 則是要編碼的資料內容。 + +## 步驟 2 – 如何設定條碼尺寸以確保尺寸一致 + +若要控制每條的寬度,請調整 **X‑dimension**。這是 **設定條碼尺寸** 的主要方式,能確保條碼符合標籤尺寸。 + +```csharp +// Step 2: Set the X‑dimension (width of each bar) to 4 pixels +planetFilled.Parameters.Barcode.XDimension.Pixels = 4; +``` + +`Pixels` 屬性以螢幕像素定義條寬。一般郵寄標籤常用 2 – 5 像素;若需較大印刷可提高此數值。 + +## 步驟 3 – 將實心 Planet 條碼儲存為 PNG + +將影像寫入磁碟。PNG 可保留銳利邊緣,最適合掃描使用。 + +```csharp +// Step 3: Save the Planet barcode as a PNG image +planetFilled.Save("YOUR_DIRECTORY/PostalPlanetFilledBars.png", BarCodeImageFormat.Png); +``` + +將 `YOUR_DIRECTORY` 替換為先前準備好的路徑。執行程式後,你會看到與下圖類似的檔案。 + +![Planet barcode with filled bars](planet_filled.png "Planet barcode with filled bars – created by C# code") + +*Alt text:* **Planet 條碼(實心條)由 C# 程式碼產生** (matches `og_image_alt`)。 + +## 步驟 4 – 建立具有空心條的 Planet 條碼 + +若郵務單位要求條碼為 **空心**,則需在初始化產生器後切換 `FilledBars` 旗標。 + +```csharp +// Step 4: Create a Planet barcode with empty (unfilled) bars +BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +建構子保持相同;差異在於接下來的設定步驟。 + +## 步驟 5 – 如何設定條碼尺寸並使條碼為空心 + +同樣先設定 X‑dimension 以保持視覺一致性,然後關閉實心條。 + +```csharp +// Step 5: Set the X‑dimension and specify that bars should be empty +planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; +planetEmpty.Parameters.Barcode.FilledBars = false; // makes bars empty +``` + +`FilledBars = false` 屬性才是真正改變繪製樣式的關鍵。保持相同的 X‑dimension 可讓空心條碼與實心版本完美對齊。 + +## 步驟 6 – 儲存空心 Planet 條碼 + +```csharp +// Step 6: Save the Planet barcode with empty bars as a PNG image +planetEmpty.Save("YOUR_DIRECTORY/PostalPlanetEmptyBars.png", BarCodeImageFormat.Png); +``` + +此時你會得到兩個 PNG 檔案:一個實心條,另一個空心條,兩者尺寸相同。 + +## 步驟 7 – (可選)產生 RM4SCC 條碼作為比較 + +RM4SCC 是另一種郵務符號,同樣使用預設的實心條樣式。步驟與 Planet 範例相同,說明 **如何設定條碼尺寸** 可跨格式使用。 + +```csharp +// Step 7: Create an RM4SCC barcode (filled bars are the default) +BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Step 8: Set the X‑dimension for consistency +rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + +// Step 9: Save the RM4SCC barcode as a PNG image +rm4scc.Save("YOUR_DIRECTORY/PostalRM4SCCFilledBars.png", BarCodeImageFormat.Png); +``` + +執行上述三個步驟後會產生 `PostalRM4SCCFilledBars.png`,可與 Planet 輸出並排比較。 + +## 為何 X‑dimension 重要 + +X‑dimension 決定每條的 **最小可列印寬度**。若設定過低,條碼在低解析度印表機上可能模糊,導致掃描失敗。相反,若設定過大,則可能超出標籤尺寸並浪費空間。透過明確的 **如何設定條碼尺寸**,即可對最終影像大小取得確定性的控制,這對自動化郵寄工作流程至關重要。 + +## 常見陷阱與避免方式 + +| 問題 | 原因 | 解決方式 | +|-------|-------|-----| +| 條碼顯示被拉長 | X‑dimension 使用點 (points) 而非像素 | 永遠使用 `Pixels` 屬性以取得像素級控制 | +| 空心條仍顯示為實心 | 在調整 X‑dimension 後未將 `FilledBars` 設為 `false` | 在調整 X‑dimension **之後** 設定 `FilledBars = false` | +| 儲存的檔案為空白 | 輸出目錄不存在或缺乏寫入權限 | 確認目錄已建立 (`Directory.CreateDirectory`) 且應用程式具備足夠權限 | +| 印刷時影像模糊 | 從高解析度螢幕直接儲存低 DPI PNG | 使用 `BarCodeImageFormat.Png`(無損)並視需要設定 `Resolution` 屬性 | + +## 完整、可執行的範例 + +將下方程式碼完整複製到新的主控台專案(`dotnet new console`)中,然後執行。程式會在 `output` 資料夾產生三個 PNG 檔案。 + +```csharp +using System; +using System.IO; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Ensure output folder exists + string outDir = Path.Combine(Environment.CurrentDirectory, "output"); + Directory.CreateDirectory(outDir); + + // ---------- Planet barcode – filled bars ---------- + BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetFilled.Parameters.Barcode.XDimension.Pixels = 4; // set dimensions + planetFilled.Save(Path.Combine(outDir, "PostalPlanetFilledBars.png"), BarCodeImageFormat.Png); + + // ---------- Planet barcode – empty bars ---------- + BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; // same dimensions + planetEmpty.Parameters.Barcode.FilledBars = false; // make bars empty + planetEmpty.Save(Path.Combine(outDir, "PostalPlanetEmptyBars.png"), BarCodeImageFormat.Png); + + // ---------- RM4SCC barcode (filled bars) ---------- + BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; // consistent size + rm4scc.Save(Path.Combine(outDir, "PostalRM4SCCFilledBars.png"), BarCodeImageFormat.Png); + + Console.WriteLine($"Barcodes generated in: {outDir}"); + } +} +``` + +**預期結果:** 產生三個 PNG 檔案 — `PostalPlanetFilledBars.png`、`PostalPlanetEmptyBars.png`、`PostalRM4SCCFilledBars.png` — 每條寬度為 4 像素,隨時可列印或進一步處理。 + +## 結論 + +現在你已掌握如何在 C# 中 **建立 Planet 條碼**,以及如何精確 **設定條碼尺寸** 以支援實心與空心條樣式。同樣的模式也適用於其他符號,例如 RM4SCC,為任何郵務條碼需求提供彈性基礎。 + +接下來,你可以探索: + +* 在條碼下方加入可讀文字 (`BarcodeGenerator.Parameters.Barcode.CodeText`) +* 使用 `Parameters.Barcode.BarColor` 變更條碼顏色 +* 產生向量格式(SVG、EPS)以利可縮放列印 + +歡迎自行嘗試不同的 X‑dimension、資料字串與輸出格式,以符合你的工作流程。祝程式開發順利! + +## 接下來該學什麼? + +以下教學與本指南的技巧緊密相關,提供完整可執行的程式碼範例與逐步說明,協助你精通更多 API 功能,並在自己的專案中探索其他實作方式。 + +- [How to create barcode quiet zone for Code 16K using Aspose.BarCode for .NET](/barcode/english/net/code-16k-encoding/code-16k-quiet-zone-settings/) +- [How to Create Barcode Quiet Zone for ITF-14 Using Aspose.BarCode for .NET](/barcode/english/net/itf-14-barcode-customization/itf-14-barcode-quiet-zone-configuration/) +- [How to create Aztec barcode with error correction in .NET](/barcode/english/net/aztec-barcode-encoding/aztec-error-level-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/hongkong/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md b/barcode/hongkong/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md new file mode 100644 index 000000000..7730c1cca --- /dev/null +++ b/barcode/hongkong/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md @@ -0,0 +1,235 @@ +--- +category: general +date: 2026-08-15 +description: Databar 在 C# 中擴充堆疊條碼產生功能。了解如何產生條碼圖像、設定 DataBar 版面的欄與列。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- databar expanded stacked +- generate barcode image +- how to generate barcode +- how to set columns +- how to set rows +language: zh-hant +lastmod: 2026-08-15 +og_description: Databar 在 C# 中擴充堆疊條碼產生功能。請依照此一步步指南,快速產生條碼圖像、設定欄位與列。 +og_image_alt: Screenshot of a databar expanded stacked barcode generated with C# +og_title: Databar 擴展堆疊 – 在 C# 中生成條碼圖像 +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + headline: 'Databar expanded stacked: generate barcode image in C#' + type: TechArticle +- description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + name: 'Databar expanded stacked: generate barcode image in C#' + steps: + - name: 1. Install the Aspose.BarCode library + text: 'The code uses the **Aspose.BarCode for .NET** library, which provides the + `BarcodeGenerator` class. Install the NuGet package with the following command:' + - name: 2. Create a barcode generator for **databar expanded stacked** + text: The generator is the entry point for all barcode operations. You must specify + the symbology (`EncodeTypes.DatabarExpandedStacked`) and the text to encode. + - name: 3. How to set columns for DataBar + text: The `Columns` property controls how many vertical modules appear in the + stacked barcode. Valid values are 2, 3, or 4. Setting columns influences the + barcode’s width and the amount of data it can store. + - name: 4. Save the 4‑column barcode image + text: Saving the image produces a file that you can embed in reports, invoices, + or mobile apps. The `Save` method accepts a file path and an image format. + - name: 5. How to set rows for DataBar + text: Rows add a second dimension to the stacked layout, allowing more data to + be encoded without widening the barcode. The `Rows` property defaults to 1; + you can increase it up to 3 for the expanded stacked variant. + - name: 6. Save the 3‑row barcode image + text: '```csharp // Step 5: Save the 3‑row barcode image barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", + BarCodeImageFormat.Png); ```' + - name: 7. Complete C# example to generate barcode image + text: 'Putting all steps together yields a self‑contained program you can copy + into a console application:' + type: HowTo +tags: +- barcode +- C# +- Aspose.BarCode +title: Databar 擴展堆疊式:在 C# 中產生條碼圖像 +url: /zh-hant/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Databar expanded stacked:在 C# 中產生條碼圖像 + +如果您需要在 C# 中產生 **databar expanded stacked** 條碼圖像,本指南將完整示範 **如何產生條碼** 圖像,並可自訂欄與列的版面配置。您將會看到如何設定欄、設定列,以及如何在不離開 IDE 的情況下儲存產生的圖像。 + +本教學內容包括: + +* 為 **databar expanded stacked** 符號建立條碼產生器。 +* 設定 4 欄版面與 3 列版面。 +* 將每種配置儲存為 PNG 檔案。 +* 處理如欄數無效等邊緣案例的技巧。 + +不需要額外的文件說明;完整且可執行的範例已包含於此。 + +![Databar expanded stacked barcode example](YOUR_DIRECTORY/DatabarCols4.png){: .center alt="databar expanded stacked barcode generated with C#" } + +## Databar expanded stacked 條碼產生步驟 + +### 1. 安裝 Aspose.BarCode 函式庫 + +程式碼使用 **Aspose.BarCode for .NET** 函式庫,提供 `BarcodeGenerator` 類別。使用以下指令安裝 NuGet 套件: + +```bash +dotnet add package Aspose.BarCode +``` + +套件安裝完成後,於檔案頂部加入必要的命名空間: + +```csharp +using Aspose.BarCode.Generation; +``` + +### 2. 為 **databar expanded stacked** 建立條碼產生器 + +產生器是所有條碼操作的入口點。必須指定符號 (`EncodeTypes.DatabarExpandedStacked`) 以及要編碼的文字。 + +```csharp +// Step 1: Create a barcode generator for Databar Expanded Stacked +BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); +``` + +*為什麼這很重要:* `EncodeTypes` 列舉告訴函式庫要產生哪種條碼格式。使用 **databar expanded stacked** 可確保產生的圖像符合 GS1 DataBar 的堆疊版規範。 + +### 3. 如何設定 DataBar 的欄 (Columns) + +`Columns` 屬性控制堆疊條碼中垂直模組的數量。有效值為 2、3 或 4。設定欄位會影響條碼的寬度以及可儲存的資料量。 + +```csharp +// Step 2: Configure a 4‑column layout +barcode.Parameters.Barcode.DataBar.Columns = 4; +``` + +**提示:** 若嘗試指派超出允許範圍的值,函式庫會拋出 `ArgumentException`。在向使用者提供欄位選擇時,務必先驗證輸入。 + +### 4. 儲存 4 欄條碼圖像 + +儲存圖像會產生可嵌入報表、發票或行動應用程式的檔案。`Save` 方法接受檔案路徑與影像格式。 + +```csharp +// Step 3: Save the 4‑column barcode image +barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); +``` + +檔案寫入後,您可以使用任何圖像檢視器開啟,以確認 **databar expanded stacked** 圖樣正確顯示。 + +### 5. 如何設定 DataBar 的列 (Rows) + +列為堆疊版面加入第二維度,讓在不增加條碼寬度的情況下編碼更多資料。`Rows` 屬性預設為 1;對於擴展堆疊變體,可提升至最多 3 列。 + +```csharp +// Step 4: Switch to a 3‑row layout (columns remain unchanged) +barcode.Parameters.Barcode.DataBar.Rows = 3; +``` + +**為什麼列很重要:** 增加列數可在保持資料容量的同時減少整體寬度,對於窄標籤或行動螢幕空間特別有用。 + +### 6. 儲存 3 列條碼圖像 + +```csharp +// Step 5: Save the 3‑row barcode image +barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); +``` + +現在您擁有兩個 PNG 檔案——一個為 4 欄版面,另一個為 3 列版面——皆使用 **databar expanded stacked** 符號。 + +### 7. 完整 C# 範例:產生條碼圖像 + +將所有步驟整合即可得到一個可直接複製到主控台應用程式的自足程式: + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace DatabarExpandedStackedDemo +{ + class Program + { + static void Main() + { + // Create the generator for Databar Expanded Stacked + BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); + + // Configure a 4‑column layout and save + barcode.Parameters.Barcode.DataBar.Columns = 4; + barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); + Console.WriteLine("4‑column barcode saved."); + + // Change to a 3‑row layout (columns stay at 4) and save + barcode.Parameters.Barcode.DataBar.Rows = 3; + barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); + Console.WriteLine("3‑row barcode saved."); + } + } +} +``` + +**預期輸出** + +執行程式會印出: + +``` +4‑column barcode saved. +3‑row barcode saved. +``` + +並在 `YOUR_DIRECTORY` 中建立兩個 PNG 檔案。開啟檔案即可驗證每張圖像皆顯示有效的 **databar expanded stacked** 條碼。 + +## 常見陷阱與實用技巧 + +* **目錄是否存在** – `Save` 不會自動建立缺少的資料夾。請確保 `YOUR_DIRECTORY` 已存在,或在儲存前使用 `Directory.CreateDirectory`。 +* **欄位限制** – 除 2、3、4 之外的值會觸發例外。可使用簡單的範圍檢查來防止使用者輸入錯誤: + + ```csharp + int columns = 4; + if (columns < 2 || columns > 4) throw new ArgumentOutOfRangeException(nameof(columns)); + barcode.Parameters.Barcode.DataBar.Columns = columns; + ``` + +* **列數限制** – 擴展堆疊變體最多支援 3 列。將 `Rows` 設為 0 或大於 3 的值同樣會拋出例外。 +* **影像格式** – `BarCodeImageFormat.Png` 提供無損品質,最適合列印。只有在檔案大小是主要考量時才使用 `Jpeg`。 + +## 後續步驟 + +現在您已了解如何使用自訂欄與列配置 **產生條碼** 圖像,您可以: + +* 將產生器整合至 Web API,隨需提供條碼圖像。 +* 結合條碼與 PDF 產生函式庫,將其嵌入發票中。 +* 使用相同的 `Parameters.Barcode.DataBar` 物件,嘗試其他 DataBar 變體(`DatabarExpanded`、`DatabarLimited`)。 + +如需更深入的客製化——例如變更條紋顏色、加入可讀文字,或套用 QR‑code 疊加——請參考 Aspose.BarCode 文件中 `BarcodeGenerator` 屬性的說明。 + +--- + +依照本指南操作,您已掌握 **databar expanded stacked** 工作流程,學會 **如何設定欄**、**如何設定列**,並產生兩個可直接投入生產使用的條碼圖像。祝開發順利! + +## 接下來該學什麼? + +以下教學與本指南示範的技巧密切相關,提供完整可執行的程式碼範例與逐步說明,協助您精通其他 API 功能並在專案中探索替代實作方式。 + +- [產生條碼圖像 – GS1 Coupon UPC-A Databar](/barcode/english/net/gs1-barcode-encoding/gs1-coupon-upc-a-databar-configuration/) +- [建立 DotCode 條碼圖像 – 列與欄 (Aspose.BarCode)](/barcode/english/net/dotcode-barcode-configuration/dotcode-rows-columns-configuration/) +- [如何產生條碼 – 一維條碼類型](/barcode/english/net/one-dimensional-barcode-types/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/hongkong/python-java/general/how-to-set-barcode-complete-c-guide/_index.md b/barcode/hongkong/python-java/general/how-to-set-barcode-complete-c-guide/_index.md new file mode 100644 index 000000000..3de003736 --- /dev/null +++ b/barcode/hongkong/python-java/general/how-to-set-barcode-complete-c-guide/_index.md @@ -0,0 +1,233 @@ +--- +category: general +date: 2026-08-15 +description: 如何在 C# 中設定條碼參數並產生條碼圖像。一步一步學習建立 Databar 條碼並儲存為 PNG 檔案。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to set barcode +- how to generate barcode +- create databar barcode +- generate barcode image c# +language: zh-hant +lastmod: 2026-08-15 +og_description: 如何在 C# 中使用 Aspose.Barcode 設定條碼,然後產生條碼圖像。請跟隨本指南建立 Databar 條碼並儲存 PNG + 檔案。 +og_image_alt: Screenshot of a Databar barcode saved as PNG using C# code +og_title: 如何在 C# 中設定條碼 – 步驟指南 +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: How to set barcode parameters in C# and generate barcode images. Learn + step‑by‑step to create Databar barcode and save PNG files. + headline: How to set barcode – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.Barcode +title: 如何設定條碼 – 完整 C# 指南 +url: /zh-hant/python-java/general/how-to-set-barcode-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何設定條碼 – 完整 C# 指南 + +如果你正在尋找在 .NET 專案中 **如何設定條碼** 參數,本教學將展示你所需的完整步驟。你將學會 **如何產生條碼** 圖片、建立 Databar 條碼,並以像素為單位精確控制條碼高度——全部使用乾淨、可投入生產的 C# 程式碼。 + +在本指南中,你將會: + +* 安裝所需的 NuGet 套件。 +* 建立 Databar Omnidirectional 條碼(「建立 Databar 條碼」部分)。 +* 調整 X‑dimension 與條碼高度,以示範 **如何設定條碼** 的尺寸。 +* 將結果儲存為 PNG 檔案,涵蓋 **generate barcode image C#** 的情境。 + +此程式碼相容於最新的 Aspose.Barcode for .NET(撰寫時為 v 24.12),可在 .NET 6 或更新版本上執行。 + +--- + +## 前置條件 + +在開始之前,請確保你已具備: + +* .NET 6 SDK(或更新版本)。 +* 如 Visual Studio 2022 或 VS Code 等開發環境。 +* 可連網下載 Aspose.Barcode NuGet 套件的網路連線。 + +不需要額外的第三方函式庫。 + +--- + +## 第一步:安裝 Aspose.Barcode for .NET + +在 C# 中 **產生條碼** 圖片最可靠的方式是使用 Aspose.Barcode。於專案資料夾的終端機執行以下指令: + +```bash +dotnet add package Aspose.BarCode +``` + +此指令會將最新的穩定版套件加入你的專案檔,確保你擁有 `BarcodeGenerator` 類別與 `EncodeTypes` 列舉。 + +*小技巧:* 定期使用 `dotnet list package --outdated` 檢查套件更新,以獲得錯誤修正與新條碼符號的支援。 + +--- + +## 第二步:建立 Databar 條碼(create Databar barcode) + +Databar Omnidirectional 適用於零售與物流,因為它能編碼 GTIN‑14 值加上其他資料。以下程式碼會建立條碼物件: + +```csharp +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +// Step 2: Initialize the generator for a Databar Omnidirectional barcode +BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); +``` + +*為什麼重要:* `EncodeTypes.DatabarOmniDirectional` 列舉告訴函式庫使用 Databar 符號,而字串 `"(01)12345678901231"` 符合 GS1 應用識別碼格式,用於 14 位元的 GTIN。 + +--- + +## 第三步:定義常用參數 – X‑dimension 與基礎高度 + +大多數條碼掃描器要求最小 X‑dimension(最窄條的寬度)。將其設為 2 像素即可得到緊湊且可讀的圖像。 + +```csharp +// Step 3: Set a 2‑pixel X‑dimension (common for most scanners) +generator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +之後你可以在不重新建立產生器的情況下調整條碼高度——這正是 **如何設定條碼** 屬性於實例化之後的核心。 + +--- + +## 第四步:設定第一個條碼高度並儲存圖像(generate barcode image C#) + +現在示範 **如何設定條碼** 高度的第一步。條碼高度決定每條的視覺長度;30 像素會產生較短的條碼,60 像素則會產生較高的版本。 + +```csharp +// Step 4a: 30‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 30; + +// Save the first PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); +``` + +執行後,`DatabarBarHeight30Pixels.png` 會包含一個條高為 30 像素的 Databar 條碼。使用任何圖像檢視器開啟即可驗證結果。 + +--- + +## 第五步:變更條碼高度並儲存第二張圖像 + +為說明 **如何設定條碼** 的值可以即時變更,我們將條碼高度調整為 60 像素,並寫入第二個檔案。 + +```csharp +// Step 5a: 60‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 60; + +// Save the second PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); +``` + +現在你擁有兩個 PNG 檔案,內容相同的 Databar 資料但視覺高度不同。這在需要較大條碼供列印標籤或較小條碼供螢幕顯示時相當實用。 + +--- + +## 第六步:完整、可執行的範例 + +將所有步驟整合,以下是一個自包含的主控台程式,執行上述所有操作。將程式碼複製到新的 `Program.cs` 檔案,將 `YOUR_DIRECTORY` 替換為實際資料夾路徑,然後執行。 + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Initialize the generator for a Databar Omnidirectional barcode + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); + + // Common parameters + generator.Parameters.Barcode.XDimension.Pixels = 2; // 2‑pixel narrow bar + + // First image: 30‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 30; + generator.Save(@"C:\Barcodes\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 30‑pixel barcode."); + + // Second image: 60‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 60; + generator.Save(@"C:\Barcodes\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 60‑pixel barcode."); + + // Dispose the generator to free native resources + generator.Dispose(); + } +} +``` + +**預期輸出** + +執行程式後,主控台會印出: + +``` +Saved 30-pixel barcode. +Saved 60-pixel barcode. +``` + +而 `C:\Barcodes`(或你自行指定的路徑)資料夾中會出現兩個 PNG 檔案。兩張圖片皆顯示可被標準 GS1 讀取器掃描的有效 Databar Omnidirectional 條碼。 + +--- + +## 常見問題 + +**這能支援其他影像格式嗎?** +可以。將 `BarCodeImageFormat.Png` 改為 `Jpeg`、`Bmp`、`Gif` 或 `Tiff` 即可產生對應的檔案類型。 + +**我可以變更前景顏色嗎?** +將 `generator.Parameters.Barcode.ForeColor` 設為任意 `System.Drawing.Color` 值,例如 `Color.Blue`。 + +**如果我要使用其他符號集該怎麼辦?** +在建構子中傳入不同的 `EncodeTypes` 值,例如 `EncodeTypes.Code128` 產生線性條碼,或 `EncodeTypes.QR` 產生矩陣碼。 + +**有沒有辦法把條碼嵌入 PDF?** +Aspose.Barcode 提供 `PdfGenerator` 類別。產生圖像後,你可以使用 Aspose.PDF 將其加入 PDF 頁面。 + +--- + +## C# 條碼產生的最佳實踐 + +* **重複使用 `BarcodeGenerator` 實例**,當你僅需微調尺寸時,可避免不必要的記憶體配置。 +* **釋放產生器**(`generator.Dispose()`)於使用完畢後,以即時釋放原生資源。 +* **驗證輸入資料**(例如 GTIN 長度)於建立條碼前,防止執行時例外。 +* **使用實體掃描器測試** X‑dimension 或條碼高度的變更;極端值可能影響可讀性。 +* **確保輸出資料夾對執行帳號具有寫入權限**,否則 `Save` 會拋出 `UnauthorizedAccessException`。 + +--- + +## 結論 + +現在你已掌握 **如何設定條碼** 的屬性,如 X‑dimension 與條碼高度,亦了解 **如何產生條碼** 圖片的完整 C# 程式碼,並能使用 Aspose.Barcode 建立 **create Databar barcode** 檔案。透過本完整範例,你可以產生多個 PNG 檔案,具備不同視覺特性,滿足任何 .NET 應用程式對 **generate barcode image C#** 的需求。 + +接下來,可探索如 **如何大量產生條碼**、將條碼嵌入 PDF,或切換至 QR、Code 128 等其他符號集。試著調整本文示範的參數,以微調條碼外觀,符合你的掃描環境。祝開發順利! + +## 接下來你可以學什麼? + +以下教學與本指南緊密相關,能進一步擴充你的技巧。每篇資源皆提供完整可執行的程式碼範例與逐步說明,協助你掌握更多 API 功能或探索替代實作方式。 + +- [How to Generate DataMatrix Barcodes (ECC 200) with Aspose.BarCode for .NET](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-ecc-200-configuration/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [How to Generate Barcode – Code 39 Configuration with Aspose.BarCode](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-code-39-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/hungarian/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md b/barcode/hungarian/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md new file mode 100644 index 000000000..619a4ec6b --- /dev/null +++ b/barcode/hungarian/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md @@ -0,0 +1,185 @@ +--- +category: general +date: 2026-08-15 +description: Vonalkód kép PNG C#-ban – tanulja meg, hogyan generáljon postai vonalkódokat, + készítsen Planet vonalkódot, és módosítsa a vonalkód magasságát egy egyszerű generátorral. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- barcode image png +- barcode generator c# +- generate postal barcode +- create planet barcode +- change barcode height +language: hu +lastmod: 2026-08-15 +og_description: A C#-ban készült vonalkód kép PNG oktatóanyag bemutatja, hogyan generálhatunk + postai vonalkódokat, hozhatunk létre Planet vonalkódot, és módosíthatjuk a vonalkód + magasságát a BarcodeGenerator API használatával. +og_image_alt: Screenshot of generated PNG barcode with custom height using C# BarcodeGenerator +og_title: Vonalkód kép PNG C#-ban – vonalkódok generálása és beállítása +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Barcode image PNG in C# – learn how to generate postal barcodes, create + a Planet barcode, and change barcode height with a simple generator. + headline: Barcode image PNG in C# generate barcodes, change height + type: TechArticle +tags: +- barcode +- C# +- PNG +- postal +- generator +title: Vonalkód kép PNG C#-ban, vonalkódok generálása, magasság módosítása +url: /hu/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Barcode image PNG C#‑ban – vonalkódok generálása, magasság módosítása + +Ha **barcode image PNG**-re van szükséged C#‑ban, ez az útmutató végigvezet a teljes folyamaton. Megtanulod, hogyan generálj postai vonalkódokat, hogyan hozz létre egy Planet vonalkódot, és hogyan változtasd meg a vonalkód magasságát anélkül, hogy elhagynád az IDE‑t. + +Megbízható PNG vonalkódok generálása gyakori követelmény a szállítási címkék, készletkezelő rendszerek és automatizált postázási megoldások számára. A tutorial végére egy újrahasználható kódrészletet kapsz, amely magas minőségű PNG fájlokat állít elő mind a Planet, mind az RM4SCC formátumokhoz, és megérted, hogyan állítható be a vonal magassága a postai előírásoknak megfelelően. + +## Amire szükséged lesz + +- .NET 6+ vagy .NET Framework 4.7.2 (a BarcodeGenerator API minden aktuális .NET futtatókörnyezettel működik) +- Hivatkozás a **Aspose.BarCode for .NET** NuGet csomagra (vagy bármely kompatibilis könyvtárra, amely biztosítja a `BarcodeGenerator`, `EncodeTypes` és `BarCodeImageFormat` elemeket) +- Alapvető ismeretek a C# szintaxisról és a fájl I/O‑ról + +Nem szükséges további eszköz; a kód fut Visual Studio‑ban, Rider‑ben vagy a `dotnet` CLI‑ben. + +## Barcode image PNG – alap generálás + +Az első lépés egy **barcode image PNG** létrehozása alapértelmezett méretekkel. Ez adja a kiindulási fájlt, amelyet később testreszabhatsz. + +```csharp +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +// Define the output folder (replace with your own path) +string outputFolder = @"C:\Barcodes"; + +// Ensure the folder exists +Directory.CreateDirectory(outputFolder); + +// 1️⃣ Create a Planet barcode generator with default height +BarcodeGenerator planetGenerator = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + +// Set the module width (X‑dimension) to 4 pixels – this defines the thin bar size +planetGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the image as PNG; this is the first **barcode image PNG** you’ll produce +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +**Miért működik ez:** +- `EncodeTypes.Planet` azt mondja a generátornak, hogy a Planet szimbólumot használja, amely sok postai szolgáltatás számára kötelező. +- `XDimension.Pixels` szabályozza a legkisebb vonal szélességét; a 4 px érték olvasható vonalkódot eredményez a tipikus címkeméretekben. +- A `Save` metódus egy **barcode image PNG** fájlt ír a lemezre, megőrizve minden vektor információt raszter pixelekként. + +## Vonalkód magasság módosítása – a vizuális súly testreszabása + +A postai irányelvek gyakran meghatároznak egy konkrét vonalmagasságot. Az alábbi kódrészlet bemutatja, hogyan állítható be egy egyedi 100‑pixel magasság ugyanahhoz a Planet vonalkódhoz. + +```csharp +// 2️⃣ Apply a custom 100‑pixel bar height +planetGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Overwrite or save as a new file to keep both versions +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +**Miért változtatod a magasságot:** +A magasabb vonal javítja a beolvasás megbízhatóságát alacsony felbontású nyomtatókon, míg egy alacsonyabb vonal csökkenti a címke helyigényét. A `BarHeight.Pixels` tulajdonság lehetővé teszi ennek az attribútumnak a finomhangolását anélkül, hogy az X‑dimenziót befolyásolná. + +## Postai vonalkód generálása – RM4SCC példa létrehozása + +Az RM4SCC formátum egy másik gyakori postai vonalkód az Egyesült Királyságban. A generálási lépések tükrözik a Planet példát, erősítve a **barcode generator c#** mintát. + +```csharp +// 3️⃣ Create an RM4SCC barcode generator with default height +BarcodeGenerator rm4sccGenerator = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Keep the same module width for consistency +rm4sccGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the default‑height PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +## Vonalkód magasság módosítása – RM4SCC variáció + +A Planet vonalkódhoz hasonlóan az RM4SCC vonalmagasságát is beállíthatod. Az alábbi kód 100 px magasságot állít be, egy második **barcode image PNG**-t hozva létre ugyanahhoz az adatkarakterlánchoz. + +```csharp +// 4️⃣ Set a custom 100‑pixel bar height for RM4SCC +rm4sccGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Save the customized PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +## Teljes, futtatható példa + +Az összes lépés összerakásával egy önálló programot kapunk, amely négy PNG fájlt hoz létre: + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +class Program +{ + static void Main() + { + string outputFolder = @"C:\Barcodes"; + Directory.CreateDirectory(outputFolder); + + // Planet barcode – default height + var planet = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planet.Parameters.Barcode.XDimension.Pixels = 4; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // Planet barcode – custom 100‑pixel height + planet.Parameters.Barcode.BarHeight.Pixels = 100; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – default height + var rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – custom 100‑pixel height + rm4scc.Parameters.Barcode.BarHeight.Pixels = 100; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); + + Console.WriteLine("All barcode PNG files have been generated in " + + + +## Mit tanulj meg legközelebb? + +Az alábbi oktatóanyagok szorosan kapcsolódó témákat fednek le, amelyek a jelen útmutatóban bemutatott technikákra épülnek. Minden forrás teljes, működő kódrészleteket tartalmaz lépésről‑lépésre magyarázatokkal, hogy segítsenek elsajátítani további API funkciókat és alternatív megvalósítási megközelítéseket a saját projektjeidben. + +- [Egyedi magasságú vonalkód létrehozása – egydimenziós vonalkódok](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-barcode-height-adjustment/) +- [Barcode PNG létrehozása – DataMatrix képarány – Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-aspect-ratio-customization/) +- [Barcode kép létrehozása C#‑ban – GS1 DataMatrix példa](/barcode/english/net/gs1-barcode-encoding/gs1-datamatrix-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/hungarian/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md b/barcode/hungarian/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md new file mode 100644 index 000000000..a76f24007 --- /dev/null +++ b/barcode/hungarian/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-08-15 +description: Készíts planet vonalkódot C#‑ban, és tanuld meg, hogyan állítsd be a + vonalkód méreteit a tökéletes méretezéshez. Lépésről‑lépésre kódrészlet kitöltött + és üres sávokkal. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create planet barcode +- how to set barcode dimensions +- planet barcode C# +- barcode X‑dimension +- empty barcode bars +language: hu +lastmod: 2026-08-15 +og_description: Készíts planet vonalkódot C#-ban, és tanuld meg, hogyan állíthatod + be a vonalkód méreteit. Kövesd ezt az útmutatót, hogy azonnal generálj kitöltött + és üres Planet vonalkódokat. +og_image_alt: Screenshot showing a Planet barcode with filled bars generated by C# + code +og_title: Planéta vonalkód létrehozása C#‑ban – teljes lépésről lépésre útmutató +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Create planet barcode in C# and learn how to set barcode dimensions + for perfect sizing. Step‑by‑step code example with filled and empty bars. + headline: Create planet barcode in C# – complete programming guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.BarCode +title: Planéta vonalkód létrehozása C#‑ban – teljes programozási útmutató +url: /hu/python-java/general/create-planet-barcode-in-c-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Planet vonalkód létrehozása C#‑ban – teljes programozási útmutató + +Ha **planet vonalkódot** szeretnél **C#‑ban** létrehozni, ez az útmutató pontosan megmutatja, hogyan teheted meg. Emellett megtudod, **hogyan állítsd be a vonalkód méreteit**, hogy a vonalak a kívánt szélességben jelenjenek meg. + +A Planet vonalkódok generálása gyakori, ha postai vagy logisztikai rendszerekkel dolgozol. Az alábbi kód mind a alapértelmezett kitöltött‑sávos változatot, mind az opcionális üres‑sávos stílust lefedi, valamint egy gyors példát a RM4SCC formátumra. A tutorial végére egy újrahasználható kódrészletet kapsz, amelyet bármely .NET projektbe beilleszthetsz. + +## Előfeltételek + +Mielőtt elkezdenéd, győződj meg róla, hogy a következők telepítve vannak: + +* .NET 6.0 vagy újabb (az API működik .NET Framework 4.6+ verzióval is) +* A **Aspose.BarCode for .NET** NuGet csomag (`Aspose.BarCode`) hozzáadva a projekthez +* Írási jogosultsággal rendelkező mappa, ahová a PNG fájlok mentésre kerülnek +* Alapvető ismeretek a C# szintaxisról és a Visual Studio‑ról (vagy bármely IDE‑ről) + +> **Pro tip:** Használj abszolút elérési utat vagy `Path.Combine(Environment.CurrentDirectory, "output")`‑t, hogy elkerüld a jogosultsági problémákat a képek mentésekor. + +## 1. lépés – Planet vonalkód generátor inicializálása (kitöltött sávok) + +Az első lépés egy `BarcodeGenerator` példány létrehozása a Planet szimbólumhoz. Alapértelmezés szerint a generátor **kitöltött** sávokat hoz létre. + +```csharp +// Step 1: Create a Planet barcode with the default (filled) bars +BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +Az `EncodeTypes.Planet` enum azt mondja az Aspose.BarCode‑nak, hogy a Planet formátumot használja, míg a `"123456"` a kódolandó adat. + +## 2. lépés – Hogyan állítsd be a vonalkód méreteit a konzisztens méretezéshez + +A sávok szélességének szabályozásához állítsd be az **X‑dimenziót**. Ez az elsődleges módja a **vonalkód méreteinek beállítására**, és biztosítja, hogy a vonalkód illeszkedjen a címke méretéhez. + +```csharp +// Step 2: Set the X‑dimension (width of each bar) to 4 pixels +planetFilled.Parameters.Barcode.XDimension.Pixels = 4; +``` + +A `Pixels` tulajdonság a sáv szélességét képpontban (pixel) definiálja. Általános értékek 2 – 5 pixel a szabványos postai címkékhez; nagyobb nyomatokhoz növeld az értéket. + +## 3. lépés – Kitöltött Planet vonalkód mentése PNG‑ként + +Most írd a képet a lemezre. A PNG megőrzi a tiszta éleket, ami ideális a beolvasáshoz. + +```csharp +// Step 3: Save the Planet barcode as a PNG image +planetFilled.Save("YOUR_DIRECTORY/PostalPlanetFilledBars.png", BarCodeImageFormat.Png); +``` + +Cseréld le a `YOUR_DIRECTORY`‑t a korábban előkészített útvonalra. A kód futtatása után egy az alábbi képre hasonló fájlt láthatsz. + +![Planet barcode with filled bars](planet_filled.png "Planet barcode with filled bars – created by C# code") + +*Alt text:* **Planet vonalkód kitöltött sávokkal, C# kóddal generálva** (matches `og_image_alt`). + +## 4. lépés – Planet vonalkód létrehozása üres (nem kitöltött) sávokkal + +Ha a postai szolgáltatód **üres** sávokat igényel, a generátor inicializálása után állítsd át a `FilledBars` jelzőt. + +```csharp +// Step 4: Create a Planet barcode with empty (unfilled) bars +BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +A konstruktor azonos; a különbség a következő konfigurációs lépésben rejlik. + +## 5. lépés – Hogyan állítsd be a vonalkód méreteit és tedd a sávokat üressé + +Ismét állítsd be az X‑dimenziót a vizuális konzisztencia érdekében, majd tiltsd le a kitöltött sávokat. + +```csharp +// Step 5: Set the X‑dimension and specify that bars should be empty +planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; +planetEmpty.Parameters.Barcode.FilledBars = false; // makes bars empty +``` + +A `FilledBars = false` tulajdonság az, ami ténylegesen megváltoztatja a megjelenítési stílust. Azonos X‑dimenzió megtartása biztosítja, hogy az üres‑sávos vonalkód pontosan illeszkedjen a kitöltött változathoz. + +## 6. lépés – Üres Planet vonalkód mentése + +```csharp +// Step 6: Save the Planet barcode with empty bars as a PNG image +planetEmpty.Save("YOUR_DIRECTORY/PostalPlanetEmptyBars.png", BarCodeImageFormat.Png); +``` + +Most már két PNG fájlod lesz: egy szilárd sávokkal és egy üreges sávokkal, mindkettő azonos méretekkel. + +## 7. lépés – (Opcionális) RM4SCC vonalkód generálása összehasonlításként + +Az RM4SCC egy másik postai szimbólum, amely szintén az alapértelmezett kitöltött‑sávos stílust használja. A lépések tükrözik a Planet példát, bemutatva, hogy a **vonalkód méreteinek beállítása** formátumok között is működik. + +```csharp +// Step 7: Create an RM4SCC barcode (filled bars are the default) +BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Step 8: Set the X‑dimension for consistency +rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + +// Step 9: Save the RM4SCC barcode as a PNG image +rm4scc.Save("YOUR_DIRECTORY/PostalRM4SCCFilledBars.png", BarCodeImageFormat.Png); +``` + +E három lépés futtatása `PostalRM4SCCFilledBars.png`‑t hoz létre, amelyet oldalról oldalra összehasonlíthatsz a Planet eredményekkel. + +## Miért fontos az X‑dimenzió + +Az X‑dimenzió határozza meg minden egyes sáv **minimum nyomtatható szélességét**. Ha túl alacsonyra állítod, a vonalkód elmosódhat alacsony felbontású nyomtatókon, ami beolvasási hibákat okoz. Ezzel szemben egy túl nagy X‑dimenzió meghaladhatja a címke méretét és felesleges helyet foglal el. Az **X‑dimenzió beállításával** determinisztikus kontrollt nyersz a végső kép mérete felett, ami elengedhetetlen az automatizált postai munkafolyamatokhoz. + +## Gyakori hibák és elkerülésük módja + +| Probléma | Ok | Megoldás | +|----------|----|----------| +| A vonalkód nyújtott | X‑dimenzió pontban (pt) a pixel helyett | Mindig a `Pixels` tulajdonságot használd pixel‑pontos vezérléshez | +| Az üres sávok még mindig kitöltöttek | `FilledBars` nincs `false`‑ra állítva az X‑dimenzió módosítása után | Állítsd be a `FilledBars = false` *az* X‑dimenzió módosítása **után** | +| A mentett fájl üres | Kimeneti könyvtár nem létezik vagy nincs írási jogosultság | Győződj meg róla, hogy a könyvtár létezik (`Directory.CreateDirectory`) és az alkalmazás megfelelő jogokkal fut | +| A kép nyomtatáskor elmosódik | Alacsony DPI‑jú PNG mentve magas felbontású monitorról | Használd a `BarCodeImageFormat.Png`‑t (veszteségmentes) és szükség esetén állítsd be a `Resolution` tulajdonságot | + +## Teljes, futtatható példa + +Másold az alábbi blokkot egy új konzolprojektbe (`dotnet new console`), majd futtasd. A program három PNG fájlt hoz létre az `output` mappában. + +```csharp +using System; +using System.IO; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Ensure output folder exists + string outDir = Path.Combine(Environment.CurrentDirectory, "output"); + Directory.CreateDirectory(outDir); + + // ---------- Planet barcode – filled bars ---------- + BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetFilled.Parameters.Barcode.XDimension.Pixels = 4; // set dimensions + planetFilled.Save(Path.Combine(outDir, "PostalPlanetFilledBars.png"), BarCodeImageFormat.Png); + + // ---------- Planet barcode – empty bars ---------- + BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; // same dimensions + planetEmpty.Parameters.Barcode.FilledBars = false; // make bars empty + planetEmpty.Save(Path.Combine(outDir, "PostalPlanetEmptyBars.png"), BarCodeImageFormat.Png); + + // ---------- RM4SCC barcode (filled bars) ---------- + BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; // consistent size + rm4scc.Save(Path.Combine(outDir, "PostalRM4SCCFilledBars.png"), BarCodeImageFormat.Png); + + Console.WriteLine($"Barcodes generated in: {outDir}"); + } +} +``` + +**Várható eredmény:** három PNG fájl – `PostalPlanetFilledBars.png`, `PostalPlanetEmptyBars.png` és `PostalRM4SCCFilledBars.png` – mind 4 pixel széles sávokkal, készen állva a nyomtatásra vagy további feldolgozásra. + +## Összegzés + +Most már tudod, hogyan **hozz létre planet vonalkódot** C#‑ban, és pontosan **hogyan állítsd be a vonalkód méreteit** mind a kitöltött, mind az üres sáv stílushoz. Ugyanez a minta alkalmazható más szimbólumokra, például az RM4SCC‑re, így rugalmas alapot kapsz bármilyen postai‑vonalkód igényhez. + +További lépések, amiket érdemes felfedezni: + +* Emberi olvasható szöveg hozzáadása a vonalkód alá (`BarcodeGenerator.Parameters.Barcode.CodeText`) +* A sávok színének módosítása a `Parameters.Barcode.BarColor`‑rel +* Vonalkódok generálása vektorgrafikus formátumokban (SVG, EPS) a skálázható nyomtatáshoz + +Nyugodtan kísérletezz különböző X‑dimenzió értékekkel, adatkarakterláncokkal és kimeneti formátumokkal, hogy a saját munkafolyamatodhoz leginkább illeszkedjen. Boldog kódolást! + +## Mit tanulj meg legközelebb? + +A következő tutorialok szorosan kapcsolódó témákat fednek le, amelyek a jelen útmutatóban bemutatott technikákra épülnek. Minden forrás teljes, működő kódrészleteket tartalmaz lépésről‑lépésre magyarázatokkal, hogy segítsenek az API további funkcióinak elsajátításában és alternatív megvalósítási megközelítések felfedezésében saját projektjeidben. + +- [How to create barcode quiet zone for Code 16K using Aspose.BarCode for .NET](/barcode/english/net/code-16k-encoding/code-16k-quiet-zone-settings/) +- [How to Create Barcode Quiet Zone for ITF-14 Using Aspose.BarCode for .NET](/barcode/english/net/itf-14-barcode-customization/itf-14-barcode-quiet-zone-configuration/) +- [How to create Aztec barcode with error correction in .NET](/barcode/english/net/aztec-barcode-encoding/aztec-error-level-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/hungarian/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md b/barcode/hungarian/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md new file mode 100644 index 000000000..43c158c54 --- /dev/null +++ b/barcode/hungarian/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md @@ -0,0 +1,237 @@ +--- +category: general +date: 2026-08-15 +description: A Databar kibővítette a rétegezett vonalkód generálást C#-ban. Tanulja + meg, hogyan generáljon vonalkód képet, és állítson be oszlopokat és sorokat a DataBar + elrendezésekhez. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- databar expanded stacked +- generate barcode image +- how to generate barcode +- how to set columns +- how to set rows +language: hu +lastmod: 2026-08-15 +og_description: A Databar kibővítette a rétegezett vonalkód generálást C#-ban. Kövesse + ezt a lépésről‑lépésre útmutatót a vonalkód képek generálásához, az oszlopok és + sorok hatékony beállításához. +og_image_alt: Screenshot of a databar expanded stacked barcode generated with C# +og_title: Databar expanded stacked – vonalkód kép generálása C#-ban +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + headline: 'Databar expanded stacked: generate barcode image in C#' + type: TechArticle +- description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + name: 'Databar expanded stacked: generate barcode image in C#' + steps: + - name: 1. Install the Aspose.BarCode library + text: 'The code uses the **Aspose.BarCode for .NET** library, which provides the + `BarcodeGenerator` class. Install the NuGet package with the following command:' + - name: 2. Create a barcode generator for **databar expanded stacked** + text: The generator is the entry point for all barcode operations. You must specify + the symbology (`EncodeTypes.DatabarExpandedStacked`) and the text to encode. + - name: 3. How to set columns for DataBar + text: The `Columns` property controls how many vertical modules appear in the + stacked barcode. Valid values are 2, 3, or 4. Setting columns influences the + barcode’s width and the amount of data it can store. + - name: 4. Save the 4‑column barcode image + text: Saving the image produces a file that you can embed in reports, invoices, + or mobile apps. The `Save` method accepts a file path and an image format. + - name: 5. How to set rows for DataBar + text: Rows add a second dimension to the stacked layout, allowing more data to + be encoded without widening the barcode. The `Rows` property defaults to 1; + you can increase it up to 3 for the expanded stacked variant. + - name: 6. Save the 3‑row barcode image + text: '```csharp // Step 5: Save the 3‑row barcode image barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", + BarCodeImageFormat.Png); ```' + - name: 7. Complete C# example to generate barcode image + text: 'Putting all steps together yields a self‑contained program you can copy + into a console application:' + type: HowTo +tags: +- barcode +- C# +- Aspose.BarCode +title: 'Databar expanded stacked: vonalkód kép generálása C#‑ban' +url: /hu/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Databar expanded stacked: vonalkód kép generálása C#-ban + +Ha C#-ban szeretne **databar expanded stacked** vonalkód képet generálni, ez az útmutató pontosan megmutatja, **hogyan generáljon vonalkód** képeket egyedi oszlop- és sorelrendezésekkel. Megmutatjuk, hogyan állítsa be az oszlopokat, a sorokat, és hogyan mentse el a kapott képeket anélkül, hogy elhagyná az IDE-t. + +A tutorial tartalma: + +* Vonalkód generátor létrehozása a **databar expanded stacked** szimbólumhoz. +* 4‑oszlopos és 3‑soros elrendezés konfigurálása. +* Minden konfiguráció mentése PNG fájlként. +* Tippek a szélhelyzetek kezeléséhez, például érvénytelen oszlopszám esetén. + +Külső dokumentáció nem szükséges; a teljes, futtatható példa benne van. + +![Databar expanded stacked barcode example](YOUR_DIRECTORY/DatabarCols4.png){: .center alt="C#-val generált databar expanded stacked vonalkód" } + +## Databar expanded stacked vonalkód generálási lépések + +### 1. Az Aspose.BarCode könyvtár telepítése + +A kód a **Aspose.BarCode for .NET** könyvtárat használja, amely biztosítja a `BarcodeGenerator` osztályt. Telepítse a NuGet csomagot a következő paranccsal: + +```bash +dotnet add package Aspose.BarCode +``` + +A csomag telepítése után adja hozzá a szükséges névteret a fájl tetejéhez: + +```csharp +using Aspose.BarCode.Generation; +``` + +### 2. Vonalkód generátor létrehozása a **databar expanded stacked** számára + +A generátor a belépési pont minden vonalkód művelethez. Meg kell adnia a szimbólumot (`EncodeTypes.DatabarExpandedStacked`) és a kódolandó szöveget. + +```csharp +// Step 1: Create a barcode generator for Databar Expanded Stacked +BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); +``` + +*Why this matters:* Az `EncodeTypes` enum megmondja a könyvtárnak, melyik vonalkód formátumot kell előállítani. A **databar expanded stacked** használata biztosítja, hogy a kapott kép a GS1 DataBar specifikációnak megfelelően stacked elrendezést kövessen. + +### 3. Hogyan állítsuk be az oszlopokat a DataBar-hoz + +A `Columns` tulajdonság szabályozza, hány függőleges modul jelenik meg a stacked vonalkódban. Érvényes értékek: 2, 3 vagy 4. Az oszlopok beállítása befolyásolja a vonalkód szélességét és a tárolható adat mennyiségét. + +```csharp +// Step 2: Configure a 4‑column layout +barcode.Parameters.Barcode.DataBar.Columns = 4; +``` + +**Tip:** Ha a megengedett tartományon kívüli értéket próbál megadni, a könyvtár `ArgumentException`-t dob. Mindig ellenőrizze a bemenetet, ha a felhasználók számára elérhetővé teszi az oszlopszám választását. + +### 4. A 4‑oszlopos vonalkód kép mentése + +A kép mentése egy olyan fájlt hoz létre, amelyet beágyazhat jelentésekbe, számlákba vagy mobilalkalmazásokba. A `Save` metódus egy fájlútvonalat és egy képformátumot fogad. + +```csharp +// Step 3: Save the 4‑column barcode image +barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); +``` + +Amikor a fájl kiírásra kerül, bármelyik képmegjelenítővel megnyithatja, hogy ellenőrizze, a **databar expanded stacked** minta helyesen jelenik‑e meg. + +### 5. Hogyan állítsuk be a sorokat a DataBar-hoz + +A sorok egy második dimenziót adnak a stacked elrendezéshez, lehetővé téve több adat kódolását a vonalkód szélesítés nélkül. A `Rows` tulajdonság alapértelmezett értéke 1; a expanded stacked változat esetén legfeljebb 3‑ig növelhető. + +```csharp +// Step 4: Switch to a 3‑row layout (columns remain unchanged) +barcode.Parameters.Barcode.DataBar.Rows = 3; +``` + +**Why rows matter:** A sorok növelése csökkenti a teljes szélességet, miközben megőrzi az adatkapacitást, ami szűk címkék vagy mobil képernyőhely esetén hasznos. + +### 6. A 3‑soros vonalkód kép mentése + +```csharp +// Step 5: Save the 3‑row barcode image +barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); +``` + +Most már két PNG fájlja van – egy 4‑oszlopos elrendezéssel, a másik 3‑soros elrendezéssel – mindkettő a **databar expanded stacked** szimbólumot használja. + +### 7. Teljes C# példa a vonalkód kép generálásához + +Az összes lépés egy önálló programba illesztve, amelyet egyszerűen átmásolhat egy konzolalkalmazásba: + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace DatabarExpandedStackedDemo +{ + class Program + { + static void Main() + { + // Create the generator for Databar Expanded Stacked + BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); + + // Configure a 4‑column layout and save + barcode.Parameters.Barcode.DataBar.Columns = 4; + barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); + Console.WriteLine("4‑column barcode saved."); + + // Change to a 3‑row layout (columns stay at 4) and save + barcode.Parameters.Barcode.DataBar.Rows = 3; + barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); + Console.WriteLine("3‑row barcode saved."); + } + } +} +``` + +**Várható kimenet** + +``` +4‑column barcode saved. +3‑row barcode saved. +``` + +és két PNG fájlt hoz létre a `YOUR_DIRECTORY` könyvtárban. Nyissa meg a fájlokat, hogy ellenőrizze, minden kép érvényes **databar expanded stacked** vonalkódot jelenít‑e meg. + +## Gyakori buktatók és gyakorlati tippek + +* **Directory existence** – A `Save` nem hoz létre hiányzó mappákat. Győződjön meg róla, hogy a `YOUR_DIRECTORY` létezik, vagy használja a `Directory.CreateDirectory` metódust a mentés előtt. +* **Column limits** – A 2, 3 vagy 4‑nél eltérő értékek kivételt okoznak. Védekezzen a felhasználói hibák ellen egyszerű tartományellenőrzéssel: + + ```csharp + int columns = 4; + if (columns < 2 || columns > 4) throw new ArgumentOutOfRangeException(nameof(columns)); + barcode.Parameters.Barcode.DataBar.Columns = columns; + ``` + +* **Row limits** – A expanded stacked változat legfeljebb 3 sort támogat. A `Rows` 0‑ra vagy 3‑nál nagyobb értékre állítása szintén kivételt vált ki. +* **Image format** – A `BarCodeImageFormat.Png` veszteségmentes minőséget biztosít, ami nyomtatáshoz ideális. A `Jpeg`‑et csak akkor használja, ha a fájlméret elsődleges szempont. + +## Következő lépések + +Most, hogy tudja, **hogyan generáljon vonalkód** képeket egyedi oszlop‑ és sorbeállításokkal, a következőket teheti: + +* Integrálja a generátort egy web‑API‑ba, hogy igény szerint szolgáltasson vonalkód képeket. +* Kombinálja a vonalkódot PDF‑generáló könyvtárakkal, hogy számlákba ágyazza be. +* Kísérletezzen más DataBar változatokkal (`DatabarExpanded`, `DatabarLimited`) ugyanazzal a `Parameters.Barcode.DataBar` objektummal. + +A mélyebb testreszabáshoz – például a vonal színének módosítása, emberi‑olvasásra szánt szöveg hozzáadása vagy QR‑kód átfedések alkalmazása – tekintse meg az Aspose.BarCode dokumentációját a `BarcodeGenerator` tulajdonságairól. + +--- + +A guide követésével elsajátította a **databar expanded stacked** munkafolyamatot, megtanulta **hogyan állítsa be az oszlopokat**, **hogyan állítsa be a sorokat**, és két különálló vonalkód képet hozott létre, amelyek készen állnak a termelésben való használatra. Boldog kódolást! + +## Mit érdemes legközelebb tanulni? + +Az alábbi tutorialok szorosan kapcsolódó témákat fednek le, amelyek a jelen útmutatóban bemutatott technikákra épülnek. Minden forrás teljes, működő kódrészleteket tartalmaz lépés‑ről‑lépésre magyarázatokkal, hogy segítsen további API funkciók elsajátításában és alternatív megvalósítási megközelítések felfedezésében saját projektjeiben. + +- [Generate barcode image – GS1 Coupon UPC-A Databar](/barcode/english/net/gs1-barcode-encoding/gs1-coupon-upc-a-databar-configuration/) +- [Create DotCode barcode image – rows & columns (Aspose.BarCode)](/barcode/english/net/dotcode-barcode-configuration/dotcode-rows-columns-configuration/) +- [How to Generate Barcode - One-Dimensional Barcode Types](/barcode/english/net/one-dimensional-barcode-types/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/hungarian/python-java/general/how-to-set-barcode-complete-c-guide/_index.md b/barcode/hungarian/python-java/general/how-to-set-barcode-complete-c-guide/_index.md new file mode 100644 index 000000000..15d824a40 --- /dev/null +++ b/barcode/hungarian/python-java/general/how-to-set-barcode-complete-c-guide/_index.md @@ -0,0 +1,236 @@ +--- +category: general +date: 2026-08-15 +description: Hogyan állítsuk be a vonalkód paramétereit C#-ban, és generáljunk vonalkód + képeket. Tanulja meg lépésről lépésre a Databar vonalkód létrehozását és PNG fájlok + mentését. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to set barcode +- how to generate barcode +- create databar barcode +- generate barcode image c# +language: hu +lastmod: 2026-08-15 +og_description: Hogyan állíts be vonalkódot C#-ban az Aspose.Barcode segítségével, + majd generálj vonalkód képet C#-ban. Kövesd ezt az útmutatót egy Databar vonalkód + létrehozásához és PNG fájlok mentéséhez. +og_image_alt: Screenshot of a Databar barcode saved as PNG using C# code +og_title: Hogyan állítsunk be vonalkódot C#‑ban – lépésről‑lépésre útmutató +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: How to set barcode parameters in C# and generate barcode images. Learn + step‑by‑step to create Databar barcode and save PNG files. + headline: How to set barcode – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.Barcode +title: Hogyan állítsuk be a vonalkódot – teljes C# útmutató +url: /hu/python-java/general/how-to-set-barcode-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hogyan állítsuk be a vonalkódot – teljes C# útmutató + +Ha **how to set barcode** paramétereket keres egy .NET projektben, ez a bemutató megmutatja a szükséges lépéseket. Megtanulja **how to generate barcode** képeket létrehozni, egy Databar vonalkódot készíteni, és a vonalmagasságot pixelről pixelre szabályozni – mindezt tiszta, termelésre kész C# kóddal. + +Ebben az útmutatóban Ön: + +* Telepíti a szükséges NuGet csomagot. +* Létrehozza a Databar Omnidirectional vonalkódot (a „create Databar barcode” rész). +* Beállítja az X-dimenziót és a vonalmagasságot, hogy bemutassa a **how to set barcode** méreteket. +* Elmenti az eredményt PNG fájlokként, lefedve a **generate barcode image C#** forgatókönyvet. + +A kód a legújabb Aspose.Barcode for .NET (v 24.12 a írás időpontjában) verzióval működik, és .NET 6 vagy újabb verzión fut. + +--- + +## Előfeltételek + +Mielőtt elkezdené, győződjön meg róla, hogy rendelkezik: + +* .NET 6 SDK (vagy bármely újabb verzió). +* Egy IDE, például Visual Studio 2022 vagy VS Code. +* Internetkapcsolat az Aspose.Barcode NuGet csomag letöltéséhez. + +Nem szükséges további harmadik féltől származó könyvtár. + +--- + +## 1. lépés: Aspose.Barcode telepítése .NET-hez + +A **generate barcode** képek C#-ban történő legmegbízhatóbb módja az Aspose.Barcode használata. Nyisson egy terminált a projekt mappájában, és futtassa a következőt: + +```bash +dotnet add package Aspose.BarCode +``` + +A parancs hozzáadja a legújabb stabil verziót a projektfájlhoz, biztosítva, hogy rendelkezzen a `BarcodeGenerator` osztállyal és az `EncodeTypes` felsorolással. + +*Pro tipp:* Tartsa a csomagot naprakészen (`dotnet list package --outdated`), hogy élvezze a hibajavításokat és az új vonalkód szimbólumokat. + +--- + +## 2. lépés: Databar vonalkód létrehozása (create Databar barcode) + +A Databar Omnidirectional ideális a kiskereskedelem és a logisztika számára, mivel képes GTIN‑14 értéket plusz további adatot kódolni. Az alábbi kód létrehozza a vonalkód objektumot: + +```csharp +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +// Step 2: Initialize the generator for a Databar Omnidirectional barcode +BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); +``` + +*Miért fontos:* Az `EncodeTypes.DatabarOmniDirectional` enum azt mondja a könyvtárnak, hogy a Databar szimbólumot használja, míg a `"(01)12345678901231"` karakterlánc a GS1 Alkalmazásazonosító formátumát követi egy 14‑jegyű GTIN esetén. + +--- + +## 3. lépés: Általános paraméterek meghatározása – X-dimenzió és alapmagasság + +A legtöbb vonalkódolvasó minimális X-dimenziót (a legkeskenyebb vonal szélességét) vár. 2 pixelre állítva kompakt, mégis olvasható képet eredményez. + +```csharp +// Step 3: Set a 2‑pixel X‑dimension (common for most scanners) +generator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +Később a vonalmagasságot újragenerátor létrehozása nélkül is módosíthatja – ez a **how to set barcode** attribútumok példányosítás utáni módosításának lényege. + +--- + +## 4. lépés: Az első vonalmagasság beállítása és a kép mentése (generate barcode image C#) + +Most bemutatjuk a **how to set barcode** magasság első részét. A vonalmagasság szabályozza az egyes vonalak vizuális hosszát; 30 pixel érték rövid vonalkódot eredményez, míg 60 pixel magasabb változatot. + +```csharp +// Step 4a: 30‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 30; + +// Save the first PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); +``` + +A futtatás után a `DatabarBarHeight30Pixels.png` egy 30 pixel magas vonallal rendelkező Databar vonalkódot tartalmaz. Nyissa meg a fájlt bármely képmegjelenítőben az eredmény ellenőrzéséhez. + +--- + +## 5. lépés: A vonalmagasság módosítása és egy második kép mentése + +Az illusztrációhoz, hogy a **how to set barcode** értékek futás közben módosíthatók, a vonalmagasságot 60 pixelre állítjuk, és egy második fájlt írunk. + +```csharp +// Step 5a: 60‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 60; + +// Save the second PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); +``` + +Most két PNG fájlja van, amelyek ugyanazt a Databar adatot mutatják, de különböző vizuális magasságokkal. Ez akkor hasznos, ha nagyobb vonalkódra van szükség nyomtatott címkékhez, vagy kisebbre a képernyőn való megjelenítéshez. + +--- + +## 6. lépés: Teljes, futtatható példa + +Mindent egy helyre téve, itt egy önálló konzolprogram, amely végrehajtja a fent leírt összes lépést. Másolja a kódot egy új `Program.cs` fájlba, cserélje le a `YOUR_DIRECTORY`-t egy valós mappára, és futtassa. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Initialize the generator for a Databar Omnidirectional barcode + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); + + // Common parameters + generator.Parameters.Barcode.XDimension.Pixels = 2; // 2‑pixel narrow bar + + // First image: 30‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 30; + generator.Save(@"C:\Barcodes\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 30‑pixel barcode."); + + // Second image: 60‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 60; + generator.Save(@"C:\Barcodes\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 60‑pixel barcode."); + + // Dispose the generator to free native resources + generator.Dispose(); + } +} +``` + +**Várt kimenet** + +A program futtatásakor a konzol a következőt írja ki: + +``` +Saved 30-pixel barcode. +Saved 60-pixel barcode. +``` + +És a `C:\Barcodes` mappa (vagy az Ön által megadott útvonal) tartalmazza a két PNG fájlt. Mindkét kép egy érvényes Databar Omnidirectional vonalkódot jelenít meg, amelyet a szabványos GS1 olvasók be tudnak olvasni. + +--- + +## Gyakran ismételt kérdések + +**Működik ez más képformátumokkal is?** +Igen. Cserélje a `BarCodeImageFormat.Png`-t `Jpeg`, `Bmp`, `Gif` vagy `Tiff` értékre a megfelelő fájltípus előállításához. + +**Megváltoztathatom az előtér színét?** +Állítsa be a `generator.Parameters.Barcode.ForeColor` értékét bármely `System.Drawing.Color` értékre, például `Color.Blue`. + +**Mi van, ha más szimbólumra van szükségem?** +Adjon át egy másik `EncodeTypes` értéket a konstruktorba, például `EncodeTypes.Code128` egy lineáris vonalkódhoz vagy `EncodeTypes.QR` egy mátrixkódhoz. + +**Van mód a vonalkód PDF-be ágyazására?** +Az Aspose.Barcode egy `PdfGenerator` osztályt biztosít. A kép generálása után hozzáadhatja egy PDF oldalhoz az Aspose.PDF használatával. + +--- + +## A vonalkód generálás legjobb gyakorlatai C#-ban + +* **Használja újra a `BarcodeGenerator` példányt**, ha csak a méreteket kell finomhangolni – ez elkerüli a felesleges memóriafoglalásokat. +* **Felszabadítja a generátort** (`generator.Dispose()`) a munka befejezése után, hogy a natív erőforrások gyorsan felszabaduljanak. +* **Érvényesíti a bemeneti adatokat** (pl. GTIN hossza) a vonalkód létrehozása előtt, hogy elkerülje a futásidejű kivételeket. +* **Tesztelje fizikai olvasóval** az X‑dimenzió vagy a vonalmagasság módosítása után; extrém értékek befolyásolhatják az olvashatóságot. +* **Tartsa írható állapotban a kimeneti mappát** a futtató fiók számára; ellenkező esetben a `Save` `UnauthorizedAccessException`-t dob. + +--- + +## Összegzés + +Most már tudja, hogyan **how to set barcode** tulajdonságokat, például az X‑dimenziót és a vonalmagasságot beállítani, hogyan **how to generate barcode** képeket készíteni C#-ban, és a pontos lépéseket a **create Databar barcode** fájlok létrehozásához az Aspose.Barcode segítségével. A teljes példát követve több PNG fájlt generálhat különböző vizuális jellemzőkkel, ezzel teljesítve a **generate barcode image C#** követelményt bármely .NET alkalmazás számára. + +Ezután fedezze fel a kapcsolódó témákat, például a **how to generate barcode** tömeges generálását, a vonalkódok PDF-be ágyazását, vagy más szimbólumokra, mint a QR vagy a Code 128, való áttérést. Kísérletezzen a bemutatott paraméterekkel, hogy finomhangolja a vonalkód megjelenését a saját szkennelési környezetéhez. Boldog kódolást! + +## Mi legyen a következő tanulnivalója? + +A következő bemutatók szorosan kapcsolódó témákat fednek le, amelyek a jelen útmutatóban bemutatott technikákra épülnek. Minden forrás teljes, működő kódrészleteket tartalmaz lépésről‑lépésre magyarázatokkal, hogy segítsen elsajátítani további API funkciókat és alternatív megvalósítási megközelítéseket saját projektjeiben. + +- [Hogyan generáljunk DataMatrix vonalkódokat (ECC 200) az Aspose.BarCode for .NET segítségével](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-ecc-200-configuration/) +- [Hogyan generáljunk Aztec vonalkódot egyedi képaránnyal az Aspose.BarCode for .NET használatával](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [Hogyan generáljunk vonalkódot – Code 39 konfiguráció az Aspose.BarCode segítségével](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-code-39-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/indonesian/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md b/barcode/indonesian/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md new file mode 100644 index 000000000..616100596 --- /dev/null +++ b/barcode/indonesian/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md @@ -0,0 +1,184 @@ +--- +category: general +date: 2026-08-15 +description: Gambar barcode PNG di C# – pelajari cara menghasilkan barcode pos, membuat + barcode Planet, dan mengubah tinggi barcode dengan generator sederhana. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- barcode image png +- barcode generator c# +- generate postal barcode +- create planet barcode +- change barcode height +language: id +lastmod: 2026-08-15 +og_description: Tutorial gambar barcode PNG di C# menunjukkan cara menghasilkan barcode + pos, membuat barcode Planet, dan mengubah tinggi barcode menggunakan API BarcodeGenerator. +og_image_alt: Screenshot of generated PNG barcode with custom height using C# BarcodeGenerator +og_title: Gambar barcode PNG di C# – buat dan sesuaikan barcode +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Barcode image PNG in C# – learn how to generate postal barcodes, create + a Planet barcode, and change barcode height with a simple generator. + headline: Barcode image PNG in C# generate barcodes, change height + type: TechArticle +tags: +- barcode +- C# +- PNG +- postal +- generator +title: Gambar barcode PNG di C# menghasilkan barcode, ubah tinggi +url: /id/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Gambar barcode PNG di C# – menghasilkan barcode, mengubah tinggi + +Jika Anda membutuhkan **barcode image PNG** di C#, panduan ini akan memandu Anda melalui proses lengkap. Anda akan belajar cara menghasilkan barcode pos, membuat barcode Planet, dan mengubah tinggi barcode tanpa meninggalkan IDE Anda. + +Menghasilkan barcode PNG yang dapat diandalkan adalah kebutuhan umum untuk label pengiriman, sistem inventaris, dan solusi pengiriman otomatis. Pada akhir tutorial ini Anda akan memiliki potongan kode yang dapat digunakan kembali yang menghasilkan file PNG berkualitas tinggi untuk format Planet dan RM4SCC, serta Anda akan memahami cara menyesuaikan tinggi bar untuk memenuhi spesifikasi pos. + +## Apa yang Anda butuhkan + +- .NET 6+ atau .NET Framework 4.7.2 (API BarcodeGenerator bekerja dengan runtime .NET terbaru apa pun) +- Referensi ke paket NuGet **Aspose.BarCode for .NET** (atau perpustakaan kompatibel lain yang menyediakan `BarcodeGenerator`, `EncodeTypes`, dan `BarCodeImageFormat`) +- Pemahaman dasar tentang sintaks C# dan I/O file + +Tidak ada alat tambahan yang diperlukan; kode ini berjalan di Visual Studio, Rider, atau `dotnet` CLI. + +## Barcode image PNG – pembuatan dasar + +Langkah pertama adalah membuat **barcode image PNG** dengan dimensi default. Ini menetapkan file dasar yang dapat Anda sesuaikan nanti. + +```csharp +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +// Define the output folder (replace with your own path) +string outputFolder = @"C:\Barcodes"; + +// Ensure the folder exists +Directory.CreateDirectory(outputFolder); + +// 1️⃣ Create a Planet barcode generator with default height +BarcodeGenerator planetGenerator = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + +// Set the module width (X‑dimension) to 4 pixels – this defines the thin bar size +planetGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the image as PNG; this is the first **barcode image PNG** you’ll produce +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +**Mengapa ini berhasil:** +- `EncodeTypes.Planet` memberi tahu generator untuk menggunakan simbol Planet, yang diperlukan untuk banyak layanan pos. +- `XDimension.Pixels` mengontrol lebar bar terkecil; nilai 4 px menghasilkan barcode yang dapat dibaca pada ukuran label tipikal. +- Metode `Save` menulis file **barcode image PNG** ke disk, mempertahankan semua informasi vektor sebagai piksel raster. + +## Ubah tinggi barcode – menyesuaikan berat visual + +Pedoman pos sering kali memerlukan tinggi bar tertentu. Potongan kode berikut menunjukkan cara mengatur tinggi khusus 100 piksel untuk barcode Planet yang sama. + +```csharp +// 2️⃣ Apply a custom 100‑pixel bar height +planetGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Overwrite or save as a new file to keep both versions +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +**Mengapa Anda mengubah tinggi:** +Bar yang lebih tinggi meningkatkan keandalan pemindaian pada printer beresolusi rendah, sementara bar yang lebih pendek mengurangi ruang label. Properti `BarHeight.Pixels` memungkinkan Anda menyesuaikan atribut ini secara halus tanpa memengaruhi X‑dimension. + +## Hasilkan barcode pos – membuat contoh RM4SCC + +Format RM4SCC adalah barcode pos umum lain yang digunakan di Britania Raya. Langkah-langkah pembuatannya mencerminkan contoh Planet, memperkuat pola **barcode generator c#**. + +```csharp +// 3️⃣ Create an RM4SCC barcode generator with default height +BarcodeGenerator rm4sccGenerator = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Keep the same module width for consistency +rm4sccGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the default‑height PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +## Ubah tinggi barcode – variasi RM4SCC + +Seperti barcode Planet, Anda dapat menyesuaikan tinggi bar RM4SCC. Kode di bawah mengatur tinggi menjadi 100 px, menghasilkan **barcode image PNG** kedua untuk string data yang sama. + +```csharp +// 4️⃣ Set a custom 100‑pixel bar height for RM4SCC +rm4sccGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Save the customized PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +## Contoh lengkap yang dapat dijalankan + +Menggabungkan semua langkah menghasilkan satu program mandiri yang membuat empat file PNG: + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +class Program +{ + static void Main() + { + string outputFolder = @"C:\Barcodes"; + Directory.CreateDirectory(outputFolder); + + // Planet barcode – default height + var planet = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planet.Parameters.Barcode.XDimension.Pixels = 4; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // Planet barcode – custom 100‑pixel height + planet.Parameters.Barcode.BarHeight.Pixels = 100; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – default height + var rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – custom 100‑pixel height + rm4scc.Parameters.Barcode.BarHeight.Pixels = 100; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); + + Console.WriteLine("All barcode PNG files have been generated in " + + + +## Apa yang Harus Anda Pelajari Selanjutnya? + +Tutorial berikut mencakup topik terkait yang membangun teknik yang ditunjukkan dalam panduan ini. Setiap sumber daya menyertakan contoh kode lengkap yang berfungsi dengan penjelasan langkah demi langkah untuk membantu Anda menguasai fitur API tambahan dan mengeksplorasi pendekatan implementasi alternatif dalam proyek Anda sendiri. + +- [Buat Barcode Tinggi Kustom – Barcode Satu Dimensi](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-barcode-height-adjustment/) +- [Buat Barcode PNG – Rasio Aspek DataMatrix – Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-aspect-ratio-customization/) +- [Buat gambar barcode C# – Contoh GS1 DataMatrix](/barcode/english/net/gs1-barcode-encoding/gs1-datamatrix-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/indonesian/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md b/barcode/indonesian/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md new file mode 100644 index 000000000..1e5cf2d17 --- /dev/null +++ b/barcode/indonesian/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-08-15 +description: Buat barcode planet di C# dan pelajari cara mengatur dimensi barcode + untuk ukuran yang sempurna. Contoh kode langkah demi langkah dengan bar yang terisi + dan kosong. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create planet barcode +- how to set barcode dimensions +- planet barcode C# +- barcode X‑dimension +- empty barcode bars +language: id +lastmod: 2026-08-15 +og_description: Buat barcode planet di C# dan pelajari cara mengatur dimensi barcode. + Ikuti panduan ini untuk menghasilkan barcode Planet yang terisi dan kosong secara + instan. +og_image_alt: Screenshot showing a Planet barcode with filled bars generated by C# + code +og_title: Buat barcode planet di C# – panduan langkah demi langkah lengkap +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Create planet barcode in C# and learn how to set barcode dimensions + for perfect sizing. Step‑by‑step code example with filled and empty bars. + headline: Create planet barcode in C# – complete programming guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.BarCode +title: Buat kode batang planet di C# – panduan pemrograman lengkap +url: /id/python-java/general/create-planet-barcode-in-c-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Membuat barcode planet di C# – panduan pemrograman lengkap + +Jika Anda perlu **membuat barcode planet** di C#, panduan ini menunjukkan secara tepat cara melakukannya. Anda juga akan menemukan **cara mengatur dimensi barcode** sehingga bar menghasilkan lebar yang tepat sesuai kebutuhan Anda. + +Membuat barcode Planet umum ketika Anda bekerja dengan layanan pos atau sistem logistik. Kode di bawah mencakup versi bar terisi default dan gaya bar kosong opsional, serta contoh cepat untuk format RM4SCC. Pada akhir tutorial ini Anda akan memiliki potongan kode yang dapat digunakan kembali dan dapat dimasukkan ke proyek .NET mana pun. + +## Prasyarat + +* .NET 6.0 atau yang lebih baru terpasang (API juga bekerja dengan .NET Framework 4.6+) +* Paket NuGet **Aspose.BarCode for .NET** (`Aspose.BarCode`) ditambahkan ke proyek Anda +* Jalur folder yang dapat ditulisi dimana file PNG akan disimpan +* Familiaritas dasar dengan sintaks C# dan Visual Studio (atau IDE apa pun) + +> **Pro tip:** Gunakan jalur absolut atau `Path.Combine(Environment.CurrentDirectory, "output")` untuk menghindari masalah izin saat menyimpan gambar. + +## Langkah 1 – Inisialisasi generator barcode Planet (bar terisi) + +Langkah pertama adalah membuat instance `BarcodeGenerator` untuk simbol Planet. Secara default generator menghasilkan bar **terisi**. + +```csharp +// Step 1: Create a Planet barcode with the default (filled) bars +BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +Enum `EncodeTypes.Planet` memberi tahu Aspose.BarCode untuk menggunakan format Planet, sementara `"123456"` adalah data yang akan dienkode. + +## Langkah 2 – Cara mengatur dimensi barcode untuk ukuran konsisten + +Untuk mengontrol lebar setiap bar, sesuaikan **X‑dimension**. Ini adalah cara utama untuk **mengatur dimensi barcode** dan memastikan barcode cocok dengan ukuran label Anda. + +```csharp +// Step 2: Set the X‑dimension (width of each bar) to 4 pixels +planetFilled.Parameters.Barcode.XDimension.Pixels = 4; +``` + +Properti `Pixels` menentukan lebar bar dalam piksel layar. Nilai umum adalah 2 – 5 piksel untuk label pos standar; tingkatkan nilai tersebut untuk cetakan yang lebih besar. + +## Langkah 3 – Simpan barcode Planet terisi sebagai PNG + +Sekarang tulis gambar ke disk. PNG mempertahankan tepi yang tajam, yang ideal untuk pemindaian. + +```csharp +// Step 3: Save the Planet barcode as a PNG image +planetFilled.Save("YOUR_DIRECTORY/PostalPlanetFilledBars.png", BarCodeImageFormat.Png); +``` + +Ganti `YOUR_DIRECTORY` dengan jalur yang Anda siapkan sebelumnya. Setelah menjalankan kode ini Anda akan melihat file yang mirip dengan gambar di bawah. + +![Barcode planet dengan bar terisi](planet_filled.png "Barcode planet dengan bar terisi – dibuat oleh kode C#") + +*Alt text:* **Barcode planet dengan bar terisi yang dihasilkan oleh kode C#** (matches `og_image_alt`). + +## Langkah 4 – Buat barcode Planet dengan bar kosong (tidak terisi) + +Jika layanan pos Anda mengharuskan bar menjadi **kosong**, Anda perlu mengubah flag `FilledBars` setelah menginisialisasi generator. + +```csharp +// Step 4: Create a Planet barcode with empty (unfilled) bars +BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +Konstruktornya identik; perbedaannya terletak pada langkah konfigurasi berikutnya. + +## Langkah 5 – Cara mengatur dimensi barcode dan membuat bar kosong + +Sekali lagi, atur X‑dimension untuk konsistensi visual, lalu nonaktifkan bar terisi. + +```csharp +// Step 5: Set the X‑dimension and specify that bars should be empty +planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; +planetEmpty.Parameters.Barcode.FilledBars = false; // makes bars empty +``` + +Properti `FilledBars = false` adalah yang sebenarnya mengubah gaya rendering. Menjaga X‑dimension yang sama memastikan barcode bar kosong sejajar sempurna dengan versi terisi. + +## Langkah 6 – Simpan barcode Planet kosong + +```csharp +// Step 6: Save the Planet barcode with empty bars as a PNG image +planetEmpty.Save("YOUR_DIRECTORY/PostalPlanetEmptyBars.png", BarCodeImageFormat.Png); +``` + +Sekarang Anda akan memiliki dua file PNG: satu dengan bar solid dan satu dengan bar kosong, keduanya memiliki dimensi yang sama. + +## Langkah 7 – (Opsional) Hasilkan barcode RM4SCC untuk perbandingan + +RM4SCC adalah simbol pos lain yang menggunakan gaya bar terisi default yang sama. Langkah-langkahnya mirip dengan contoh Planet, menunjukkan bahwa **cara mengatur dimensi barcode** berfungsi di semua format. + +```csharp +// Step 7: Create an RM4SCC barcode (filled bars are the default) +BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Step 8: Set the X‑dimension for consistency +rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + +// Step 9: Save the RM4SCC barcode as a PNG image +rm4scc.Save("YOUR_DIRECTORY/PostalRM4SCCFilledBars.png", BarCodeImageFormat.Png); +``` + +Menjalankan tiga langkah ini menghasilkan `PostalRM4SCCFilledBars.png`, yang dapat Anda bandingkan berdampingan dengan output Planet. + +## Mengapa X‑dimension penting + +X‑dimension menentukan **lebar cetak minimum** setiap bar. Jika Anda mengaturnya terlalu rendah, barcode dapat menjadi blur pada printer beresolusi rendah, menyebabkan kegagalan pemindaian. Sebaliknya, X‑dimension yang terlalu besar dapat melebihi dimensi label dan membuang ruang. Dengan secara eksplisit **cara mengatur dimensi barcode**, Anda memperoleh kontrol deterministik atas ukuran gambar akhir, yang penting untuk alur kerja pengiriman otomatis. + +## Kesalahan umum dan cara menghindarinya + +| Masalah | Penyebab | Solusi | +|-------|-------|-----| +| Barcode tampak terdistorsi | X‑dimension diatur dalam poin bukan piksel | Selalu gunakan properti `Pixels` untuk kontrol pixel‑perfect | +| Bar kosong masih terlihat terisi | `FilledBars` tidak diatur ke `false` setelah perubahan X‑dimension | Atur `FilledBars = false` *setelah* menyesuaikan X‑dimension | +| File yang disimpan kosong | Direktori output tidak ada atau tidak memiliki izin menulis | Pastikan direktori ada (`Directory.CreateDirectory`) dan aplikasi Anda berjalan dengan hak yang cukup | +| Gambar blur saat dicetak | PNG DPI rendah disimpan dari monitor beresolusi tinggi | Gunakan `BarCodeImageFormat.Png` (lossless) dan pertimbangkan properti `Resolution` jika diperlukan | + +## Contoh lengkap yang dapat dijalankan + +Salin seluruh blok di bawah ini ke proyek konsol baru (`dotnet new console`) dan jalankan. Program ini membuat tiga file PNG di folder `output`. + +```csharp +using System; +using System.IO; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Ensure output folder exists + string outDir = Path.Combine(Environment.CurrentDirectory, "output"); + Directory.CreateDirectory(outDir); + + // ---------- Planet barcode – filled bars ---------- + BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetFilled.Parameters.Barcode.XDimension.Pixels = 4; // set dimensions + planetFilled.Save(Path.Combine(outDir, "PostalPlanetFilledBars.png"), BarCodeImageFormat.Png); + + // ---------- Planet barcode – empty bars ---------- + BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; // same dimensions + planetEmpty.Parameters.Barcode.FilledBars = false; // make bars empty + planetEmpty.Save(Path.Combine(outDir, "PostalPlanetEmptyBars.png"), BarCodeImageFormat.Png); + + // ---------- RM4SCC barcode (filled bars) ---------- + BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; // consistent size + rm4scc.Save(Path.Combine(outDir, "PostalRM4SCCFilledBars.png"), BarCodeImageFormat.Png); + + Console.WriteLine($"Barcodes generated in: {outDir}"); + } +} +``` + +**Output yang diharapkan:** tiga file PNG—`PostalPlanetFilledBars.png`, `PostalPlanetEmptyBars.png`, dan `PostalRM4SCCFilledBars.png`—masing‑masing dengan bar lebar 4 piksel, siap untuk pencetakan atau pemrosesan lebih lanjut. + +## Kesimpulan + +Anda sekarang tahu cara **membuat barcode planet** di C# dan secara tepat **cara mengatur dimensi barcode** untuk gaya bar terisi maupun kosong. Pola yang sama berlaku untuk simbol lain seperti RM4SCC, memberi Anda dasar yang fleksibel untuk setiap kebutuhan barcode pos. + +Selanjutnya, Anda mungkin ingin menjelajahi: + +* Menambahkan teks yang dapat dibaca manusia di bawah barcode (`BarcodeGenerator.Parameters.Barcode.CodeText`) +* Mengubah warna bar dengan `Parameters.Barcode.BarColor` +* Menghasilkan barcode dalam format vektor (SVG, EPS) untuk pencetakan skalabel + +Silakan bereksperimen dengan nilai X‑dimension yang berbeda, string data, dan format output untuk menyesuaikan alur kerja spesifik Anda. Selamat coding! + +## Apa yang Harus Anda Pelajari Selanjutnya? + +Tutorial berikut mencakup topik terkait erat yang membangun teknik yang ditunjukkan dalam panduan ini. Setiap sumber mencakup contoh kode lengkap yang berfungsi dengan penjelasan langkah demi langkah untuk membantu Anda menguasai fitur API tambahan dan mengeksplorasi pendekatan implementasi alternatif dalam proyek Anda. + +- [Cara membuat zona tenang barcode untuk Code 16K menggunakan Aspose.BarCode untuk .NET](/barcode/english/net/code-16k-encoding/code-16k-quiet-zone-settings/) +- [Cara Membuat Zona Tenang Barcode untuk ITF-14 Menggunakan Aspose.BarCode untuk .NET](/barcode/english/net/itf-14-barcode-customization/itf-14-barcode-quiet-zone-configuration/) +- [Cara membuat barcode Aztec dengan koreksi kesalahan di .NET](/barcode/english/net/aztec-barcode-encoding/aztec-error-level-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/indonesian/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md b/barcode/indonesian/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md new file mode 100644 index 000000000..f71e4df41 --- /dev/null +++ b/barcode/indonesian/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md @@ -0,0 +1,238 @@ +--- +category: general +date: 2026-08-15 +description: Databar memperluas pembuatan barcode bertumpuk di C#. Pelajari cara menghasilkan + gambar barcode, mengatur kolom dan baris untuk tata letak DataBar. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- databar expanded stacked +- generate barcode image +- how to generate barcode +- how to set columns +- how to set rows +language: id +lastmod: 2026-08-15 +og_description: Databar memperluas pembuatan barcode bertumpuk di C#. Ikuti panduan + langkah demi langkah ini untuk menghasilkan gambar barcode, mengatur kolom, dan + mengatur baris secara efisien. +og_image_alt: Screenshot of a databar expanded stacked barcode generated with C# +og_title: Databar expanded stacked – menghasilkan gambar barcode dalam C# +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + headline: 'Databar expanded stacked: generate barcode image in C#' + type: TechArticle +- description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + name: 'Databar expanded stacked: generate barcode image in C#' + steps: + - name: 1. Install the Aspose.BarCode library + text: 'The code uses the **Aspose.BarCode for .NET** library, which provides the + `BarcodeGenerator` class. Install the NuGet package with the following command:' + - name: 2. Create a barcode generator for **databar expanded stacked** + text: The generator is the entry point for all barcode operations. You must specify + the symbology (`EncodeTypes.DatabarExpandedStacked`) and the text to encode. + - name: 3. How to set columns for DataBar + text: The `Columns` property controls how many vertical modules appear in the + stacked barcode. Valid values are 2, 3, or 4. Setting columns influences the + barcode’s width and the amount of data it can store. + - name: 4. Save the 4‑column barcode image + text: Saving the image produces a file that you can embed in reports, invoices, + or mobile apps. The `Save` method accepts a file path and an image format. + - name: 5. How to set rows for DataBar + text: Rows add a second dimension to the stacked layout, allowing more data to + be encoded without widening the barcode. The `Rows` property defaults to 1; + you can increase it up to 3 for the expanded stacked variant. + - name: 6. Save the 3‑row barcode image + text: '```csharp // Step 5: Save the 3‑row barcode image barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", + BarCodeImageFormat.Png); ```' + - name: 7. Complete C# example to generate barcode image + text: 'Putting all steps together yields a self‑contained program you can copy + into a console application:' + type: HowTo +tags: +- barcode +- C# +- Aspose.BarCode +title: 'Databar expanded stacked: buat gambar kode batang di C#' +url: /id/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Databar expanded stacked: menghasilkan gambar barcode dalam C# + +Jika Anda perlu menghasilkan gambar barcode **databar expanded stacked** dalam C#, panduan ini menunjukkan secara tepat **cara menghasilkan barcode** dengan tata letak kolom dan baris yang dapat disesuaikan. Anda akan melihat cara mengatur kolom, cara mengatur baris, dan cara menyimpan gambar yang dihasilkan tanpa meninggalkan IDE. + +Tutorial ini mencakup: + +* Membuat generator barcode untuk simbol **databar expanded stacked**. +* Mengonfigurasi tata letak 4‑kolom dan 3‑baris. +* Menyimpan setiap konfigurasi sebagai file PNG. +* Tips untuk menangani kasus tepi seperti jumlah kolom yang tidak valid. + +Tidak diperlukan dokumentasi eksternal; contoh lengkap yang dapat dijalankan disertakan. + +![Contoh barcode databar expanded stacked](YOUR_DIRECTORY/DatabarCols4.png){: .center alt="barcode databar expanded stacked yang dihasilkan dengan C#" } + +## Langkah-langkah menghasilkan barcode databar expanded stacked + +### 1. Instal library Aspose.BarCode + +Kode ini menggunakan library **Aspose.BarCode for .NET**, yang menyediakan kelas `BarcodeGenerator`. Instal paket NuGet dengan perintah berikut: + +```bash +dotnet add package Aspose.BarCode +``` + +Setelah paket terinstal, tambahkan namespace yang diperlukan di bagian atas file Anda: + +```csharp +using Aspose.BarCode.Generation; +``` + +### 2. Buat generator barcode untuk **databar expanded stacked** + +Generator adalah titik masuk untuk semua operasi barcode. Anda harus menentukan simbol (`EncodeTypes.DatabarExpandedStacked`) dan teks yang akan dienkode. + +```csharp +// Step 1: Create a barcode generator for Databar Expanded Stacked +BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); +``` + +*Mengapa ini penting:* Enum `EncodeTypes` memberi tahu library format barcode apa yang harus dihasilkan. Menggunakan **databar expanded stacked** memastikan gambar yang dihasilkan mengikuti spesifikasi GS1 DataBar untuk tata letak stacked. + +### 3. Cara mengatur kolom untuk DataBar + +Properti `Columns` mengontrol berapa banyak modul vertikal yang muncul dalam barcode stacked. Nilai yang valid adalah 2, 3, atau 4. Mengatur kolom memengaruhi lebar barcode dan jumlah data yang dapat disimpannya. + +```csharp +// Step 2: Configure a 4‑column layout +barcode.Parameters.Barcode.DataBar.Columns = 4; +``` + +**Tip:** Jika Anda mencoba menetapkan nilai di luar rentang yang diizinkan, library akan melempar `ArgumentException`. Selalu validasi input saat menampilkan pilihan kolom kepada pengguna. + +### 4. Simpan gambar barcode 4‑kolom + +Menyimpan gambar menghasilkan file yang dapat Anda sematkan dalam laporan, faktur, atau aplikasi seluler. Metode `Save` menerima jalur file dan format gambar. + +```csharp +// Step 3: Save the 4‑column barcode image +barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); +``` + +Setelah file ditulis, Anda dapat membukanya dengan penampil gambar apa pun untuk memastikan pola **databar expanded stacked** muncul dengan benar. + +### 5. Cara mengatur baris untuk DataBar + +Baris menambahkan dimensi kedua ke tata letak stacked, memungkinkan lebih banyak data dienkode tanpa memperlebar barcode. Properti `Rows` defaultnya 1; Anda dapat meningkatkannya hingga 3 untuk varian expanded stacked. + +```csharp +// Step 4: Switch to a 3‑row layout (columns remain unchanged) +barcode.Parameters.Barcode.DataBar.Rows = 3; +``` + +**Mengapa baris penting:** Menambah baris mengurangi lebar keseluruhan sambil mempertahankan kapasitas data, yang berguna untuk label sempit atau ruang layar seluler. + +### 6. Simpan gambar barcode 3‑baris + +```csharp +// Step 5: Save the 3‑row barcode image +barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); +``` + +Sekarang Anda memiliki dua file PNG—satu dengan tata letak 4‑kolom dan satu lagi dengan tata letak 3‑baris—keduanya menggunakan simbol **databar expanded stacked**. + +### 7. Contoh lengkap C# untuk menghasilkan gambar barcode + +Menggabungkan semua langkah menghasilkan program mandiri yang dapat Anda salin ke aplikasi konsol: + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace DatabarExpandedStackedDemo +{ + class Program + { + static void Main() + { + // Create the generator for Databar Expanded Stacked + BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); + + // Configure a 4‑column layout and save + barcode.Parameters.Barcode.DataBar.Columns = 4; + barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); + Console.WriteLine("4‑column barcode saved."); + + // Change to a 3‑row layout (columns stay at 4) and save + barcode.Parameters.Barcode.DataBar.Rows = 3; + barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); + Console.WriteLine("3‑row barcode saved."); + } + } +} +``` + +**Output yang diharapkan** + +Running the program prints: + +``` +4‑column barcode saved. +3‑row barcode saved. +``` + +dan membuat dua file PNG di `YOUR_DIRECTORY`. Buka file-file tersebut untuk memverifikasi bahwa setiap gambar menampilkan barcode **databar expanded stacked** yang valid. + +## Kesalahan umum dan tips praktis + +* **Keberadaan direktori** – `Save` tidak membuat folder yang hilang. Pastikan `YOUR_DIRECTORY` ada atau gunakan `Directory.CreateDirectory` sebelum menyimpan. +* **Batas kolom** – Nilai selain 2, 3, atau 4 memicu pengecualian. Lindungi dari kesalahan input pengguna dengan pemeriksaan rentang sederhana: + + ```csharp + int columns = 4; + if (columns < 2 || columns > 4) throw new ArgumentOutOfRangeException(nameof(columns)); + barcode.Parameters.Barcode.DataBar.Columns = columns; + ``` + +* **Batas baris** – Varian expanded stacked mendukung hingga 3 baris. Menetapkan `Rows` ke 0 atau nilai lebih dari 3 juga akan memicu pengecualian. +* **Format gambar** – `BarCodeImageFormat.Png` memberikan kualitas lossless, yang ideal untuk pencetakan. Gunakan `Jpeg` hanya ketika ukuran file menjadi perhatian utama. + +## Langkah Selanjutnya + +Sekarang Anda tahu **cara menghasilkan barcode** dengan konfigurasi kolom dan baris yang dapat disesuaikan, Anda dapat: + +* Mengintegrasikan generator ke dalam web API untuk menyajikan gambar barcode sesuai permintaan. +* Menggabungkan barcode dengan pustaka pembuatan PDF untuk menyematkannya dalam faktur. +* Bereksperimen dengan varian DataBar lainnya (`DatabarExpanded`, `DatabarLimited`) menggunakan objek `Parameters.Barcode.DataBar` yang sama. + +Untuk kustomisasi lebih mendalam—seperti mengubah warna bar, menambahkan teks yang dapat dibaca manusia, atau menerapkan overlay QR‑code—lihat dokumentasi Aspose.BarCode pada properti `BarcodeGenerator`. + +--- + +Dengan mengikuti panduan ini Anda telah menguasai alur kerja **databar expanded stacked**, mempelajari **cara mengatur kolom**, **cara mengatur baris**, dan menghasilkan dua gambar barcode yang berbeda siap untuk penggunaan produksi. Selamat coding! + +## Apa yang Harus Anda Pelajari Selanjutnya? + +Tutorial berikut mencakup topik yang terkait erat yang membangun teknik yang ditunjukkan dalam panduan ini. Setiap sumber mencakup contoh kode lengkap yang berfungsi dengan penjelasan langkah demi langkah untuk membantu Anda menguasai fitur API tambahan dan mengeksplorasi pendekatan implementasi alternatif dalam proyek Anda. + +- [Generate barcode image – GS1 Coupon UPC-A Databar](/barcode/english/net/gs1-barcode-encoding/gs1-coupon-upc-a-databar-configuration/) +- [Create DotCode barcode image – rows & columns (Aspose.BarCode)](/barcode/english/net/dotcode-barcode-configuration/dotcode-rows-columns-configuration/) +- [How to Generate Barcode - One-Dimensional Barcode Types](/barcode/english/net/one-dimensional-barcode-types/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/indonesian/python-java/general/how-to-set-barcode-complete-c-guide/_index.md b/barcode/indonesian/python-java/general/how-to-set-barcode-complete-c-guide/_index.md new file mode 100644 index 000000000..040a5abe1 --- /dev/null +++ b/barcode/indonesian/python-java/general/how-to-set-barcode-complete-c-guide/_index.md @@ -0,0 +1,235 @@ +--- +category: general +date: 2026-08-15 +description: Cara mengatur parameter barcode di C# dan menghasilkan gambar barcode. + Pelajari langkah demi langkah cara membuat barcode Databar dan menyimpan file PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to set barcode +- how to generate barcode +- create databar barcode +- generate barcode image c# +language: id +lastmod: 2026-08-15 +og_description: Cara mengatur barcode di C# dengan Aspose.Barcode, lalu menghasilkan + gambar barcode C#. Ikuti panduan ini untuk membuat barcode Databar dan menyimpan + file PNG. +og_image_alt: Screenshot of a Databar barcode saved as PNG using C# code +og_title: Cara mengatur barcode di C# – panduan langkah demi langkah +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: How to set barcode parameters in C# and generate barcode images. Learn + step‑by‑step to create Databar barcode and save PNG files. + headline: How to set barcode – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.Barcode +title: Cara mengatur barcode – panduan lengkap C# +url: /id/python-java/general/how-to-set-barcode-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cara mengatur barcode – panduan lengkap C# + +Jika Anda mencari **how to set barcode** parameter dalam proyek .NET, tutorial ini menunjukkan langkah‑langkah tepat yang Anda butuhkan. Anda akan belajar **how to generate barcode** gambar, membuat barcode Databar, dan mengontrol tinggi bar piksel‑per‑piksel — semuanya dengan kode C# yang bersih dan siap produksi. + +Dalam panduan ini Anda akan: + +* Instal paket NuGet yang diperlukan. +* Buat barcode Databar Omnidirectional (bagian “create Databar barcode”). +* Sesuaikan X‑dimension dan tinggi bar untuk mendemonstrasikan dimensi **how to set barcode**. +* Simpan hasil sebagai file PNG, mencakup skenario **generate barcode image C#**. + +Kode ini bekerja dengan Aspose.Barcode for .NET terbaru (v 24.12 pada saat penulisan) dan berjalan pada .NET 6 atau yang lebih baru. + +--- + +## Prasyarat + +Sebelum Anda memulai, pastikan Anda memiliki: + +* .NET 6 SDK (atau versi yang lebih baru). +* IDE seperti Visual Studio 2022 atau VS Code. +* Akses internet untuk mengunduh paket NuGet Aspose.Barcode. + +Tidak ada pustaka pihak ketiga tambahan yang diperlukan. + +--- + +## Langkah 1: Instal Aspose.Barcode untuk .NET + +Cara paling andal untuk **generate barcode** gambar dalam C# adalah menggunakan Aspose.Barcode. Buka terminal di folder proyek Anda dan jalankan: + +```bash +dotnet add package Aspose.BarCode +``` + +Perintah ini menambahkan versi stabil terbaru ke file proyek Anda, memastikan Anda memiliki kelas `BarcodeGenerator` dan enumerasi `EncodeTypes`. + +*Tip profesional:* Jaga paket tetap terbaru (`dotnet list package --outdated`) untuk mendapatkan perbaikan bug dan simbol barcode baru. + +--- + +## Langkah 2: Buat barcode Databar (create Databar barcode) + +Databar Omnidirectional ideal untuk ritel dan logistik karena dapat mengkodekan nilai GTIN‑14 plus data tambahan. Kode berikut membuat objek barcode: + +```csharp +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +// Step 2: Initialize the generator for a Databar Omnidirectional barcode +BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); +``` + +*Mengapa ini penting:* Enum `EncodeTypes.DatabarOmniDirectional` memberi tahu perpustakaan untuk menggunakan simbol Databar, sementara string `"(01)12345678901231"` mengikuti format GS1 Application Identifier untuk GTIN 14‑digit. + +--- + +## Langkah 3: Definisikan parameter umum – X‑dimension dan tinggi dasar + +Sebagian besar pemindai barcode mengharapkan X‑dimension minimum (lebar bar paling sempit). Mengaturnya menjadi 2 piksel menghasilkan gambar yang kompak namun dapat dibaca. + +```csharp +// Step 3: Set a 2‑pixel X‑dimension (common for most scanners) +generator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +Anda dapat menyesuaikan tinggi bar nanti tanpa membuat ulang generator—ini adalah inti dari atribut **how to set barcode** setelah instansiasi. + +--- + +## Langkah 4: Atur tinggi bar pertama dan simpan gambar (generate barcode image C#) + +Sekarang kami mendemonstrasikan bagian pertama dari tinggi **how to set barcode**. Tinggi bar mengontrol panjang visual setiap bar; nilai 30 piksel menghasilkan barcode pendek, sementara 60 piksel membuat versi yang lebih tinggi. + +```csharp +// Step 4a: 30‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 30; + +// Save the first PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); +``` + +Setelah dieksekusi, `DatabarBarHeight30Pixels.png` berisi barcode Databar dengan bar setinggi 30 piksel. Buka file tersebut di penampil gambar apa pun untuk memverifikasi hasilnya. + +--- + +## Langkah 5: Ubah tinggi bar dan simpan gambar kedua + +Untuk mengilustrasikan bahwa nilai **how to set barcode** dapat diubah secara dinamis, kami mengubah tinggi bar menjadi 60 piksel dan menulis file kedua. + +```csharp +// Step 5a: 60‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 60; + +// Save the second PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); +``` + +Sekarang Anda memiliki dua file PNG yang menampilkan data Databar yang sama tetapi dengan tinggi visual yang berbeda. Ini berguna ketika Anda membutuhkan barcode yang lebih besar untuk label cetak atau yang lebih kecil untuk tampilan di layar. + +--- + +## Langkah 6: Contoh lengkap yang dapat dijalankan + +Menggabungkan semuanya, berikut program konsol mandiri yang melakukan semua langkah yang dijelaskan di atas. Salin kode ke file `Program.cs` baru, ganti `YOUR_DIRECTORY` dengan jalur folder yang sebenarnya, dan jalankan. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Initialize the generator for a Databar Omnidirectional barcode + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); + + // Common parameters + generator.Parameters.Barcode.XDimension.Pixels = 2; // 2‑pixel narrow bar + + // First image: 30‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 30; + generator.Save(@"C:\Barcodes\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 30‑pixel barcode."); + + // Second image: 60‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 60; + generator.Save(@"C:\Barcodes\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 60‑pixel barcode."); + + // Dispose the generator to free native resources + generator.Dispose(); + } +} +``` + +**Output yang diharapkan** + +Saat Anda menjalankan program, konsol mencetak: + +``` +Saved 30-pixel barcode. +Saved 60-pixel barcode. +``` + +Dan folder `C:\Barcodes` (atau jalur yang Anda berikan) berisi dua file PNG. Kedua gambar menampilkan barcode Databar Omnidirectional yang valid dan dapat dipindai oleh pembaca GS1 standar. + +--- + +## Pertanyaan yang sering diajukan + +**Apakah ini bekerja dengan format gambar lain?** +Ya. Ganti `BarCodeImageFormat.Png` dengan `Jpeg`, `Bmp`, `Gif`, atau `Tiff` untuk menghasilkan tipe file yang sesuai. + +**Bisakah saya mengubah warna latar depan?** +Setel `generator.Parameters.Barcode.ForeColor` ke nilai `System.Drawing.Color` apa pun, misalnya `Color.Blue`. + +**Bagaimana jika saya membutuhkan simbol yang berbeda?** +Berikan nilai `EncodeTypes` yang berbeda ke konstruktor, seperti `EncodeTypes.Code128` untuk barcode linear atau `EncodeTypes.QR` untuk kode matriks. + +**Apakah ada cara untuk menyematkan barcode dalam PDF?** +Aspose.Barcode menyediakan kelas `PdfGenerator`. Setelah menghasilkan gambar, Anda dapat menambahkannya ke halaman PDF menggunakan Aspose.PDF. + +--- + +## Praktik terbaik untuk pembuatan barcode dalam C# + +* **Gunakan kembali instance `BarcodeGenerator`** ketika Anda hanya perlu menyesuaikan dimensi—ini menghindari alokasi memori yang tidak perlu. +* **Dispose generator** (`generator.Dispose()`) setelah selesai untuk segera melepaskan sumber daya native. +* **Validasi data input** (mis., panjang GTIN) sebelum membuat barcode untuk mencegah pengecualian runtime. +* **Uji dengan pemindai fisik** setelah mengubah X‑dimension atau tinggi bar; nilai ekstrem dapat memengaruhi keterbacaan. +* **Pastikan folder output dapat ditulisi** oleh akun yang menjalankan; jika tidak, `Save` akan melempar `UnauthorizedAccessException`. + +--- + +## Kesimpulan + +Anda sekarang tahu cara **how to set barcode** properti seperti X‑dimension dan tinggi bar, **how to generate barcode** gambar dalam C#, dan langkah tepat untuk **create Databar barcode** file dengan Aspose.Barcode. Dengan mengikuti contoh lengkap, Anda dapat menghasilkan beberapa file PNG dengan karakteristik visual yang berbeda, memenuhi kebutuhan **generate barcode image C#** untuk aplikasi .NET apa pun. + +Selanjutnya, jelajahi topik terkait seperti **how to generate barcode** secara massal, menyematkan barcode ke PDF, atau beralih ke simbol lain seperti QR atau Code 128. Bereksperimenlah dengan parameter yang ditunjukkan di sini untuk menyesuaikan tampilan barcode bagi lingkungan pemindaian spesifik Anda. Selamat coding! + +## Apa yang Harus Anda Pelajari Selanjutnya? + +Tutorial berikut mencakup topik yang sangat terkait yang membangun teknik yang ditunjukkan dalam panduan ini. Setiap sumber mencakup contoh kode lengkap yang berfungsi dengan penjelasan langkah demi langkah untuk membantu Anda menguasai fitur API tambahan dan mengeksplorasi pendekatan implementasi alternatif dalam proyek Anda. + +- [Cara Menghasilkan Barcode DataMatrix (ECC 200) dengan Aspose.BarCode untuk .NET](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-ecc-200-configuration/) +- [Cara menghasilkan barcode Aztec dengan rasio aspek khusus menggunakan Aspose.BarCode untuk .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [Cara Menghasilkan Barcode – Konfigurasi Code 39 dengan Aspose.BarCode](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-code-39-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/italian/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md b/barcode/italian/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md new file mode 100644 index 000000000..936f52491 --- /dev/null +++ b/barcode/italian/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md @@ -0,0 +1,186 @@ +--- +category: general +date: 2026-08-15 +description: Immagine del codice a barre PNG in C# – impara a generare codici a barre + postali, creare un codice Planet e modificare l'altezza del codice a barre con un + semplice generatore. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- barcode image png +- barcode generator c# +- generate postal barcode +- create planet barcode +- change barcode height +language: it +lastmod: 2026-08-15 +og_description: Il tutorial Barcode image PNG in C# mostra come generare codici a + barre postali, creare un codice a barre Planet e modificare l'altezza del codice + a barre utilizzando l'API BarcodeGenerator. +og_image_alt: Screenshot of generated PNG barcode with custom height using C# BarcodeGenerator +og_title: Immagine del codice a barre PNG in C# – genera e regola i codici a barre +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Barcode image PNG in C# – learn how to generate postal barcodes, create + a Planet barcode, and change barcode height with a simple generator. + headline: Barcode image PNG in C# generate barcodes, change height + type: TechArticle +tags: +- barcode +- C# +- PNG +- postal +- generator +title: Immagine barcode PNG in C# genera codici a barre, modifica l'altezza +url: /it/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Immagine barcode PNG in C# – genera barcode, cambia altezza + +Se hai bisogno di una **barcode image PNG** in C#, questa guida ti accompagna passo passo nel processo completo. Imparerai a generare barcode postali, a creare un barcode Planet e a modificare l'altezza del barcode senza lasciare l'IDE. + +Generare barcode PNG affidabili è una necessità comune per etichette di spedizione, sistemi di inventario e soluzioni di mailing automatizzate. Alla fine di questo tutorial avrai a disposizione uno snippet di codice riutilizzabile che produce file PNG di alta qualità sia per i formati Planet che RM4SCC, e comprenderai come regolare l'altezza delle barre per soddisfare le specifiche postali. + +## Cosa ti servirà + +- .NET 6+ o .NET Framework 4.7.2 (l'API BarcodeGenerator funziona con qualsiasi runtime .NET recente) +- Un riferimento al pacchetto NuGet **Aspose.BarCode for .NET** (o a qualsiasi libreria compatibile che fornisca `BarcodeGenerator`, `EncodeTypes` e `BarCodeImageFormat`) +- Familiarità di base con la sintassi C# e con I/O di file + +Non sono richiesti strumenti aggiuntivi; il codice funziona in Visual Studio, Rider o con la CLI `dotnet`. + +## Immagine barcode PNG – generazione di base + +Il primo passo è creare una **barcode image PNG** con dimensioni predefinite. Questo stabilisce il file di base che potrai personalizzare in seguito. + +```csharp +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +// Define the output folder (replace with your own path) +string outputFolder = @"C:\Barcodes"; + +// Ensure the folder exists +Directory.CreateDirectory(outputFolder); + +// 1️⃣ Create a Planet barcode generator with default height +BarcodeGenerator planetGenerator = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + +// Set the module width (X‑dimension) to 4 pixels – this defines the thin bar size +planetGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the image as PNG; this is the first **barcode image PNG** you’ll produce +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +**Perché funziona:** +- `EncodeTypes.Planet` indica al generatore di utilizzare la simbologia Planet, necessaria per molti servizi postali. +- `XDimension.Pixels` controlla la larghezza della barra più piccola; un valore di 4 px produce un barcode leggibile nelle dimensioni tipiche delle etichette. +- Il metodo `Save` scrive un file **barcode image PNG** su disco, preservando tutte le informazioni vettoriali come pixel raster. + +## Cambia altezza barcode – personalizzazione del peso visivo + +Le linee guida postali spesso richiedono un'altezza specifica delle barre. Il frammento seguente dimostra come impostare un'altezza personalizzata di 100 pixel per lo stesso barcode Planet. + +```csharp +// 2️⃣ Apply a custom 100‑pixel bar height +planetGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Overwrite or save as a new file to keep both versions +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +**Perché cambiare l'altezza:** +Una barra più alta migliora l'affidabilità della scansione su stampanti a bassa risoluzione, mentre una barra più corta riduce lo spazio occupato sull'etichetta. La proprietà `BarHeight.Pixels` ti consente di regolare finemente questo attributo senza influire sulla dimensione X. + +## Genera barcode postale – esempio RM4SCC + +Il formato RM4SCC è un altro barcode postale comune utilizzato nel Regno Unito. I passaggi di generazione rispecchiano l'esempio Planet, rafforzando il modello **barcode generator c#**. + +```csharp +// 3️⃣ Create an RM4SCC barcode generator with default height +BarcodeGenerator rm4sccGenerator = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Keep the same module width for consistency +rm4sccGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the default‑height PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +## Cambia altezza barcode – variazione RM4SCC + +Proprio come per il barcode Planet, puoi regolare l'altezza delle barre RM4SCC. Il codice qui sotto imposta l'altezza a 100 px, producendo un secondo **barcode image PNG** per la stessa stringa di dati. + +```csharp +// 4️⃣ Set a custom 100‑pixel bar height for RM4SCC +rm4sccGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Save the customized PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +## Esempio completo, eseguibile + +Unendo tutti i passaggi ottieni un unico programma autonomo che crea quattro file PNG: + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +class Program +{ + static void Main() + { + string outputFolder = @"C:\Barcodes"; + Directory.CreateDirectory(outputFolder); + + // Planet barcode – default height + var planet = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planet.Parameters.Barcode.XDimension.Pixels = 4; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // Planet barcode – custom 100‑pixel height + planet.Parameters.Barcode.BarHeight.Pixels = 100; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – default height + var rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – custom 100‑pixel height + rm4scc.Parameters.Barcode.BarHeight.Pixels = 100; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); + + Console.WriteLine("All barcode PNG files have been generated in " + + + +## Cosa dovresti imparare dopo? + +I tutorial seguenti coprono argomenti strettamente correlati che si basano sulle tecniche dimostrate in questa guida. Ogni risorsa include esempi di codice completi e funzionanti con spiegazioni passo‑passo per aiutarti a padroneggiare funzionalità aggiuntive dell'API ed esplorare approcci di implementazione alternativi nei tuoi progetti. + +- [Crea Barcode Altezza Personalizzata – Codici a Barre Unidimensionali](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-barcode-height-adjustment/) +- [Crea Barcode PNG – Rapporto d'Aspetto DataMatrix – Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-aspect-ratio-customization/) +- [Crea immagine barcode C# – Esempio GS1 DataMatrix](/barcode/english/net/gs1-barcode-encoding/gs1-datamatrix-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/italian/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md b/barcode/italian/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md new file mode 100644 index 000000000..f433f6b71 --- /dev/null +++ b/barcode/italian/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-08-15 +description: Crea il codice a barre planet in C# e impara come impostare le dimensioni + del codice a barre per una dimensione perfetta. Esempio di codice passo‑passo con + barre piene e vuote. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create planet barcode +- how to set barcode dimensions +- planet barcode C# +- barcode X‑dimension +- empty barcode bars +language: it +lastmod: 2026-08-15 +og_description: Crea un codice a barre Planet in C# e impara come impostare le dimensioni + del codice a barre. Segui questa guida per generare istantaneamente codici a barre + Planet pieni e vuoti. +og_image_alt: Screenshot showing a Planet barcode with filled bars generated by C# + code +og_title: Crea il codice a barre del pianeta in C# – guida completa passo‑passo +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Create planet barcode in C# and learn how to set barcode dimensions + for perfect sizing. Step‑by‑step code example with filled and empty bars. + headline: Create planet barcode in C# – complete programming guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.BarCode +title: Crea il codice a barre planetario in C# – guida completa di programmazione +url: /it/python-java/general/create-planet-barcode-in-c-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crea barcode Planet in C# – guida completa di programmazione + +Se hai bisogno di **creare barcode planet** in C#, questa guida ti mostra esattamente come farlo. Scoprirai anche **come impostare le dimensioni del barcode** in modo che le barre vengano renderizzate con la larghezza esatta che ti serve. + +Generare barcode Planet è comune quando si lavora con servizi postali o sistemi logistici. Il codice qui sotto copre sia la versione predefinita a barre piene sia lo stile opzionale a barre vuote, oltre a un rapido esempio per il formato RM4SCC. Alla fine di questo tutorial avrai uno snippet riutilizzabile da inserire in qualsiasi progetto .NET. + +## Prerequisiti + +Prima di iniziare, assicurati di avere: + +* .NET 6.0 o successivo installato (l'API funziona anche con .NET Framework 4.6+) +* Il pacchetto NuGet **Aspose.BarCode for .NET** (`Aspose.BarCode`) aggiunto al tuo progetto +* Un percorso di cartella scrivibile dove verranno salvati i file PNG +* Familiarità di base con la sintassi C# e Visual Studio (o qualsiasi IDE) + +> **Pro tip:** Usa un percorso assoluto o `Path.Combine(Environment.CurrentDirectory, "output")` per evitare problemi di permessi durante il salvataggio delle immagini. + +## Passo 1 – Inizializzare un generatore di barcode Planet (barre piene) + +Il primo passo è creare un'istanza di `BarcodeGenerator` per la simbologia Planet. Per impostazione predefinita il generatore produce **barre piene**. + +```csharp +// Step 1: Create a Planet barcode with the default (filled) bars +BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +L'enumerazione `EncodeTypes.Planet` indica ad Aspose.BarCode di utilizzare il formato Planet, mentre `"123456"` è il payload di dati che verrà codificato. + +## Passo 2 – Come impostare le dimensioni del barcode per una dimensione coerente + +Per controllare la larghezza di ogni barra, regola la **X‑dimension**. Questo è il modo principale per **impostare le dimensioni del barcode** e garantisce che il barcode si adatti alle dimensioni della tua etichetta. + +```csharp +// Step 2: Set the X‑dimension (width of each bar) to 4 pixels +planetFilled.Parameters.Barcode.XDimension.Pixels = 4; +``` + +La proprietà `Pixels` definisce la larghezza della barra in pixel dello schermo. Valori comuni sono 2 – 5 pixel per etichette postali standard; aumenta il valore per stampe più grandi. + +## Passo 3 – Salva il barcode Planet pieno come PNG + +Ora scrivi l'immagine su disco. PNG conserva bordi nitidi, ideale per la scansione. + +```csharp +// Step 3: Save the Planet barcode as a PNG image +planetFilled.Save("YOUR_DIRECTORY/PostalPlanetFilledBars.png", BarCodeImageFormat.Png); +``` + +Sostituisci `YOUR_DIRECTORY` con il percorso che hai preparato in precedenza. Dopo aver eseguito questo codice vedrai un file simile all'immagine qui sotto. + +![Planet barcode with filled bars](planet_filled.png "Planet barcode with filled bars – created by C# code") + +*Alt text:* **Planet barcode with filled bars generated by C# code** (matches `og_image_alt`). + +## Passo 4 – Crea un barcode Planet con barre vuote (non riempite) + +Se il tuo servizio postale richiede che le barre siano **vuote**, devi attivare il flag `FilledBars` dopo aver inizializzato il generatore. + +```csharp +// Step 4: Create a Planet barcode with empty (unfilled) bars +BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +Il costruttore è identico; la differenza sta nel passaggio di configurazione successivo. + +## Passo 5 – Come impostare le dimensioni del barcode e rendere le barre vuote + +Di nuovo, imposta la X‑dimension per coerenza visiva, quindi disabilita le barre piene. + +```csharp +// Step 5: Set the X‑dimension and specify that bars should be empty +planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; +planetEmpty.Parameters.Barcode.FilledBars = false; // makes bars empty +``` + +La proprietà `FilledBars = false` è quella che effettivamente cambia lo stile di rendering. Mantenere la stessa X‑dimension assicura che il barcode a barre vuote si allinei perfettamente con la versione a barre piene. + +## Passo 6 – Salva il barcode Planet vuoto + +```csharp +// Step 6: Save the Planet barcode with empty bars as a PNG image +planetEmpty.Save("YOUR_DIRECTORY/PostalPlanetEmptyBars.png", BarCodeImageFormat.Png); +``` + +Ora avrai due file PNG: uno con barre solide e uno con barre vuote, entrambi con le stesse dimensioni. + +## Passo 7 – (Facoltativo) Genera un barcode RM4SCC per confronto + +RM4SCC è un'altra simbologia postale che utilizza lo stesso stile predefinito a barre piene. I passaggi rispecchiano l'esempio Planet, dimostrando che **come impostare le dimensioni del barcode** funziona su più formati. + +```csharp +// Step 7: Create an RM4SCC barcode (filled bars are the default) +BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Step 8: Set the X‑dimension for consistency +rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + +// Step 9: Save the RM4SCC barcode as a PNG image +rm4scc.Save("YOUR_DIRECTORY/PostalRM4SCCFilledBars.png", BarCodeImageFormat.Png); +``` + +Eseguendo questi tre passaggi si produce `PostalRM4SCCFilledBars.png`, che puoi confrontare fianco a fianco con le uscite Planet. + +## Perché la X‑dimension è importante + +La X‑dimension determina la **larghezza minima stampabile** di ogni barra. Se la imposti troppo bassa, il barcode può sfocare su stampanti a bassa risoluzione, causando errori di scansione. Al contrario, una X‑dimension troppo grande può superare le dimensioni dell'etichetta e sprecare spazio. Specificando esplicitamente **come impostare le dimensioni del barcode**, ottieni un controllo deterministico sulla dimensione finale dell'immagine, fondamentale per flussi di lavoro di spedizione automatizzati. + +## Problemi comuni e come evitarli + +| Issue | Cause | Fix | +|-------|-------|-----| +| Barcode appears stretched | X‑dimension set in points instead of pixels | Always use `Pixels` property for pixel‑perfect control | +| Empty bars still look filled | `FilledBars` not set to `false` after X‑dimension change | Set `FilledBars = false` *after* adjusting X‑dimension | +| Saved file is blank | Output directory does not exist or lacks write permission | Ensure the directory exists (`Directory.CreateDirectory`) and your app runs with sufficient rights | +| Image is blurry on print | Low DPI PNG saved from a high‑resolution monitor | Use `BarCodeImageFormat.Png` (lossless) and consider `Resolution` property if needed | + +## Esempio completo, eseguibile + +Copia l'intero blocco qui sotto in un nuovo progetto console (`dotnet new console`) ed eseguilo. Il programma crea tre file PNG nella cartella `output`. + +```csharp +using System; +using System.IO; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Ensure output folder exists + string outDir = Path.Combine(Environment.CurrentDirectory, "output"); + Directory.CreateDirectory(outDir); + + // ---------- Planet barcode – filled bars ---------- + BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetFilled.Parameters.Barcode.XDimension.Pixels = 4; // set dimensions + planetFilled.Save(Path.Combine(outDir, "PostalPlanetFilledBars.png"), BarCodeImageFormat.Png); + + // ---------- Planet barcode – empty bars ---------- + BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; // same dimensions + planetEmpty.Parameters.Barcode.FilledBars = false; // make bars empty + planetEmpty.Save(Path.Combine(outDir, "PostalPlanetEmptyBars.png"), BarCodeImageFormat.Png); + + // ---------- RM4SCC barcode (filled bars) ---------- + BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; // consistent size + rm4scc.Save(Path.Combine(outDir, "PostalRM4SCCFilledBars.png"), BarCodeImageFormat.Png); + + Console.WriteLine($"Barcodes generated in: {outDir}"); + } +} +``` + +**Expected output:** three PNG files—`PostalPlanetFilledBars.png`, `PostalPlanetEmptyBars.png`, and `PostalRM4SCCFilledBars.png`—each 4‑pixel wide bars, ready for printing or further processing. + +## Conclusione + +Ora sai come **creare barcode planet** in C# e come **impostare con precisione le dimensioni del barcode** sia per lo stile a barre piene sia per quello a barre vuote. Lo stesso schema si applica ad altre simbologie come RM4SCC, fornendoti una base flessibile per qualsiasi esigenza di barcode postale. + +Prossimi passi consigliati: + +* Aggiungere testo leggibile dall'uomo sotto il barcode (`BarcodeGenerator.Parameters.Barcode.CodeText`) +* Cambiare i colori delle barre con `Parameters.Barcode.BarColor` +* Generare barcode in formati vettoriali (SVG, EPS) per stampe scalabili + +Sentiti libero di sperimentare con valori diversi di X‑dimension, stringhe di dati e formati di output per adattarli al tuo flusso di lavoro specifico. Buona programmazione! + +## Cosa dovresti imparare dopo? + +I tutorial seguenti trattano argomenti strettamente correlati che approfondiscono le tecniche dimostrate in questa guida. Ogni risorsa include esempi di codice completi e funzionanti con spiegazioni passo‑passo per aiutarti a padroneggiare ulteriori funzionalità dell'API e a esplorare approcci di implementazione alternativi nei tuoi progetti. + +- [How to create barcode quiet zone for Code 16K using Aspose.BarCode for .NET](/barcode/english/net/code-16k-encoding/code-16k-quiet-zone-settings/) +- [How to Create Barcode Quiet Zone for ITF-14 Using Aspose.BarCode for .NET](/barcode/english/net/itf-14-barcode-customization/itf-14-barcode-quiet-zone-configuration/) +- [How to create Aztec barcode with error correction in .NET](/barcode/english/net/aztec-barcode-encoding/aztec-error-level-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/italian/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md b/barcode/italian/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md new file mode 100644 index 000000000..8b4c29298 --- /dev/null +++ b/barcode/italian/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md @@ -0,0 +1,239 @@ +--- +category: general +date: 2026-08-15 +description: Databar ha ampliato la generazione di codici a barre impilati in C#. + Scopri come generare l'immagine del codice a barre, impostare colonne e righe per + i layout DataBar. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- databar expanded stacked +- generate barcode image +- how to generate barcode +- how to set columns +- how to set rows +language: it +lastmod: 2026-08-15 +og_description: Databar ha ampliato la generazione di codici a barre impilati in C#. + Segui questa guida passo passo per generare immagini di codici a barre, impostare + le colonne e le righe in modo efficiente. +og_image_alt: Screenshot of a databar expanded stacked barcode generated with C# +og_title: Databar espanso impilato – genera immagine del codice a barre in C# +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + headline: 'Databar expanded stacked: generate barcode image in C#' + type: TechArticle +- description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + name: 'Databar expanded stacked: generate barcode image in C#' + steps: + - name: 1. Install the Aspose.BarCode library + text: 'The code uses the **Aspose.BarCode for .NET** library, which provides the + `BarcodeGenerator` class. Install the NuGet package with the following command:' + - name: 2. Create a barcode generator for **databar expanded stacked** + text: The generator is the entry point for all barcode operations. You must specify + the symbology (`EncodeTypes.DatabarExpandedStacked`) and the text to encode. + - name: 3. How to set columns for DataBar + text: The `Columns` property controls how many vertical modules appear in the + stacked barcode. Valid values are 2, 3, or 4. Setting columns influences the + barcode’s width and the amount of data it can store. + - name: 4. Save the 4‑column barcode image + text: Saving the image produces a file that you can embed in reports, invoices, + or mobile apps. The `Save` method accepts a file path and an image format. + - name: 5. How to set rows for DataBar + text: Rows add a second dimension to the stacked layout, allowing more data to + be encoded without widening the barcode. The `Rows` property defaults to 1; + you can increase it up to 3 for the expanded stacked variant. + - name: 6. Save the 3‑row barcode image + text: '```csharp // Step 5: Save the 3‑row barcode image barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", + BarCodeImageFormat.Png); ```' + - name: 7. Complete C# example to generate barcode image + text: 'Putting all steps together yields a self‑contained program you can copy + into a console application:' + type: HowTo +tags: +- barcode +- C# +- Aspose.BarCode +title: 'Databar expanded stacked: genera immagine del codice a barre in C#' +url: /it/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Databar expanded stacked: genera immagine barcode in C# + +Se hai bisogno di generare un'immagine barcode **databar expanded stacked** in C#, questa guida ti mostra esattamente **come generare barcode** con layout personalizzati di colonne e righe. Vedrai come impostare le colonne, come impostare le righe e come salvare le immagini risultanti senza uscire dall'IDE. + +Il tutorial copre: + +* Creazione di un generatore di barcode per la simbologia **databar expanded stacked**. +* Configurazione di un layout a 4 colonne e a 3 righe. +* Salvataggio di ogni configurazione come file PNG. +* Suggerimenti per gestire casi limite come conteggi di colonne non validi. + +Nessuna documentazione esterna è necessaria; l'esempio completo e funzionante è incluso. + +![Databar expanded stacked barcode example](YOUR_DIRECTORY/DatabarCols4.png){: .center alt="databar expanded stacked barcode generato con C#" } + +## Passaggi per la generazione del barcode Databar expanded stacked + +### 1. Installa la libreria Aspose.BarCode + +Il codice utilizza la libreria **Aspose.BarCode for .NET**, che fornisce la classe `BarcodeGenerator`. Installa il pacchetto NuGet con il comando seguente: + +```bash +dotnet add package Aspose.BarCode +``` + +Dopo l'installazione del pacchetto, aggiungi lo spazio dei nomi richiesto all'inizio del tuo file: + +```csharp +using Aspose.BarCode.Generation; +``` + +### 2. Crea un generatore di barcode per **databar expanded stacked** + +Il generatore è il punto di ingresso per tutte le operazioni sul barcode. Devi specificare la simbologia (`EncodeTypes.DatabarExpandedStacked`) e il testo da codificare. + +```csharp +// Step 1: Create a barcode generator for Databar Expanded Stacked +BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); +``` + +*Perché è importante:* L'enumerazione `EncodeTypes` indica alla libreria quale formato di barcode produrre. L'uso di **databar expanded stacked** garantisce che l'immagine risultante segua la specifica GS1 DataBar per layout impilati. + +### 3. Come impostare le colonne per DataBar + +La proprietà `Columns` controlla quante unità verticali compaiono nel barcode impilato. I valori validi sono 2, 3 o 4. Impostare le colonne influisce sulla larghezza del barcode e sulla quantità di dati che può contenere. + +```csharp +// Step 2: Configure a 4‑column layout +barcode.Parameters.Barcode.DataBar.Columns = 4; +``` + +**Suggerimento:** Se tenti di assegnare un valore al di fuori dell'intervallo consentito, la libreria genera un'`ArgumentException`. Convalida sempre l'input quando esponi la selezione delle colonne agli utenti. + +### 4. Salva l'immagine del barcode a 4 colonne + +Il salvataggio dell'immagine produce un file che puoi incorporare in report, fatture o app mobili. Il metodo `Save` accetta un percorso file e un formato immagine. + +```csharp +// Step 3: Save the 4‑column barcode image +barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); +``` + +Quando il file è scritto, puoi aprirlo con qualsiasi visualizzatore di immagini per confermare che il modello **databar expanded stacked** sia visualizzato correttamente. + +### 5. Come impostare le righe per DataBar + +Le righe aggiungono una seconda dimensione al layout impilato, consentendo di codificare più dati senza allargare il barcode. La proprietà `Rows` ha valore predefinito 1; puoi aumentarla fino a 3 per la variante expanded stacked. + +```csharp +// Step 4: Switch to a 3‑row layout (columns remain unchanged) +barcode.Parameters.Barcode.DataBar.Rows = 3; +``` + +**Perché le righe sono importanti:** L'aumento delle righe riduce la larghezza complessiva mantenendo la capacità di dati, utile per etichette strette o spazi su schermi mobili. + +### 6. Salva l'immagine del barcode a 3 righe + +```csharp +// Step 5: Save the 3‑row barcode image +barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); +``` + +Ora disponi di due file PNG—uno con layout a 4 colonne e l'altro con layout a 3 righe—entrambi usando la simbologia **databar expanded stacked**. + +### 7. Esempio completo in C# per generare l'immagine barcode + +Unendo tutti i passaggi ottieni un programma autonomo che puoi copiare in un'applicazione console: + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace DatabarExpandedStackedDemo +{ + class Program + { + static void Main() + { + // Create the generator for Databar Expanded Stacked + BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); + + // Configure a 4‑column layout and save + barcode.Parameters.Barcode.DataBar.Columns = 4; + barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); + Console.WriteLine("4‑column barcode saved."); + + // Change to a 3‑row layout (columns stay at 4) and save + barcode.Parameters.Barcode.DataBar.Rows = 3; + barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); + Console.WriteLine("3‑row barcode saved."); + } + } +} +``` + +**Output previsto** + +L'esecuzione del programma stampa: + +``` +4‑column barcode saved. +3‑row barcode saved. +``` + +e crea due file PNG in `YOUR_DIRECTORY`. Apri i file per verificare che ciascuna immagine mostri un barcode **databar expanded stacked** valido. + +## Problemi comuni e consigli pratici + +* **Esistenza della directory** – `Save` non crea cartelle mancanti. Assicurati che `YOUR_DIRECTORY` esista o utilizza `Directory.CreateDirectory` prima di salvare. +* **Limiti delle colonne** – Valori diversi da 2, 3 o 4 generano un'eccezione. Proteggi l'input dell'utente con un semplice controllo di intervallo: + + ```csharp + int columns = 4; + if (columns < 2 || columns > 4) throw new ArgumentOutOfRangeException(nameof(columns)); + barcode.Parameters.Barcode.DataBar.Columns = columns; + ``` + +* **Limiti delle righe** – La variante expanded stacked supporta fino a 3 righe. Impostare `Rows` a 0 o a un valore superiore a 3 solleva anch'essa un'eccezione. +* **Formato immagine** – `BarCodeImageFormat.Png` offre qualità lossless, ideale per la stampa. Usa `Jpeg` solo quando la dimensione del file è una priorità. + +## Prossimi passi + +Ora che sai **come generare barcode** con configurazioni personalizzate di colonne e righe, puoi: + +* Integrare il generatore in una web API per servire immagini barcode su richiesta. +* Combinare il barcode con librerie di generazione PDF per includerlo nelle fatture. +* Sperimentare con altre varianti DataBar (`DatabarExpanded`, `DatabarLimited`) usando lo stesso oggetto `Parameters.Barcode.DataBar`. + +Per una personalizzazione più approfondita—come cambiare il colore delle barre, aggiungere testo leggibile dall'uomo o applicare sovrapposizioni QR‑code—consulta la documentazione di Aspose.BarCode sulle proprietà di `BarcodeGenerator`. + +--- + +Seguendo questa guida hai padroneggiato il flusso di lavoro **databar expanded stacked**, imparato **come impostare le colonne**, **come impostare le righe**, e prodotto due immagini barcode distinte pronte per l'uso in produzione. Buon coding! + +## Cosa dovresti imparare dopo? + +I tutorial seguenti trattano argomenti strettamente correlati che si basano sulle tecniche dimostrate in questa guida. Ogni risorsa include esempi di codice completi con spiegazioni passo‑passo per aiutarti a padroneggiare ulteriori funzionalità dell'API ed esplorare approcci di implementazione alternativi nei tuoi progetti. + +- [Generate barcode image – GS1 Coupon UPC-A Databar](/barcode/english/net/gs1-barcode-encoding/gs1-coupon-upc-a-databar-configuration/) +- [Create DotCode barcode image – rows & columns (Aspose.BarCode)](/barcode/english/net/dotcode-barcode-configuration/dotcode-rows-columns-configuration/) +- [How to Generate Barcode - One-Dimensional Barcode Types](/barcode/english/net/one-dimensional-barcode-types/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/italian/python-java/general/how-to-set-barcode-complete-c-guide/_index.md b/barcode/italian/python-java/general/how-to-set-barcode-complete-c-guide/_index.md new file mode 100644 index 000000000..4ba357adb --- /dev/null +++ b/barcode/italian/python-java/general/how-to-set-barcode-complete-c-guide/_index.md @@ -0,0 +1,236 @@ +--- +category: general +date: 2026-08-15 +description: Come impostare i parametri del codice a barre in C# e generare immagini + di codici a barre. Impara passo passo a creare un codice a barre Databar e salvare + file PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to set barcode +- how to generate barcode +- create databar barcode +- generate barcode image c# +language: it +lastmod: 2026-08-15 +og_description: Come impostare il codice a barre in C# con Aspose.Barcode, quindi + generare l’immagine del codice a barre in C#. Segui questa guida per creare un codice + a barre Databar e salvare i file PNG. +og_image_alt: Screenshot of a Databar barcode saved as PNG using C# code +og_title: Come impostare il codice a barre in C# – guida passo passo +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: How to set barcode parameters in C# and generate barcode images. Learn + step‑by‑step to create Databar barcode and save PNG files. + headline: How to set barcode – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.Barcode +title: Come impostare il codice a barre – guida completa C# +url: /it/python-java/general/how-to-set-barcode-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Come impostare il codice a barre – guida completa C# + +Se stai cercando **come impostare il codice a barre** nei parametri di un progetto .NET, questo tutorial mostra i passaggi esatti di cui hai bisogno. Imparerai **come generare codici a barre** immagini, creare un codice a barre Databar e controllare l’altezza delle barre pixel per pixel, il tutto con codice C# pulito e pronto per la produzione. + +In questa guida: + +* Installa il pacchetto NuGet richiesto. +* Crea un codice a barre Databar Omnidirezionale (la parte “crea codice a barre Databar”). +* Regola la X‑dimension e l’altezza della barra per dimostrare **come impostare il codice a barre** le dimensioni. +* Salva il risultato come file PNG, coprendo lo scenario **generare immagine codice a barre C#**. + +Il codice funziona con l’ultima versione di Aspose.Barcode per .NET (v 24.12 al momento della stesura) e gira su .NET 6 o versioni successive. + +--- + +## Prerequisiti + +Prima di iniziare, assicurati di avere: + +* .NET 6 SDK (o qualsiasi versione successiva). +* Un IDE come Visual Studio 2022 o VS Code. +* Accesso a Internet per scaricare il pacchetto NuGet Aspose.Barcode. + +Nessuna libreria di terze parti aggiuntiva è richiesta. + +--- + +## Passo 1: Installa Aspose.Barcode per .NET + +Il modo più affidabile per **generare codici a barre** immagini in C# è utilizzare Aspose.Barcode. Apri un terminale nella cartella del tuo progetto ed esegui: + +```bash +dotnet add package Aspose.BarCode +``` + +Il comando aggiunge l’ultima versione stabile al tuo file di progetto, garantendo la presenza della classe `BarcodeGenerator` e dell’enumerazione `EncodeTypes`. + +*Consiglio professionale:* Mantieni il pacchetto aggiornato (`dotnet list package --outdated`) per beneficiare di correzioni di bug e nuove simbologie di codici a barre. + +--- + +## Passo 2: Crea un codice a barre Databar (crea codice a barre Databar) + +Databar Omnidirezionale è ideale per il retail e la logistica perché può codificare un valore GTIN‑14 più dati aggiuntivi. Il codice seguente crea l’oggetto codice a barre: + +```csharp +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +// Step 2: Initialize the generator for a Databar Omnidirectional barcode +BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); +``` + +*Perché è importante:* L’enum `EncodeTypes.DatabarOmniDirectional` indica alla libreria di usare la simbologia Databar, mentre la stringa `"(01)12345678901231"` segue il formato GS1 Application Identifier per un GTIN a 14 cifre. + +--- + +## Passo 3: Definisci i parametri comuni – X‑dimension e altezza di base + +La maggior parte degli scanner di codici a barre si aspetta una X‑dimension minima (la larghezza della barra più stretta). Impostarla a 2 pixel fornisce un’immagine compatta ma leggibile. + +```csharp +// Step 3: Set a 2‑pixel X‑dimension (common for most scanners) +generator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +Puoi successivamente regolare l’altezza della barra senza ricreare il generatore—questo è il fulcro di **come impostare il codice a barre** gli attributi dopo l’instanziazione. + +--- + +## Passo 4: Imposta la prima altezza della barra e salva l’immagine (generare immagine codice a barre C#) + +Ora dimostriamo la prima parte di **come impostare il codice a barre** altezza. L’altezza della barra controlla la lunghezza visiva di ogni barra; un valore di 30 pixel produce un codice a barre corto, mentre 60 pixel ne crea una versione più alta. + +```csharp +// Step 4a: 30‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 30; + +// Save the first PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); +``` + +Dopo l’esecuzione, `DatabarBarHeight30Pixels.png` contiene un codice a barre Databar con una barra alta 30 pixel. Apri il file con qualsiasi visualizzatore di immagini per verificare il risultato. + +--- + +## Passo 5: Modifica l’altezza della barra e salva una seconda immagine + +Per illustrare che **come impostare il codice a barre** i valori possono essere cambiati al volo, modifichiamo l’altezza della barra a 60 pixel e scriviamo un secondo file. + +```csharp +// Step 5a: 60‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 60; + +// Save the second PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); +``` + +Ora disponi di due file PNG che mostrano gli stessi dati Databar ma con altezze visive diverse. Questo è utile quando ti serve un codice a barre più grande per etichette stampate o più piccolo per la visualizzazione su schermo. + +--- + +## Passo 6: Esempio completo, eseguibile + +Mettendo tutto insieme, ecco un programma console autonomo che esegue tutti i passaggi descritti sopra. Copia il codice in un nuovo file `Program.cs`, sostituisci `YOUR_DIRECTORY` con un percorso di cartella reale e avvialo. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Initialize the generator for a Databar Omnidirectional barcode + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); + + // Common parameters + generator.Parameters.Barcode.XDimension.Pixels = 2; // 2‑pixel narrow bar + + // First image: 30‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 30; + generator.Save(@"C:\Barcodes\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 30‑pixel barcode."); + + // Second image: 60‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 60; + generator.Save(@"C:\Barcodes\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 60‑pixel barcode."); + + // Dispose the generator to free native resources + generator.Dispose(); + } +} +``` + +**Output previsto** + +Quando esegui il programma, la console stampa: + +``` +Saved 30-pixel barcode. +Saved 60-pixel barcode. +``` + +E la cartella `C:\Barcodes` (o il percorso che hai fornito) contiene i due file PNG. Entrambe le immagini mostrano un codice a barre Databar Omnidirezionale valido che può essere letto da lettori GS1 standard. + +--- + +## Domande frequenti + +**Questo funziona con altri formati immagine?** +Sì. Sostituisci `BarCodeImageFormat.Png` con `Jpeg`, `Bmp`, `Gif` o `Tiff` per generare il tipo di file corrispondente. + +**Posso cambiare il colore di primo piano?** +Imposta `generator.Parameters.Barcode.ForeColor` a qualsiasi valore `System.Drawing.Color`, ad esempio `Color.Blue`. + +**E se ho bisogno di una simbologia diversa?** +Passa un valore diverso di `EncodeTypes` al costruttore, come `EncodeTypes.Code128` per un codice a barre lineare o `EncodeTypes.QR` per un codice matrice. + +**È possibile incorporare il codice a barre in un PDF?** +Aspose.Barcode fornisce una classe `PdfGenerator`. Dopo aver generato l’immagine, puoi aggiungerla a una pagina PDF usando Aspose.PDF. + +--- + +## Best practice per la generazione di codici a barre in C# + +* **Riutilizza l’istanza `BarcodeGenerator`** quando devi solo modificare le dimensioni—questo evita allocazioni di memoria inutili. +* **Disponi il generatore** (`generator.Dispose()`) dopo aver terminato per rilasciare prontamente le risorse native. +* **Convalida i dati di input** (ad es. la lunghezza del GTIN) prima di creare il codice a barre per prevenire eccezioni a runtime. +* **Testa con uno scanner fisico** dopo aver cambiato X‑dimension o altezza della barra; valori estremi possono influire sulla leggibilità. +* **Mantieni la cartella di output scrivibile** per l’account in esecuzione; altrimenti `Save` genererà un `UnauthorizedAccessException`. + +--- + +## Conclusione + +Ora sai **come impostare le proprietà del codice a barre** come X‑dimension e altezza della barra, **come generare immagini di codici a barre** in C#, e i passaggi esatti per **creare file Databar barcode** con Aspose.Barcode. Seguendo l’esempio completo, puoi generare più file PNG con caratteristiche visive diverse, soddisfacendo il requisito **generare immagine codice a barre C#** per qualsiasi applicazione .NET. + +Successivamente, esplora argomenti correlati come **come generare codici a barre** in massa, incorporare codici a barre in PDF o passare a altre simbologie come QR o Code 128. Sperimenta con i parametri mostrati qui per perfezionare l’aspetto del codice a barre per il tuo specifico ambiente di scansione. Buon coding! + +## Cosa dovresti imparare dopo? + +I tutorial seguenti coprono argomenti strettamente correlati che si basano sulle tecniche dimostrate in questa guida. Ogni risorsa include esempi di codice completi e funzionanti con spiegazioni passo‑passo per aiutarti a padroneggiare funzionalità API aggiuntive ed esplorare approcci di implementazione alternativi nei tuoi progetti. + +- [Come generare codici a barre DataMatrix (ECC 200) con Aspose.BarCode per .NET](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-ecc-200-configuration/) +- [Come generare un codice a barre Aztec con rapporto d'aspetto personalizzato usando Aspose.BarCode per .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [Come generare un codice a barre – Configurazione Code 39 con Aspose.BarCode](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-code-39-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/japanese/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md b/barcode/japanese/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md new file mode 100644 index 000000000..b2c3fe08a --- /dev/null +++ b/barcode/japanese/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md @@ -0,0 +1,184 @@ +--- +category: general +date: 2026-08-15 +description: C#でバーコード画像PNG – 郵便バーコードの生成方法、Planetバーコードの作成方法、シンプルなジェネレータでバーコードの高さを変更する方法を学びましょう。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- barcode image png +- barcode generator c# +- generate postal barcode +- create planet barcode +- change barcode height +language: ja +lastmod: 2026-08-15 +og_description: C# のチュートリアル「Barcode image PNG」では、郵便バーコードの生成、Planet バーコードの作成、そして BarcodeGenerator + API を使用したバーコードの高さ変更方法を紹介しています。 +og_image_alt: Screenshot of generated PNG barcode with custom height using C# BarcodeGenerator +og_title: C#でバーコード画像PNGを生成・調整 +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Barcode image PNG in C# – learn how to generate postal barcodes, create + a Planet barcode, and change barcode height with a simple generator. + headline: Barcode image PNG in C# generate barcodes, change height + type: TechArticle +tags: +- barcode +- C# +- PNG +- postal +- generator +title: C#でバーコード画像PNGを生成し、バーコードの高さを変更 +url: /ja/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# でのバーコード画像 PNG – バーコード生成と高さ変更 + +C# で **barcode image PNG** が必要な場合、このガイドはプロセス全体を順を追って説明します。郵便バーコードの生成方法、Planet バーコードの作成方法、IDE を離れずにバーコードの高さを変更する方法を学べます。 + +信頼性の高い PNG バーコードの生成は、出荷ラベル、在庫システム、そして自動郵送ソリューションで一般的な要件です。このチュートリアルの最後までに、Planet と RM4SCC の両フォーマット向けに高品質な PNG ファイルを生成する再利用可能なコードスニペットを手に入れ、郵便規格に合わせてバーの高さを調整する方法を理解できるようになります。 + +## 必要なもの + +- .NET 6+ または .NET Framework 4.7.2(BarcodeGenerator API は最新の .NET ランタイムで動作します) +- **Aspose.BarCode for .NET** NuGet パッケージへの参照(または `BarcodeGenerator`、`EncodeTypes`、`BarCodeImageFormat` を提供する互換ライブラリ) +- C# の構文とファイル I/O に関する基本的な知識 + +追加ツールは不要です。コードは Visual Studio、Rider、または `dotnet` CLI で実行できます。 + +## Barcode image PNG – 基本生成 + +最初のステップは、デフォルトの寸法で **barcode image PNG** を作成することです。これにより、後でカスタマイズできるベースラインファイルが確立されます。 + +```csharp +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +// Define the output folder (replace with your own path) +string outputFolder = @"C:\Barcodes"; + +// Ensure the folder exists +Directory.CreateDirectory(outputFolder); + +// 1️⃣ Create a Planet barcode generator with default height +BarcodeGenerator planetGenerator = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + +// Set the module width (X‑dimension) to 4 pixels – this defines the thin bar size +planetGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the image as PNG; this is the first **barcode image PNG** you’ll produce +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +**このコードが機能する理由:** +- `EncodeTypes.Planet` はジェネレータに Planet シンボルを使用させます。これは多くの郵便サービスで必須です。 +- `XDimension.Pixels` は最小バーの幅を制御し、4 px の値は一般的なラベルサイズで読み取り可能なバーコードを生成します。 +- `Save` メソッドは **barcode image PNG** ファイルをディスクに書き込み、ベクタ情報をラスタピクセルとして保存します。 + +## バーコードの高さ変更 – 視覚的ウェイトのカスタマイズ + +郵便ガイドラインでは特定のバー高さが求められることがあります。以下のスニペットは、同じ Planet バーコードに対してカスタム 100 ピクセルの高さを設定する方法を示します。 + +```csharp +// 2️⃣ Apply a custom 100‑pixel bar height +planetGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Overwrite or save as a new file to keep both versions +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +**高さを変更する理由:** +- 高いバーは低解像度プリンターでのスキャン信頼性を向上させ、短いバーはラベルのスペースを節約します。 +- `BarHeight.Pixels` プロパティを使用すると、X‑dimension に影響を与えずにこの属性を微調整できます。 + +## 郵便バーコードの生成 – RM4SCC の例を作成 + +RM4SCC フォーマットはイギリスで使用されるもう一つの一般的な郵便バーコードです。生成手順は Planet の例と同様で、**barcode generator c#** パターンを強化します。 + +```csharp +// 3️⃣ Create an RM4SCC barcode generator with default height +BarcodeGenerator rm4sccGenerator = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Keep the same module width for consistency +rm4sccGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the default‑height PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +## バーコードの高さ変更 – RM4SCC バリエーション + +Planet バーコードと同様に、RM4SCC のバー高さも調整できます。以下のコードは高さを 100 px に設定し、同じデータ文字列で 2 番目の **barcode image PNG** を生成します。 + +```csharp +// 4️⃣ Set a custom 100‑pixel bar height for RM4SCC +rm4sccGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Save the customized PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +## 完全な実行可能サンプル + +すべての手順を組み合わせると、4 つの PNG ファイルを作成する単一の自己完結型プログラムが完成します: + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +class Program +{ + static void Main() + { + string outputFolder = @"C:\Barcodes"; + Directory.CreateDirectory(outputFolder); + + // Planet barcode – default height + var planet = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planet.Parameters.Barcode.XDimension.Pixels = 4; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // Planet barcode – custom 100‑pixel height + planet.Parameters.Barcode.BarHeight.Pixels = 100; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – default height + var rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – custom 100‑pixel height + rm4scc.Parameters.Barcode.BarHeight.Pixels = 100; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); + + Console.WriteLine("All barcode PNG files have been generated in " + + + +## 次に学ぶべきことは? + +以下のチュートリアルは、本ガイドで示したテクニックを基にした密接に関連するトピックを扱っています。各リソースには、ステップバイステップの解説と完全な動作コード例が含まれており、追加の API 機能を習得したり、独自プロジェクトで代替実装アプローチを探求したりするのに役立ちます。 + +- [バーコード カスタム高さの作成 – 1 次元バーコード](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-barcode-height-adjustment/) +- [バーコード PNG の作成 – DataMatrix アスペクト比 – Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-aspect-ratio-customization/) +- [バーコード画像 C# の作成 – GS1 DataMatrix の例](/barcode/english/net/gs1-barcode-encoding/gs1-datamatrix-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/japanese/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md b/barcode/japanese/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md new file mode 100644 index 000000000..fa831f7b6 --- /dev/null +++ b/barcode/japanese/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-08-15 +description: C#でプラネットバーコードを作成し、完璧なサイズ調整のためのバーコード寸法設定方法を学びます。塗りつぶしバーと空白バーを含むステップバイステップのコード例。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create planet barcode +- how to set barcode dimensions +- planet barcode C# +- barcode X‑dimension +- empty barcode bars +language: ja +lastmod: 2026-08-15 +og_description: C#でプラネットバーコードを作成し、バーコードのサイズ設定方法を学びましょう。このガイドに従って、塗りつぶし済みと空のプラネットバーコードをすぐに生成できます。 +og_image_alt: Screenshot showing a Planet barcode with filled bars generated by C# + code +og_title: C#で惑星バーコードを作成する ― 完全ステップバイステップガイド +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Create planet barcode in C# and learn how to set barcode dimensions + for perfect sizing. Step‑by‑step code example with filled and empty bars. + headline: Create planet barcode in C# – complete programming guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.BarCode +title: C#で惑星バーコードを作成する – 完全プログラミングガイド +url: /ja/python-java/general/create-planet-barcode-in-c-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# で Planet バーコードを作成する – 完全プログラミングガイド + +C# で **Planet バーコードを作成** したい場合は、このガイドが手順をすべて示します。また、**バーコードのサイズを設定** する方法も解説し、必要な幅でバーが描画されるようにします。 + +Planet バーコードの生成は、郵便サービスや物流システムで一般的です。以下のコードは、デフォルトの塗りつぶしバー バージョンと、オプションの空バー スタイル、さらに RM4SCC 形式の簡単な例を網羅しています。このチュートリアルの最後までに、任意の .NET プロジェクトに組み込める再利用可能なスニペットが手に入ります。 + +## 前提条件 + +開始する前に、以下を確認してください。 + +* .NET 6.0 以降がインストール済み(API は .NET Framework 4.6+ でも動作します) +* プロジェクトに **Aspose.BarCode for .NET** NuGet パッケージ(`Aspose.BarCode`)が追加されていること +* PNG ファイルを保存する書き込み可能なフォルダー パス +* C# の基本構文と Visual Studio(または任意の IDE)に慣れていること + +> **プロのコツ:** 画像保存時の権限問題を回避するため、絶対パスまたは `Path.Combine(Environment.CurrentDirectory, "output")` を使用してください。 + +## 手順 1 – Planet バーコードジェネレータを初期化(塗りつぶしバー) + +最初のステップは、Planet シンボル用の `BarcodeGenerator` インスタンスを作成することです。デフォルトではジェネレータは **塗りつぶし** バーを生成します。 + +```csharp +// Step 1: Create a Planet barcode with the default (filled) bars +BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +`EncodeTypes.Planet` 列挙体は Aspose.BarCode に Planet 形式を使用するよう指示し、`"123456"` がエンコードされるデータ ペイロードです。 + +## 手順 2 – 一貫したサイズ設定のためにバーコード寸法を設定する方法 + +各バーの幅を制御するには **X‑dimension** を調整します。これが **バーコード寸法を設定** する主な方法で、ラベルサイズに合わせてバーコードを収めることができます。 + +```csharp +// Step 2: Set the X‑dimension (width of each bar) to 4 pixels +planetFilled.Parameters.Barcode.XDimension.Pixels = 4; +``` + +`Pixels` プロパティは画面ピクセル単位でバー幅を定義します。標準的な郵便ラベルでは 2 〜 5 ピクセルが一般的です。大きな印刷物が必要な場合はこの値を上げてください。 + +## 手順 3 – 塗りつぶし Planet バーコードを PNG として保存 + +画像をディスクに書き込みます。PNG はエッジが鮮明に保たれるため、スキャンに最適です。 + +```csharp +// Step 3: Save the Planet barcode as a PNG image +planetFilled.Save("YOUR_DIRECTORY/PostalPlanetFilledBars.png", BarCodeImageFormat.Png); +``` + +`YOUR_DIRECTORY` を事前に用意したパスに置き換えてください。このコードを実行すると、以下の画像に似たファイルが生成されます。 + +![Planet バーコード(塗りつぶしバー)](planet_filled.png "Planet バーコード(塗りつぶしバー) – C# コードで作成") + +*Alt text:* **C# コードで生成された Planet バーコード(塗りつぶしバー)**(`og_image_alt` と一致)。 + +## 手順 4 – 空(未塗りつぶし)バーの Planet バーコードを作成 + +郵便サービスがバーを **空** にすることを要求する場合は、ジェネレータ初期化後に `FilledBars` フラグを切り替えます。 + +```csharp +// Step 4: Create a Planet barcode with empty (unfilled) bars +BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +コンストラクタは同一です。違いは次の設定ステップにあります。 + +## 手順 5 – バーコード寸法を設定し、バーを空にする方法 + +再び X‑dimension を設定して視覚的な一貫性を保ち、次に塗りつぶしバーを無効にします。 + +```csharp +// Step 5: Set the X‑dimension and specify that bars should be empty +planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; +planetEmpty.Parameters.Barcode.FilledBars = false; // makes bars empty +``` + +`FilledBars = false` プロパティが実際に描画スタイルを変更します。同じ X‑dimension を保つことで、空バーのバーコードが塗りつぶしバーと完全に揃います。 + +## 手順 6 – 空の Planet バーコードを保存 + +```csharp +// Step 6: Save the Planet barcode with empty bars as a PNG image +planetEmpty.Save("YOUR_DIRECTORY/PostalPlanetEmptyBars.png", BarCodeImageFormat.Png); +``` + +これで、塗りつぶしバーと空バーの 2 つの PNG ファイルが作成され、どちらも同じ寸法を共有します。 + +## 手順 7 – (オプション)比較用に RM4SCC バーコードを生成 + +RM4SCC は同じデフォルトの塗りつぶしバー スタイルを使用する別の郵便シンボルです。手順は Planet の例と同様で、**バーコード寸法を設定** する方法がフォーマットを超えて機能することを示します。 + +```csharp +// Step 7: Create an RM4SCC barcode (filled bars are the default) +BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Step 8: Set the X‑dimension for consistency +rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + +// Step 9: Save the RM4SCC barcode as a PNG image +rm4scc.Save("YOUR_DIRECTORY/PostalRM4SCCFilledBars.png", BarCodeImageFormat.Png); +``` + +この 3 つのステップを実行すると `PostalRM4SCCFilledBars.png` が生成され、Planet の出力と並べて比較できます。 + +## X‑dimension が重要な理由 + +X‑dimension は各バーの **最小印刷幅** を決定します。設定が低すぎると低解像度プリンタでバーコードがぼやけ、スキャン失敗の原因になります。逆に大きすぎるとラベルサイズを超えてスペースが無駄になります。**バーコード寸法を設定** することで、最終画像サイズを決定的にコントロールでき、郵便自動化ワークフローに不可欠です。 + +## よくある落とし穴と回避策 + +| 問題 | 原因 | 対策 | +|------|------|------| +| バーコードが伸びて見える | X‑dimension をポイント単位で設定している | ピクセル単位の `Pixels` プロパティを常に使用してピクセルパーフェクトに制御 | +| 空バーがまだ塗りつぶされて見える | X‑dimension 変更後に `FilledBars` を `false` に設定していない | X‑dimension 調整 **後** に `FilledBars = false` を設定 | +| 保存されたファイルが空白 | 出力ディレクトリが存在しない、または書き込み権限がない | `Directory.CreateDirectory` でディレクトリを作成し、アプリが十分な権限で実行されていることを確認 | +| 印刷時に画像がぼやける | 高解像度モニタから低 DPI の PNG が保存されている | ロスレスの `BarCodeImageFormat.Png` を使用し、必要に応じて `Resolution` プロパティも設定 | + +## 完全な実行可能サンプル + +以下のブロック全体を新しいコンソール プロジェクト(`dotnet new console`)に貼り付けて実行してください。プログラムは `output` フォルダーに 3 つの PNG ファイルを作成します。 + +```csharp +using System; +using System.IO; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Ensure output folder exists + string outDir = Path.Combine(Environment.CurrentDirectory, "output"); + Directory.CreateDirectory(outDir); + + // ---------- Planet barcode – filled bars ---------- + BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetFilled.Parameters.Barcode.XDimension.Pixels = 4; // set dimensions + planetFilled.Save(Path.Combine(outDir, "PostalPlanetFilledBars.png"), BarCodeImageFormat.Png); + + // ---------- Planet barcode – empty bars ---------- + BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; // same dimensions + planetEmpty.Parameters.Barcode.FilledBars = false; // make bars empty + planetEmpty.Save(Path.Combine(outDir, "PostalPlanetEmptyBars.png"), BarCodeImageFormat.Png); + + // ---------- RM4SCC barcode (filled bars) ---------- + BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; // consistent size + rm4scc.Save(Path.Combine(outDir, "PostalRM4SCCFilledBars.png"), BarCodeImageFormat.Png); + + Console.WriteLine($"Barcodes generated in: {outDir}"); + } +} +``` + +**期待される出力:** 3 つの PNG ファイル – `PostalPlanetFilledBars.png`、`PostalPlanetEmptyBars.png`、`PostalRM4SCCFilledBars.png` – それぞれバー幅 4 ピクセルで、印刷やさらに処理する準備が整っています。 + +## 結論 + +これで C# で **Planet バーコードを作成** し、塗りつぶしバーと空バーの両方で **バーコード寸法を正確に設定** する方法が分かりました。同じパターンは RM4SCC など他のシンボルにも適用でき、あらゆる郵便バーコード要件に柔軟に対応できる基盤が手に入ります。 + +次に試すこと: + +* バーコード下に人が読めるテキストを追加(`BarcodeGenerator.Parameters.Barcode.CodeText`) +* `Parameters.Barcode.BarColor` でバーの色を変更 +* ベクタ形式(SVG、EPS)でバーコードを生成し、拡大縮小印刷に対応 + +さまざまな X‑dimension の値、データ文字列、出力形式を試して、特定のワークフローに最適化してください。コーディングを楽しんでください! + + +## 次に学ぶべきこと + +以下のチュートリアルは、本ガイドで示したテクニックを基にした、密接に関連するトピックを扱っています。各リソースには、ステップバイステップの説明と完全なコード例が含まれており、API の追加機能を習得したり、独自プロジェクトで代替実装アプローチを探求したりするのに役立ちます。 + +- [How to create barcode quiet zone for Code 16K using Aspose.BarCode for .NET](/barcode/english/net/code-16k-encoding/code-16k-quiet-zone-settings/) +- [How to Create Barcode Quiet Zone for ITF-14 Using Aspose.BarCode for .NET](/barcode/english/net/itf-14-barcode-customization/itf-14-barcode-quiet-zone-configuration/) +- [How to create Aztec barcode with error correction in .NET](/barcode/english/net/aztec-barcode-encoding/aztec-error-level-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/japanese/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md b/barcode/japanese/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md new file mode 100644 index 000000000..ec94487be --- /dev/null +++ b/barcode/japanese/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md @@ -0,0 +1,236 @@ +--- +category: general +date: 2026-08-15 +description: Databar拡張スタック型バーコードのC#での生成。バーコード画像の生成方法や、DataBarレイアウトの列と行の設定方法を学びましょう。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- databar expanded stacked +- generate barcode image +- how to generate barcode +- how to set columns +- how to set rows +language: ja +lastmod: 2026-08-15 +og_description: C# で Databar 拡張スタックバーコードを生成します。ステップバイステップのガイドに従い、バーコード画像を作成し、列と行を効率的に設定しましょう。 +og_image_alt: Screenshot of a databar expanded stacked barcode generated with C# +og_title: Databar 拡張スタック – C#でバーコード画像を生成 +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + headline: 'Databar expanded stacked: generate barcode image in C#' + type: TechArticle +- description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + name: 'Databar expanded stacked: generate barcode image in C#' + steps: + - name: 1. Install the Aspose.BarCode library + text: 'The code uses the **Aspose.BarCode for .NET** library, which provides the + `BarcodeGenerator` class. Install the NuGet package with the following command:' + - name: 2. Create a barcode generator for **databar expanded stacked** + text: The generator is the entry point for all barcode operations. You must specify + the symbology (`EncodeTypes.DatabarExpandedStacked`) and the text to encode. + - name: 3. How to set columns for DataBar + text: The `Columns` property controls how many vertical modules appear in the + stacked barcode. Valid values are 2, 3, or 4. Setting columns influences the + barcode’s width and the amount of data it can store. + - name: 4. Save the 4‑column barcode image + text: Saving the image produces a file that you can embed in reports, invoices, + or mobile apps. The `Save` method accepts a file path and an image format. + - name: 5. How to set rows for DataBar + text: Rows add a second dimension to the stacked layout, allowing more data to + be encoded without widening the barcode. The `Rows` property defaults to 1; + you can increase it up to 3 for the expanded stacked variant. + - name: 6. Save the 3‑row barcode image + text: '```csharp // Step 5: Save the 3‑row barcode image barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", + BarCodeImageFormat.Png); ```' + - name: 7. Complete C# example to generate barcode image + text: 'Putting all steps together yields a self‑contained program you can copy + into a console application:' + type: HowTo +tags: +- barcode +- C# +- Aspose.BarCode +title: 'Databar expanded stacked: C#でバーコード画像を生成' +url: /ja/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Databar expanded stacked: C# でバーコード画像を生成する方法 + +C# で **databar expanded stacked** バーコード画像を生成する必要がある場合、このガイドでは **バーコードを生成** する手順をカスタム列・行レイアウトで正確に示します。列の設定方法、行の設定方法、IDE を離れずに画像を保存する方法が分かります。 + +このチュートリアルで扱う内容: + +* **databar expanded stacked** シンボロジー用のバーコードジェネレータを作成する方法。 +* 4 列レイアウトと 3 行レイアウトの構成方法。 +* 各構成を PNG ファイルとして保存する手順。 +* 無効な列数などのエッジケースに対処するためのヒント。 + +外部ドキュメントは不要です。完全に実行可能なサンプルが同梱されています。 + +![Databar expanded stacked barcode example](YOUR_DIRECTORY/DatabarCols4.png){: .center alt="C#で生成されたdatabar expanded stackedバーコード" } + +## Databar expanded stacked バーコード生成手順 + +### 1. Aspose.BarCode ライブラリをインストールする + +コードは **Aspose.BarCode for .NET** ライブラリを使用します。このライブラリは `BarcodeGenerator` クラスを提供します。以下のコマンドで NuGet パッケージをインストールしてください。 + +```bash +dotnet add package Aspose.BarCode +``` + +パッケージがインストールされたら、ファイルの先頭に必要な名前空間を追加します。 + +```csharp +using Aspose.BarCode.Generation; +``` + +### 2. **databar expanded stacked** 用のバーコードジェネレータを作成する + +ジェネレータはすべてのバーコード操作のエントリーポイントです。シンボロジー (`EncodeTypes.DatabarExpandedStacked`) とエンコードするテキストを指定する必要があります。 + +```csharp +// Step 1: Create a barcode generator for Databar Expanded Stacked +BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); +``` + +*重要ポイント:* `EncodeTypes` 列挙体は、ライブラリにどのバーコード形式を生成させるかを指示します。**databar expanded stacked** を使用すると、スタックレイアウト用の GS1 DataBar 仕様に従った画像が生成されます。 + +### 3. DataBar の列数を設定する方法 + +`Columns` プロパティは、スタックされたバーコードに表示される垂直モジュールの数を制御します。有効な値は 2、3、4 のいずれかです。列数を設定すると、バーコードの幅と格納できるデータ量が変わります。 + +```csharp +// Step 2: Configure a 4‑column layout +barcode.Parameters.Barcode.DataBar.Columns = 4; +``` + +**ヒント:** 許容範囲外の値を設定しようとすると、ライブラリは `ArgumentException` をスローします。ユーザーに列選択を提供する場合は、必ず入力を検証してください。 + +### 4. 4 列バーコード画像を保存する + +画像を保存すると、レポートや請求書、モバイルアプリに埋め込めるファイルが生成されます。`Save` メソッドはファイルパスと画像形式を受け取ります。 + +```csharp +// Step 3: Save the 4‑column barcode image +barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); +``` + +ファイルが書き込まれたら、任意の画像ビューアで開き、**databar expanded stacked** パターンが正しく表示されていることを確認できます。 + +### 5. DataBar の行数を設定する方法 + +行を追加すると、スタックレイアウトに第 2 の次元が加わり、幅を広げずにデータ容量を増やせます。`Rows` プロパティの既定値は 1 で、拡張スタックバリアントでは最大 3 まで増やせます。 + +```csharp +// Step 4: Switch to a 3‑row layout (columns remain unchanged) +barcode.Parameters.Barcode.DataBar.Rows = 3; +``` + +**行が重要な理由:** 行数を増やすと全体の幅が抑えられ、狭いラベルやモバイル画面での使用に適します。 + +### 6. 3 行バーコード画像を保存する + +```csharp +// Step 5: Save the 3‑row barcode image +barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); +``` + +これで、4 列レイアウトと 3 行レイアウトの 2 つの PNG ファイルが作成され、どちらも **databar expanded stacked** シンボロジーを使用しています。 + +### 7. バーコード画像を生成する完全な C# サンプル + +すべての手順を組み合わせると、コンソール アプリケーションに貼り付けてそのまま実行できる自己完結型プログラムが完成します。 + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace DatabarExpandedStackedDemo +{ + class Program + { + static void Main() + { + // Create the generator for Databar Expanded Stacked + BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); + + // Configure a 4‑column layout and save + barcode.Parameters.Barcode.DataBar.Columns = 4; + barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); + Console.WriteLine("4‑column barcode saved."); + + // Change to a 3‑row layout (columns stay at 4) and save + barcode.Parameters.Barcode.DataBar.Rows = 3; + barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); + Console.WriteLine("3‑row barcode saved."); + } + } +} +``` + +**期待される出力** + +プログラムを実行すると次のように表示されます。 + +``` +4‑column barcode saved. +3‑row barcode saved. +``` + +そして `YOUR_DIRECTORY` に 2 つの PNG ファイルが作成されます。ファイルを開いて、各画像に有効な **databar expanded stacked** バーコードが表示されていることを確認してください。 + +## よくある落とし穴と実践的なヒント + +* **ディレクトリの存在** – `Save` は不足しているフォルダーを自動作成しません。`YOUR_DIRECTORY` が存在することを確認するか、保存前に `Directory.CreateDirectory` を使用してください。 +* **列の上限** – 2、3、4 以外の値は例外を発生させます。ユーザー入力エラーを防ぐために簡単な範囲チェックを実装しましょう: + + ```csharp + int columns = 4; + if (columns < 2 || columns > 4) throw new ArgumentOutOfRangeException(nameof(columns)); + barcode.Parameters.Barcode.DataBar.Columns = columns; + ``` + +* **行の上限** – 拡張スタックバリアントは最大 3 行までサポートします。`Rows` に 0 または 3 を超える値を設定すると例外がスローされます。 +* **画像形式** – `BarCodeImageFormat.Png` はロスレス品質を提供し、印刷に最適です。ファイルサイズが最重要の場合のみ `Jpeg` を使用してください。 + +## 次のステップ + +カスタム列・行構成で **バーコードを生成** する方法が分かったので、以下のことが可能になります: + +* Web API にジェネレータを組み込み、オンデマンドでバーコード画像を配信する。 +* 請求書に埋め込むため、PDF 生成ライブラリと組み合わせて使用する。 +* 同じ `Parameters.Barcode.DataBar` オブジェクトを使い、他の DataBar バリアント(`DatabarExpanded`、`DatabarLimited`)を試す。 + +バーの色変更やヒューマンリーダブルテキストの追加、QR コードのオーバーレイなど、さらに高度なカスタマイズについては Aspose.BarCode の `BarcodeGenerator` プロパティに関するドキュメントをご参照ください。 + +--- + +このガイドに従うことで **databar expanded stacked** のワークフローを習得し、**列の設定方法**、**行の設定方法** をマスターし、実稼働に使える 2 つの異なるバーコード画像を作成できました。コーディングを楽しんでください! + + +## 次に学ぶべきことは? + +以下のチュートリアルは、本ガイドで示したテクニックを基にした関連トピックを扱っています。各リソースには完全な動作コード例とステップバイステップの解説が含まれており、追加の API 機能を習得したり、プロジェクトで代替実装アプローチを探求したりするのに役立ちます。 + +- [Generate barcode image – GS1 Coupon UPC-A Databar](/barcode/english/net/gs1-barcode-encoding/gs1-coupon-upc-a-databar-configuration/) +- [Create DotCode barcode image – rows & columns (Aspose.BarCode)](/barcode/english/net/dotcode-barcode-configuration/dotcode-rows-columns-configuration/) +- [How to Generate Barcode - One-Dimensional Barcode Types](/barcode/english/net/one-dimensional-barcode-types/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/japanese/python-java/general/how-to-set-barcode-complete-c-guide/_index.md b/barcode/japanese/python-java/general/how-to-set-barcode-complete-c-guide/_index.md new file mode 100644 index 000000000..65d56f353 --- /dev/null +++ b/barcode/japanese/python-java/general/how-to-set-barcode-complete-c-guide/_index.md @@ -0,0 +1,233 @@ +--- +category: general +date: 2026-08-15 +description: C#でバーコードのパラメータを設定し、バーコード画像を生成する方法。ステップバイステップでDatabarバーコードを作成し、PNGファイルとして保存する方法を学びましょう。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to set barcode +- how to generate barcode +- create databar barcode +- generate barcode image c# +language: ja +lastmod: 2026-08-15 +og_description: Aspose.Barcode を使用して C# でバーコードを設定し、バーコード画像を生成する方法。Databar バーコードを作成し、PNG + ファイルとして保存する手順をご覧ください。 +og_image_alt: Screenshot of a Databar barcode saved as PNG using C# code +og_title: C#でバーコードを設定する方法 – ステップバイステップガイド +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: How to set barcode parameters in C# and generate barcode images. Learn + step‑by‑step to create Databar barcode and save PNG files. + headline: How to set barcode – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.Barcode +title: バーコードの設定方法 – 完全なC#ガイド +url: /ja/python-java/general/how-to-set-barcode-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# バーコードの設定方法 – 完全な C# ガイド + +.NET プロジェクトで **how to set barcode** パラメータを設定する方法を探している方へ、このチュートリアルでは必要な手順を正確に示します。**how to generate barcode** 画像の生成、Databar バーコードの作成、バーの高さをピクセル単位で制御する方法を、クリーンで本番環境向けの C# コードとともに学べます。 + +このガイドでは、以下を行います: + +* 必要な NuGet パッケージをインストールします。 +* Databar Omnidirectional バーコード(「create Databar barcode」パート)を作成します。 +* X‑dimension とバー高さを調整して **how to set barcode** の寸法設定方法を実演します。 +* PNG ファイルとして結果を保存し、**generate barcode image C#** シナリオをカバーします。 + +コードは執筆時点での最新 Aspose.Barcode for .NET(v 24.12)で動作し、.NET 6 以降で実行できます。 + +--- + +## 前提条件 + +開始する前に、以下が揃っていることを確認してください: + +* .NET 6 SDK(またはそれ以降のバージョン)。 +* Visual Studio 2022 や VS Code などの IDE。 +* Aspose.Barcode NuGet パッケージをダウンロードするためのインターネット接続。 + +追加のサードパーティ ライブラリは不要です。 + +--- + +## Step 1: Install Aspose.Barcode for .NET + +C# で **generate barcode** 画像を生成する最も信頼できる方法は Aspose.Barcode を使用することです。プロジェクト フォルダーでターミナルを開き、次のコマンドを実行します: + +```bash +dotnet add package Aspose.BarCode +``` + +このコマンドは最新の安定版をプロジェクト ファイルに追加し、`BarcodeGenerator` クラスと `EncodeTypes` 列挙体が利用可能になることを保証します。 + +*Pro tip:* パッケージは常に最新に保ちましょう(`dotnet list package --outdated`)ことで、バグ修正や新しいバーコードシンボロジーの恩恵を受けられます。 + +--- + +## Step 2: Create a Databar barcode (create Databar barcode) + +Databar Omnidirectional は小売や物流に最適で、GTIN‑14 の値に加えて追加データをエンコードできます。以下のコードがバーコードオブジェクトを作成します: + +```csharp +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +// Step 2: Initialize the generator for a Databar Omnidirectional barcode +BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); +``` + +*Why this matters:* `EncodeTypes.DatabarOmniDirectional` 列挙体はライブラリに Databar シンボロジーを使用させ、文字列 `"(01)12345678901231"` は 14 桁 GTIN の GS1 アプリケーション識別子形式に従っています。 + +--- + +## Step 3: Define common parameters – X‑dimension and base height + +ほとんどのバーコードスキャナーは最小 X‑dimension(最細バーの幅)を期待します。2 ピクセルに設定すると、コンパクトながら読み取りやすい画像になります。 + +```csharp +// Step 3: Set a 2‑pixel X‑dimension (common for most scanners) +generator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +ジェネレータを再作成せずに後からバー高さを調整できるため、インスタンス化後に **how to set barcode** 属性を変更する際のコアとなります。 + +--- + +## Step 4: Set the first bar height and save the image (generate barcode image C#) + +ここでは **how to set barcode** の高さ設定の最初の部分を実演します。バー高さは各バーの視覚的な長さを制御し、30 ピクセルに設定すると短いバーコードになり、60 ピクセルにするとより高いバーコードになります。 + +```csharp +// Step 4a: 30‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 30; + +// Save the first PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); +``` + +実行後、`DatabarBarHeight30Pixels.png` には 30 ピクセルのバー高さを持つ Databar バーコードが含まれます。任意の画像ビューアでファイルを開き、結果を確認してください。 + +--- + +## Step 5: Change the bar height and save a second image + +**how to set barcode** の値は実行時に変更できることを示すため、バー高さを 60 ピクセルに変更し、別のファイルを書き出します。 + +```csharp +// Step 5a: 60‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 60; + +// Save the second PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); +``` + +これで、同じ Databar データでも視覚的な高さが異なる 2 つの PNG ファイルが得られます。印刷ラベル用に大きなバーコードが必要な場合や、画面表示用に小さなバーコードが必要な場合に便利です。 + +--- + +## Step 6: Full, runnable example + +すべてをまとめた、上記手順をすべて実行する自己完結型コンソール プログラムを示します。コードを新しい `Program.cs` ファイルにコピーし、`YOUR_DIRECTORY` を実際のフォルダー パスに置き換えて実行してください。 + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Initialize the generator for a Databar Omnidirectional barcode + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); + + // Common parameters + generator.Parameters.Barcode.XDimension.Pixels = 2; // 2‑pixel narrow bar + + // First image: 30‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 30; + generator.Save(@"C:\Barcodes\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 30‑pixel barcode."); + + // Second image: 60‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 60; + generator.Save(@"C:\Barcodes\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 60‑pixel barcode."); + + // Dispose the generator to free native resources + generator.Dispose(); + } +} +``` + +**Expected output** + +プログラムを実行すると、コンソールに次のように表示されます: + +``` +Saved 30-pixel barcode. +Saved 60-pixel barcode. +``` + +そしてフォルダー `C:\Barcodes`(または指定したパス)に 2 つの PNG ファイルが作成されます。どちらの画像も有効な Databar Omnidirectional バーコードを表示しており、標準的な GS1 リーダーでスキャン可能です。 + +--- + +## Frequently asked questions + +**他の画像形式でも動作しますか?** +はい。`BarCodeImageFormat.Png` を `Jpeg`、`Bmp`、`Gif`、または `Tiff` に置き換えるだけで、対応するファイル形式が生成されます。 + +**前景色を変更できますか?** +`generator.Parameters.Barcode.ForeColor` に任意の `System.Drawing.Color` 値(例: `Color.Blue`)を設定してください。 + +**別のシンボロジーが必要な場合は?** +コンストラクタに別の `EncodeTypes` 値を渡します。例: 線形バーコードの場合は `EncodeTypes.Code128`、マトリックスコードの場合は `EncodeTypes.QR`。 + +**バーコードを PDF に埋め込む方法はありますか?** +Aspose.Barcode は `PdfGenerator` クラスを提供しています。画像を生成した後、Aspose.PDF を使用して PDF ページに追加できます。 + +--- + +## Best practices for barcode generation in C# + +* **`BarcodeGenerator` インスタンスを再利用** して寸法だけを調整すれば、不要なメモリ割り当てを回避できます。 +* **ジェネレータを破棄**(`generator.Dispose()`)して、ネイティブリソースを速やかに解放しましょう。 +* **入力データを検証**(例: GTIN の長さ)してからバーコードを作成し、実行時例外を防止します。 +* **X‑dimension やバー高さを変更した後は実機スキャナーでテスト**し、極端な値が可読性に与える影響を確認してください。 +* **出力フォルダーに書き込み権限があることを確認**しないと、`Save` が `UnauthorizedAccessException` をスローします。 + +--- + +## Conclusion + +これで **how to set barcode** の X‑dimension やバー高さといったプロパティ設定方法、C# で **how to generate barcode** 画像を生成する手順、そして Aspose.Barcode を使用した **create Databar barcode** ファイルの作成方法が理解できました。完全なサンプルに従えば、さまざまな視覚的特性を持つ PNG ファイルを複数生成でき、**generate barcode image C#** の要件を任意の .NET アプリケーションで満たすことができます。 + +次は、**how to generate barcode** を大量に生成する方法、PDF への埋め込み、または QR や Code 128 など他のシンボロジーへの切り替えといった関連トピックを探求してください。ここで示したパラメータを実験し、特定のスキャン環境に合わせてバーコードの外観を微調整しましょう。Happy coding! + +## What Should You Learn Next? + +以下のチュートリアルは、本ガイドで示した手法を基にした密接に関連するトピックをカバーしています。各リソースには完全な動作コード例とステップバイステップの解説が含まれており、追加の API 機能を習得したり、プロジェクトで代替実装アプローチを検討したりするのに役立ちます。 + +- [Aspose.BarCode for .NET を使用した DataMatrix バーコード (ECC 200) の生成方法](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-ecc-200-configuration/) +- [Aspose.BarCode for .NET を使用したカスタムアスペクト比の Aztec バーコード生成方法](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [Aspose.BarCode を使用したバーコード生成 – Code 39 設定](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-code-39-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/korean/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md b/barcode/korean/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md new file mode 100644 index 000000000..3b43297c2 --- /dev/null +++ b/barcode/korean/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md @@ -0,0 +1,184 @@ +--- +category: general +date: 2026-08-15 +description: C#에서 바코드 이미지 PNG – 우편 바코드 생성 방법, Planet 바코드 만들기, 간단한 생성기로 바코드 높이 변경하기를 + 배워보세요. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- barcode image png +- barcode generator c# +- generate postal barcode +- create planet barcode +- change barcode height +language: ko +lastmod: 2026-08-15 +og_description: C# 튜토리얼인 “Barcode image PNG”는 우편 바코드 생성, Planet 바코드 만들기, 그리고 BarcodeGenerator + API를 사용한 바코드 높이 변경 방법을 보여줍니다. +og_image_alt: Screenshot of generated PNG barcode with custom height using C# BarcodeGenerator +og_title: C#에서 바코드 이미지 PNG – 바코드 생성 및 조정 +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Barcode image PNG in C# – learn how to generate postal barcodes, create + a Planet barcode, and change barcode height with a simple generator. + headline: Barcode image PNG in C# generate barcodes, change height + type: TechArticle +tags: +- barcode +- C# +- PNG +- postal +- generator +title: C#에서 바코드 이미지 PNG 생성 및 높이 변경 +url: /ko/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#에서 바코드 이미지 PNG – 바코드 생성 및 높이 변경 + +C#에서 **barcode image PNG**가 필요하다면, 이 가이드는 전체 과정을 단계별로 안내합니다. 우편 바코드 생성, Planet 바코드 만들기, 그리고 IDE를 떠나지 않고 바코드 높이를 변경하는 방법을 배울 수 있습니다. + +신뢰할 수 있는 PNG 바코드 생성은 배송 라벨, 재고 시스템, 자동 메일링 솔루션에서 흔히 요구되는 작업입니다. 이 튜토리얼을 마치면 Planet 및 RM4SCC 형식 모두에 대해 고품질 PNG 파일을 생성하는 재사용 가능한 코드 스니펫을 확보하게 되며, 우편 사양에 맞게 바 높이를 조정하는 방법도 이해하게 됩니다. + +## 필요 사항 + +- .NET 6+ 또는 .NET Framework 4.7.2 (BarcodeGenerator API는 최신 .NET 런타임에서 모두 작동합니다) +- **Aspose.BarCode for .NET** NuGet 패키지에 대한 참조(또는 `BarcodeGenerator`, `EncodeTypes`, `BarCodeImageFormat`을 제공하는 호환 라이브러리) +- C# 구문 및 파일 I/O에 대한 기본 지식 + +추가 도구는 필요하지 않으며, 코드는 Visual Studio, Rider 또는 `dotnet` CLI에서 실행됩니다. + +## Barcode image PNG – 기본 생성 + +첫 번째 단계는 기본 크기의 **barcode image PNG**를 만드는 것입니다. 이를 통해 이후에 맞춤 설정할 수 있는 기본 파일을 확보합니다. + +```csharp +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +// Define the output folder (replace with your own path) +string outputFolder = @"C:\Barcodes"; + +// Ensure the folder exists +Directory.CreateDirectory(outputFolder); + +// 1️⃣ Create a Planet barcode generator with default height +BarcodeGenerator planetGenerator = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + +// Set the module width (X‑dimension) to 4 pixels – this defines the thin bar size +planetGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the image as PNG; this is the first **barcode image PNG** you’ll produce +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +**왜 이렇게 동작하나요:** +- `EncodeTypes.Planet`은 생성기에게 Planet 심볼을 사용하도록 지시합니다. 이는 많은 우편 서비스에서 요구되는 형식입니다. +- `XDimension.Pixels`는 가장 작은 바의 너비를 제어합니다; 4 px 값은 일반적인 라벨 크기에서 읽기 쉬운 바코드를 제공합니다. +- `Save` 메서드는 **barcode image PNG** 파일을 디스크에 저장하며, 모든 벡터 정보를 래스터 픽셀로 보존합니다. + +## 바코드 높이 변경 – 시각적 무게 맞춤 + +우편 지침에서는 종종 특정 바 높이를 요구합니다. 아래 스니펫은 동일한 Planet 바코드에 대해 100 픽셀 높이를 사용자 지정하는 방법을 보여줍니다. + +```csharp +// 2️⃣ Apply a custom 100‑pixel bar height +planetGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Overwrite or save as a new file to keep both versions +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +**높이를 변경하는 이유:** +높은 바는 저해상도 프린터에서 스캔 신뢰성을 향상시키고, 낮은 바는 라벨 공간을 절약합니다. `BarHeight.Pixels` 속성을 사용하면 X‑dimension에 영향을 주지 않으면서 이 속성을 미세 조정할 수 있습니다. + +## 우편 바코드 생성 – RM4SCC 예제 만들기 + +RM4SCC 형식은 영국에서 사용되는 또 다른 일반적인 우편 바코드입니다. 생성 단계는 Planet 예제와 동일하며, **barcode generator c#** 패턴을 강화합니다. + +```csharp +// 3️⃣ Create an RM4SCC barcode generator with default height +BarcodeGenerator rm4sccGenerator = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Keep the same module width for consistency +rm4sccGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the default‑height PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +## 바코드 높이 변경 – RM4SCC 변형 + +Planet 바코드와 마찬가지로 RM4SCC 바 높이도 조정할 수 있습니다. 아래 코드는 높이를 100 px로 설정하여 동일한 데이터 문자열에 대한 두 번째 **barcode image PNG**를 생성합니다. + +```csharp +// 4️⃣ Set a custom 100‑pixel bar height for RM4SCC +rm4sccGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Save the customized PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +## 전체 실행 가능한 예제 + +모든 단계를 하나로 합치면 네 개의 PNG 파일을 생성하는 단일, 독립 실행형 프로그램이 완성됩니다: + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +class Program +{ + static void Main() + { + string outputFolder = @"C:\Barcodes"; + Directory.CreateDirectory(outputFolder); + + // Planet barcode – default height + var planet = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planet.Parameters.Barcode.XDimension.Pixels = 4; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // Planet barcode – custom 100‑pixel height + planet.Parameters.Barcode.BarHeight.Pixels = 100; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – default height + var rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – custom 100‑pixel height + rm4scc.Parameters.Barcode.BarHeight.Pixels = 100; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); + + Console.WriteLine("All barcode PNG files have been generated in " + + + +## 다음에 배워야 할 내용은? + +다음 튜토리얼은 이 가이드에서 시연한 기술을 기반으로 하는 밀접한 관련 주제를 다룹니다. 각 리소스는 단계별 설명과 함께 완전한 동작 코드를 제공하여 추가 API 기능을 마스터하고 프로젝트에서 대체 구현 방식을 탐색하는 데 도움을 줍니다. + +- [바코드 맞춤 높이 만들기 – 일차원 바코드](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-barcode-height-adjustment/) +- [바코드 PNG 만들기 – DataMatrix 종횡비 – Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-aspect-ratio-customization/) +- [바코드 이미지 C# 만들기 – GS1 DataMatrix 예제](/barcode/english/net/gs1-barcode-encoding/gs1-datamatrix-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/korean/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md b/barcode/korean/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md new file mode 100644 index 000000000..3303ad250 --- /dev/null +++ b/barcode/korean/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-08-15 +description: C#에서 플래닛 바코드를 만들고 완벽한 크기를 위한 바코드 치수 설정 방법을 배워보세요. 채워진 바와 빈 바가 포함된 단계별 + 코드 예제. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create planet barcode +- how to set barcode dimensions +- planet barcode C# +- barcode X‑dimension +- empty barcode bars +language: ko +lastmod: 2026-08-15 +og_description: C#에서 플래닛 바코드를 만들고 바코드 크기 설정 방법을 배우세요. 이 가이드를 따라 즉시 채워진 플래닛 바코드와 빈 + 플래닛 바코드를 생성하세요. +og_image_alt: Screenshot showing a Planet barcode with filled bars generated by C# + code +og_title: C#로 행성 바코드 만들기 – 전체 단계별 가이드 +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Create planet barcode in C# and learn how to set barcode dimensions + for perfect sizing. Step‑by‑step code example with filled and empty bars. + headline: Create planet barcode in C# – complete programming guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.BarCode +title: C#로 행성 바코드 만들기 – 완전 프로그래밍 가이드 +url: /ko/python-java/general/create-planet-barcode-in-c-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#에서 플래닛 바코드 생성 – 완전 프로그래밍 가이드 + +C#에서 **플래닛 바코드 생성**이 필요하다면, 이 가이드는 정확한 방법을 보여줍니다. 또한 **바코드 크기 설정 방법**을 알아보게 되어 바가 원하는 정확한 너비로 렌더링됩니다. + +우편 서비스나 물류 시스템을 다룰 때 플래닛 바코드 생성은 흔히 사용됩니다. 아래 코드는 기본 채워진 바 버전과 선택적인 빈 바 스타일을 모두 다루며, RM4SCC 형식에 대한 간단한 예제도 포함합니다. 이 튜토리얼을 마치면 .NET 프로젝트 어디에든 삽입할 수 있는 재사용 가능한 스니펫을 얻게 됩니다. + +## 전제 조건 + +시작하기 전에 다음이 준비되어 있는지 확인하세요: + +* .NET 6.0 이상이 설치됨 (.NET Framework 4.6+에서도 API가 작동합니다) +* 프로젝트에 **Aspose.BarCode for .NET** NuGet 패키지(`Aspose.BarCode`)가 추가됨 +* PNG 파일을 저장할 수 있는 쓰기 가능한 폴더 경로 +* C# 구문 및 Visual Studio(또는 기타 IDE)에 대한 기본적인 이해 + +> **Pro tip:** 절대 경로나 `Path.Combine(Environment.CurrentDirectory, "output")`을 사용하면 이미지 저장 시 권한 문제를 피할 수 있습니다. + +## Step 1 – Initialize a Planet barcode generator (filled bars) + +첫 번째 단계는 플래닛 심볼을 위한 `BarcodeGenerator` 인스턴스를 만드는 것입니다. 기본적으로 생성기는 **채워진** 바를 생성합니다. + +```csharp +// Step 1: Create a Planet barcode with the default (filled) bars +BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +`EncodeTypes.Planet` 열거형은 Aspose.BarCode에 플래닛 형식을 사용하도록 지시하고, `"123456"`은 인코딩될 데이터 페이로드입니다. + +## Step 2 – How to set barcode dimensions for consistent sizing + +각 바의 너비를 제어하려면 **X‑dimension**을 조정합니다. 이는 **바코드 크기 설정**의 주요 방법이며 바코드가 라벨 크기에 맞도록 보장합니다. + +```csharp +// Step 2: Set the X‑dimension (width of each bar) to 4 pixels +planetFilled.Parameters.Barcode.XDimension.Pixels = 4; +``` + +`Pixels` 속성은 화면 픽셀 단위의 바 너비를 정의합니다. 일반적인 값은 표준 우편 라벨에 2 – 5 픽셀이며, 더 큰 인쇄물에는 값을 늘립니다. + +## Step 3 – Save the filled Planet barcode as PNG + +이제 이미지를 디스크에 기록합니다. PNG는 선명한 가장자리를 유지하므로 스캔에 이상적입니다. + +```csharp +// Step 3: Save the Planet barcode as a PNG image +planetFilled.Save("YOUR_DIRECTORY/PostalPlanetFilledBars.png", BarCodeImageFormat.Png); +``` + +`YOUR_DIRECTORY`를 앞서 준비한 경로로 교체하세요. 코드를 실행하면 아래 이미지와 유사한 파일이 생성됩니다. + +![플래닛 바코드 (채워진 바)](planet_filled.png "플래닛 바코드 (채워진 바) – C# 코드로 생성") + +*Alt text:* **C# 코드로 생성된 플래닛 바코드 (채워진 바)** (matches `og_image_alt`). + +## Step 4 – Create a Planet barcode with empty (unfilled) bars + +우편 서비스에서 바가 **빈** 상태여야 한다면, 생성기를 초기화한 뒤 `FilledBars` 플래그를 전환해야 합니다. + +```csharp +// Step 4: Create a Planet barcode with empty (unfilled) bars +BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +생성자는 동일하지만 차이는 다음 설정 단계에 있습니다. + +## Step 5 – How to set barcode dimensions and make bars empty + +다시 한 번 시각적 일관성을 위해 X‑dimension을 설정하고, 채워진 바를 비활성화합니다. + +```csharp +// Step 5: Set the X‑dimension and specify that bars should be empty +planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; +planetEmpty.Parameters.Barcode.FilledBars = false; // makes bars empty +``` + +`FilledBars = false` 속성이 실제로 렌더링 스타일을 변경합니다. 동일한 X‑dimension을 유지하면 빈 바 바코드가 채워진 버전과 완벽히 정렬됩니다. + +## Step 6 – Save the empty Planet barcode + +```csharp +// Step 6: Save the Planet barcode with empty bars as a PNG image +planetEmpty.Save("YOUR_DIRECTORY/PostalPlanetEmptyBars.png", BarCodeImageFormat.Png); +``` + +이제 두 개의 PNG 파일이 생성됩니다: 하나는 실선 바, 다른 하나는 빈 바이며 두 파일 모두 동일한 차원을 공유합니다. + +## Step 7 – (Optional) Generate an RM4SCC barcode for comparison + +RM4SCC는 동일한 기본 채워진 바 스타일을 사용하는 또 다른 우편 심볼입니다. 단계는 플래닛 예제와 동일하며, **바코드 크기 설정 방법**이 형식 전반에 적용됨을 보여줍니다. + +```csharp +// Step 7: Create an RM4SCC barcode (filled bars are the default) +BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Step 8: Set the X‑dimension for consistency +rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + +// Step 9: Save the RM4SCC barcode as a PNG image +rm4scc.Save("YOUR_DIRECTORY/PostalRM4SCCFilledBars.png", BarCodeImageFormat.Png); +``` + +이 세 단계를 실행하면 `PostalRM4SCCFilledBars.png`가 생성되며, 플래닛 출력물과 나란히 비교할 수 있습니다. + +## Why X‑dimension matters + +X‑dimension은 각 바의 **최소 인쇄 너비**를 결정합니다. 너무 낮게 설정하면 저해상도 프린터에서 바코드가 흐려져 스캔 실패가 발생할 수 있습니다. 반대로 X‑dimension이 너무 크면 라벨 크기를 초과하고 공간을 낭비합니다. **바코드 크기 설정 방법**을 명시적으로 지정하면 최종 이미지 크기에 대한 결정적인 제어가 가능해져 자동 우편 워크플로에 필수적입니다. + +## Common pitfalls and how to avoid them + +| Issue | Cause | Fix | +|-------|-------|-----| +| 바코드가 늘어남 | X‑dimension을 픽셀이 아닌 포인트로 설정 | 픽셀‑완벽 제어를 위해 항상 `Pixels` 속성을 사용 | +| 빈 바가 여전히 채워진 것처럼 보임 | `FilledBars`를 X‑dimension 변경 후 `false`로 설정하지 않음 | X‑dimension 조정 *후에* `FilledBars = false`를 설정 | +| 저장된 파일이 비어 있음 | 출력 디렉터리가 없거나 쓰기 권한이 없음 | 디렉터리가 존재하는지 확인(`Directory.CreateDirectory`)하고 애플리케이션이 충분한 권한으로 실행되는지 확인 | +| 인쇄 시 이미지가 흐림 | 고해상도 모니터에서 낮은 DPI PNG 저장 | `BarCodeImageFormat.Png`(무손실) 사용 및 필요 시 `Resolution` 속성 고려 | + +## Full, runnable example + +아래 전체 블록을 새 콘솔 프로젝트(`dotnet new console`)에 복사하고 실행하세요. 프로그램은 `output` 폴더에 세 개의 PNG 파일을 생성합니다. + +```csharp +using System; +using System.IO; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Ensure output folder exists + string outDir = Path.Combine(Environment.CurrentDirectory, "output"); + Directory.CreateDirectory(outDir); + + // ---------- Planet barcode – filled bars ---------- + BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetFilled.Parameters.Barcode.XDimension.Pixels = 4; // set dimensions + planetFilled.Save(Path.Combine(outDir, "PostalPlanetFilledBars.png"), BarCodeImageFormat.Png); + + // ---------- Planet barcode – empty bars ---------- + BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; // same dimensions + planetEmpty.Parameters.Barcode.FilledBars = false; // make bars empty + planetEmpty.Save(Path.Combine(outDir, "PostalPlanetEmptyBars.png"), BarCodeImageFormat.Png); + + // ---------- RM4SCC barcode (filled bars) ---------- + BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; // consistent size + rm4scc.Save(Path.Combine(outDir, "PostalRM4SCCFilledBars.png"), BarCodeImageFormat.Png); + + Console.WriteLine($"Barcodes generated in: {outDir}"); + } +} +``` + +**Expected output:** 세 개의 PNG 파일—`PostalPlanetFilledBars.png`, `PostalPlanetEmptyBars.png`, `PostalRM4SCCFilledBars.png`—각각 4‑픽셀 너비 바를 가지고 있어 인쇄 또는 추가 처리에 바로 사용할 수 있습니다. + +## Conclusion + +이제 C#에서 **플래닛 바코드 생성** 방법과 채워진 바와 빈 바 스타일 모두에 대해 정확히 **바코드 크기 설정 방법**을 알게 되었습니다. 동일한 패턴을 RM4SCC와 같은 다른 심볼에도 적용할 수 있어 모든 우편‑바코드 요구 사항에 유연한 기반을 제공합니다. + +다음과 같은 항목을 탐색해 볼 수 있습니다: + +* 바코드 아래에 인간이 읽을 수 있는 텍스트 추가 (`BarcodeGenerator.Parameters.Barcode.CodeText`) +* `Parameters.Barcode.BarColor`를 사용해 바 색상 변경 +* 벡터 형식(SVG, EPS)으로 바코드 생성하여 확장 가능한 인쇄 구현 + +다양한 X‑dimension 값, 데이터 문자열, 출력 형식을 실험해 보면서 워크플로에 맞게 최적화하세요. 즐거운 코딩 되세요! + +## What Should You Learn Next? + +다음 튜토리얼은 이 가이드에서 시연한 기술을 기반으로 하며, 밀접하게 관련된 주제를 다룹니다. 각 리소스는 완전한 코드 예제와 단계별 설명을 포함해 추가 API 기능을 마스터하고 프로젝트에 적용할 수 있는 대체 구현 방식을 탐색하도록 돕습니다. + +- [Aspose.BarCode for .NET을 사용한 Code 16K 바코드 Quiet Zone 생성 방법](/barcode/english/net/code-16k-encoding/code-16k-quiet-zone-settings/) +- [Aspose.BarCode for .NET을 사용한 ITF-14 바코드 Quiet Zone 생성 방법](/barcode/english/net/itf-14-barcode-customization/itf-14-barcode-quiet-zone-configuration/) +- [.NET에서 오류 수정이 포함된 Aztec 바코드 생성 방법](/barcode/english/net/aztec-barcode-encoding/aztec-error-level-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/korean/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md b/barcode/korean/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md new file mode 100644 index 000000000..ab8c0c1c3 --- /dev/null +++ b/barcode/korean/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md @@ -0,0 +1,237 @@ +--- +category: general +date: 2026-08-15 +description: C#에서 Databar 확장 스택형 바코드 생성을 수행합니다. 바코드 이미지를 생성하고 DataBar 레이아웃의 열과 행을 + 설정하는 방법을 배워보세요. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- databar expanded stacked +- generate barcode image +- how to generate barcode +- how to set columns +- how to set rows +language: ko +lastmod: 2026-08-15 +og_description: Databar는 C#에서 확장된 스택형 바코드 생성을 지원합니다. 단계별 가이드를 따라 바코드 이미지를 생성하고, 열과 + 행을 효율적으로 설정하세요. +og_image_alt: Screenshot of a databar expanded stacked barcode generated with C# +og_title: Databar 확장 스택형 – C#으로 바코드 이미지 생성 +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + headline: 'Databar expanded stacked: generate barcode image in C#' + type: TechArticle +- description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + name: 'Databar expanded stacked: generate barcode image in C#' + steps: + - name: 1. Install the Aspose.BarCode library + text: 'The code uses the **Aspose.BarCode for .NET** library, which provides the + `BarcodeGenerator` class. Install the NuGet package with the following command:' + - name: 2. Create a barcode generator for **databar expanded stacked** + text: The generator is the entry point for all barcode operations. You must specify + the symbology (`EncodeTypes.DatabarExpandedStacked`) and the text to encode. + - name: 3. How to set columns for DataBar + text: The `Columns` property controls how many vertical modules appear in the + stacked barcode. Valid values are 2, 3, or 4. Setting columns influences the + barcode’s width and the amount of data it can store. + - name: 4. Save the 4‑column barcode image + text: Saving the image produces a file that you can embed in reports, invoices, + or mobile apps. The `Save` method accepts a file path and an image format. + - name: 5. How to set rows for DataBar + text: Rows add a second dimension to the stacked layout, allowing more data to + be encoded without widening the barcode. The `Rows` property defaults to 1; + you can increase it up to 3 for the expanded stacked variant. + - name: 6. Save the 3‑row barcode image + text: '```csharp // Step 5: Save the 3‑row barcode image barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", + BarCodeImageFormat.Png); ```' + - name: 7. Complete C# example to generate barcode image + text: 'Putting all steps together yields a self‑contained program you can copy + into a console application:' + type: HowTo +tags: +- barcode +- C# +- Aspose.BarCode +title: 'Databar 확장 스택형: C#로 바코드 이미지 생성' +url: /ko/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Databar expanded stacked: C#에서 바코드 이미지 생성 + +C#에서 **databar expanded stacked** 바코드 이미지를 생성해야 한다면, 이 가이드는 **바코드 생성 방법**을 정확히 보여줍니다. 사용자 지정 열 및 행 레이아웃으로 바코드 이미지를 생성하는 방법을 확인할 수 있습니다. 열 설정, 행 설정, 그리고 IDE를 떠나지 않고 결과 이미지를 저장하는 방법을 배울 수 있습니다. + +이 튜토리얼에서는 다음을 다룹니다: + +* **databar expanded stacked** 심볼로지를 위한 바코드 생성기 만들기. +* 4열 레이아웃과 3행 레이아웃 구성하기. +* 각 구성을 PNG 파일로 저장하기. +* 잘못된 열 개수와 같은 예외 상황을 처리하는 팁. + +외부 문서는 필요하지 않으며, 완전하고 실행 가능한 예제가 포함되어 있습니다. + +![Databar expanded stacked barcode example](YOUR_DIRECTORY/DatabarCols4.png){: .center alt="databar expanded stacked barcode generated with C#" } + +## Databar expanded stacked 바코드 생성 단계 + +### 1. Aspose.BarCode 라이브러리 설치 + +코드는 **Aspose.BarCode for .NET** 라이브러리를 사용하며, `BarcodeGenerator` 클래스를 제공합니다. 다음 명령으로 NuGet 패키지를 설치하십시오: + +```bash +dotnet add package Aspose.BarCode +``` + +패키지가 설치된 후 파일 상단에 필요한 네임스페이스를 추가합니다: + +```csharp +using Aspose.BarCode.Generation; +``` + +### 2. **databar expanded stacked**용 바코드 생성기 만들기 + +생성기는 모든 바코드 작업의 진입점입니다. 심볼로지(`EncodeTypes.DatabarExpandedStacked`)와 인코딩할 텍스트를 지정해야 합니다. + +```csharp +// Step 1: Create a barcode generator for Databar Expanded Stacked +BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); +``` + +*왜 중요한가:* `EncodeTypes` 열거형은 라이브러리에 어떤 바코드 형식을 생성할지 알려줍니다. **databar expanded stacked**를 사용하면 결과 이미지가 스택형 레이아웃에 대한 GS1 DataBar 사양을 따르게 됩니다. + +### 3. DataBar 열 설정 방법 + +`Columns` 속성은 스택형 바코드에 나타나는 수직 모듈 수를 제어합니다. 허용 값은 2, 3, 또는 4입니다. 열을 설정하면 바코드의 너비와 저장 가능한 데이터 양에 영향을 줍니다. + +```csharp +// Step 2: Configure a 4‑column layout +barcode.Parameters.Barcode.DataBar.Columns = 4; +``` + +**팁:** 허용 범위를 벗어나는 값을 할당하려 하면 라이브러리가 `ArgumentException`을 발생시킵니다. 사용자가 열을 선택하도록 노출할 때는 항상 입력을 검증하십시오. + +### 4. 4‑열 바코드 이미지 저장 + +이미지를 저장하면 보고서, 청구서 또는 모바일 앱에 삽입할 수 있는 파일이 생성됩니다. `Save` 메서드는 파일 경로와 이미지 형식을 매개변수로 받습니다. + +```csharp +// Step 3: Save the 4‑column barcode image +barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); +``` + +파일이 작성되면 모든 이미지 뷰어로 열어 **databar expanded stacked** 패턴이 올바르게 표시되는지 확인할 수 있습니다. + +### 5. DataBar 행 설정 방법 + +행은 스택형 레이아웃에 두 번째 차원을 추가하여 바코드의 너비를 늘리지 않고도 더 많은 데이터를 인코딩할 수 있게 합니다. `Rows` 속성은 기본값이 1이며, 확장형 스택형 변형에서는 최대 3까지 늘릴 수 있습니다. + +```csharp +// Step 4: Switch to a 3‑row layout (columns remain unchanged) +barcode.Parameters.Barcode.DataBar.Rows = 3; +``` + +*행이 중요한 이유:* 행 수를 늘리면 전체 너비는 감소하면서도 데이터 용량을 유지할 수 있어 좁은 라벨이나 모바일 화면에 유용합니다. + +### 6. 3‑행 바코드 이미지 저장 + +```csharp +// Step 5: Save the 3‑row barcode image +barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); +``` + +이제 두 개의 PNG 파일이 있습니다—하나는 4‑열 레이아웃, 다른 하나는 3‑행 레이아웃—두 파일 모두 **databar expanded stacked** 심볼로지를 사용합니다. + +### 7. 바코드 이미지 생성을 위한 완전한 C# 예제 + +모든 단계를 합치면 콘솔 애플리케이션에 복사해 넣을 수 있는 자체 포함 프로그램이 완성됩니다: + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace DatabarExpandedStackedDemo +{ + class Program + { + static void Main() + { + // Create the generator for Databar Expanded Stacked + BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); + + // Configure a 4‑column layout and save + barcode.Parameters.Barcode.DataBar.Columns = 4; + barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); + Console.WriteLine("4‑column barcode saved."); + + // Change to a 3‑row layout (columns stay at 4) and save + barcode.Parameters.Barcode.DataBar.Rows = 3; + barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); + Console.WriteLine("3‑row barcode saved."); + } + } +} +``` + +**예상 출력** + +프로그램을 실행하면 다음이 출력됩니다: + +``` +4‑column barcode saved. +3‑row barcode saved. +``` + +그리고 `YOUR_DIRECTORY`에 두 개의 PNG 파일이 생성됩니다. 파일을 열어 각 이미지가 유효한 **databar expanded stacked** 바코드를 표시하는지 확인하십시오. + +## 일반적인 함정 및 실용적인 팁 + +* **디렉터리 존재 여부** – `Save`는 누락된 폴더를 자동으로 생성하지 않습니다. `YOUR_DIRECTORY`가 존재하는지 확인하거나 저장 전에 `Directory.CreateDirectory`를 사용하십시오. +* **열 제한** – 2, 3, 4 이외의 값은 예외를 발생시킵니다. 간단한 범위 검사를 통해 사용자 입력 오류를 방지하십시오: + + ```csharp + int columns = 4; + if (columns < 2 || columns > 4) throw new ArgumentOutOfRangeException(nameof(columns)); + barcode.Parameters.Barcode.DataBar.Columns = columns; + ``` + +* **행 제한** – 확장형 스택형 변형은 최대 3행을 지원합니다. `Rows`를 0이나 3보다 큰 값으로 설정하면 예외가 발생합니다. +* **이미지 형식** – `BarCodeImageFormat.Png`는 무손실 품질을 제공하므로 인쇄에 이상적입니다. 파일 크기가 주요 고려 사항일 경우에만 `Jpeg`을 사용하십시오. + +## 다음 단계 + +이제 사용자 지정 열 및 행 구성을 사용해 **바코드 생성 방법**을 알게 되었으니 다음을 수행할 수 있습니다: + +* 생성기를 웹 API에 통합하여 필요 시 바코드 이미지를 제공합니다. +* 바코드를 PDF 생성 라이브러리와 결합해 청구서에 삽입합니다. +* 동일한 `Parameters.Barcode.DataBar` 객체를 사용해 다른 DataBar 변형(`DatabarExpanded`, `DatabarLimited`)을 실험합니다. + +바 색상 변경, 인간이 읽을 수 있는 텍스트 추가, QR‑코드 오버레이 적용 등 보다 깊은 커스터마이징이 필요하면 `BarcodeGenerator` 속성에 대한 Aspose.BarCode 문서를 참고하십시오. + +--- + +이 가이드를 따라 하면 **databar expanded stacked** 워크플로를 마스터하고, **열 설정 방법**, **행 설정 방법**을 배워 두 개의 서로 다른 바코드 이미지를 제작해 실제 생산에 사용할 수 있게 됩니다. 즐거운 코딩 되세요! + +## 다음에 배울 내용은? + +다음 튜토리얼은 이 가이드에서 시연한 기술을 기반으로 하는 밀접한 주제를 다룹니다. 각 리소스는 완전한 코드 예제와 단계별 설명을 포함하여 추가 API 기능을 마스터하고 프로젝트에 적용할 수 있는 대체 구현 방식을 탐색하도록 돕습니다. + +- [바코드 이미지 생성 – GS1 쿠폰 UPC‑A Databar](/barcode/english/net/gs1-barcode-encoding/gs1-coupon-upc-a-databar-configuration/) +- [DotCode 바코드 이미지 생성 – 행 및 열 (Aspose.BarCode)](/barcode/english/net/dotcode-barcode-configuration/dotcode-rows-columns-configuration/) +- [바코드 생성 방법 - 일차원 바코드 유형](/barcode/english/net/one-dimensional-barcode-types/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/korean/python-java/general/how-to-set-barcode-complete-c-guide/_index.md b/barcode/korean/python-java/general/how-to-set-barcode-complete-c-guide/_index.md new file mode 100644 index 000000000..9ca328cd6 --- /dev/null +++ b/barcode/korean/python-java/general/how-to-set-barcode-complete-c-guide/_index.md @@ -0,0 +1,234 @@ +--- +category: general +date: 2026-08-15 +description: C#에서 바코드 매개변수를 설정하고 바코드 이미지를 생성하는 방법. 단계별로 Databar 바코드를 만들고 PNG 파일로 저장하는 + 방법을 배워보세요. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to set barcode +- how to generate barcode +- create databar barcode +- generate barcode image c# +language: ko +lastmod: 2026-08-15 +og_description: C#에서 Aspose.Barcode를 사용해 바코드를 설정하고 바코드 이미지를 생성하는 방법. 이 가이드를 따라 Databar + 바코드를 만들고 PNG 파일로 저장하세요. +og_image_alt: Screenshot of a Databar barcode saved as PNG using C# code +og_title: C#에서 바코드 설정 방법 – 단계별 가이드 +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: How to set barcode parameters in C# and generate barcode images. Learn + step‑by‑step to create Databar barcode and save PNG files. + headline: How to set barcode – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.Barcode +title: 바코드 설정 방법 – 완전한 C# 가이드 +url: /ko/python-java/general/how-to-set-barcode-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 바코드 설정 방법 – 완전한 C# 가이드 + +.NET 프로젝트에서 **how to set barcode** 매개변수를 찾고 있다면, 이 튜토리얼은 필요한 정확한 단계를 보여줍니다. **how to generate barcode** 이미지를 생성하고, Databar 바코드를 만들며, 바 높이를 픽셀 단위로 제어하는 방법을 깔끔하고 프로덕션 준비된 C# 코드와 함께 배울 수 있습니다. + +이 가이드에서 여러분은: + +* 필요한 NuGet 패키지를 설치합니다. +* Databar Omnidirectional 바코드(“create Databar barcode” 부분)를 생성합니다. +* X‑dimension 및 바 높이를 조정하여 **how to set barcode** 차원을 시연합니다. +* 결과를 PNG 파일로 저장하여 **generate barcode image C#** 시나리오를 다룹니다. + +코드는 최신 Aspose.Barcode for .NET(v 24.12, 작성 시점)와 함께 작동하며 .NET 6 이상에서 실행됩니다. + +--- + +## Prerequisites + +시작하기 전에 다음이 준비되어 있는지 확인하세요: + +* .NET 6 SDK(또는 그 이후 버전). +* Visual Studio 2022 또는 VS Code와 같은 IDE. +* Aspose.Barcode NuGet 패키지를 다운로드할 수 있는 인터넷 연결. + +추가 서드파티 라이브러리는 필요하지 않습니다. + +--- + +## Step 1: Install Aspose.Barcode for .NET + +C#에서 **generate barcode** 이미지를 생성하는 가장 신뢰할 수 있는 방법은 Aspose.Barcode를 사용하는 것입니다. 프로젝트 폴더에서 터미널을 열고 다음 명령을 실행하세요: + +```bash +dotnet add package Aspose.BarCode +``` + +이 명령은 최신 안정 버전을 프로젝트 파일에 추가하여 `BarcodeGenerator` 클래스와 `EncodeTypes` 열거형을 사용할 수 있게 합니다. + +*Pro tip:* `dotnet list package --outdated` 명령으로 패키지를 최신 상태로 유지하면 버그 수정 및 새로운 바코드 심볼로지를 활용할 수 있습니다. + +--- + +## Step 2: Create a Databar barcode (create Databar barcode) + +Databar Omnidirectional는 소매 및 물류에 이상적이며 GTIN‑14 값과 추가 데이터를 인코딩할 수 있습니다. 다음 코드는 바코드 객체를 생성합니다: + +```csharp +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +// Step 2: Initialize the generator for a Databar Omnidirectional barcode +BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); +``` + +*Why this matters:* `EncodeTypes.DatabarOmniDirectional` 열거형은 라이브러리에게 Databar 심볼로지를 사용하도록 지시하고, 문자열 `"(01)12345678901231"`은 14자리 GTIN에 대한 GS1 애플리케이션 식별자 형식을 따릅니다. + +--- + +## Step 3: Define common parameters – X‑dimension and base height + +대부분의 바코드 스캐너는 최소 X‑dimension(가장 좁은 바의 너비)을 요구합니다. 2픽셀로 설정하면 컴팩트하면서도 읽기 쉬운 이미지를 얻을 수 있습니다. + +```csharp +// Step 3: Set a 2‑pixel X‑dimension (common for most scanners) +generator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +생성기를 다시 만들지 않고도 나중에 바 높이를 조정할 수 있습니다—이는 인스턴스화 후 **how to set barcode** 속성을 변경하는 핵심 방법입니다. + +--- + +## Step 4: Set the first bar height and save the image (generate barcode image C#) + +이제 **how to set barcode** 높이를 설정하는 첫 번째 부분을 시연합니다. 바 높이는 각 바의 시각적 길이를 제어하며, 30픽셀 값은 짧은 바코드를, 60픽셀은 더 높은 바코드를 생성합니다. + +```csharp +// Step 4a: 30‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 30; + +// Save the first PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); +``` + +실행 후 `DatabarBarHeight30Pixels.png` 파일에는 30픽셀 높이의 Databar 바코드가 포함됩니다. 이미지 뷰어에서 파일을 열어 결과를 확인하세요. + +--- + +## Step 5: Change the bar height and save a second image + +**how to set barcode** 값을 실시간으로 변경할 수 있음을 보여주기 위해 바 높이를 60픽셀로 수정하고 두 번째 파일을 저장합니다. + +```csharp +// Step 5a: 60‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 60; + +// Save the second PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); +``` + +이제 동일한 Databar 데이터이지만 시각적 높이가 다른 두 개의 PNG 파일을 보유하게 됩니다. 이는 라벨 인쇄용 큰 바코드가 필요하거나 화면 표시용 작은 바코드가 필요할 때 유용합니다. + +--- + +## Step 6: Full, runnable example + +모든 단계를 하나로 모은 자체 포함 콘솔 프로그램 예제입니다. 코드를 새 `Program.cs` 파일에 복사하고 `YOUR_DIRECTORY`를 실제 폴더 경로로 바꾼 뒤 실행하세요. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Initialize the generator for a Databar Omnidirectional barcode + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); + + // Common parameters + generator.Parameters.Barcode.XDimension.Pixels = 2; // 2‑pixel narrow bar + + // First image: 30‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 30; + generator.Save(@"C:\Barcodes\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 30‑pixel barcode."); + + // Second image: 60‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 60; + generator.Save(@"C:\Barcodes\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 60‑pixel barcode."); + + // Dispose the generator to free native resources + generator.Dispose(); + } +} +``` + +**Expected output** + +프로그램을 실행하면 콘솔에 다음과 같이 출력됩니다: + +``` +Saved 30-pixel barcode. +Saved 60-pixel barcode. +``` + +그리고 `C:\Barcodes`(또는 지정한 경로) 폴더에 두 개의 PNG 파일이 생성됩니다. 두 이미지 모두 표준 GS1 리더기로 스캔 가능한 유효한 Databar Omnidirectional 바코드를 표시합니다. + +--- + +## Frequently asked questions + +**다른 이미지 형식도 지원하나요?** +예. `BarCodeImageFormat.Png`를 `Jpeg`, `Bmp`, `Gif`, `Tiff` 등으로 교체하면 해당 파일 형식으로 생성됩니다. + +**전경 색상을 변경할 수 있나요?** +`generator.Parameters.Barcode.ForeColor`에 `System.Drawing.Color` 값(e.g., `Color.Blue`)을 지정하면 됩니다. + +**다른 심볼로지를 사용하려면 어떻게 하나요?** +생성자에 다른 `EncodeTypes` 값을 전달하면 됩니다. 예를 들어 선형 바코드용 `EncodeTypes.Code128`이나 매트릭스 코드용 `EncodeTypes.QR`을 사용할 수 있습니다. + +**바코드를 PDF에 삽입할 방법이 있나요?** +Aspose.Barcode는 `PdfGenerator` 클래스를 제공합니다. 이미지를 생성한 뒤 Aspose.PDF를 사용해 PDF 페이지에 추가할 수 있습니다. + +--- + +## Best practices for barcode generation in C# + +* **`BarcodeGenerator` 인스턴스를 재사용**하세요. 차원만 조정할 경우 새 객체를 만들 필요가 없어 메모리 할당을 줄일 수 있습니다. +* 작업이 끝난 후 **생성기를 해제**(`generator.Dispose()`)하여 네이티브 리소스를 즉시 반환하세요. +* 바코드 생성 전에 **입력 데이터(예: GTIN 길이)를 검증**하여 런타임 예외를 방지하세요. +* X‑dimension이나 바 높이를 변경한 뒤 **실제 스캐너로 테스트**하세요. 극단적인 값은 가독성에 영향을 줄 수 있습니다. +* 실행 계정이 **출력 폴더에 쓰기 권한**을 가지고 있는지 확인하세요. 그렇지 않으면 `Save` 시 `UnauthorizedAccessException`이 발생합니다. + +--- + +## Conclusion + +이제 **how to set barcode** 속성(예: X‑dimension 및 바 높이)과 **how to generate barcode** 이미지를 C#에서 만드는 방법을 알게 되었으며, Aspose.Barcode를 사용해 **create Databar barcode** 파일을 생성하는 정확한 절차를 이해했습니다. 전체 예제를 따라 하면 다양한 시각적 특성을 가진 여러 PNG 파일을 생성할 수 있어, 어떤 .NET 애플리케이션에서도 **generate barcode image C#** 요구 사항을 충족할 수 있습니다. + +다음 단계로 **how to generate barcode**를 대량으로 생성하거나, 바코드를 PDF에 삽입하거나, QR 또는 Code 128과 같은 다른 심볼로지로 전환하는 방법을 탐색해 보세요. 여기서 소개한 파라미터를 실험해 보면서 특정 스캔 환경에 맞게 바코드 모양을 미세 조정하십시오. 즐거운 코딩 되세요! + +## What Should You Learn Next? + +다음 튜토리얼은 이 가이드에서 다룬 기술을 기반으로 하며, 단계별 설명과 완전한 코드 예제를 포함합니다. + +- [Aspose.BarCode for .NET으로 DataMatrix 바코드(ECC 200) 생성 방법](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-ecc-200-configuration/) +- [Aspose.BarCode for .NET으로 사용자 지정 종횡비를 가진 Aztec 바코드 생성 방법](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [Aspose.BarCode로 바코드 생성 – Code 39 구성 방법](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-code-39-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/polish/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md b/barcode/polish/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md new file mode 100644 index 000000000..888a6cdab --- /dev/null +++ b/barcode/polish/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md @@ -0,0 +1,185 @@ +--- +category: general +date: 2026-08-15 +description: Obraz kodu kreskowego PNG w C# – dowiedz się, jak generować kody pocztowe, + tworzyć kod Planet oraz zmieniać wysokość kodu kreskowego przy użyciu prostego generatora. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- barcode image png +- barcode generator c# +- generate postal barcode +- create planet barcode +- change barcode height +language: pl +lastmod: 2026-08-15 +og_description: Samouczek Barcode image PNG w C# pokazuje, jak generować kody pocztowe, + tworzyć kod Planet oraz zmieniać wysokość kodu kreskowego przy użyciu API BarcodeGenerator. +og_image_alt: Screenshot of generated PNG barcode with custom height using C# BarcodeGenerator +og_title: Obraz kodu kreskowego PNG w C# – generowanie i dostosowywanie kodów kreskowych +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Barcode image PNG in C# – learn how to generate postal barcodes, create + a Planet barcode, and change barcode height with a simple generator. + headline: Barcode image PNG in C# generate barcodes, change height + type: TechArticle +tags: +- barcode +- C# +- PNG +- postal +- generator +title: Obraz kodu kreskowego PNG w C# – generowanie kodów kreskowych, zmiana wysokości +url: /pl/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Obraz kodu kreskowego PNG w C# – generowanie kodów kreskowych, zmiana wysokości + +Jeśli potrzebujesz **obrazu kodu kreskowego PNG** w C#, ten przewodnik poprowadzi Cię przez cały proces. Dowiesz się, jak generować kody pocztowe, stworzyć kod Planet oraz zmienić wysokość kodu kreskowego bez wychodzenia z IDE. + +Generowanie niezawodnych plików PNG z kodami kreskowymi jest powszechnym wymogiem dla etykiet wysyłkowych, systemów inwentaryzacji i zautomatyzowanych rozwiązań pocztowych. Po zakończeniu tego tutorialu będziesz posiadać wielokrotnego użytku fragment kodu, który tworzy wysokiej jakości pliki PNG zarówno w formacie Planet, jak i RM4SCC, oraz zrozumiesz, jak dostosować wysokość pasków, aby spełnić specyfikacje pocztowe. + +## Czego będziesz potrzebować + +- .NET 6+ lub .NET Framework 4.7.2 (API BarcodeGenerator działa z dowolnym aktualnym środowiskiem .NET) +- Odwołanie do pakietu NuGet **Aspose.BarCode for .NET** (lub dowolnej kompatybilnej biblioteki udostępniającej `BarcodeGenerator`, `EncodeTypes` i `BarCodeImageFormat`) +- Podstawowa znajomość składni C# oraz operacji I/O na plikach + +Nie są wymagane dodatkowe narzędzia; kod działa w Visual Studio, Rider lub przy użyciu interfejsu `dotnet` CLI. + +## Obraz kodu kreskowego PNG – podstawowe generowanie + +Pierwszym krokiem jest utworzenie **obrazu kodu kreskowego PNG** o domyślnych wymiarach. To tworzy bazowy plik, który później możesz dostosować. + +```csharp +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +// Define the output folder (replace with your own path) +string outputFolder = @"C:\Barcodes"; + +// Ensure the folder exists +Directory.CreateDirectory(outputFolder); + +// 1️⃣ Create a Planet barcode generator with default height +BarcodeGenerator planetGenerator = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + +// Set the module width (X‑dimension) to 4 pixels – this defines the thin bar size +planetGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the image as PNG; this is the first **barcode image PNG** you’ll produce +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +**Dlaczego to działa:** +- `EncodeTypes.Planet` instruuje generator, aby użył symboliki Planet, wymaganą przez wiele usług pocztowych. +- `XDimension.Pixels` kontroluje szerokość najmniejszego paska; wartość 4 px zapewnia czytelny kod przy typowych rozmiarach etykiet. +- Metoda `Save` zapisuje **obraz kodu kreskowego PNG** na dysku, zachowując wszystkie informacje wektorowe jako piksele rastrowe. + +## Zmiana wysokości kodu kreskowego – dostosowanie wagi wizualnej + +Wytyczne pocztowe często wymagają określonej wysokości pasków. Poniższy fragment pokazuje, jak ustawić własną wysokość 100 pikseli dla tego samego kodu Planet. + +```csharp +// 2️⃣ Apply a custom 100‑pixel bar height +planetGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Overwrite or save as a new file to keep both versions +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +**Dlaczego zmieniamy wysokość:** +Wyższy pasek zwiększa niezawodność skanowania na drukarkach o niskiej rozdzielczości, natomiast niższy pasek oszczędza miejsce na etykiecie. Właściwość `BarHeight.Pixels` pozwala precyzyjnie dostroić ten parametr bez wpływu na wymiar X. + +## Generowanie kodu pocztowego – przykład RM4SCC + +Format RM4SCC to kolejny popularny kod pocztowy używany w Wielkiej Brytanii. Kroki generacji odzwierciedlają przykład Planet, wzmacniając wzorzec **barcode generator c#**. + +```csharp +// 3️⃣ Create an RM4SCC barcode generator with default height +BarcodeGenerator rm4sccGenerator = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Keep the same module width for consistency +rm4sccGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the default‑height PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +## Zmiana wysokości kodu kreskowego – wariant RM4SCC + +Podobnie jak w przypadku kodu Planet, możesz dostosować wysokość pasków RM4SCC. Poniższy kod ustawia wysokość na 100 px, tworząc drugi **obraz kodu kreskowego PNG** dla tego samego ciągu danych. + +```csharp +// 4️⃣ Set a custom 100‑pixel bar height for RM4SCC +rm4sccGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Save the customized PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +## Pełny, gotowy do uruchomienia przykład + +Połączenie wszystkich kroków daje pojedynczy, samodzielny program, który tworzy cztery pliki PNG: + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +class Program +{ + static void Main() + { + string outputFolder = @"C:\Barcodes"; + Directory.CreateDirectory(outputFolder); + + // Planet barcode – default height + var planet = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planet.Parameters.Barcode.XDimension.Pixels = 4; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // Planet barcode – custom 100‑pixel height + planet.Parameters.Barcode.BarHeight.Pixels = 100; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – default height + var rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – custom 100‑pixel height + rm4scc.Parameters.Barcode.BarHeight.Pixels = 100; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); + + Console.WriteLine("All barcode PNG files have been generated in " + + + +## Co powinieneś nauczyć się dalej? + + +Poniższe tutoriale obejmują tematy ściśle powiązane, które rozwijają techniki przedstawione w tym przewodniku. Każdy zasób zawiera kompletne, działające przykłady kodu wraz z wyjaśnieniami krok po kroku, aby pomóc Ci opanować dodatkowe funkcje API i odkrywać alternatywne podejścia implementacyjne w własnych projektach. + +- [Create Barcode Custom Height – One-Dimensional Barcodes](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-barcode-height-adjustment/) +- [Create Barcode PNG – DataMatrix Aspect Ratio – Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-aspect-ratio-customization/) +- [Create barcode image C# – GS1 DataMatrix Example](/barcode/english/net/gs1-barcode-encoding/gs1-datamatrix-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/polish/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md b/barcode/polish/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md new file mode 100644 index 000000000..e6cb87e24 --- /dev/null +++ b/barcode/polish/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-08-15 +description: Utwórz kod kreskowy planet w C# i dowiedz się, jak ustawić wymiary kodu + kreskowego, aby uzyskać idealny rozmiar. Przykład kodu krok po kroku z wypełnionymi + i pustymi paskami. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create planet barcode +- how to set barcode dimensions +- planet barcode C# +- barcode X‑dimension +- empty barcode bars +language: pl +lastmod: 2026-08-15 +og_description: Utwórz kod kreskowy Planet w C# i dowiedz się, jak ustawić wymiary + kodu kreskowego. Skorzystaj z tego przewodnika, aby natychmiast generować wypełnione + i puste kody kreskowe Planet. +og_image_alt: Screenshot showing a Planet barcode with filled bars generated by C# + code +og_title: Utwórz kod kreskowy planety w C# – pełny przewodnik krok po kroku +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Create planet barcode in C# and learn how to set barcode dimensions + for perfect sizing. Step‑by‑step code example with filled and empty bars. + headline: Create planet barcode in C# – complete programming guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.BarCode +title: Stwórz kod kreskowy planety w C# – kompletny przewodnik programistyczny +url: /pl/python-java/general/create-planet-barcode-in-c-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Utwórz kod kreskowy Planet w C# – kompletny przewodnik programistyczny + +Jeśli potrzebujesz **utworzyć kod kreskowy planet** w C#, ten przewodnik pokaże Ci dokładnie, jak to zrobić. Odkryjesz także **jak ustawić wymiary kodu kreskowego**, aby paski miały dokładnie taką szerokość, jaką potrzebujesz. + +Generowanie kodów kreskowych Planet jest powszechne, gdy pracujesz z usługami pocztowymi lub systemami logistycznymi. Poniższy kod obejmuje zarówno domyślną wersję z wypełnionymi paskami, jak i opcjonalny styl z pustymi paskami, a także szybki przykład formatu RM4SCC. Po zakończeniu tego samouczka będziesz mieć wielokrotnego użytku fragment, który możesz wkleić do dowolnego projektu .NET. + +## Wymagania wstępne + +Zanim rozpoczniesz, upewnij się, że masz: + +* .NET 6.0 lub nowszy zainstalowany (API działa również z .NET Framework 4.6+) +* Pakiet NuGet **Aspose.BarCode for .NET** (`Aspose.BarCode`) dodany do projektu +* Ścieżkę do zapisu, w której można zapisywać pliki PNG +* Podstawową znajomość składni C# oraz Visual Studio (lub dowolnego IDE) + +> **Pro tip:** Użyj ścieżki bezwzględnej lub `Path.Combine(Environment.CurrentDirectory, "output")`, aby uniknąć problemów z uprawnieniami przy zapisywaniu obrazów. + +## Krok 1 – Zainicjuj generator kodu kreskowego Planet (wypełnione paski) + +Pierwszym krokiem jest utworzenie instancji `BarcodeGenerator` dla symbologii Planet. Domyślnie generator tworzy **wypełnione** paski. + +```csharp +// Step 1: Create a Planet barcode with the default (filled) bars +BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +Enum `EncodeTypes.Planet` informuje Aspose.BarCode, że ma używać formatu Planet, a `"123456"` to ładunek danych, który zostanie zakodowany. + +## Krok 2 – Jak ustawić wymiary kodu kreskowego dla spójnego rozmiaru + +Aby kontrolować szerokość każdego paska, dostosuj **X‑dimension**. To podstawowy sposób **ustawiania wymiarów kodu kreskowego** i zapewnia, że kod zmieści się na etykiecie. + +```csharp +// Step 2: Set the X‑dimension (width of each bar) to 4 pixels +planetFilled.Parameters.Barcode.XDimension.Pixels = 4; +``` + +Właściwość `Pixels` definiuje szerokość paska w pikselach ekranu. Typowe wartości to 2 – 5 pikseli dla standardowych etykiet pocztowych; zwiększ wartość dla większych wydruków. + +## Krok 3 – Zapisz wypełniony kod kreskowy Planet jako PNG + +Teraz zapisz obraz na dysku. PNG zachowuje ostre krawędzie, co jest idealne do skanowania. + +```csharp +// Step 3: Save the Planet barcode as a PNG image +planetFilled.Save("YOUR_DIRECTORY/PostalPlanetFilledBars.png", BarCodeImageFormat.Png); +``` + +Zastąp `YOUR_DIRECTORY` ścieżką przygotowaną wcześniej. Po uruchomieniu tego kodu zobaczysz plik podobny do obrazu poniżej. + +![Kod kreskowy Planet z wypełnionymi paskami](planet_filled.png "Kod kreskowy Planet z wypełnionymi paskami – utworzony przez kod C#") + +*Alt text:* **Kod kreskowy Planet z wypełnionymi paskami wygenerowany przez kod C#** (matches `og_image_alt`). + +## Krok 4 – Utwórz kod kreskowy Planet z pustymi (niewypełnionymi) paskami + +Jeśli Twój operator pocztowy wymaga **pustych** pasków, musisz przełączyć flagę `FilledBars` po zainicjowaniu generatora. + +```csharp +// Step 4: Create a Planet barcode with empty (unfilled) bars +BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +Konstruktor jest identyczny; różnica pojawia się w następnym kroku konfiguracji. + +## Krok 5 – Jak ustawić wymiary kodu kreskowego i zrobić paski puste + +Ponownie ustaw X‑dimension dla spójności wizualnej, a następnie wyłącz wypełnione paski. + +```csharp +// Step 5: Set the X‑dimension and specify that bars should be empty +planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; +planetEmpty.Parameters.Barcode.FilledBars = false; // makes bars empty +``` + +Właściwość `FilledBars = false` to właśnie to, co zmienia styl renderowania. Zachowanie tej samej X‑dimension zapewnia, że kod kreskowy z pustymi paskami idealnie wyrównuje się z wersją wypełnioną. + +## Krok 6 – Zapisz pusty kod kreskowy Planet + +```csharp +// Step 6: Save the Planet barcode with empty bars as a PNG image +planetEmpty.Save("YOUR_DIRECTORY/PostalPlanetEmptyBars.png", BarCodeImageFormat.Png); +``` + +Teraz będziesz mieć dwa pliki PNG: jeden z solidnymi paskami i jeden z pustymi paskami, oba o tych samych wymiarach. + +## Krok 7 – (Opcjonalnie) Wygeneruj kod kreskowy RM4SCC dla porównania + +RM4SCC to inna symbologia pocztowa, która używa tego samego domyślnego stylu wypełnionych pasków. Kroki są analogiczne do przykładu Planet, co pokazuje, że **jak ustawić wymiary kodu kreskowego** działa w różnych formatach. + +```csharp +// Step 7: Create an RM4SCC barcode (filled bars are the default) +BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Step 8: Set the X‑dimension for consistency +rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + +// Step 9: Save the RM4SCC barcode as a PNG image +rm4scc.Save("YOUR_DIRECTORY/PostalRM4SCCFilledBars.png", BarCodeImageFormat.Png); +``` + +Wykonanie tych trzech kroków tworzy plik `PostalRM4SCCFilledBars.png`, który możesz porównać obok wyników Planet. + +## Dlaczego X‑dimension ma znaczenie + +X‑dimension określa **minimalną drukowaną szerokość** każdego paska. Jeśli ustawisz ją zbyt nisko, kod kreskowy może rozmywać się na drukarkach o niskiej rozdzielczości, co prowadzi do niepowodzeń skanowania. Z kolei zbyt duża X‑dimension może przekroczyć wymiary etykiety i zmarnować miejsce. Dzięki wyraźnemu **jak ustawić wymiary kodu kreskowego** zyskujesz deterministyczną kontrolę nad ostatecznym rozmiarem obrazu, co jest niezbędne w zautomatyzowanych procesach wysyłkowych. + +## Typowe pułapki i jak ich unikać + +| Problem | Przyczyna | Rozwiązanie | +|-------|-------|-----| +| Kod kreskowy wygląda na rozciągnięty | X‑dimension ustawiona w punktach zamiast w pikselach | Zawsze używaj właściwości `Pixels` dla kontroli w pikselach | +| Puste paski nadal wyglądają na wypełnione | `FilledBars` nie ustawiono na `false` po zmianie X‑dimension | Ustaw `FilledBars = false` *po* dostosowaniu X‑dimension | +| Zapisany plik jest pusty | Katalog wyjściowy nie istnieje lub brak uprawnień do zapisu | Upewnij się, że katalog istnieje (`Directory.CreateDirectory`) i aplikacja ma odpowiednie prawa | +| Obraz jest rozmazany przy druku | PNG o niskim DPI zapisany z monitora o wysokiej rozdzielczości | Użyj `BarCodeImageFormat.Png` (bezstratny) i rozważ właściwość `Resolution`, jeśli potrzebne | + +## Pełny, gotowy do uruchomienia przykład + +Skopiuj cały blok poniżej do nowego projektu konsolowego (`dotnet new console`) i uruchom go. Program tworzy trzy pliki PNG w folderze `output`. + +```csharp +using System; +using System.IO; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Ensure output folder exists + string outDir = Path.Combine(Environment.CurrentDirectory, "output"); + Directory.CreateDirectory(outDir); + + // ---------- Planet barcode – filled bars ---------- + BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetFilled.Parameters.Barcode.XDimension.Pixels = 4; // set dimensions + planetFilled.Save(Path.Combine(outDir, "PostalPlanetFilledBars.png"), BarCodeImageFormat.Png); + + // ---------- Planet barcode – empty bars ---------- + BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; // same dimensions + planetEmpty.Parameters.Barcode.FilledBars = false; // make bars empty + planetEmpty.Save(Path.Combine(outDir, "PostalPlanetEmptyBars.png"), BarCodeImageFormat.Png); + + // ---------- RM4SCC barcode (filled bars) ---------- + BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; // consistent size + rm4scc.Save(Path.Combine(outDir, "PostalRM4SCCFilledBars.png"), BarCodeImageFormat.Png); + + Console.WriteLine($"Barcodes generated in: {outDir}"); + } +} +``` + +**Oczekiwany wynik:** trzy pliki PNG — `PostalPlanetFilledBars.png`, `PostalPlanetEmptyBars.png` oraz `PostalRM4SCCFilledBars.png` — każdy z paskami o szerokości 4 piksele, gotowe do druku lub dalszego przetwarzania. + +## Podsumowanie + +Teraz wiesz, jak **utworzyć kod kreskowy planet** w C# oraz precyzyjnie **ustawić wymiary kodu kreskowego** zarówno dla stylu wypełnionego, jak i pustego. Ten sam wzorzec działa dla innych symbologii, takich jak RM4SCC, dając Ci elastyczną bazę dla każdego wymogu kodów kreskowych pocztowych. + +Następnie możesz rozważyć: + +* Dodanie tekstu czytelnego dla człowieka pod kodem kreskowym (`BarcodeGenerator.Parameters.Barcode.CodeText`) +* Zmianę kolorów pasków przy użyciu `Parameters.Barcode.BarColor` +* Generowanie kodów kreskowych w formatach wektorowych (SVG, EPS) dla skalowalnego druku + +Śmiało eksperymentuj z różnymi wartościami X‑dimension, ciągami danych i formatami wyjściowymi, aby dopasować je do swojego konkretnego przepływu pracy. Powodzenia w kodowaniu! + +## Co powinieneś nauczyć się dalej? + +Poniższe samouczki obejmują tematy ściśle powiązane, które rozwijają techniki przedstawione w tym przewodniku. Każdy zasób zawiera kompletne działające przykłady kodu oraz wyjaśnienia krok po kroku, aby pomóc Ci opanować dodatkowe funkcje API i odkrywać alternatywne podejścia implementacyjne w własnych projektach. + +- [How to create barcode quiet zone for Code 16K using Aspose.BarCode for .NET](/barcode/english/net/code-16k-encoding/code-16k-quiet-zone-settings/) +- [How to Create Barcode Quiet Zone for ITF-14 Using Aspose.BarCode for .NET](/barcode/english/net/itf-14-barcode-customization/itf-14-barcode-quiet-zone-configuration/) +- [How to create Aztec barcode with error correction in .NET](/barcode/english/net/aztec-barcode-encoding/aztec-error-level-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/polish/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md b/barcode/polish/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md new file mode 100644 index 000000000..ad98802f5 --- /dev/null +++ b/barcode/polish/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md @@ -0,0 +1,239 @@ +--- +category: general +date: 2026-08-15 +description: Databar rozszerzone generowanie kodów kreskowych w układzie stacked w + C#. Dowiedz się, jak wygenerować obraz kodu kreskowego, ustawić kolumny i wiersze + dla układów DataBar. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- databar expanded stacked +- generate barcode image +- how to generate barcode +- how to set columns +- how to set rows +language: pl +lastmod: 2026-08-15 +og_description: Rozszerzone generowanie kodów kreskowych Databar w C#. Skorzystaj + z tego przewodnika krok po kroku, aby efektywnie generować obrazy kodów kreskowych, + ustawiać kolumny i wiersze. +og_image_alt: Screenshot of a databar expanded stacked barcode generated with C# +og_title: Databar rozszerzony układany w stos – generowanie obrazu kodu kreskowego + w C# +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + headline: 'Databar expanded stacked: generate barcode image in C#' + type: TechArticle +- description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + name: 'Databar expanded stacked: generate barcode image in C#' + steps: + - name: 1. Install the Aspose.BarCode library + text: 'The code uses the **Aspose.BarCode for .NET** library, which provides the + `BarcodeGenerator` class. Install the NuGet package with the following command:' + - name: 2. Create a barcode generator for **databar expanded stacked** + text: The generator is the entry point for all barcode operations. You must specify + the symbology (`EncodeTypes.DatabarExpandedStacked`) and the text to encode. + - name: 3. How to set columns for DataBar + text: The `Columns` property controls how many vertical modules appear in the + stacked barcode. Valid values are 2, 3, or 4. Setting columns influences the + barcode’s width and the amount of data it can store. + - name: 4. Save the 4‑column barcode image + text: Saving the image produces a file that you can embed in reports, invoices, + or mobile apps. The `Save` method accepts a file path and an image format. + - name: 5. How to set rows for DataBar + text: Rows add a second dimension to the stacked layout, allowing more data to + be encoded without widening the barcode. The `Rows` property defaults to 1; + you can increase it up to 3 for the expanded stacked variant. + - name: 6. Save the 3‑row barcode image + text: '```csharp // Step 5: Save the 3‑row barcode image barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", + BarCodeImageFormat.Png); ```' + - name: 7. Complete C# example to generate barcode image + text: 'Putting all steps together yields a self‑contained program you can copy + into a console application:' + type: HowTo +tags: +- barcode +- C# +- Aspose.BarCode +title: 'Databar expanded stacked: generowanie obrazu kodu kreskowego w C#' +url: /pl/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Databar expanded stacked: generowanie obrazu kodu kreskowego w C# + +Jeśli potrzebujesz wygenerować obraz kodu kreskowego **databar expanded stacked** w C#, ten przewodnik pokaże Ci dokładnie **jak generować obrazy kodów kreskowych** z niestandardowymi układami kolumn i wierszy. Zobaczysz, jak ustawić kolumny, jak ustawić wiersze oraz jak zapisać powstałe obrazy bez opuszczania IDE. + +Poradnik obejmuje: +* Utworzenie generatora kodów kreskowych dla symbologii **databar expanded stacked**. +* Konfigurowanie układu 4‑kolumnowego i 3‑wierszowego. +* Zapisywanie każdej konfiguracji jako plik PNG. +* Wskazówki dotyczące obsługi przypadków brzegowych, takich jak nieprawidłowe liczby kolumn. + +Nie jest wymagana żadna zewnętrzna dokumentacja; dołączony jest kompletny, gotowy do uruchomienia przykład. + +![Databar expanded stacked barcode example](YOUR_DIRECTORY/DatabarCols4.png){: .center alt="kod kreskowy databar expanded stacked wygenerowany w C#" } + +## Kroki generowania kodu kreskowego Databar expanded stacked + +### 1. Zainstaluj bibliotekę Aspose.BarCode + +Kod używa biblioteki **Aspose.BarCode for .NET**, która udostępnia klasę `BarcodeGenerator`. Zainstaluj pakiet NuGet za pomocą następującego polecenia: + +```bash +dotnet add package Aspose.BarCode +``` + +Po zainstalowaniu pakietu, dodaj wymaganą przestrzeń nazw na początku pliku: + +```csharp +using Aspose.BarCode.Generation; +``` + +### 2. Utwórz generator kodu kreskowego dla **databar expanded stacked** + +Generator jest punktem wejścia dla wszystkich operacji na kodach kreskowych. Musisz określić symbologię (`EncodeTypes.DatabarExpandedStacked`) oraz tekst do zakodowania. + +```csharp +// Step 1: Create a barcode generator for Databar Expanded Stacked +BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); +``` + +*Dlaczego to ważne:* Enum `EncodeTypes` informuje bibliotekę, jaki format kodu kreskowego ma zostać wygenerowany. Użycie **databar expanded stacked** zapewnia, że powstały obraz spełnia specyfikację GS1 DataBar dla układów warstwowych. + +### 3. Jak ustawić kolumny dla DataBar + +Właściwość `Columns` określa, ile pionowych modułów pojawia się w kodzie kreskowym warstwowym. Dopuszczalne wartości to 2, 3 lub 4. Ustawienie kolumn wpływa na szerokość kodu oraz ilość danych, które może przechowywać. + +```csharp +// Step 2: Configure a 4‑column layout +barcode.Parameters.Barcode.DataBar.Columns = 4; +``` + +**Wskazówka:** Jeśli spróbujesz przypisać wartość spoza dozwolonego zakresu, biblioteka zgłosi `ArgumentException`. Zawsze waliduj dane wejściowe przy udostępnianiu wyboru kolumn użytkownikom. + +### 4. Zapisz obraz kodu kreskowego z 4‑kolumnami + +Zapisanie obrazu tworzy plik, który możesz osadzić w raportach, fakturach lub aplikacjach mobilnych. Metoda `Save` przyjmuje ścieżkę pliku oraz format obrazu. + +```csharp +// Step 3: Save the 4‑column barcode image +barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); +``` + +Po zapisaniu pliku możesz otworzyć go w dowolnej przeglądarce obrazów, aby potwierdzić, że wzorzec **databar expanded stacked** wyświetla się prawidłowo. + +### 5. Jak ustawić wiersze dla DataBar + +Wiersze dodają drugą wymiarowość do układu warstwowego, umożliwiając zakodowanie większej ilości danych bez zwiększania szerokości kodu. Właściwość `Rows` domyślnie wynosi 1; możesz zwiększyć ją do 3 w wariancie expanded stacked. + +```csharp +// Step 4: Switch to a 3‑row layout (columns remain unchanged) +barcode.Parameters.Barcode.DataBar.Rows = 3; +``` + +**Dlaczego wiersze są ważne:** Zwiększenie liczby wierszy zmniejsza całkowitą szerokość przy zachowaniu pojemności danych, co jest przydatne przy wąskich etykietach lub ograniczonej przestrzeni ekranu mobilnego. + +### 6. Zapisz obraz kodu kreskowego z 3‑wierszami + +```csharp +// Step 5: Save the 3‑row barcode image +barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); +``` + +Masz teraz dwa pliki PNG — jeden z układem 4‑kolumnowym, a drugi z układem 3‑wierszowym — oba wykorzystujące symbologię **databar expanded stacked**. + +### 7. Pełny przykład w C# generujący obraz kodu kreskowego + +Połączenie wszystkich kroków daje samodzielny program, który możesz skopiować do aplikacji konsolowej: + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace DatabarExpandedStackedDemo +{ + class Program + { + static void Main() + { + // Create the generator for Databar Expanded Stacked + BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); + + // Configure a 4‑column layout and save + barcode.Parameters.Barcode.DataBar.Columns = 4; + barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); + Console.WriteLine("4‑column barcode saved."); + + // Change to a 3‑row layout (columns stay at 4) and save + barcode.Parameters.Barcode.DataBar.Rows = 3; + barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); + Console.WriteLine("3‑row barcode saved."); + } + } +} +``` + +**Oczekiwany wynik** + +Uruchomienie programu wypisuje: + +``` +4‑column barcode saved. +3‑row barcode saved. +``` + +i tworzy dwa pliki PNG w `YOUR_DIRECTORY`. Otwórz pliki, aby zweryfikować, że każdy obraz wyświetla prawidłowy kod **databar expanded stacked**. + +## Częste pułapki i praktyczne wskazówki + +* **Istnienie katalogu** – `Save` nie tworzy brakujących folderów. Upewnij się, że `YOUR_DIRECTORY` istnieje lub użyj `Directory.CreateDirectory` przed zapisem. +* **Limity kolumn** – Wartości inne niż 2, 3 lub 4 wywołują wyjątek. Zabezpiecz się przed błędami wprowadzania przez użytkownika prostym sprawdzeniem zakresu: + + ```csharp + int columns = 4; + if (columns < 2 || columns > 4) throw new ArgumentOutOfRangeException(nameof(columns)); + barcode.Parameters.Barcode.DataBar.Columns = columns; + ``` + +* **Limity wierszy** – Wariant expanded stacked obsługuje maksymalnie 3 wiersze. Ustawienie `Rows` na 0 lub wartość większą niż 3 również powoduje wyjątek. +* **Format obrazu** – `BarCodeImageFormat.Png` zapewnia jakość bezstratną, co jest idealne do druku. Używaj `Jpeg` tylko wtedy, gdy rozmiar pliku jest kluczowy. + +## Kolejne kroki + +Teraz, gdy wiesz **jak generować obrazy kodów kreskowych** z niestandardowymi konfiguracjami kolumn i wierszy, możesz: + +* Zintegrować generator z interfejsem web API, aby na żądanie udostępniać obrazy kodów kreskowych. +* Połączyć kod kreskowy z bibliotekami generującymi PDF, aby osadzić go w fakturach. +* Eksperymentować z innymi wariantami DataBar (`DatabarExpanded`, `DatabarLimited`) przy użyciu tego samego obiektu `Parameters.Barcode.DataBar`. + +Aby uzyskać głębszą personalizację — np. zmianę koloru pasków, dodanie tekstu czytelnego dla człowieka lub nałożenie nakładek QR‑code — odwołaj się do dokumentacji Aspose.BarCode dotyczącej właściwości `BarcodeGenerator`. + +--- + +Postępując zgodnie z tym przewodnikiem opanowałeś przepływ pracy **databar expanded stacked**, nauczyłeś się **jak ustawiać kolumny**, **jak ustawiać wiersze** i wygenerowałeś dwa odrębne obrazy kodów kreskowych gotowe do użycia w produkcji. Szczęśliwego kodowania! + +## Co powinieneś nauczyć się dalej? + +Poniższe samouczki obejmują ściśle powiązane tematy, które rozwijają techniki przedstawione w tym przewodniku. Każde źródło zawiera kompletne działające przykłady kodu z wyjaśnieniami krok po kroku, aby pomóc Ci opanować dodatkowe funkcje API i odkrywać alternatywne podejścia implementacyjne w własnych projektach. + +- [Generowanie obrazu kodu kreskowego – GS1 Coupon UPC-A Databar](/barcode/english/net/gs1-barcode-encoding/gs1-coupon-upc-a-databar-configuration/) +- [Utwórz obraz kodu kreskowego DotCode – wiersze i kolumny (Aspose.BarCode)](/barcode/english/net/dotcode-barcode-configuration/dotcode-rows-columns-configuration/) +- [Jak generować kod kreskowy – typy jednowymiarowe](/barcode/english/net/one-dimensional-barcode-types/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/polish/python-java/general/how-to-set-barcode-complete-c-guide/_index.md b/barcode/polish/python-java/general/how-to-set-barcode-complete-c-guide/_index.md new file mode 100644 index 000000000..2876e8127 --- /dev/null +++ b/barcode/polish/python-java/general/how-to-set-barcode-complete-c-guide/_index.md @@ -0,0 +1,235 @@ +--- +category: general +date: 2026-08-15 +description: Jak ustawić parametry kodu kreskowego w C# i generować obrazy kodów kreskowych. + Dowiedz się krok po kroku, jak stworzyć kod Databar i zapisać pliki PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to set barcode +- how to generate barcode +- create databar barcode +- generate barcode image c# +language: pl +lastmod: 2026-08-15 +og_description: Jak ustawić kod kreskowy w C# przy użyciu Aspose.Barcode, a następnie + wygenerować obraz kodu kreskowego w C#. Postępuj zgodnie z tym przewodnikiem, aby + utworzyć kod kreskowy Databar i zapisać pliki PNG. +og_image_alt: Screenshot of a Databar barcode saved as PNG using C# code +og_title: Jak ustawić kod kreskowy w C# – przewodnik krok po kroku +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: How to set barcode parameters in C# and generate barcode images. Learn + step‑by‑step to create Databar barcode and save PNG files. + headline: How to set barcode – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.Barcode +title: Jak ustawić kod kreskowy – kompletny przewodnik C# +url: /pl/python-java/general/how-to-set-barcode-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak ustawić kod kreskowy – kompletny przewodnik C# + +Jeśli szukasz **how to set barcode** parametrów w projekcie .NET, ten tutorial pokazuje dokładne kroki, które są potrzebne. Nauczysz się **how to generate barcode** obrazów, tworzyć kod kreskowy Databar oraz kontrolować wysokość pasków piksel po pikselu — wszystko przy użyciu czystego, gotowego do produkcji kodu C#. + +W tym przewodniku: + +* Zainstaluj wymagany pakiet NuGet. +* Utwórz kod kreskowy Databar Omnidirectional (część „create Databar barcode”). +* Dostosuj wymiar X i wysokość pasków, aby zademonstrować **how to set barcode** wymiary. +* Zapisz wynik jako pliki PNG, obejmując scenariusz **generate barcode image C#**. + +Kod działa z najnowszą wersją Aspose.Barcode for .NET (v 24.12 w momencie pisania) i działa na .NET 6 lub nowszym. + +--- + +## Wymagania wstępne + +Zanim rozpoczniesz, upewnij się, że masz: + +* .NET 6 SDK (lub nowszą wersję). +* IDE, takie jak Visual Studio 2022 lub VS Code. +* Dostęp do Internetu w celu pobrania pakietu NuGet Aspose.Barcode. + +Nie są wymagane dodatkowe biblioteki firm trzecich. + +--- + +## Krok 1: Zainstaluj Aspose.Barcode dla .NET + +Najbardziej niezawodny sposób na **generate barcode** obrazy w C# to użycie Aspose.Barcode. Otwórz terminal w folderze projektu i uruchom: + +```bash +dotnet add package Aspose.BarCode +``` + +Polecenie dodaje najnowszą stabilną wersję do pliku projektu, zapewniając dostęp do klasy `BarcodeGenerator` oraz wyliczenia `EncodeTypes`. + +*Pro tip:* Utrzymuj pakiet aktualny (`dotnet list package --outdated`), aby korzystać z poprawek błędów i nowych symbologii kodów kreskowych. + +--- + +## Krok 2: Utwórz kod kreskowy Databar (create Databar barcode) + +Databar Omnidirectional jest idealny dla handlu detalicznego i logistyki, ponieważ może zakodować wartość GTIN‑14 oraz dodatkowe dane. Poniższy kod tworzy obiekt kodu kreskowego: + +```csharp +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +// Step 2: Initialize the generator for a Databar Omnidirectional barcode +BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); +``` + +*Dlaczego to ważne:* Enum `EncodeTypes.DatabarOmniDirectional` informuje bibliotekę, aby użyła symbologii Databar, natomiast ciąg `"(01)12345678901231"` jest zgodny z formatem GS1 Application Identifier dla 14‑cyfrowego GTIN. + +--- + +## Krok 3: Zdefiniuj wspólne parametry – wymiar X i podstawową wysokość + +Większość skanerów kodów kreskowych oczekuje minimalnego wymiaru X (szerokości najwęższego paska). Ustawienie go na 2 piksele daje kompaktowy, a jednocześnie czytelny obraz. + +```csharp +// Step 3: Set a 2‑pixel X‑dimension (common for most scanners) +generator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +Możesz później dostosować wysokość paska bez ponownego tworzenia generatora — to jest sedno **how to set barcode** atrybutów po instancjacji. + +--- + +## Krok 4: Ustaw pierwszą wysokość paska i zapisz obraz (generate barcode image C#) + +Teraz demonstrujemy pierwszą część **how to set barcode** wysokość. Wysokość paska kontroluje wizualną długość każdego paska; wartość 30 pikseli daje krótki kod kreskowy, natomiast 60 pikseli tworzy wyższą wersję. + +```csharp +// Step 4a: 30‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 30; + +// Save the first PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); +``` + +Po wykonaniu, `DatabarBarHeight30Pixels.png` zawiera kod kreskowy Databar z paskiem o wysokości 30 pikseli. Otwórz plik w dowolnym przeglądarce obrazów, aby zweryfikować wynik. + +--- + +## Krok 5: Zmień wysokość paska i zapisz drugi obraz + +Aby zilustrować, że wartości **how to set barcode** można zmieniać w locie, modyfikujemy wysokość paska do 60 pikseli i zapisujemy drugi plik. + +```csharp +// Step 5a: 60‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 60; + +// Save the second PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); +``` + +Teraz masz dwa pliki PNG pokazujące te same dane Databar, ale o różnych wysokościach wizualnych. Jest to przydatne, gdy potrzebny jest większy kod kreskowy na drukowane etykiety lub mniejszy na wyświetlacz ekranowy. + +--- + +## Krok 6: Pełny, uruchamialny przykład + +Łącząc wszystko razem, oto samodzielny program konsolowy, który wykonuje wszystkie opisane powyżej kroki. Skopiuj kod do nowego pliku `Program.cs`, zamień `YOUR_DIRECTORY` na rzeczywistą ścieżkę folderu i uruchom go. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Initialize the generator for a Databar Omnidirectional barcode + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); + + // Common parameters + generator.Parameters.Barcode.XDimension.Pixels = 2; // 2‑pixel narrow bar + + // First image: 30‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 30; + generator.Save(@"C:\Barcodes\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 30‑pixel barcode."); + + // Second image: 60‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 60; + generator.Save(@"C:\Barcodes\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 60‑pixel barcode."); + + // Dispose the generator to free native resources + generator.Dispose(); + } +} +``` + +**Oczekiwany wynik** + +Gdy uruchomisz program, konsola wypisze: + +``` +Saved 30-pixel barcode. +Saved 60-pixel barcode. +``` + +A folder `C:\Barcodes` (lub podana przez Ciebie ścieżka) zawiera dwa pliki PNG. Oba obrazy wyświetlają prawidłowy kod kreskowy Databar Omnidirectional, który może być zeskanowany przez standardowe czytniki GS1. + +--- + +## Najczęściej zadawane pytania + +**Czy to działa z innymi formatami obrazu?** +Tak. Zastąp `BarCodeImageFormat.Png` przez `Jpeg`, `Bmp`, `Gif` lub `Tiff`, aby wygenerować odpowiedni typ pliku. + +**Czy mogę zmienić kolor pierwszego planu?** +Ustaw `generator.Parameters.Barcode.ForeColor` na dowolną wartość `System.Drawing.Color`, np. `Color.Blue`. + +**Co zrobić, jeśli potrzebuję innej symbologii?** +Przekaż inną wartość `EncodeTypes` do konstruktora, np. `EncodeTypes.Code128` dla kodu liniowego lub `EncodeTypes.QR` dla kodu macierzowego. + +**Czy istnieje sposób, aby osadzić kod kreskowy w PDF?** +Aspose.Barcode udostępnia klasę `PdfGenerator`. Po wygenerowaniu obrazu możesz dodać go do strony PDF przy użyciu Aspose.PDF. + +--- + +## Najlepsze praktyki generowania kodów kreskowych w C# + +* **Ponownie używaj instancji `BarcodeGenerator`**, gdy potrzebujesz jedynie dostosować wymiary — to unika niepotrzebnych alokacji pamięci. +* **Zwolnij generator** (`generator.Dispose()`) po zakończeniu, aby niezwłocznie zwolnić zasoby natywne. +* **Sprawdź poprawność danych wejściowych** (np. długość GTIN) przed utworzeniem kodu kreskowego, aby zapobiec wyjątkom w czasie wykonywania. +* **Testuj fizycznym skanerem** po zmianie wymiaru X lub wysokości paska; skrajne wartości mogą wpływać na czytelność. +* **Upewnij się, że folder wyjściowy jest zapisywalny** dla konta uruchamiającego; w przeciwnym razie `Save` zgłosi `UnauthorizedAccessException`. + +--- + +## Podsumowanie + +Teraz wiesz, **how to set barcode** właściwości takie jak wymiar X i wysokość paska, **how to generate barcode** obrazy w C#, oraz dokładne kroki do **create Databar barcode** plików przy użyciu Aspose.Barcode. Postępując zgodnie z pełnym przykładem, możesz generować wiele plików PNG o różnych cechach wizualnych, spełniając wymaganie **generate barcode image C#** dla każdej aplikacji .NET. + +Następnie, odkryj powiązane tematy, takie jak **how to generate barcode** masowo, osadzanie kodów kreskowych w PDF-ach, lub przełączanie się na inne symbologie, takie jak QR lub Code 128. Eksperymentuj z pokazanymi tutaj parametrami, aby precyzyjnie dostroić wygląd kodu kreskowego do Twojego konkretnego środowiska skanowania. Szczęśliwego kodowania! + +## Co powinieneś nauczyć się dalej? + +Poniższe tutoriale obejmują ściśle powiązane tematy, które rozwijają techniki przedstawione w tym przewodniku. Każdy zasób zawiera kompletne działające przykłady kodu z wyjaśnieniami krok po kroku, aby pomóc Ci opanować dodatkowe funkcje API i eksplorować alternatywne podejścia implementacyjne w własnych projektach. + +- [How to Generate DataMatrix Barcodes (ECC 200) with Aspose.BarCode for .NET](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-ecc-200-configuration/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [How to Generate Barcode – Code 39 Configuration with Aspose.BarCode](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-code-39-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/portuguese/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md b/barcode/portuguese/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md new file mode 100644 index 000000000..316a40a4d --- /dev/null +++ b/barcode/portuguese/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md @@ -0,0 +1,187 @@ +--- +category: general +date: 2026-08-15 +description: Imagem de código de barras PNG em C# – aprenda a gerar códigos de barras + postais, criar um código de barras Planet e alterar a altura do código de barras + com um gerador simples. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- barcode image png +- barcode generator c# +- generate postal barcode +- create planet barcode +- change barcode height +language: pt +lastmod: 2026-08-15 +og_description: Imagem de código de barras PNG em tutorial C# mostra como gerar códigos + de barras postais, criar um código de barras Planet e alterar a altura do código + de barras usando a API BarcodeGenerator. +og_image_alt: Screenshot of generated PNG barcode with custom height using C# BarcodeGenerator +og_title: Imagem de código de barras PNG em C# – gerar e ajustar códigos de barras +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Barcode image PNG in C# – learn how to generate postal barcodes, create + a Planet barcode, and change barcode height with a simple generator. + headline: Barcode image PNG in C# generate barcodes, change height + type: TechArticle +tags: +- barcode +- C# +- PNG +- postal +- generator +title: Imagem de código de barras PNG em C# gerar códigos de barras, alterar altura +url: /pt/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Imagem de código de barras PNG em C# – gerar códigos de barras, mudar a altura + +Se você precisa de uma **imagem de código de barras PNG** em C#, este guia o conduz por todo o processo. Você aprenderá como gerar códigos de barras postais, criar um código de barras Planet e alterar a altura do código de barras sem sair do seu IDE. + +Gerar PNGs de códigos de barras confiáveis é uma necessidade comum para etiquetas de envio, sistemas de inventário e soluções de mala direta automatizadas. Ao final deste tutorial você terá um trecho de código reutilizável que produz arquivos PNG de alta qualidade para os formatos Planet e RM4SCC, e entenderá como ajustar a altura das barras para atender às especificações postais. + +## O que você precisará + +- .NET 6+ ou .NET Framework 4.7.2 (a API BarcodeGenerator funciona com qualquer runtime .NET recente) +- Uma referência ao pacote NuGet **Aspose.BarCode for .NET** (ou qualquer biblioteca compatível que forneça `BarcodeGenerator`, `EncodeTypes` e `BarCodeImageFormat`) +- Familiaridade básica com a sintaxe C# e I/O de arquivos + +Nenhuma ferramenta adicional é necessária; o código roda no Visual Studio, Rider ou na CLI `dotnet`. + +## Imagem de código de barras PNG – geração básica + +O primeiro passo é criar uma **imagem de código de barras PNG** com dimensões padrão. Isso estabelece o arquivo base que você pode personalizar posteriormente. + +```csharp +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +// Define the output folder (replace with your own path) +string outputFolder = @"C:\Barcodes"; + +// Ensure the folder exists +Directory.CreateDirectory(outputFolder); + +// 1️⃣ Create a Planet barcode generator with default height +BarcodeGenerator planetGenerator = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + +// Set the module width (X‑dimension) to 4 pixels – this defines the thin bar size +planetGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the image as PNG; this is the first **barcode image PNG** you’ll produce +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +**Por que isso funciona:** +- `EncodeTypes.Planet` indica ao gerador que use a simbologia Planet, exigida por muitos serviços postais. +- `XDimension.Pixels` controla a largura da menor barra; um valor de 4 px gera um código de barras legível em tamanhos típicos de etiqueta. +- O método `Save` grava um arquivo **imagem de código de barras PNG** no disco, preservando todas as informações vetoriais como pixels raster. + +## Alterar a altura do código de barras – personalizando o peso visual + +Diretrizes postais frequentemente exigem uma altura de barra específica. O trecho a seguir demonstra como definir uma altura personalizada de 100 pixels para o mesmo código de barras Planet. + +```csharp +// 2️⃣ Apply a custom 100‑pixel bar height +planetGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Overwrite or save as a new file to keep both versions +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +**Por que mudar a altura:** +Uma barra mais alta melhora a confiabilidade da leitura em impressoras de baixa resolução, enquanto uma barra mais curta economiza espaço na etiqueta. A propriedade `BarHeight.Pixels` permite ajustar esse atributo sem afetar a dimensão X. + +## Gerar código de barras postal – criando um exemplo RM4SCC + +O formato RM4SCC é outro código de barras postal comum usado no Reino Unido. As etapas de geração espelham o exemplo Planet, reforçando o padrão **barcode generator c#**. + +```csharp +// 3️⃣ Create an RM4SCC barcode generator with default height +BarcodeGenerator rm4sccGenerator = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Keep the same module width for consistency +rm4sccGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the default‑height PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +## Alterar a altura do código de barras – variação RM4SCC + +Assim como no código de barras Planet, você pode ajustar a altura da barra RM4SCC. O código abaixo define a altura para 100 px, produzindo um segundo **imagem de código de barras PNG** para a mesma string de dados. + +```csharp +// 4️⃣ Set a custom 100‑pixel bar height for RM4SCC +rm4sccGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Save the customized PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +## Exemplo completo, executável + +Juntando todas as etapas, obtém‑se um programa único e autocontido que cria quatro arquivos PNG: + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +class Program +{ + static void Main() + { + string outputFolder = @"C:\Barcodes"; + Directory.CreateDirectory(outputFolder); + + // Planet barcode – default height + var planet = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planet.Parameters.Barcode.XDimension.Pixels = 4; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // Planet barcode – custom 100‑pixel height + planet.Parameters.Barcode.BarHeight.Pixels = 100; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – default height + var rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – custom 100‑pixel height + rm4scc.Parameters.Barcode.BarHeight.Pixels = 100; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); + + Console.WriteLine("All barcode PNG files have been generated in " + + + +## O que você deve aprender a seguir? + + +Os tutoriais a seguir abordam tópicos intimamente relacionados que ampliam as técnicas demonstradas neste guia. Cada recurso inclui exemplos de código completos e funcionais com explicações passo a passo para ajudá‑lo a dominar recursos adicionais da API e explorar abordagens alternativas de implementação em seus próprios projetos. + +- [Create Barcode Custom Height – One-Dimensional Barcodes](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-barcode-height-adjustment/) +- [Create Barcode PNG – DataMatrix Aspect Ratio – Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-aspect-ratio-customization/) +- [Create barcode image C# – GS1 DataMatrix Example](/barcode/english/net/gs1-barcode-encoding/gs1-datamatrix-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/portuguese/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md b/barcode/portuguese/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md new file mode 100644 index 000000000..50d250a95 --- /dev/null +++ b/barcode/portuguese/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-08-15 +description: Crie um código de barras planetário em C# e aprenda como definir as dimensões + do código de barras para um dimensionamento perfeito. Exemplo de código passo a + passo com barras preenchidas e vazias. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create planet barcode +- how to set barcode dimensions +- planet barcode C# +- barcode X‑dimension +- empty barcode bars +language: pt +lastmod: 2026-08-15 +og_description: Crie códigos de barras Planet em C# e aprenda como definir as dimensões + do código de barras. Siga este guia para gerar códigos de barras Planet preenchidos + e vazios instantaneamente. +og_image_alt: Screenshot showing a Planet barcode with filled bars generated by C# + code +og_title: Crie código de barras planetário em C# – guia completo passo a passo +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Create planet barcode in C# and learn how to set barcode dimensions + for perfect sizing. Step‑by‑step code example with filled and empty bars. + headline: Create planet barcode in C# – complete programming guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.BarCode +title: Criar código de barras planetário em C# – guia completo de programação +url: /pt/python-java/general/create-planet-barcode-in-c-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Criar código de barras planetário em C# – guia completo de programação + +Se você precisa **criar código de barras planetário** em C#, este guia mostra exatamente como fazer isso. Você também descobrirá **como definir as dimensões do código de barras** para que as barras sejam renderizadas com a largura exata que você necessita. + +Gerar códigos de barras Planet é comum quando você trabalha com serviços postais ou sistemas logísticos. O código abaixo cobre tanto a versão padrão de barras preenchidas quanto o estilo opcional de barras vazias, além de um exemplo rápido para o formato RM4SCC. Ao final deste tutorial você terá um trecho reutilizável que pode ser inserido em qualquer projeto .NET. + +## Pré‑requisitos + +Antes de começar, certifique‑se de que você tem: + +* .NET 6.0 ou superior instalado (a API também funciona com .NET Framework 4.6+) +* O pacote NuGet **Aspose.BarCode for .NET** (`Aspose.BarCode`) adicionado ao seu projeto +* Um caminho de pasta gravável onde os arquivos PNG serão salvos +* Familiaridade básica com a sintaxe C# e Visual Studio (ou qualquer IDE) + +> **Dica profissional:** Use um caminho absoluto ou `Path.Combine(Environment.CurrentDirectory, "output")` para evitar problemas de permissão ao salvar imagens. + +## Etapa 1 – Inicializar um gerador de código de barras Planet (barras preenchidas) + +O primeiro passo é criar uma instância de `BarcodeGenerator` para a simbologia Planet. Por padrão, o gerador produz **barras preenchidas**. + +```csharp +// Step 1: Create a Planet barcode with the default (filled) bars +BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +O enum `EncodeTypes.Planet` indica ao Aspose.BarCode que deve usar o formato Planet, enquanto `"123456"` é a carga de dados que será codificada. + +## Etapa 2 – Como definir as dimensões do código de barras para tamanho consistente + +Para controlar a largura de cada barra, ajuste a **dimensão X**. Esta é a forma principal de **definir as dimensões do código de barras** e garante que o código caiba no tamanho da sua etiqueta. + +```csharp +// Step 2: Set the X‑dimension (width of each bar) to 4 pixels +planetFilled.Parameters.Barcode.XDimension.Pixels = 4; +``` + +A propriedade `Pixels` define a largura da barra em pixels de tela. Valores comuns são 2 – 5 pixels para etiquetas de correspondência padrão; aumente o valor para impressões maiores. + +## Etapa 3 – Salvar o código de barras Planet preenchido como PNG + +Agora grave a imagem no disco. PNG preserva bordas nítidas, o que é ideal para a leitura. + +```csharp +// Step 3: Save the Planet barcode as a PNG image +planetFilled.Save("YOUR_DIRECTORY/PostalPlanetFilledBars.png", BarCodeImageFormat.Png); +``` + +Substitua `YOUR_DIRECTORY` pelo caminho que você preparou anteriormente. Após executar este código você verá um arquivo semelhante à imagem abaixo. + +![Código de barras Planet com barras preenchidas](planet_filled.png "Código de barras Planet com barras preenchidas – criado por código C#") + +*Texto alternativo:* **Código de barras Planet com barras preenchidas gerado por código C#** (corresponde a `og_image_alt`). + +## Etapa 4 – Criar um código de barras Planet com barras vazias (não preenchidas) + +Se o seu serviço postal exigir que as barras sejam **vazias**, você precisa alternar a flag `FilledBars` após inicializar o gerador. + +```csharp +// Step 4: Create a Planet barcode with empty (unfilled) bars +BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +O construtor é idêntico; a diferença está na próxima etapa de configuração. + +## Etapa 5 – Como definir as dimensões do código de barras e tornar as barras vazias + +Novamente, defina a dimensão X para manter a consistência visual e, em seguida, desative as barras preenchidas. + +```csharp +// Step 5: Set the X‑dimension and specify that bars should be empty +planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; +planetEmpty.Parameters.Barcode.FilledBars = false; // makes bars empty +``` + +A propriedade `FilledBars = false` é o que realmente altera o estilo de renderização. Manter a mesma dimensão X garante que o código de barras de barras vazias alinhe perfeitamente com a versão preenchida. + +## Etapa 6 – Salvar o código de barras Planet vazio + +```csharp +// Step 6: Save the Planet barcode with empty bars as a PNG image +planetEmpty.Save("YOUR_DIRECTORY/PostalPlanetEmptyBars.png", BarCodeImageFormat.Png); +``` + +Agora você terá dois arquivos PNG: um com barras sólidas e outro com barras ocos, ambos compartilhando as mesmas dimensões. + +## Etapa 7 – (Opcional) Gerar um código de barras RM4SCC para comparação + +RM4SCC é outra simbologia postal que usa o mesmo estilo padrão de barras preenchidas. As etapas espelham o exemplo Planet, demonstrando que **como definir as dimensões do código de barras** funciona em diferentes formatos. + +```csharp +// Step 7: Create an RM4SCC barcode (filled bars are the default) +BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Step 8: Set the X‑dimension for consistency +rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + +// Step 9: Save the RM4SCC barcode as a PNG image +rm4scc.Save("YOUR_DIRECTORY/PostalRM4SCCFilledBars.png", BarCodeImageFormat.Png); +``` + +Executar estas três etapas produz `PostalRM4SCCFilledBars.png`, que você pode comparar lado a lado com os resultados do Planet. + +## Por que a dimensão X importa + +A dimensão X determina a **largura mínima imprimível** de cada barra. Se você a definir muito baixa, o código de barras pode ficar borrado em impressoras de baixa resolução, causando falhas na leitura. Por outro lado, uma dimensão X muito grande pode exceder as dimensões da etiqueta e desperdiçar espaço. Ao definir explicitamente **como definir as dimensões do código de barras**, você obtém controle determinístico sobre o tamanho final da imagem, essencial para fluxos de trabalho de envio automatizado. + +## Armadilhas comuns e como evitá‑las + +| Problema | Causa | Solução | +|----------|-------|---------| +| O código de barras aparece esticado | Dimensão X definida em pontos em vez de pixels | Sempre use a propriedade `Pixels` para controle pixel‑perfect | +| As barras vazias ainda parecem preenchidas | `FilledBars` não definido como `false` após mudar a dimensão X | Defina `FilledBars = false` *depois* de ajustar a dimensão X | +| Arquivo salvo está em branco | Diretório de saída não existe ou falta permissão de gravação | Garanta que o diretório exista (`Directory.CreateDirectory`) e que seu app tenha direitos suficientes | +| Imagem fica borrada na impressão | PNG de baixa DPI salvo a partir de monitor de alta resolução | Use `BarCodeImageFormat.Png` (sem perdas) e considere a propriedade `Resolution` se necessário | + +## Exemplo completo, executável + +Copie todo o bloco abaixo para um novo projeto de console (`dotnet new console`) e execute. O programa cria três arquivos PNG na pasta `output`. + +```csharp +using System; +using System.IO; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Ensure output folder exists + string outDir = Path.Combine(Environment.CurrentDirectory, "output"); + Directory.CreateDirectory(outDir); + + // ---------- Planet barcode – filled bars ---------- + BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetFilled.Parameters.Barcode.XDimension.Pixels = 4; // set dimensions + planetFilled.Save(Path.Combine(outDir, "PostalPlanetFilledBars.png"), BarCodeImageFormat.Png); + + // ---------- Planet barcode – empty bars ---------- + BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; // same dimensions + planetEmpty.Parameters.Barcode.FilledBars = false; // make bars empty + planetEmpty.Save(Path.Combine(outDir, "PostalPlanetEmptyBars.png"), BarCodeImageFormat.Png); + + // ---------- RM4SCC barcode (filled bars) ---------- + BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; // consistent size + rm4scc.Save(Path.Combine(outDir, "PostalRM4SCCFilledBars.png"), BarCodeImageFormat.Png); + + Console.WriteLine($"Barcodes generated in: {outDir}"); + } +} +``` + +**Saída esperada:** três arquivos PNG—`PostalPlanetFilledBars.png`, `PostalPlanetEmptyBars.png` e `PostalRM4SCCFilledBars.png`—todos com barras de 4 pixels de largura, prontos para impressão ou processamento adicional. + +## Conclusão + +Agora você sabe como **criar código de barras planetário** em C# e como **definir precisamente as dimensões do código de barras** para estilos de barra preenchida e vazia. O mesmo padrão se aplica a outras simbologias, como RM4SCC, oferecendo uma base flexível para qualquer necessidade de código de barras postal. + +Em seguida, você pode explorar: + +* Adicionar texto legível ao humano abaixo do código de barras (`BarcodeGenerator.Parameters.Barcode.CodeText`) +* Alterar cores das barras com `Parameters.Barcode.BarColor` +* Gerar códigos de barras em formatos vetoriais (SVG, EPS) para impressão escalável + +Sinta‑se à vontade para experimentar diferentes valores de dimensão X, cadeias de dados e formatos de saída para adequar ao seu fluxo de trabalho específico. Boa codificação! + +## O que você deve aprender a seguir? + +Os tutoriais a seguir abordam tópicos estreitamente relacionados que ampliam as técnicas demonstradas neste guia. Cada recurso inclui exemplos de código completos e funcionais com explicações passo a passo para ajudá‑lo a dominar recursos adicionais da API e explorar abordagens alternativas de implementação em seus próprios projetos. + +- [Como criar zona silenciosa de código de barras para Code 16K usando Aspose.BarCode for .NET](/barcode/english/net/code-16k-encoding/code-16k-quiet-zone-settings/) +- [Como criar zona silenciosa de código de barras para ITF-14 usando Aspose.BarCode for .NET](/barcode/english/net/itf-14-barcode-customization/itf-14-barcode-quiet-zone-configuration/) +- [Como criar código de barras Aztec com correção de erro em .NET](/barcode/english/net/aztec-barcode-encoding/aztec-error-level-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/portuguese/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md b/barcode/portuguese/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md new file mode 100644 index 000000000..e1666e44a --- /dev/null +++ b/barcode/portuguese/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md @@ -0,0 +1,240 @@ +--- +category: general +date: 2026-08-15 +description: Databar expandiu a geração de códigos de barras empilhados em C#. Aprenda + a gerar a imagem do código de barras, definir colunas e linhas para layouts DataBar. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- databar expanded stacked +- generate barcode image +- how to generate barcode +- how to set columns +- how to set rows +language: pt +lastmod: 2026-08-15 +og_description: Databar expandiu a geração de códigos de barras empilhados em C#. + Siga este guia passo a passo para gerar imagens de códigos de barras, definir colunas + e definir linhas de forma eficiente. +og_image_alt: Screenshot of a databar expanded stacked barcode generated with C# +og_title: Databar expandido empilhado – gerar imagem de código de barras em C# +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + headline: 'Databar expanded stacked: generate barcode image in C#' + type: TechArticle +- description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + name: 'Databar expanded stacked: generate barcode image in C#' + steps: + - name: 1. Install the Aspose.BarCode library + text: 'The code uses the **Aspose.BarCode for .NET** library, which provides the + `BarcodeGenerator` class. Install the NuGet package with the following command:' + - name: 2. Create a barcode generator for **databar expanded stacked** + text: The generator is the entry point for all barcode operations. You must specify + the symbology (`EncodeTypes.DatabarExpandedStacked`) and the text to encode. + - name: 3. How to set columns for DataBar + text: The `Columns` property controls how many vertical modules appear in the + stacked barcode. Valid values are 2, 3, or 4. Setting columns influences the + barcode’s width and the amount of data it can store. + - name: 4. Save the 4‑column barcode image + text: Saving the image produces a file that you can embed in reports, invoices, + or mobile apps. The `Save` method accepts a file path and an image format. + - name: 5. How to set rows for DataBar + text: Rows add a second dimension to the stacked layout, allowing more data to + be encoded without widening the barcode. The `Rows` property defaults to 1; + you can increase it up to 3 for the expanded stacked variant. + - name: 6. Save the 3‑row barcode image + text: '```csharp // Step 5: Save the 3‑row barcode image barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", + BarCodeImageFormat.Png); ```' + - name: 7. Complete C# example to generate barcode image + text: 'Putting all steps together yields a self‑contained program you can copy + into a console application:' + type: HowTo +tags: +- barcode +- C# +- Aspose.BarCode +title: 'Databar expanded stacked: gerar imagem de código de barras em C#' +url: /pt/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Databar expanded stacked: gerar imagem de código de barras em C# + +Se você precisa gerar uma imagem de código de barras **databar expanded stacked** em C#, este guia mostra exatamente **como gerar códigos de barras** com layouts personalizados de colunas e linhas. Você verá como definir colunas, como definir linhas e como salvar as imagens resultantes sem sair da IDE. + +O tutorial aborda: + +* Criação de um gerador de código de barras para a simbologia **databar expanded stacked**. +* Configuração de um layout de 4 colunas e um layout de 3 linhas. +* Salvamento de cada configuração como um arquivo PNG. +* Dicas para lidar com casos de borda, como contagens de colunas inválidas. + +Nenhuma documentação externa é necessária; o exemplo completo e executável está incluído. + +![Databar expanded stacked barcode example](YOUR_DIRECTORY/DatabarCols4.png){: .center alt="código de barras databar expanded stacked gerado com C#" } + +## Etapas para geração de código de barras Databar expanded stacked + +### 1. Instale a biblioteca Aspose.BarCode + +O código usa a biblioteca **Aspose.BarCode for .NET**, que fornece a classe `BarcodeGenerator`. Instale o pacote NuGet com o seguinte comando: + +```bash +dotnet add package Aspose.BarCode +``` + +Depois que o pacote for instalado, adicione o namespace necessário no topo do seu arquivo: + +```csharp +using Aspose.BarCode.Generation; +``` + +### 2. Crie um gerador de código de barras para **databar expanded stacked** + +O gerador é o ponto de entrada para todas as operações de código de barras. Você deve especificar a simbologia (`EncodeTypes.DatabarExpandedStacked`) e o texto a ser codificado. + +```csharp +// Step 1: Create a barcode generator for Databar Expanded Stacked +BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); +``` + +*Por que isso importa:* O enum `EncodeTypes` informa à biblioteca qual formato de código de barras produzir. Usar **databar expanded stacked** garante que a imagem resultante siga a especificação GS1 DataBar para layouts empilhados. + +### 3. Como definir colunas para DataBar + +A propriedade `Columns` controla quantos módulos verticais aparecem no código de barras empilhado. Valores válidos são 2, 3 ou 4. Definir colunas influencia a largura do código de barras e a quantidade de dados que ele pode armazenar. + +```csharp +// Step 2: Configure a 4‑column layout +barcode.Parameters.Barcode.DataBar.Columns = 4; +``` + +**Dica:** Se você tentar atribuir um valor fora do intervalo permitido, a biblioteca lançará uma `ArgumentException`. Sempre valide a entrada ao expor a seleção de colunas para os usuários. + +### 4. Salve a imagem de código de barras com 4 colunas + +Salvar a imagem gera um arquivo que pode ser incorporado em relatórios, notas fiscais ou aplicativos móveis. O método `Save` aceita um caminho de arquivo e um formato de imagem. + +```csharp +// Step 3: Save the 4‑column barcode image +barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); +``` + +Quando o arquivo for gravado, você pode abri‑lo com qualquer visualizador de imagens para confirmar que o padrão **databar expanded stacked** aparece corretamente. + +### 5. Como definir linhas para DataBar + +Linhas adicionam uma segunda dimensão ao layout empilhado, permitindo mais dados codificados sem ampliar a largura do código de barras. A propriedade `Rows` tem valor padrão 1; você pode aumentá‑la até 3 para a variante expanded stacked. + +```csharp +// Step 4: Switch to a 3‑row layout (columns remain unchanged) +barcode.Parameters.Barcode.DataBar.Rows = 3; +``` + +**Por que as linhas importam:** Aumentar as linhas reduz a largura total enquanto preserva a capacidade de dados, o que é útil para etiquetas estreitas ou telas de dispositivos móveis. + +### 6. Salve a imagem de código de barras com 3 linhas + +```csharp +// Step 5: Save the 3‑row barcode image +barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); +``` + +Agora você tem dois arquivos PNG — um com layout de 4 colunas e outro com layout de 3 linhas — ambos usando a simbologia **databar expanded stacked**. + +### 7. Exemplo completo em C# para gerar imagem de código de barras + +Juntando todas as etapas, obtém‑se um programa autocontido que pode ser copiado para uma aplicação console: + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace DatabarExpandedStackedDemo +{ + class Program + { + static void Main() + { + // Create the generator for Databar Expanded Stacked + BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); + + // Configure a 4‑column layout and save + barcode.Parameters.Barcode.DataBar.Columns = 4; + barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); + Console.WriteLine("4‑column barcode saved."); + + // Change to a 3‑row layout (columns stay at 4) and save + barcode.Parameters.Barcode.DataBar.Rows = 3; + barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); + Console.WriteLine("3‑row barcode saved."); + } + } +} +``` + +**Saída esperada** + +Ao executar o programa, ele imprime: + +``` +4‑column barcode saved. +3‑row barcode saved. +``` + +e cria dois arquivos PNG em `YOUR_DIRECTORY`. Abra os arquivos para verificar se cada imagem exibe um código de barras **databar expanded stacked** válido. + +## Armadilhas comuns e dicas práticas + +* **Existência do diretório** – `Save` não cria pastas ausentes. Garanta que `YOUR_DIRECTORY` exista ou use `Directory.CreateDirectory` antes de salvar. +* **Limites de colunas** – Valores diferentes de 2, 3 ou 4 dispararam uma exceção. Proteja contra erros de entrada do usuário com uma simples verificação de intervalo: + + ```csharp + int columns = 4; + if (columns < 2 || columns > 4) throw new ArgumentOutOfRangeException(nameof(columns)); + barcode.Parameters.Barcode.DataBar.Columns = columns; + ``` + +* **Limites de linhas** – A variante expanded stacked suporta até 3 linhas. Definir `Rows` como 0 ou um valor maior que 3 também gera uma exceção. +* **Formato de imagem** – `BarCodeImageFormat.Png` fornece qualidade sem perdas, ideal para impressão. Use `Jpeg` somente quando o tamanho do arquivo for a principal preocupação. + +## Próximos passos + +Agora que você sabe **como gerar imagens de código de barras** com configurações personalizadas de colunas e linhas, pode: + +* Integrar o gerador a uma API web para servir imagens de código de barras sob demanda. +* Combinar o código de barras com bibliotecas de geração de PDF para incorporá‑lo em notas fiscais. +* Experimentar outras variantes DataBar (`DatabarExpanded`, `DatabarLimited`) usando o mesmo objeto `Parameters.Barcode.DataBar`. + +Para personalizações mais avançadas — como alterar a cor das barras, adicionar texto legível por humanos ou aplicar sobreposições de QR‑code — consulte a documentação da Aspose.BarCode sobre as propriedades de `BarcodeGenerator`. + +--- + +Seguindo este guia, você dominou o fluxo de trabalho **databar expanded stacked**, aprendeu **como definir colunas**, **como definir linhas** e produziu duas imagens de código de barras distintas prontas para uso em produção. Boa codificação! + + +## O que você deve aprender a seguir? + + +Os tutoriais a seguir abordam tópicos intimamente relacionados que ampliam as técnicas demonstradas neste guia. Cada recurso inclui exemplos de código completos e funcionais com explicações passo a passo para ajudá‑lo a dominar recursos adicionais da API e explorar abordagens de implementação alternativas em seus próprios projetos. + +- [Generate barcode image – GS1 Coupon UPC-A Databar](/barcode/english/net/gs1-barcode-encoding/gs1-coupon-upc-a-databar-configuration/) +- [Create DotCode barcode image – rows & columns (Aspose.BarCode)](/barcode/english/net/dotcode-barcode-configuration/dotcode-rows-columns-configuration/) +- [How to Generate Barcode - One-Dimensional Barcode Types](/barcode/english/net/one-dimensional-barcode-types/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/portuguese/python-java/general/how-to-set-barcode-complete-c-guide/_index.md b/barcode/portuguese/python-java/general/how-to-set-barcode-complete-c-guide/_index.md new file mode 100644 index 000000000..f095305ad --- /dev/null +++ b/barcode/portuguese/python-java/general/how-to-set-barcode-complete-c-guide/_index.md @@ -0,0 +1,236 @@ +--- +category: general +date: 2026-08-15 +description: Como definir parâmetros de código de barras em C# e gerar imagens de + código de barras. Aprenda passo a passo a criar código de barras Databar e salvar + arquivos PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to set barcode +- how to generate barcode +- create databar barcode +- generate barcode image c# +language: pt +lastmod: 2026-08-15 +og_description: Como definir o código de barras em C# com Aspose.Barcode e gerar a + imagem do código de barras em C#. Siga este guia para criar um código de barras + Databar e salvar arquivos PNG. +og_image_alt: Screenshot of a Databar barcode saved as PNG using C# code +og_title: Como definir código de barras em C# – guia passo a passo +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: How to set barcode parameters in C# and generate barcode images. Learn + step‑by‑step to create Databar barcode and save PNG files. + headline: How to set barcode – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.Barcode +title: Como definir código de barras – guia completo em C# +url: /pt/python-java/general/how-to-set-barcode-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Como definir código de barras – guia completo em C# + +Se você está procurando **como definir código de barras** parâmetros em um projeto .NET, este tutorial mostra as etapas exatas que você precisa. Você aprenderá **como gerar código de barras** imagens, criar um código de barras Databar e controlar a altura das barras pixel por pixel — tudo com código C# limpo e pronto para produção. + +Neste guia você: + +* Instalar o pacote NuGet necessário. +* Criar um código de barras Databar Omnidirecional (a parte “criar código de barras Databar”). +* Ajustar a X‑dimension e a altura da barra para demonstrar **como definir código de barras** dimensões. +* Salvar o resultado como arquivos PNG, cobrindo o cenário **gerar imagem de código de barras C#**. + +O código funciona com a versão mais recente do Aspose.Barcode para .NET (v 24.12 na data de escrita) e roda em .NET 6 ou posterior. + +--- + +## Pré-requisitos + +Antes de começar, certifique‑se de que você tem: + +* .NET 6 SDK (ou qualquer versão posterior). +* Uma IDE como Visual Studio 2022 ou VS Code. +* Acesso à internet para baixar o pacote NuGet Aspose.Barcode. + +Nenhuma biblioteca de terceiros adicional é necessária. + +--- + +## Passo 1: Instalar Aspose.Barcode para .NET + +A maneira mais confiável de **gerar código de barras** imagens em C# é usar Aspose.Barcode. Abra um terminal na pasta do seu projeto e execute: + +```bash +dotnet add package Aspose.BarCode +``` + +O comando adiciona a versão estável mais recente ao seu arquivo de projeto, garantindo que você tenha a classe `BarcodeGenerator` e a enumeração `EncodeTypes`. + +*Dica de especialista:* Mantenha o pacote atualizado (`dotnet list package --outdated`) para aproveitar correções de bugs e novas simbologias de código de barras. + +--- + +## Passo 2: Criar um código de barras Databar (criar código de barras Databar) + +Databar Omnidirecional é ideal para varejo e logística porque pode codificar um valor GTIN‑14 mais dados adicionais. O código a seguir cria o objeto do código de barras: + +```csharp +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +// Step 2: Initialize the generator for a Databar Omnidirectional barcode +BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); +``` + +*Por que isso importa:* O enum `EncodeTypes.DatabarOmniDirectional` indica à biblioteca que deve usar a simbologia Databar, enquanto a string `"(01)12345678901231"` segue o formato do Identificador de Aplicação GS1 para um GTIN de 14 dígitos. + +--- + +## Passo 3: Definir parâmetros comuns – X‑dimension e altura base + +A maioria dos leitores de código de barras espera uma X‑dimension mínima (a largura da barra mais estreita). Definir para 2 pixels fornece uma imagem compacta, porém legível. + +```csharp +// Step 3: Set a 2‑pixel X‑dimension (common for most scanners) +generator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +Você pode ajustar a altura da barra posteriormente sem recriar o gerador — este é o núcleo de **como definir código de barras** atributos após a instanciação. + +--- + +## Passo 4: Definir a primeira altura da barra e salvar a imagem (gerar imagem de código de barras C#) + +Agora demonstramos a primeira parte de **como definir código de barras** altura. A altura da barra controla o comprimento visual de cada barra; um valor de 30 pixels gera um código de barras curto, enquanto 60 pixels cria uma versão mais alta. + +```csharp +// Step 4a: 30‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 30; + +// Save the first PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); +``` + +Após a execução, `DatabarBarHeight30Pixels.png` contém um código de barras Databar com barra de 30 pixels de altura. Abra o arquivo em qualquer visualizador de imagens para verificar o resultado. + +--- + +## Passo 5: Alterar a altura da barra e salvar uma segunda imagem + +Para ilustrar que **como definir código de barras** valores pode ser alterado em tempo real, modificamos a altura da barra para 60 pixels e gravamos um segundo arquivo. + +```csharp +// Step 5a: 60‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 60; + +// Save the second PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); +``` + +Agora você tem dois arquivos PNG mostrando os mesmos dados Databar, mas com alturas visuais diferentes. Isso é útil quando você precisa de um código de barras maior para etiquetas impressas ou menor para exibição em tela. + +--- + +## Passo 6: Exemplo completo e executável + +Juntando tudo, aqui está um programa de console autocontido que executa todas as etapas descritas acima. Copie o código para um novo arquivo `Program.cs`, substitua `YOUR_DIRECTORY` por um caminho de pasta real e execute-o. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Initialize the generator for a Databar Omnidirectional barcode + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); + + // Common parameters + generator.Parameters.Barcode.XDimension.Pixels = 2; // 2‑pixel narrow bar + + // First image: 30‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 30; + generator.Save(@"C:\Barcodes\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 30‑pixel barcode."); + + // Second image: 60‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 60; + generator.Save(@"C:\Barcodes\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 60‑pixel barcode."); + + // Dispose the generator to free native resources + generator.Dispose(); + } +} +``` + +**Saída esperada** + +Quando você executar o programa, o console imprime: + +``` +Saved 30-pixel barcode. +Saved 60-pixel barcode. +``` + +E a pasta `C:\Barcodes` (ou o caminho que você forneceu) contém os dois arquivos PNG. Ambas as imagens exibem um código de barras Databar Omnidirecional válido que pode ser lido por leitores GS1 padrão. + +--- + +## Perguntas frequentes + +**Isso funciona com outros formatos de imagem?** +Sim. Substitua `BarCodeImageFormat.Png` por `Jpeg`, `Bmp`, `Gif` ou `Tiff` para gerar o tipo de arquivo correspondente. + +**Posso mudar a cor de primeiro plano?** +Defina `generator.Parameters.Barcode.ForeColor` para qualquer valor `System.Drawing.Color`, por exemplo, `Color.Blue`. + +**E se eu precisar de uma simbologia diferente?** +Passe um valor diferente de `EncodeTypes` ao construtor, como `EncodeTypes.Code128` para um código de barras linear ou `EncodeTypes.QR` para um código matricial. + +**Existe uma maneira de incorporar o código de barras em um PDF?** +Aspose.Barcode fornece a classe `PdfGenerator`. Após gerar a imagem, você pode adicioná‑la a uma página PDF usando Aspose.PDF. + +--- + +## Melhores práticas para geração de códigos de barras em C# + +* **Reutilize a instância `BarcodeGenerator`** quando precisar apenas ajustar dimensões — isso evita alocações de memória desnecessárias. +* **Dispose o gerador** (`generator.Dispose()`) após terminar para liberar recursos nativos prontamente. +* **Valide os dados de entrada** (por exemplo, comprimento do GTIN) antes de criar o código de barras para evitar exceções em tempo de execução. +* **Teste com um scanner físico** após alterar X‑dimension ou altura da barra; valores extremos podem afetar a legibilidade. +* **Mantenha a pasta de saída gravável** para a conta que executa; caso contrário, `Save` lançará uma `UnauthorizedAccessException`. + +--- + +## Conclusão + +Agora você sabe **como definir código de barras** propriedades como X‑dimension e altura da barra, **como gerar código de barras** imagens em C#, e as etapas exatas para **criar código de barras Databar** arquivos com Aspose.Barcode. Seguindo o exemplo completo, você pode gerar múltiplos arquivos PNG com diferentes características visuais, atendendo ao requisito **gerar imagem de código de barras C#** para qualquer aplicação .NET. + +Em seguida, explore tópicos relacionados como **como gerar código de barras** em massa, incorporar códigos de barras em PDFs ou mudar para outras simbologias como QR ou Code 128. Experimente os parâmetros mostrados aqui para ajustar finamente a aparência do código de barras ao seu ambiente de leitura específico. Feliz codificação! + +## O que você deve aprender a seguir? + +Os tutoriais a seguir abordam tópicos intimamente relacionados que ampliam as técnicas demonstradas neste guia. Cada recurso inclui exemplos de código completos e funcionais com explicações passo a passo para ajudá‑lo a dominar recursos adicionais da API e explorar abordagens alternativas de implementação em seus próprios projetos. + +- [Como gerar códigos de barras DataMatrix (ECC 200) com Aspose.BarCode para .NET](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-ecc-200-configuration/) +- [Como gerar código de barras Aztec com proporção personalizada usando Aspose.BarCode para .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [Como gerar código de barras – Configuração Code 39 com Aspose.BarCode](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-code-39-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/russian/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md b/barcode/russian/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md new file mode 100644 index 000000000..de9abab53 --- /dev/null +++ b/barcode/russian/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md @@ -0,0 +1,186 @@ +--- +category: general +date: 2026-08-15 +description: Изображение штрихкода PNG в C# – узнайте, как генерировать почтовые штрихкоды, + создавать штрихкод Planet и изменять высоту штрихкода с помощью простого генератора. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- barcode image png +- barcode generator c# +- generate postal barcode +- create planet barcode +- change barcode height +language: ru +lastmod: 2026-08-15 +og_description: Учебник по созданию PNG‑изображения штрихкода в C# показывает, как + генерировать почтовые штрихкоды, создавать штрихкод Planet и изменять высоту штрихкода + с помощью API BarcodeGenerator. +og_image_alt: Screenshot of generated PNG barcode with custom height using C# BarcodeGenerator +og_title: PNG‑изображение штрихкода в C# – генерировать и настраивать штрихкоды +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Barcode image PNG in C# – learn how to generate postal barcodes, create + a Planet barcode, and change barcode height with a simple generator. + headline: Barcode image PNG in C# generate barcodes, change height + type: TechArticle +tags: +- barcode +- C# +- PNG +- postal +- generator +title: Изображение штрихкода PNG в C# — генерация штрихкодов, изменение высоты +url: /ru/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Изображение штрихкода PNG в C# – генерация штрихкодов, изменение высоты + +Если вам нужен **barcode image PNG** в C#, это руководство проведёт вас через весь процесс. Вы узнаете, как генерировать почтовые штрихкоды, создавать штрихкод Planet и менять высоту штрихкода, не покидая IDE. + +Генерация надёжных PNG‑штрихкодов — частая потребность для транспортных этикеток, систем учёта запасов и автоматизированных почтовых решений. К концу этого урока у вас будет переиспользуемый фрагмент кода, который создаёт PNG‑файлы высокого качества для форматов Planet и RM4SCC, а также вы поймёте, как регулировать высоту полосы в соответствии с почтовыми требованиями. + +## Что понадобится + +- .NET 6+ или .NET Framework 4.7.2 (API BarcodeGenerator работает с любой современной средой .NET) +- Ссылка на пакет **Aspose.BarCode for .NET** в NuGet (или любую совместимую библиотеку, предоставляющую `BarcodeGenerator`, `EncodeTypes` и `BarCodeImageFormat`) +- Базовое знакомство с синтаксисом C# и файловым вводом‑выводом + +Дополнительные инструменты не требуются; код работает в Visual Studio, Rider или через `dotnet` CLI. + +## Изображение штрихкода PNG – базовая генерация + +Первый шаг — создать **barcode image PNG** с параметрами по умолчанию. Это базовый файл, который позже можно будет настроить. + +```csharp +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +// Define the output folder (replace with your own path) +string outputFolder = @"C:\Barcodes"; + +// Ensure the folder exists +Directory.CreateDirectory(outputFolder); + +// 1️⃣ Create a Planet barcode generator with default height +BarcodeGenerator planetGenerator = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + +// Set the module width (X‑dimension) to 4 pixels – this defines the thin bar size +planetGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the image as PNG; this is the first **barcode image PNG** you’ll produce +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +**Почему это работает:** +- `EncodeTypes.Planet` указывает генератору использовать символьную систему Planet, требуемую многими почтовыми службами. +- `XDimension.Pixels` задаёт ширину самой тонкой полосы; значение 4 px обеспечивает читаемость штрихкода при типичных размерах этикетки. +- Метод `Save` записывает **barcode image PNG** файл на диск, сохраняя всю векторную информацию в виде растровых пикселей. + +## Изменение высоты штрихкода – настройка визуального веса + +Почтовые стандарты часто требуют определённую высоту полосы. Ниже показан фрагмент кода, который задаёт пользовательскую высоту 100 пикселей для того же штрихкода Planet. + +```csharp +// 2️⃣ Apply a custom 100‑pixel bar height +planetGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Overwrite or save as a new file to keep both versions +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +**Почему меняют высоту:** +Более высокая полоса повышает надёжность сканирования на принтерах с низким разрешением, тогда как более низкая полоса экономит место на этикетке. Свойство `BarHeight.Pixels` позволяет точно настроить этот параметр, не затрагивая X‑размер. + +## Генерация почтового штрихкода – пример RM4SCC + +Формат RM4SCC — ещё один распространённый почтовый штрихкод, используемый в Соединённом Королевстве. Шаги генерации аналогичны примеру с Planet, укрепляя шаблон **barcode generator c#**. + +```csharp +// 3️⃣ Create an RM4SCC barcode generator with default height +BarcodeGenerator rm4sccGenerator = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Keep the same module width for consistency +rm4sccGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the default‑height PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +## Изменение высоты штрихкода – вариант RM4SCC + +Точно так же, как и для штрихкода Planet, можно отрегулировать высоту полосы RM4SCC. Ниже код, задающий высоту 100 px и создающий второй **barcode image PNG** для той же строки данных. + +```csharp +// 4️⃣ Set a custom 100‑pixel bar height for RM4SCC +rm4sccGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Save the customized PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +## Полный, исполняемый пример + +Объединяя все шаги, получаем единый, самодостаточный проект, создающий четыре PNG‑файла: + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +class Program +{ + static void Main() + { + string outputFolder = @"C:\Barcodes"; + Directory.CreateDirectory(outputFolder); + + // Planet barcode – default height + var planet = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planet.Parameters.Barcode.XDimension.Pixels = 4; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // Planet barcode – custom 100‑pixel height + planet.Parameters.Barcode.BarHeight.Pixels = 100; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – default height + var rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – custom 100‑pixel height + rm4scc.Parameters.Barcode.BarHeight.Pixels = 100; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); + + Console.WriteLine("All barcode PNG files have been generated in " + + + +## Что следует изучить дальше? + + +Следующие руководства охватывают тесно связанные темы, расширяющие техники, продемонстрированные в этом руководстве. Каждый ресурс включает полностью работающие примеры кода с пошаговыми объяснениями, чтобы помочь вам освоить дополнительные возможности API и исследовать альтернативные подходы реализации в собственных проектах. + +- [Create Barcode Custom Height – One-Dimensional Barcodes](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-barcode-height-adjustment/) +- [Create Barcode PNG – DataMatrix Aspect Ratio – Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-aspect-ratio-customization/) +- [Create barcode image C# – GS1 DataMatrix Example](/barcode/english/net/gs1-barcode-encoding/gs1-datamatrix-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/russian/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md b/barcode/russian/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md new file mode 100644 index 000000000..7c5441d17 --- /dev/null +++ b/barcode/russian/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-08-15 +description: Создайте планетарный штрих‑код на C# и узнайте, как задать размеры штрих‑кода + для идеального масштабирования. Пошаговый пример кода с заполненными и пустыми полосами. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create planet barcode +- how to set barcode dimensions +- planet barcode C# +- barcode X‑dimension +- empty barcode bars +language: ru +lastmod: 2026-08-15 +og_description: Создайте планетарный штрих‑код на C# и узнайте, как задавать размеры + штрих‑кода. Следуйте этому руководству, чтобы мгновенно генерировать заполненные + и пустые планетарные штрих‑коды. +og_image_alt: Screenshot showing a Planet barcode with filled bars generated by C# + code +og_title: Создание планетарного штрихкода в C# – полное пошаговое руководство +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Create planet barcode in C# and learn how to set barcode dimensions + for perfect sizing. Step‑by‑step code example with filled and empty bars. + headline: Create planet barcode in C# – complete programming guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.BarCode +title: Создание планетарного штрихкода на C# – полное руководство по программированию +url: /ru/python-java/general/create-planet-barcode-in-c-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Создание штрих‑кода Planet в C# – полное руководство по программированию + +Если вам нужно **создать штрих‑код planet** в C#, это руководство покажет, как это сделать. Вы также узнаете, **как задать размеры штрих‑кода**, чтобы полосы имели точную требуемую ширину. + +Генерация штрих‑кодов Planet часто требуется при работе с почтовыми службами или логистическими системами. Приведённый ниже код охватывает как стандартный вариант с заполненными полосами, так и опциональный стиль с пустыми полосами, а также быстрый пример для формата RM4SCC. К концу этого урока у вас будет переиспользуемый фрагмент, который можно вставить в любой проект .NET. + +## Требования + +Прежде чем начать, убедитесь, что у вас есть: + +* .NET 6.0 или новее (API также работает с .NET Framework 4.6+) +* NuGet‑пакет **Aspose.BarCode for .NET** (`Aspose.BarCode`) добавлен в ваш проект +* Папка, в которую можно записывать файлы PNG +* Базовые знания синтаксиса C# и Visual Studio (или любой другой IDE) + +> **Полезный совет:** используйте абсолютный путь или `Path.Combine(Environment.CurrentDirectory, "output")`, чтобы избежать проблем с правами доступа при сохранении изображений. + +## Шаг 1 – Инициализация генератора штрих‑кода Planet (заполненные полосы) + +Первый шаг – создать экземпляр `BarcodeGenerator` для символьного набора Planet. По умолчанию генератор создаёт **заполненные** полосы. + +```csharp +// Step 1: Create a Planet barcode with the default (filled) bars +BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +Перечисление `EncodeTypes.Planet` указывает Aspose.BarCode использовать формат Planet, а `"123456"` – это данные, которые будут закодированы. + +## Шаг 2 – Как задать размеры штрих‑кода для единообразия + +Чтобы контролировать ширину каждой полосы, настройте **X‑dimension**. Это основной способ **задать размеры штрих‑кода** и гарантировать, что он впишется в размер вашей этикетки. + +```csharp +// Step 2: Set the X‑dimension (width of each bar) to 4 pixels +planetFilled.Parameters.Barcode.XDimension.Pixels = 4; +``` + +Свойство `Pixels` определяет ширину полосы в пикселях экрана. Обычные значения – 2 – 5 пикселей для стандартных почтовых этикеток; увеличьте значение для более крупных печатных материалов. + +## Шаг 3 – Сохранение заполненного штрих‑кода Planet в PNG + +Теперь запишем изображение на диск. PNG сохраняет чёткие границы, что идеально для сканирования. + +```csharp +// Step 3: Save the Planet barcode as a PNG image +planetFilled.Save("YOUR_DIRECTORY/PostalPlanetFilledBars.png", BarCodeImageFormat.Png); +``` + +Замените `YOUR_DIRECTORY` на путь, который вы подготовили ранее. После выполнения кода вы увидите файл, похожий на изображение ниже. + +![Planet barcode with filled bars](planet_filled.png "Planet barcode with filled bars – created by C# code") + +*Alt text:* **Planet barcode with filled bars generated by C# code** (matches `og_image_alt`). + +## Шаг 4 – Создание штрих‑кода Planet с пустыми (не заполненными) полосами + +Если ваша почтовая служба требует **пустые** полосы, нужно переключить флаг `FilledBars` после инициализации генератора. + +```csharp +// Step 4: Create a Planet barcode with empty (unfilled) bars +BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +Конструктор остаётся тем же; различие проявляется в следующем шаге настройки. + +## Шаг 5 – Как задать размеры штрих‑кода и сделать полосы пустыми + +Снова задаём X‑dimension для визуального соответствия, затем отключаем заполненные полосы. + +```csharp +// Step 5: Set the X‑dimension and specify that bars should be empty +planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; +planetEmpty.Parameters.Barcode.FilledBars = false; // makes bars empty +``` + +Свойство `FilledBars = false` именно меняет стиль отрисовки. Сохраняя ту же X‑dimension, вы гарантируете, что штрих‑код с пустыми полосами будет точно совпадать по размеру с заполненным вариантом. + +## Шаг 6 – Сохранение пустого штрих‑кода Planet + +```csharp +// Step 6: Save the Planet barcode with empty bars as a PNG image +planetEmpty.Save("YOUR_DIRECTORY/PostalPlanetEmptyBars.png", BarCodeImageFormat.Png); +``` + +В результате у вас будет два PNG‑файла: один с сплошными полосами, другой с полыми, оба с одинаковыми размерами. + +## Шаг 7 – (Опционально) Генерация штрих‑кода RM4SCC для сравнения + +RM4SCC – ещё один почтовый символьный набор, использующий тот же стиль заполненных полос по умолчанию. Шаги повторяют пример с Planet, демонстрируя, что **как задать размеры штрих‑кода** работает и для других форматов. + +```csharp +// Step 7: Create an RM4SCC barcode (filled bars are the default) +BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Step 8: Set the X‑dimension for consistency +rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + +// Step 9: Save the RM4SCC barcode as a PNG image +rm4scc.Save("YOUR_DIRECTORY/PostalRM4SCCFilledBars.png", BarCodeImageFormat.Png); +``` + +Выполнение этих трёх шагов создаст `PostalRM4SCCFilledBars.png`, который можно сравнить бок о бок с результатами Planet. + +## Почему X‑dimension важна + +X‑dimension определяет **минимальную печатную ширину** каждой полосы. Если задать её слишком маленькой, штрих‑код может размыться на принтерах низкого разрешения, что приведёт к ошибкам сканирования. Слишком большая X‑dimension может превысить размеры этикетки и занять лишнее пространство. Явно задавая **как задать размеры штрих‑кода**, вы получаете детерминированный контроль над конечным размером изображения, что критично для автоматизированных почтовых процессов. + +## Распространённые ошибки и способы их избежать + +| Проблема | Причина | Решение | +|----------|---------|---------| +| Штрих‑код выглядит растянутым | X‑dimension задан в пунктах вместо пикселей | Всегда используйте свойство `Pixels` для пиксель‑точного контроля | +| Пустые полосы выглядят заполненными | `FilledBars` не установлен в `false` после изменения X‑dimension | Установите `FilledBars = false` *после* настройки X‑dimension | +| Сохранённый файл пустой | Папка вывода не существует или нет прав на запись | Убедитесь, что папка существует (`Directory.CreateDirectory`) и приложение имеет достаточные права | +| Изображение размыто при печати | PNG сохранён с низким DPI с монитора высокого разрешения | Используйте `BarCodeImageFormat.Png` (без потерь) и при необходимости задайте свойство `Resolution` | + +## Полный, готовый к запуску пример + +Скопируйте весь блок ниже в новый консольный проект (`dotnet new console`) и запустите его. Программа создаст три PNG‑файла в папке `output`. + +```csharp +using System; +using System.IO; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Ensure output folder exists + string outDir = Path.Combine(Environment.CurrentDirectory, "output"); + Directory.CreateDirectory(outDir); + + // ---------- Planet barcode – filled bars ---------- + BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetFilled.Parameters.Barcode.XDimension.Pixels = 4; // set dimensions + planetFilled.Save(Path.Combine(outDir, "PostalPlanetFilledBars.png"), BarCodeImageFormat.Png); + + // ---------- Planet barcode – empty bars ---------- + BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; // same dimensions + planetEmpty.Parameters.Barcode.FilledBars = false; // make bars empty + planetEmpty.Save(Path.Combine(outDir, "PostalPlanetEmptyBars.png"), BarCodeImageFormat.Png); + + // ---------- RM4SCC barcode (filled bars) ---------- + BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; // consistent size + rm4scc.Save(Path.Combine(outDir, "PostalRM4SCCFilledBars.png"), BarCodeImageFormat.Png); + + Console.WriteLine($"Barcodes generated in: {outDir}"); + } +} +``` + +**Ожидаемый результат:** три PNG‑файла — `PostalPlanetFilledBars.png`, `PostalPlanetEmptyBars.png` и `PostalRM4SCCFilledBars.png` — каждая полоса шириной 4 пикселя, готовые к печати или дальнейшей обработке. + +## Заключение + +Теперь вы знаете, как **создать штрих‑код planet** в C# и точно **как задать размеры штрих‑кода** как для заполненных, так и для пустых полос. Та же схема применима к другим символьным наборам, например RM4SCC, предоставляя гибкую основу для любых требований к почтовым штрих‑кодам. + +Дальше вы можете изучить: + +* Добавление читаемого человеком текста под штрих‑кодом (`BarcodeGenerator.Parameters.Barcode.CodeText`) +* Изменение цвета полос с помощью `Parameters.Barcode.BarColor` +* Генерацию штрих‑кодов в векторных форматах (SVG, EPS) для масштабируемой печати + +Экспериментируйте с различными значениями X‑dimension, строками данных и форматами вывода, чтобы подобрать оптимальный вариант под ваш рабочий процесс. Приятного кодинга! + +## Что изучать дальше? + +Следующие руководства охватывают тесно связанные темы, расширяющие техники, продемонстрированные в этом руководстве. Каждый ресурс содержит полностью работающие примеры кода с пошаговыми объяснениями, помогая вам освоить дополнительные возможности API и исследовать альтернативные подходы в собственных проектах. + +- [How to create barcode quiet zone for Code 16K using Aspose.BarCode for .NET](/barcode/english/net/code-16k-encoding/code-16k-quiet-zone-settings/) +- [How to Create Barcode Quiet Zone for ITF-14 Using Aspose.BarCode for .NET](/barcode/english/net/itf-14-barcode-customization/itf-14-barcode-quiet-zone-configuration/) +- [How to create Aztec barcode with error correction in .NET](/barcode/english/net/aztec-barcode-encoding/aztec-error-level-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/russian/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md b/barcode/russian/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md new file mode 100644 index 000000000..8e22631d1 --- /dev/null +++ b/barcode/russian/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md @@ -0,0 +1,240 @@ +--- +category: general +date: 2026-08-15 +description: Databar расширил генерацию штабелируемых штрих‑кодов в C#. Узнайте, как + создать изображение штрих‑кода, задать столбцы и строки для макетов DataBar. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- databar expanded stacked +- generate barcode image +- how to generate barcode +- how to set columns +- how to set rows +language: ru +lastmod: 2026-08-15 +og_description: Databar расширил генерацию наложенных штрих‑кодов в C#. Следуйте этому + пошаговому руководству, чтобы эффективно генерировать изображения штрих‑кодов, задавать + столбцы и строки. +og_image_alt: Screenshot of a databar expanded stacked barcode generated with C# +og_title: Databar expanded stacked – создание изображения штрихкода в C# +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + headline: 'Databar expanded stacked: generate barcode image in C#' + type: TechArticle +- description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + name: 'Databar expanded stacked: generate barcode image in C#' + steps: + - name: 1. Install the Aspose.BarCode library + text: 'The code uses the **Aspose.BarCode for .NET** library, which provides the + `BarcodeGenerator` class. Install the NuGet package with the following command:' + - name: 2. Create a barcode generator for **databar expanded stacked** + text: The generator is the entry point for all barcode operations. You must specify + the symbology (`EncodeTypes.DatabarExpandedStacked`) and the text to encode. + - name: 3. How to set columns for DataBar + text: The `Columns` property controls how many vertical modules appear in the + stacked barcode. Valid values are 2, 3, or 4. Setting columns influences the + barcode’s width and the amount of data it can store. + - name: 4. Save the 4‑column barcode image + text: Saving the image produces a file that you can embed in reports, invoices, + or mobile apps. The `Save` method accepts a file path and an image format. + - name: 5. How to set rows for DataBar + text: Rows add a second dimension to the stacked layout, allowing more data to + be encoded without widening the barcode. The `Rows` property defaults to 1; + you can increase it up to 3 for the expanded stacked variant. + - name: 6. Save the 3‑row barcode image + text: '```csharp // Step 5: Save the 3‑row barcode image barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", + BarCodeImageFormat.Png); ```' + - name: 7. Complete C# example to generate barcode image + text: 'Putting all steps together yields a self‑contained program you can copy + into a console application:' + type: HowTo +tags: +- barcode +- C# +- Aspose.BarCode +title: 'Databar expanded stacked: создать изображение штрихкода в C#' +url: /ru/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Databar expanded stacked: generate barcode image in C# + +Если вам нужно сгенерировать изображение штрих‑кода **databar expanded stacked** в C#, это руководство покажет, **как генерировать штрих‑коды** с пользовательскими расположениями столбцов и строк. Вы увидите, как задать столбцы, как задать строки и как сохранить полученные изображения, не выходя из IDE. + +В руководстве рассматривается: + +* Создание генератора штрих‑кода для символьного набора **databar expanded stacked**. +* Настройка макета из 4 столбцов и 3 строк. +* Сохранение каждой конфигурации в файл PNG. +* Советы по обработке граничных случаев, таких как неверное количество столбцов. + +Внешняя документация не требуется; полный, готовый к запуску пример включён. + +![Databar expanded stacked barcode example](YOUR_DIRECTORY/DatabarCols4.png){: .center alt="датабар расширенный штабелированный штрих‑код, сгенерированный с помощью C#" } + +## Databar expanded stacked barcode generation steps + +### 1. Install the Aspose.BarCode library + +The code uses the **Aspose.BarCode for .NET** library, which provides the `BarcodeGenerator` class. Install the NuGet package with the following command: + +```bash +dotnet add package Aspose.BarCode +``` + +After the package is installed, add the required namespace at the top of your file: + +```csharp +using Aspose.BarCode.Generation; +``` + +### 2. Create a barcode generator for **databar expanded stacked** + +The generator is the entry point for all barcode operations. You must specify the symbology (`EncodeTypes.DatabarExpandedStacked`) and the text to encode. + +```csharp +// Step 1: Create a barcode generator for Databar Expanded Stacked +BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); +``` + +*Why this matters:* The `EncodeTypes` enum tells the library which barcode format to produce. Using **databar expanded stacked** ensures the resulting image follows the GS1 DataBar specification for stacked layouts. + +### 3. How to set columns for DataBar + +The `Columns` property controls how many vertical modules appear in the stacked barcode. Valid values are 2, 3, or 4. Setting columns influences the barcode’s width and the amount of data it can store. + +```csharp +// Step 2: Configure a 4‑column layout +barcode.Parameters.Barcode.DataBar.Columns = 4; +``` + +**Tip:** If you attempt to assign a value outside the allowed range, the library throws an `ArgumentException`. Always validate input when exposing column selection to users. + +### 4. Save the 4‑column barcode image + +Saving the image produces a file that you can embed in reports, invoices, or mobile apps. The `Save` method accepts a file path and an image format. + +```csharp +// Step 3: Save the 4‑column barcode image +barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); +``` + +When the file is written, you can open it with any image viewer to confirm that the **databar expanded stacked** pattern appears correctly. + +### 5. How to set rows for DataBar + +Rows add a second dimension to the stacked layout, allowing more data to be encoded without widening the barcode. The `Rows` property defaults to 1; you can increase it up to 3 for the expanded stacked variant. + +```csharp +// Step 4: Switch to a 3‑row layout (columns remain unchanged) +barcode.Parameters.Barcode.DataBar.Rows = 3; +``` + +**Why rows matter:** Increasing rows reduces the overall width while preserving data capacity, which is useful for narrow labels or mobile screen space. + +### 6. Save the 3‑row barcode image + +```csharp +// Step 5: Save the 3‑row barcode image +barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); +``` + +You now have two PNG files—one with a 4‑column layout and another with a 3‑row layout—both using the **databar expanded stacked** symbology. + +### 7. Complete C# example to generate barcode image + +Putting all steps together yields a self‑contained program you can copy into a console application: + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace DatabarExpandedStackedDemo +{ + class Program + { + static void Main() + { + // Create the generator for Databar Expanded Stacked + BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); + + // Configure a 4‑column layout and save + barcode.Parameters.Barcode.DataBar.Columns = 4; + barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); + Console.WriteLine("4‑column barcode saved."); + + // Change to a 3‑row layout (columns stay at 4) and save + barcode.Parameters.Barcode.DataBar.Rows = 3; + barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); + Console.WriteLine("3‑row barcode saved."); + } + } +} +``` + +**Expected output** + +Running the program prints: + +``` +4‑column barcode saved. +3‑row barcode saved. +``` + +and creates two PNG files in `YOUR_DIRECTORY`. Open the files to verify that each image displays a valid **databar expanded stacked** barcode. + +## Common pitfalls and practical tips + +* **Directory existence** – `Save` does not create missing folders. Ensure `YOUR_DIRECTORY` exists or use `Directory.CreateDirectory` before saving. +* **Column limits** – Values other than 2, 3, or 4 trigger an exception. Guard against user input errors with a simple range check: + + ```csharp + int columns = 4; + if (columns < 2 || columns > 4) throw new ArgumentOutOfRangeException(nameof(columns)); + barcode.Parameters.Barcode.DataBar.Columns = columns; + ``` + +* **Row limits** – The expanded stacked variant supports up to 3 rows. Setting `Rows` to 0 or a value greater than 3 also raises an exception. +* **Image format** – `BarCodeImageFormat.Png` provides lossless quality, which is ideal for printing. Use `Jpeg` only when file size is a primary concern. + +## Next steps + +Now that you know **how to generate barcode** images with custom column and row configurations, you can: + +* Integrate the generator into a web API to serve barcode images on demand. +* Combine the barcode with PDF generation libraries to embed it in invoices. +* Experiment with other DataBar variants (`DatabarExpanded`, `DatabarLimited`) using the same `Parameters.Barcode.DataBar` object. + +For deeper customization—such as changing bar color, adding human‑readable text, or applying QR‑code overlays—refer to the Aspose.BarCode documentation on `BarcodeGenerator` properties. + +--- + +By following this guide you have mastered the **databar expanded stacked** workflow, learned **how to set columns**, **how to set rows**, and produced two distinct barcode images ready for production use. Happy coding! + + +## What Should You Learn Next? + + +The following tutorials cover closely related topics that build on the techniques demonstrated in this guide. Each resource includes complete working code examples with step-by-step explanations to help you master additional API features and explore alternative implementation approaches in your own projects. + +- [Generate barcode image – GS1 Coupon UPC-A Databar](/barcode/english/net/gs1-barcode-encoding/gs1-coupon-upc-a-databar-configuration/) +- [Create DotCode barcode image – rows & columns (Aspose.BarCode)](/barcode/english/net/dotcode-barcode-configuration/dotcode-rows-columns-configuration/) +- [How to Generate Barcode - One-Dimensional Barcode Types](/barcode/english/net/one-dimensional-barcode-types/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/russian/python-java/general/how-to-set-barcode-complete-c-guide/_index.md b/barcode/russian/python-java/general/how-to-set-barcode-complete-c-guide/_index.md new file mode 100644 index 000000000..5711935f2 --- /dev/null +++ b/barcode/russian/python-java/general/how-to-set-barcode-complete-c-guide/_index.md @@ -0,0 +1,235 @@ +--- +category: general +date: 2026-08-15 +description: Как установить параметры штрихкода в C# и генерировать изображения штрихкода. + Узнайте пошагово, как создать штрихкод Databar и сохранить файлы PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to set barcode +- how to generate barcode +- create databar barcode +- generate barcode image c# +language: ru +lastmod: 2026-08-15 +og_description: Как установить штрих‑код в C# с помощью Aspose.Barcode, а затем сгенерировать + изображение штрих‑кода в C#. Следуйте этому руководству, чтобы создать штрих‑код + Databar и сохранить файлы PNG. +og_image_alt: Screenshot of a Databar barcode saved as PNG using C# code +og_title: Как установить штрих‑код в C# – пошаговое руководство +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: How to set barcode parameters in C# and generate barcode images. Learn + step‑by‑step to create Databar barcode and save PNG files. + headline: How to set barcode – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.Barcode +title: Как установить штрих‑код — полное руководство по C# +url: /ru/python-java/general/how-to-set-barcode-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Как задать штрих‑код – полное руководство на C# + +Если вы ищете **как задать параметры штрих‑кода** в проекте .NET, это руководство покажет точные шаги, которые вам нужны. Вы узнаете, **как генерировать изображения штрих‑кода**, создать штрих‑код Databar и управлять высотой полосы пиксель‑за‑пикселем — все с чистым, готовым к продакшну кодом на C#. + +В этом руководстве вы: + +* Установите необходимый пакет NuGet. +* Создадите штрих‑код Databar Omnidirectional (часть «создать штрих‑код Databar»). +* Отрегулируете X‑размер и высоту полосы, чтобы продемонстрировать **как задать штрих‑код** размеры. +* Сохраните результат в виде PNG‑файлов, охватывая сценарий **генерации изображения штрих‑кода C#**. + +Код работает с последней версией Aspose.Barcode для .NET (v 24.12 на момент написания) и запускается на .NET 6 или новее. + +--- + +## Требования + +Прежде чем начать, убедитесь, что у вас есть: + +* .NET 6 SDK (или более поздняя версия). +* IDE, например Visual Studio 2022 или VS Code. +* Доступ в Интернет для загрузки пакета NuGet Aspose.Barcode. + +Дополнительные сторонние библиотеки не требуются. + +--- + +## Шаг 1: Установите Aspose.Barcode для .NET + +Самый надёжный способ **генерировать изображения штрих‑кода** в C# — использовать Aspose.Barcode. Откройте терминал в папке проекта и выполните: + +```bash +dotnet add package Aspose.BarCode +``` + +Эта команда добавит последнюю стабильную версию в ваш файл проекта, обеспечивая наличие класса `BarcodeGenerator` и перечисления `EncodeTypes`. + +*Совет:* Держите пакет в актуальном состоянии (`dotnet list package --outdated`), чтобы получать исправления ошибок и новые символьные наборы штрих‑кодов. + +--- + +## Шаг 2: Создайте штрих‑код Databar (create Databar barcode) + +Databar Omnidirectional идеален для розничной торговли и логистики, так как может кодировать значение GTIN‑14 плюс дополнительные данные. Следующий код создаёт объект штрих‑кода: + +```csharp +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +// Step 2: Initialize the generator for a Databar Omnidirectional barcode +BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); +``` + +*Почему это важно:* Перечисление `EncodeTypes.DatabarOmniDirectional` указывает библиотеке использовать символьный набор Databar, а строка `"(01)12345678901231"` следует формату GS1 Application Identifier для 14‑значного GTIN. + +--- + +## Шаг 3: Определите общие параметры — X‑размер и базовую высоту + +Большинство сканеров штрих‑кодов ожидают минимальный X‑размер (ширина самой узкой полосы). Установка значения 2 пикселя даёт компактное, но читаемое изображение. + +```csharp +// Step 3: Set a 2‑pixel X‑dimension (common for most scanners) +generator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +Позже вы сможете изменить высоту полосы без пересоздания генератора — это и есть суть **как задать штрих‑код** атрибуты после инициализации. + +--- + +## Шаг 4: Задайте высоту первой полосы и сохраните изображение (generate barcode image C#) + +Теперь мы демонстрируем первую часть **как задать штрих‑код** высоту. Высота полосы определяет визуальную длину каждой полосы; значение 30 пикселей даёт короткий штрих‑код, а 60 пикселей — более высокий вариант. + +```csharp +// Step 4a: 30‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 30; + +// Save the first PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); +``` + +После выполнения `DatabarBarHeight30Pixels.png` будет содержать штрих‑код Databar с высотой полосы 30 пикселей. Откройте файл в любом просмотрщике изображений, чтобы проверить результат. + +--- + +## Шаг 5: Измените высоту полосы и сохраните второе изображение + +Чтобы показать, что **как задать штрих‑код** значения можно менять «на лету», мы меняем высоту полосы на 60 пикселей и сохраняем второй файл. + +```csharp +// Step 5a: 60‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 60; + +// Save the second PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); +``` + +Теперь у вас есть два PNG‑файла, показывающие одинаковые данные Databar, но с разной визуальной высотой. Это полезно, когда нужен более крупный штрих‑код для печатных этикеток или более маленький — для отображения на экране. + +--- + +## Шаг 6: Полный, готовый к запуску пример + +Объединив всё вместе, получаем автономную консольную программу, выполняющую все описанные выше шаги. Скопируйте код в новый файл `Program.cs`, замените `YOUR_DIRECTORY` на реальный путь к папке и запустите его. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Initialize the generator for a Databar Omnidirectional barcode + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); + + // Common parameters + generator.Parameters.Barcode.XDimension.Pixels = 2; // 2‑pixel narrow bar + + // First image: 30‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 30; + generator.Save(@"C:\Barcodes\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 30‑pixel barcode."); + + // Second image: 60‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 60; + generator.Save(@"C:\Barcodes\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 60‑pixel barcode."); + + // Dispose the generator to free native resources + generator.Dispose(); + } +} +``` + +**Ожидаемый вывод** + +При запуске программы в консоли будет выведено: + +``` +Saved 30-pixel barcode. +Saved 60-pixel barcode. +``` + +И папка `C:\Barcodes` (или указанный вами путь) будет содержать два PNG‑файла. Оба изображения отображают действительный штрих‑код Databar Omnidirectional, который может сканировать любой стандартный GS1‑ридер. + +--- + +## Часто задаваемые вопросы + +**Работает ли это с другими форматами изображений?** +Да. Замените `BarCodeImageFormat.Png` на `Jpeg`, `Bmp`, `Gif` или `Tiff`, чтобы получить соответствующий тип файла. + +**Можно ли изменить цвет переднего плана?** +Установите `generator.Parameters.Barcode.ForeColor` в любое значение `System.Drawing.Color`, например `Color.Blue`. + +**А если нужен другой символьный набор?** +Передайте другое значение `EncodeTypes` в конструктор, например `EncodeTypes.Code128` для линейного штрих‑кода или `EncodeTypes.QR` для матричного кода. + +**Можно ли встроить штрих‑код в PDF?** +Aspose.Barcode предоставляет класс `PdfGenerator`. После генерации изображения его можно добавить на страницу PDF с помощью Aspose.PDF. + +--- + +## Лучшие практики генерации штрих‑кодов в C# + +* **Повторно используйте экземпляр `BarcodeGenerator`**, когда нужно лишь подправить размеры — это избавляет от лишних выделений памяти. +* **Освобождайте генератор** (`generator.Dispose()`) после завершения работы, чтобы быстро освободить нативные ресурсы. +* **Проверяйте входные данные** (например, длину GTIN) перед созданием штрих‑кода, чтобы избежать исключений во время выполнения. +* **Тестируйте с физическим сканером** после изменения X‑размера или высоты полосы; экстремальные значения могут ухудшить читаемость. +* **Убедитесь, что папка вывода доступна для записи** учетной записи, под которой запускается приложение; иначе `Save` бросит `UnauthorizedAccessException`. + +--- + +## Заключение + +Теперь вы знаете **как задать свойства штрих‑кода**, такие как X‑размер и высота полосы, **как генерировать изображения штрих‑кода** на C#, а также точные шаги **создания файлов штрих‑кода Databar** с помощью Aspose.Barcode. Следуя полному примеру, вы сможете генерировать несколько PNG‑файлов с разными визуальными характеристиками, удовлетворяя требование **генерации изображения штрих‑кода C#** для любого .NET‑приложения. + +Далее изучайте связанные темы, такие как **как генерировать штрих‑коды** массово, встраивание штрих‑кодов в PDF или переход к другим символьным наборам, например QR или Code 128. Экспериментируйте с параметрами, показанными здесь, чтобы точно настроить внешний вид штрих‑кода под вашу среду сканирования. Приятного кодинга! + +## Что изучать дальше? + +Следующие учебные материалы охватывают тесно связанные темы, расширяющие техники, продемонстрированные в этом руководстве. Каждый ресурс содержит полностью рабочие примеры кода с пошаговыми объяснениями, помогающими освоить дополнительные возможности API и исследовать альтернативные подходы в ваших проектах. + +- [How to Generate DataMatrix Barcodes (ECC 200) with Aspose.BarCode for .NET](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-ecc-200-configuration/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [How to Generate Barcode – Code 39 Configuration with Aspose.BarCode](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-code-39-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/spanish/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md b/barcode/spanish/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md new file mode 100644 index 000000000..7ef359d4a --- /dev/null +++ b/barcode/spanish/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md @@ -0,0 +1,186 @@ +--- +category: general +date: 2026-08-15 +description: Imagen de código de barras PNG en C# – aprende cómo generar códigos de + barras postales, crear un código de barras Planet y cambiar la altura del código + de barras con un generador sencillo. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- barcode image png +- barcode generator c# +- generate postal barcode +- create planet barcode +- change barcode height +language: es +lastmod: 2026-08-15 +og_description: El tutorial de imagen de código de barras PNG en C# muestra cómo generar + códigos de barras postales, crear un código de barras Planet y cambiar la altura + del código de barras usando la API BarcodeGenerator. +og_image_alt: Screenshot of generated PNG barcode with custom height using C# BarcodeGenerator +og_title: Imagen de código de barras PNG en C# – generar y ajustar códigos de barras +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Barcode image PNG in C# – learn how to generate postal barcodes, create + a Planet barcode, and change barcode height with a simple generator. + headline: Barcode image PNG in C# generate barcodes, change height + type: TechArticle +tags: +- barcode +- C# +- PNG +- postal +- generator +title: Imagen PNG de código de barras en C# generar códigos de barras, cambiar altura +url: /es/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Imagen de código de barras PNG en C# – generar códigos de barras, cambiar altura + +Si necesitas una **imagen de código de barras PNG** en C#, esta guía te lleva paso a paso por todo el proceso. Aprenderás a generar códigos de barras postales, crear un código de barras Planet y cambiar la altura del código de barras sin salir de tu IDE. + +Generar códigos de barras PNG confiables es un requisito común para etiquetas de envío, sistemas de inventario y soluciones de correo automatizado. Al final de este tutorial tendrás un fragmento de código reutilizable que produce archivos PNG de alta calidad para los formatos Planet y RM4SCC, y comprenderás cómo ajustar la altura de la barra para cumplir con las especificaciones postales. + +## Lo que necesitarás + +- .NET 6+ o .NET Framework 4.7.2 (la API BarcodeGenerator funciona con cualquier runtime .NET reciente) +- Una referencia al paquete NuGet **Aspose.BarCode for .NET** (o cualquier biblioteca compatible que proporcione `BarcodeGenerator`, `EncodeTypes` y `BarCodeImageFormat`) +- Familiaridad básica con la sintaxis de C# y la E/S de archivos + +No se requieren herramientas adicionales; el código se ejecuta en Visual Studio, Rider o la CLI `dotnet`. + +## Imagen de código de barras PNG – generación básica + +El primer paso es crear una **imagen de código de barras PNG** con dimensiones predeterminadas. Esto establece el archivo base que luego podrás personalizar. + +```csharp +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +// Define the output folder (replace with your own path) +string outputFolder = @"C:\Barcodes"; + +// Ensure the folder exists +Directory.CreateDirectory(outputFolder); + +// 1️⃣ Create a Planet barcode generator with default height +BarcodeGenerator planetGenerator = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + +// Set the module width (X‑dimension) to 4 pixels – this defines the thin bar size +planetGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the image as PNG; this is the first **barcode image PNG** you’ll produce +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +**Por qué funciona esto:** +- `EncodeTypes.Planet` indica al generador que use la simbología Planet, que es requerida por muchos servicios postales. +- `XDimension.Pixels` controla el ancho de la barra más pequeña; un valor de 4 px produce un código de barras legible en tamaños típicos de etiquetas. +- El método `Save` escribe un archivo **imagen de código de barras PNG** en disco, preservando toda la información vectorial como píxeles rasterizados. + +## Cambiar la altura del código de barras – personalizando el peso visual + +Las directrices postales a menudo exigen una altura de barra específica. El siguiente fragmento muestra cómo establecer una altura personalizada de 100 píxeles para el mismo código de barras Planet. + +```csharp +// 2️⃣ Apply a custom 100‑pixel bar height +planetGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Overwrite or save as a new file to keep both versions +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +**Por qué cambias la altura:** +Una barra más alta mejora la fiabilidad del escaneo en impresoras de baja resolución, mientras que una barra más corta reduce el espacio de la etiqueta. La propiedad `BarHeight.Pixels` te permite afinar este atributo sin afectar la dimensión X. + +## Generar código de barras postal – creando un ejemplo RM4SCC + +El formato RM4SCC es otro código de barras postal común utilizado en el Reino Unido. Los pasos de generación reflejan el ejemplo Planet, reforzando el patrón **barcode generator c#**. + +```csharp +// 3️⃣ Create an RM4SCC barcode generator with default height +BarcodeGenerator rm4sccGenerator = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Keep the same module width for consistency +rm4sccGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the default‑height PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +## Cambiar la altura del código de barras – variación RM4SCC + +Al igual que con el código de barras Planet, puedes ajustar la altura de la barra RM4SCC. El código a continuación establece la altura en 100 px, produciendo una segunda **imagen de código de barras PNG** para la misma cadena de datos. + +```csharp +// 4️⃣ Set a custom 100‑pixel bar height for RM4SCC +rm4sccGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Save the customized PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +## Ejemplo completo y ejecutable + +Unir todos los pasos produce un programa único y autónomo que crea cuatro archivos PNG: + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +class Program +{ + static void Main() + { + string outputFolder = @"C:\Barcodes"; + Directory.CreateDirectory(outputFolder); + + // Planet barcode – default height + var planet = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planet.Parameters.Barcode.XDimension.Pixels = 4; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // Planet barcode – custom 100‑pixel height + planet.Parameters.Barcode.BarHeight.Pixels = 100; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – default height + var rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – custom 100‑pixel height + rm4scc.Parameters.Barcode.BarHeight.Pixels = 100; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); + + Console.WriteLine("All barcode PNG files have been generated in " + + + +## ¿Qué deberías aprender a continuación? + +Los siguientes tutoriales cubren temas estrechamente relacionados que amplían las técnicas demostradas en esta guía. Cada recurso incluye ejemplos de código completos y funcionales con explicaciones paso a paso para ayudarte a dominar funciones adicionales de la API y explorar enfoques de implementación alternativos en tus propios proyectos. + +- [Crear código de barras con altura personalizada – Códigos de barras unidimensionales](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-barcode-height-adjustment/) +- [Crear código de barras PNG – Relación de aspecto DataMatrix – Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-aspect-ratio-customization/) +- [Crear imagen de código de barras C# – Ejemplo GS1 DataMatrix](/barcode/english/net/gs1-barcode-encoding/gs1-datamatrix-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/spanish/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md b/barcode/spanish/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md new file mode 100644 index 000000000..e35bf5fab --- /dev/null +++ b/barcode/spanish/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-08-15 +description: Crea un código de barras planetario en C# y aprende cómo establecer las + dimensiones del código de barras para un tamaño perfecto. Ejemplo de código paso + a paso con barras llenas y vacías. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create planet barcode +- how to set barcode dimensions +- planet barcode C# +- barcode X‑dimension +- empty barcode bars +language: es +lastmod: 2026-08-15 +og_description: Crea códigos de barras Planet en C# y aprende a establecer sus dimensiones. + Sigue esta guía para generar códigos de barras Planet llenos y vacíos al instante. +og_image_alt: Screenshot showing a Planet barcode with filled bars generated by C# + code +og_title: Crear código de barras planetario en C# – guía completa paso a paso +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Create planet barcode in C# and learn how to set barcode dimensions + for perfect sizing. Step‑by‑step code example with filled and empty bars. + headline: Create planet barcode in C# – complete programming guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.BarCode +title: Crear código de barras planetario en C# – guía completa de programación +url: /es/python-java/general/create-planet-barcode-in-c-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crear código de barras planet en C# – guía completa de programación + +Si necesitas **crear un código de barras planet** en C#, esta guía te muestra exactamente cómo hacerlo. También descubrirás **cómo establecer las dimensiones del código de barras** para que las barras se rendericen con el ancho exacto que requieres. + +Generar códigos de barras Planet es común cuando trabajas con servicios postales o sistemas logísticos. El código a continuación cubre tanto la versión predeterminada de barras rellenas como el estilo opcional de barras vacías, además de un ejemplo rápido para el formato RM4SCC. Al final de este tutorial tendrás un fragmento reutilizable que podrás insertar en cualquier proyecto .NET. + +## Prerrequisitos + +Antes de comenzar, asegúrate de tener: + +* .NET 6.0 o posterior instalado (la API también funciona con .NET Framework 4.6+) +* El paquete NuGet **Aspose.BarCode for .NET** (`Aspose.BarCode`) agregado a tu proyecto +* Una ruta de carpeta con permisos de escritura donde se guardarán los archivos PNG +* Familiaridad básica con la sintaxis de C# y Visual Studio (o cualquier IDE) + +> **Consejo profesional:** Utiliza una ruta absoluta o `Path.Combine(Environment.CurrentDirectory, "output")` para evitar problemas de permisos al guardar imágenes. + +## Paso 1 – Inicializar un generador de código de barras Planet (barras rellenas) + +El primer paso es crear una instancia de `BarcodeGenerator` para la simbología Planet. Por defecto, el generador produce barras **rellenas**. + +```csharp +// Step 1: Create a Planet barcode with the default (filled) bars +BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +El enum `EncodeTypes.Planet` indica a Aspose.BarCode que use el formato Planet, mientras que `"123456"` es la carga de datos que se codificará. + +## Paso 2 – Cómo establecer las dimensiones del código de barras para un tamaño consistente + +Para controlar el ancho de cada barra, ajusta la **X‑dimensión**. Esta es la forma principal de **establecer las dimensiones del código de barras** y garantiza que el código de barras se ajuste al tamaño de tu etiqueta. + +```csharp +// Step 2: Set the X‑dimension (width of each bar) to 4 pixels +planetFilled.Parameters.Barcode.XDimension.Pixels = 4; +``` + +La propiedad `Pixels` define el ancho de la barra en píxeles de pantalla. Los valores comunes son 2 – 5 píxeles para etiquetas de correo estándar; aumenta el valor para impresiones más grandes. + +## Paso 3 – Guardar el código de barras Planet relleno como PNG + +Ahora escribe la imagen en disco. PNG conserva bordes nítidos, lo cual es ideal para escanear. + +```csharp +// Step 3: Save the Planet barcode as a PNG image +planetFilled.Save("YOUR_DIRECTORY/PostalPlanetFilledBars.png", BarCodeImageFormat.Png); +``` + +Reemplaza `YOUR_DIRECTORY` con la ruta que preparaste anteriormente. Después de ejecutar este código verás un archivo similar a la imagen a continuación. + +![Código de barras Planet con barras rellenas](planet_filled.png "Código de barras Planet con barras rellenas – creado por código C#") + +*Alt text:* **Código de barras Planet con barras rellenas generado por código C#** (coincide con `og_image_alt`). + +## Paso 4 – Crear un código de barras Planet con barras vacías (no rellenas) + +Si tu servicio postal requiere que las barras sean **vacías**, debes alternar la bandera `FilledBars` después de inicializar el generador. + +```csharp +// Step 4: Create a Planet barcode with empty (unfilled) bars +BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +El constructor es idéntico; la diferencia está en el siguiente paso de configuración. + +## Paso 5 – Cómo establecer las dimensiones del código de barras y hacer que las barras estén vacías + +Nuevamente, establece la X‑dimensión para mantener la consistencia visual, luego desactiva las barras rellenas. + +```csharp +// Step 5: Set the X‑dimension and specify that bars should be empty +planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; +planetEmpty.Parameters.Barcode.FilledBars = false; // makes bars empty +``` + +La propiedad `FilledBars = false` es lo que realmente cambia el estilo de renderizado. Mantener la misma X‑dimensión asegura que el código de barras de barras vacías se alinee perfectamente con la versión rellena. + +## Paso 6 – Guardar el código de barras Planet vacío + +```csharp +// Step 6: Save the Planet barcode with empty bars as a PNG image +planetEmpty.Save("YOUR_DIRECTORY/PostalPlanetEmptyBars.png", BarCodeImageFormat.Png); +``` + +Ahora tendrás dos archivos PNG: uno con barras sólidas y otro con barras huecas, ambos compartiendo las mismas dimensiones. + +## Paso 7 – (Opcional) Generar un código de barras RM4SCC para comparación + +RM4SCC es otra simbología postal que utiliza el mismo estilo predeterminado de barras rellenas. Los pasos reflejan el ejemplo de Planet, demostrando que **cómo establecer las dimensiones del código de barras** funciona en varios formatos. + +```csharp +// Step 7: Create an RM4SCC barcode (filled bars are the default) +BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Step 8: Set the X‑dimension for consistency +rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + +// Step 9: Save the RM4SCC barcode as a PNG image +rm4scc.Save("YOUR_DIRECTORY/PostalRM4SCCFilledBars.png", BarCodeImageFormat.Png); +``` + +Ejecutar estos tres pasos produce `PostalRM4SCCFilledBars.png`, que puedes comparar lado a lado con los resultados de Planet. + +## Por qué la X‑dimensión es importante + +La X‑dimensión determina el **ancho imprimible mínimo** de cada barra. Si la configuras demasiado baja, el código de barras puede desenfocarse en impresoras de baja resolución, provocando fallos de escaneo. Por el contrario, una X‑dimensión demasiado grande puede exceder las dimensiones de la etiqueta y desperdiciar espacio. Al definir explícitamente **cómo establecer las dimensiones del código de barras**, obtienes un control determinista sobre el tamaño final de la imagen, lo cual es esencial para flujos de trabajo de envío automatizados. + +## Problemas comunes y cómo evitarlos + +| Problema | Causa | Solución | +|----------|-------|----------| +| El código de barras aparece estirado | X‑dimensión establecida en puntos en lugar de píxeles | Siempre usa la propiedad `Pixels` para un control perfecto de píxeles | +| Las barras vacías siguen pareciendo rellenas | `FilledBars` no se estableció en `false` después del cambio de X‑dimensión | Establece `FilledBars = false` *después* de ajustar la X‑dimensión | +| El archivo guardado está vacío | El directorio de salida no existe o carece de permisos de escritura | Asegúrate de que el directorio exista (`Directory.CreateDirectory`) y que tu aplicación se ejecute con los derechos suficientes | +| La imagen está borrosa al imprimir | PNG de baja DPI guardado desde un monitor de alta resolución | Usa `BarCodeImageFormat.Png` (sin pérdida) y considera la propiedad `Resolution` si es necesario | + +## Ejemplo completo y ejecutable + +Copia todo el bloque a continuación en un nuevo proyecto de consola (`dotnet new console`) y ejecútalo. El programa crea tres archivos PNG en la carpeta `output`. + +```csharp +using System; +using System.IO; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Ensure output folder exists + string outDir = Path.Combine(Environment.CurrentDirectory, "output"); + Directory.CreateDirectory(outDir); + + // ---------- Planet barcode – filled bars ---------- + BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetFilled.Parameters.Barcode.XDimension.Pixels = 4; // set dimensions + planetFilled.Save(Path.Combine(outDir, "PostalPlanetFilledBars.png"), BarCodeImageFormat.Png); + + // ---------- Planet barcode – empty bars ---------- + BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; // same dimensions + planetEmpty.Parameters.Barcode.FilledBars = false; // make bars empty + planetEmpty.Save(Path.Combine(outDir, "PostalPlanetEmptyBars.png"), BarCodeImageFormat.Png); + + // ---------- RM4SCC barcode (filled bars) ---------- + BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; // consistent size + rm4scc.Save(Path.Combine(outDir, "PostalRM4SCCFilledBars.png"), BarCodeImageFormat.Png); + + Console.WriteLine($"Barcodes generated in: {outDir}"); + } +} +``` + +**Salida esperada:** tres archivos PNG—`PostalPlanetFilledBars.png`, `PostalPlanetEmptyBars.png` y `PostalRM4SCCFilledBars.png`—cada uno con barras de 4 píxeles de ancho, listos para imprimir o procesar más. + +## Conclusión + +Ahora sabes cómo **crear un código de barras planet** en C# y, de manera precisa, **cómo establecer las dimensiones del código de barras** para estilos de barras rellenas y vacías. El mismo patrón se aplica a otras simbologías como RM4SCC, brindándote una base flexible para cualquier requerimiento de códigos de barras postales. + +A continuación, podrías explorar: + +* Añadir texto legible por humanos debajo del código de barras (`BarcodeGenerator.Parameters.Barcode.CodeText`) +* Cambiar los colores de las barras con `Parameters.Barcode.BarColor` +* Generar códigos de barras en formatos vectoriales (SVG, EPS) para impresión escalable + +Siéntete libre de experimentar con diferentes valores de X‑dimensión, cadenas de datos y formatos de salida para adaptarlos a tu flujo de trabajo específico. ¡Feliz codificación! + +## ¿Qué deberías aprender a continuación? + +Los siguientes tutoriales cubren temas estrechamente relacionados que se basan en las técnicas demostradas en esta guía. Cada recurso incluye ejemplos de código completos y funcionales con explicaciones paso a paso para ayudarte a dominar funciones adicionales de la API y explorar enfoques de implementación alternativos en tus propios proyectos. + +- [Cómo crear zona silenciosa de código de barras para Code 16K usando Aspose.BarCode para .NET](/barcode/english/net/code-16k-encoding/code-16k-quiet-zone-settings/) +- [Cómo crear zona silenciosa de código de barras para ITF-14 usando Aspose.BarCode para .NET](/barcode/english/net/itf-14-barcode-customization/itf-14-barcode-quiet-zone-configuration/) +- [Cómo crear código de barras Aztec con corrección de errores en .NET](/barcode/english/net/aztec-barcode-encoding/aztec-error-level-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/spanish/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md b/barcode/spanish/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md new file mode 100644 index 000000000..cdd4a87da --- /dev/null +++ b/barcode/spanish/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md @@ -0,0 +1,239 @@ +--- +category: general +date: 2026-08-15 +description: Generación ampliada de códigos de barras apilados Databar en C#. Aprende + a generar la imagen del código de barras, y a establecer columnas y filas para los + diseños DataBar. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- databar expanded stacked +- generate barcode image +- how to generate barcode +- how to set columns +- how to set rows +language: es +lastmod: 2026-08-15 +og_description: Generación ampliada de códigos de barras apilados con Databar en C#. + Sigue esta guía paso a paso para generar imágenes de códigos de barras, establecer + columnas y filas de manera eficiente. +og_image_alt: Screenshot of a databar expanded stacked barcode generated with C# +og_title: Databar expandido apilado – generar imagen de código de barras en C# +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + headline: 'Databar expanded stacked: generate barcode image in C#' + type: TechArticle +- description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + name: 'Databar expanded stacked: generate barcode image in C#' + steps: + - name: 1. Install the Aspose.BarCode library + text: 'The code uses the **Aspose.BarCode for .NET** library, which provides the + `BarcodeGenerator` class. Install the NuGet package with the following command:' + - name: 2. Create a barcode generator for **databar expanded stacked** + text: The generator is the entry point for all barcode operations. You must specify + the symbology (`EncodeTypes.DatabarExpandedStacked`) and the text to encode. + - name: 3. How to set columns for DataBar + text: The `Columns` property controls how many vertical modules appear in the + stacked barcode. Valid values are 2, 3, or 4. Setting columns influences the + barcode’s width and the amount of data it can store. + - name: 4. Save the 4‑column barcode image + text: Saving the image produces a file that you can embed in reports, invoices, + or mobile apps. The `Save` method accepts a file path and an image format. + - name: 5. How to set rows for DataBar + text: Rows add a second dimension to the stacked layout, allowing more data to + be encoded without widening the barcode. The `Rows` property defaults to 1; + you can increase it up to 3 for the expanded stacked variant. + - name: 6. Save the 3‑row barcode image + text: '```csharp // Step 5: Save the 3‑row barcode image barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", + BarCodeImageFormat.Png); ```' + - name: 7. Complete C# example to generate barcode image + text: 'Putting all steps together yields a self‑contained program you can copy + into a console application:' + type: HowTo +tags: +- barcode +- C# +- Aspose.BarCode +title: 'Databar expandido apilado: generar imagen de código de barras en C#' +url: /es/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Databar expanded stacked: generar imagen de código de barras en C# + +Si necesita generar una imagen de código de barras **databar expanded stacked** en C#, esta guía le muestra exactamente **cómo generar códigos de barras** con diseños personalizados de columnas y filas. Verá cómo establecer columnas, cómo establecer filas y cómo guardar las imágenes resultantes sin salir del IDE. + +El tutorial cubre: + +* Crear un generador de códigos de barras para la simbología **databar expanded stacked**. +* Configurar un diseño de 4 columnas y un diseño de 3 filas. +* Guardar cada configuración como un archivo PNG. +* Consejos para manejar casos límite como recuentos de columnas no válidos. + +No se requiere documentación externa; el ejemplo completo y ejecutable está incluido. + +![Databar expanded stacked barcode example](YOUR_DIRECTORY/DatabarCols4.png){: .center alt="código de barras databar expanded stacked generado con C#" } + +## Pasos para generar códigos de barras Databar expanded stacked + +### 1. Instalar la biblioteca Aspose.BarCode + +El código usa la biblioteca **Aspose.BarCode for .NET**, que proporciona la clase `BarcodeGenerator`. Instale el paquete NuGet con el siguiente comando: + +```bash +dotnet add package Aspose.BarCode +``` + +Después de instalar el paquete, agregue el espacio de nombres requerido al inicio de su archivo: + +```csharp +using Aspose.BarCode.Generation; +``` + +### 2. Crear un generador de códigos de barras para **databar expanded stacked** + +El generador es el punto de entrada para todas las operaciones de códigos de barras. Debe especificar la simbología (`EncodeTypes.DatabarExpandedStacked`) y el texto a codificar. + +```csharp +// Step 1: Create a barcode generator for Databar Expanded Stacked +BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); +``` + +*Por qué es importante:* El enumerado `EncodeTypes` indica a la biblioteca qué formato de código de barras producir. Usar **databar expanded stacked** garantiza que la imagen resultante siga la especificación GS1 DataBar para diseños apilados. + +### 3. Cómo establecer columnas para DataBar + +La propiedad `Columns` controla cuántos módulos verticales aparecen en el código de barras apilado. Los valores válidos son 2, 3 o 4. Establecer columnas influye en el ancho del código de barras y en la cantidad de datos que puede almacenar. + +```csharp +// Step 2: Configure a 4‑column layout +barcode.Parameters.Barcode.DataBar.Columns = 4; +``` + +**Consejo:** Si intenta asignar un valor fuera del rango permitido, la biblioteca lanza una `ArgumentException`. Siempre valide la entrada cuando exponga la selección de columnas a los usuarios. + +### 4. Guardar la imagen del código de barras de 4 columnas + +Guardar la imagen produce un archivo que puede incrustar en informes, facturas o aplicaciones móviles. El método `Save` acepta una ruta de archivo y un formato de imagen. + +```csharp +// Step 3: Save the 4‑column barcode image +barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); +``` + +Cuando el archivo se escribe, puede abrirlo con cualquier visor de imágenes para confirmar que el patrón **databar expanded stacked** aparece correctamente. + +### 5. Cómo establecer filas para DataBar + +Las filas añaden una segunda dimensión al diseño apilado, permitiendo codificar más datos sin ensanchar el código de barras. La propiedad `Rows` tiene un valor predeterminado de 1; puede aumentarla hasta 3 para la variante expanded stacked. + +```csharp +// Step 4: Switch to a 3‑row layout (columns remain unchanged) +barcode.Parameters.Barcode.DataBar.Rows = 3; +``` + +**Por qué importan las filas:** Incrementar las filas reduce el ancho total mientras se preserva la capacidad de datos, lo que es útil para etiquetas estrechas o espacio en pantallas móviles. + +### 6. Guardar la imagen del código de barras de 3 filas + +```csharp +// Step 5: Save the 3‑row barcode image +barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); +``` + +Ahora tiene dos archivos PNG: uno con un diseño de 4 columnas y otro con un diseño de 3 filas, ambos usando la simbología **databar expanded stacked**. + +### 7. Ejemplo completo en C# para generar imagen de código de barras + +Unir todos los pasos produce un programa autónomo que puede copiar en una aplicación de consola: + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace DatabarExpandedStackedDemo +{ + class Program + { + static void Main() + { + // Create the generator for Databar Expanded Stacked + BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); + + // Configure a 4‑column layout and save + barcode.Parameters.Barcode.DataBar.Columns = 4; + barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); + Console.WriteLine("4‑column barcode saved."); + + // Change to a 3‑row layout (columns stay at 4) and save + barcode.Parameters.Barcode.DataBar.Rows = 3; + barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); + Console.WriteLine("3‑row barcode saved."); + } + } +} +``` + +**Salida esperada** + +Al ejecutar el programa se imprime: + +``` +4‑column barcode saved. +3‑row barcode saved. +``` + +y crea dos archivos PNG en `YOUR_DIRECTORY`. Abra los archivos para verificar que cada imagen muestra un código de barras **databar expanded stacked** válido. + +## Errores comunes y consejos prácticos + +* **Existencia del directorio** – `Save` no crea carpetas faltantes. Asegúrese de que `YOUR_DIRECTORY` exista o use `Directory.CreateDirectory` antes de guardar. +* **Límites de columnas** – Valores distintos de 2, 3 o 4 provocan una excepción. Proteja contra errores de entrada del usuario con una simple verificación de rango: + + ```csharp + int columns = 4; + if (columns < 2 || columns > 4) throw new ArgumentOutOfRangeException(nameof(columns)); + barcode.Parameters.Barcode.DataBar.Columns = columns; + ``` + +* **Límites de filas** – La variante expanded stacked admite hasta 3 filas. Establecer `Rows` a 0 o a un valor mayor que 3 también genera una excepción. +* **Formato de imagen** – `BarCodeImageFormat.Png` ofrece calidad sin pérdidas, ideal para impresión. Use `Jpeg` solo cuando el tamaño del archivo sea una preocupación principal. + +## Próximos pasos + +Ahora que sabe **cómo generar códigos de barras** con configuraciones personalizadas de columnas y filas, puede: + +* Integrar el generador en una API web para servir imágenes de códigos de barras bajo demanda. +* Combinar el código de barras con bibliotecas de generación de PDF para incrustarlo en facturas. +* Experimentar con otras variantes de DataBar (`DatabarExpanded`, `DatabarLimited`) usando el mismo objeto `Parameters.Barcode.DataBar`. + +Para una personalización más profunda —como cambiar el color de las barras, añadir texto legible por humanos o aplicar superposiciones de códigos QR— consulte la documentación de Aspose.BarCode sobre las propiedades de `BarcodeGenerator`. + +--- + +Al seguir esta guía ha dominado el flujo de trabajo **databar expanded stacked**, aprendido **cómo establecer columnas**, **cómo establecer filas**, y producido dos imágenes de código de barras distintas listas para uso en producción. ¡Feliz codificación! + +## ¿Qué deberías aprender a continuación? + +Los siguientes tutoriales cubren temas estrechamente relacionados que amplían las técnicas demostradas en esta guía. Cada recurso incluye ejemplos de código completos y funcionales con explicaciones paso a paso para ayudarle a dominar características adicionales de la API y explorar enfoques de implementación alternativos en sus propios proyectos. + +- [Generate barcode image – GS1 Coupon UPC-A Databar](/barcode/english/net/gs1-barcode-encoding/gs1-coupon-upc-a-databar-configuration/) +- [Create DotCode barcode image – rows & columns (Aspose.BarCode)](/barcode/english/net/dotcode-barcode-configuration/dotcode-rows-columns-configuration/) +- [How to Generate Barcode - One-Dimensional Barcode Types](/barcode/english/net/one-dimensional-barcode-types/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/spanish/python-java/general/how-to-set-barcode-complete-c-guide/_index.md b/barcode/spanish/python-java/general/how-to-set-barcode-complete-c-guide/_index.md new file mode 100644 index 000000000..5050edc6c --- /dev/null +++ b/barcode/spanish/python-java/general/how-to-set-barcode-complete-c-guide/_index.md @@ -0,0 +1,236 @@ +--- +category: general +date: 2026-08-15 +description: Cómo establecer los parámetros del código de barras en C# y generar imágenes + de códigos de barras. Aprende paso a paso a crear códigos de barras Databar y guardar + archivos PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to set barcode +- how to generate barcode +- create databar barcode +- generate barcode image c# +language: es +lastmod: 2026-08-15 +og_description: Cómo configurar un código de barras en C# con Aspose.Barcode y luego + generar una imagen de código de barras en C#. Sigue esta guía para crear un código + de barras Databar y guardar archivos PNG. +og_image_alt: Screenshot of a Databar barcode saved as PNG using C# code +og_title: Cómo establecer el código de barras en C# – guía paso a paso +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: How to set barcode parameters in C# and generate barcode images. Learn + step‑by‑step to create Databar barcode and save PNG files. + headline: How to set barcode – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.Barcode +title: Cómo configurar el código de barras – guía completa de C# +url: /es/python-java/general/how-to-set-barcode-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cómo establecer códigos de barras – guía completa en C# + +Si buscas **cómo establecer códigos de barras** en un proyecto .NET, este tutorial muestra los pasos exactos que necesitas. Aprenderás **cómo generar códigos de barras** en imágenes, crear un código de barras Databar y controlar la altura de las barras píxel a píxel, todo con código C# limpio y listo para producción. + +En esta guía tú: + +* Instalarás el paquete NuGet necesario. +* Crearás un código de barras Databar Omnidireccional (la parte de “crear código de barras Databar”). +* Ajustarás la X‑dimensión y la altura de la barra para demostrar **cómo establecer códigos de barras** en cuanto a dimensiones. +* Guardarás el resultado como archivos PNG, cubriendo el escenario **generar imagen de código de barras C#**. + +El código funciona con la última versión de Aspose.Barcode para .NET (v 24.12 al momento de escribir) y se ejecuta en .NET 6 o superior. + +--- + +## Requisitos previos + +Antes de comenzar, asegúrate de tener: + +* .NET 6 SDK (o cualquier versión posterior). +* Un IDE como Visual Studio 2022 o VS Code. +* Acceso a Internet para descargar el paquete NuGet Aspose.Barcode. + +No se requieren bibliotecas de terceros adicionales. + +--- + +## Paso 1: Instalar Aspose.Barcode para .NET + +La forma más fiable de **generar códigos de barras** en C# es usar Aspose.Barcode. Abre una terminal en la carpeta de tu proyecto y ejecuta: + +```bash +dotnet add package Aspose.BarCode +``` + +El comando agrega la última versión estable a tu archivo de proyecto, asegurando que tengas la clase `BarcodeGenerator` y la enumeración `EncodeTypes`. + +*Consejo profesional:* Mantén el paquete actualizado (`dotnet list package --outdated`) para beneficiarte de correcciones de errores y nuevas simbologías de códigos de barras. + +--- + +## Paso 2: Crear un código de barras Databar (crear código de barras Databar) + +Databar Omnidireccional es ideal para retail y logística porque puede codificar un valor GTIN‑14 más datos adicionales. El siguiente código crea el objeto del código de barras: + +```csharp +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +// Step 2: Initialize the generator for a Databar Omnidirectional barcode +BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); +``` + +*Por qué es importante:* El enum `EncodeTypes.DatabarOmniDirectional` indica a la biblioteca que use la simbología Databar, mientras que la cadena `"(01)12345678901231"` sigue el formato de Identificador de Aplicación GS1 para un GTIN de 14 dígitos. + +--- + +## Paso 3: Definir parámetros comunes – X‑dimensión y altura base + +La mayoría de los escáneres de códigos de barras esperan una X‑dimensión mínima (el ancho de la barra más estrecha). Configurarla a 2 píxeles produce una imagen compacta pero legible. + +```csharp +// Step 3: Set a 2‑pixel X‑dimension (common for most scanners) +generator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +Más adelante podrás ajustar la altura de la barra sin volver a crear el generador; este es el núcleo de **cómo establecer códigos de barras** después de la instanciación. + +--- + +## Paso 4: Establecer la primera altura de barra y guardar la imagen (generar imagen de código de barras C#) + +Ahora demostramos la primera parte de **cómo establecer códigos de barras** en cuanto a altura. La altura de la barra controla la longitud visual de cada barra; un valor de 30 píxeles genera un código de barras corto, mientras que 60 píxeles crea una versión más alta. + +```csharp +// Step 4a: 30‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 30; + +// Save the first PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); +``` + +Después de la ejecución, `DatabarBarHeight30Pixels.png` contiene un código de barras Databar con una barra de 30 píxeles de altura. Abre el archivo en cualquier visor de imágenes para verificar el resultado. + +--- + +## Paso 5: Cambiar la altura de la barra y guardar una segunda imagen + +Para ilustrar que **cómo establecer códigos de barras** puede modificarse sobre la marcha, cambiamos la altura de la barra a 60 píxeles y escribimos un segundo archivo. + +```csharp +// Step 5a: 60‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 60; + +// Save the second PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); +``` + +Ahora tienes dos archivos PNG que muestran los mismos datos Databar pero con diferentes alturas visuales. Esto es útil cuando necesitas un código de barras más grande para etiquetas impresas o uno más pequeño para visualización en pantalla. + +--- + +## Paso 6: Ejemplo completo y ejecutable + +Reuniendo todo, aquí tienes un programa de consola autocontenido que realiza todos los pasos descritos arriba. Copia el código en un nuevo archivo `Program.cs`, reemplaza `YOUR_DIRECTORY` por una ruta de carpeta real y ejecútalo. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Initialize the generator for a Databar Omnidirectional barcode + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); + + // Common parameters + generator.Parameters.Barcode.XDimension.Pixels = 2; // 2‑pixel narrow bar + + // First image: 30‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 30; + generator.Save(@"C:\Barcodes\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 30‑pixel barcode."); + + // Second image: 60‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 60; + generator.Save(@"C:\Barcodes\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 60‑pixel barcode."); + + // Dispose the generator to free native resources + generator.Dispose(); + } +} +``` + +**Salida esperada** + +Al ejecutar el programa, la consola muestra: + +``` +Saved 30-pixel barcode. +Saved 60-pixel barcode. +``` + +Y la carpeta `C:\Barcodes` (o la ruta que hayas proporcionado) contiene los dos archivos PNG. Ambas imágenes presentan un código de barras Databar Omnidireccional válido que puede ser escaneado por lectores GS1 estándar. + +--- + +## Preguntas frecuentes + +**¿Esto funciona con otros formatos de imagen?** +Sí. Reemplaza `BarCodeImageFormat.Png` por `Jpeg`, `Bmp`, `Gif` o `Tiff` para generar el tipo de archivo correspondiente. + +**¿Puedo cambiar el color de primer plano?** +Establece `generator.Parameters.Barcode.ForeColor` a cualquier valor `System.Drawing.Color`, por ejemplo, `Color.Blue`. + +**¿Qué pasa si necesito una simbología diferente?** +Pasa un valor distinto de `EncodeTypes` al constructor, como `EncodeTypes.Code128` para un código de barras lineal o `EncodeTypes.QR` para un código matricial. + +**¿Hay forma de incrustar el código de barras en un PDF?** +Aspose.Barcode proporciona una clase `PdfGenerator`. Después de generar la imagen, puedes añadirla a una página PDF usando Aspose.PDF. + +--- + +## Mejores prácticas para la generación de códigos de barras en C# + +* **Reutiliza la instancia `BarcodeGenerator`** cuando solo necesites ajustar dimensiones; esto evita asignaciones de memoria innecesarias. +* **Descarta el generador** (`generator.Dispose()`) después de terminar para liberar recursos nativos de inmediato. +* **Valida los datos de entrada** (p. ej., longitud del GTIN) antes de crear el código de barras para prevenir excepciones en tiempo de ejecución. +* **Prueba con un escáner físico** después de cambiar la X‑dimensión o la altura de la barra; valores extremos pueden afectar la legibilidad. +* **Mantén la carpeta de salida con permisos de escritura** para la cuenta que ejecuta el proceso; de lo contrario `Save` lanzará una `UnauthorizedAccessException`. + +--- + +## Conclusión + +Ahora sabes **cómo establecer códigos de barras** con propiedades como X‑dimensión y altura de barra, **cómo generar imágenes de códigos de barras** en C#, y los pasos exactos para **crear códigos de barras Databar** con Aspose.Barcode. Siguiendo el ejemplo completo, puedes generar múltiples archivos PNG con diferentes características visuales, cumpliendo el requisito **generar imagen de código de barras C#** para cualquier aplicación .NET. + +A continuación, explora temas relacionados como **cómo generar códigos de barras** en lote, incrustar códigos de barras en PDFs o cambiar a otras simbologías como QR o Code 128. Experimenta con los parámetros mostrados aquí para afinar la apariencia del código de barras según tu entorno de escaneo específico. ¡Feliz codificación! + +## ¿Qué deberías aprender a continuación? + +Los siguientes tutoriales cubren temas estrechamente relacionados que amplían las técnicas demostradas en esta guía. Cada recurso incluye ejemplos de código completos y explicaciones paso a paso para ayudarte a dominar funciones adicionales de la API y explorar enfoques de implementación alternativos en tus propios proyectos. + +- [Cómo generar códigos de barras DataMatrix (ECC 200) con Aspose.BarCode para .NET](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-ecc-200-configuration/) +- [Cómo generar código de barras Aztec con relación de aspecto personalizada usando Aspose.BarCode para .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [Cómo generar código de barras – Configuración Code 39 con Aspose.BarCode](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-code-39-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/swedish/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md b/barcode/swedish/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md new file mode 100644 index 000000000..596db9486 --- /dev/null +++ b/barcode/swedish/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md @@ -0,0 +1,184 @@ +--- +category: general +date: 2026-08-15 +description: Streckkodbild PNG i C# – lär dig hur du genererar poststreckkoder, skapar + en Planet‑streckkod och ändrar streckkodens höjd med en enkel generator. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- barcode image png +- barcode generator c# +- generate postal barcode +- create planet barcode +- change barcode height +language: sv +lastmod: 2026-08-15 +og_description: Barcode image PNG i C#‑handledning visar hur man genererar poststreckkoder, + skapar en Planet‑streckkod och ändrar streckkodens höjd med BarcodeGenerator API. +og_image_alt: Screenshot of generated PNG barcode with custom height using C# BarcodeGenerator +og_title: Streckkodsbild PNG i C# – generera och justera streckkoder +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Barcode image PNG in C# – learn how to generate postal barcodes, create + a Planet barcode, and change barcode height with a simple generator. + headline: Barcode image PNG in C# generate barcodes, change height + type: TechArticle +tags: +- barcode +- C# +- PNG +- postal +- generator +title: Barcode‑bild PNG i C# generera streckkoder, ändra höjd +url: /sv/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Barcode‑bild PNG i C# – generera streckkoder, ändra höjd + +Om du behöver en **barcode image PNG** i C#, guidar den här handledningen dig genom hela processen. Du kommer att lära dig hur du genererar poststreckkoder, skapar en Planet‑streckkod och ändrar streckkodens höjd utan att lämna din IDE. + +Att generera pålitliga PNG‑streckkoder är ett vanligt krav för fraktsedlar, lagersystem och automatiserade postlösningar. I slutet av den här handledningen har du ett återanvändbart kodsnutt som producerar högkvalitativa PNG‑filer för både Planet‑ och RM4SCC‑format, och du förstår hur du justerar stapelhöjden för att uppfylla postens specifikationer. + +## Vad du behöver + +- .NET 6+ eller .NET Framework 4.7.2 (BarcodeGenerator‑API:n fungerar med alla moderna .NET‑runtime‑miljöer) +- En referens till NuGet‑paketet **Aspose.BarCode for .NET** (eller något kompatibelt bibliotek som tillhandahåller `BarcodeGenerator`, `EncodeTypes` och `BarCodeImageFormat`) +- Grundläggande kunskap om C#‑syntax och fil‑I/O + +Inga extra verktyg krävs; koden körs i Visual Studio, Rider eller `dotnet`‑CLI:n. + +## Barcode image PNG – grundläggande generering + +Det första steget är att skapa en **barcode image PNG** med standarddimensioner. Detta etablerar grundfilen som du senare kan anpassa. + +```csharp +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +// Define the output folder (replace with your own path) +string outputFolder = @"C:\Barcodes"; + +// Ensure the folder exists +Directory.CreateDirectory(outputFolder); + +// 1️⃣ Create a Planet barcode generator with default height +BarcodeGenerator planetGenerator = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + +// Set the module width (X‑dimension) to 4 pixels – this defines the thin bar size +planetGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the image as PNG; this is the first **barcode image PNG** you’ll produce +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +**Varför detta fungerar:** +- `EncodeTypes.Planet` talar om för generatorn att använda Planet‑symbologi, vilket krävs av många posttjänster. +- `XDimension.Pixels` styr bredden på den minsta stapeln; ett värde på 4 px ger en läsbar streckkod vid vanliga etikettstorlekar. +- `Save`‑metoden skriver en **barcode image PNG**‑fil till disk och bevarar all vektorinformation som raster‑pixlar. + +## Ändra streckkodens höjd – anpassa den visuella vikten + +Postens riktlinjer kräver ofta en specifik stapelhöjd. Följande kodsnutt visar hur du anger en anpassad höjd på 100 pixlar för samma Planet‑streckkod. + +```csharp +// 2️⃣ Apply a custom 100‑pixel bar height +planetGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Overwrite or save as a new file to keep both versions +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +**Varför du ändrar höjden:** +En högre stapel förbättrar skanningspålitligheten på lågupplösta skrivare, medan en kortare stapel minskar etikettutrymmet. `BarHeight.Pixels`‑egenskapen låter dig finjustera detta attribut utan att påverka X‑dimensionen. + +## Generera poststreckkod – skapa ett RM4SCC‑exempel + +RM4SCC‑formatet är en annan vanlig poststreckkod som används i Storbritannien. Genereringsstegen speglar Planet‑exemplet och förstärker **barcode generator c#**‑mönstret. + +```csharp +// 3️⃣ Create an RM4SCC barcode generator with default height +BarcodeGenerator rm4sccGenerator = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Keep the same module width for consistency +rm4sccGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the default‑height PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +## Ändra streckkodens höjd – RM4SCC‑variation + +Liksom Planet‑streckkoden kan du justera RM4SCC‑stapelhöjden. Koden nedan sätter höjden till 100 px och producerar en andra **barcode image PNG** för samma datasträng. + +```csharp +// 4️⃣ Set a custom 100‑pixel bar height for RM4SCC +rm4sccGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Save the customized PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +## Fullt, körbart exempel + +Genom att kombinera alla steg får du ett enda, självständigt program som skapar fyra PNG‑filer: + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +class Program +{ + static void Main() + { + string outputFolder = @"C:\Barcodes"; + Directory.CreateDirectory(outputFolder); + + // Planet barcode – default height + var planet = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planet.Parameters.Barcode.XDimension.Pixels = 4; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // Planet barcode – custom 100‑pixel height + planet.Parameters.Barcode.BarHeight.Pixels = 100; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – default height + var rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – custom 100‑pixel height + rm4scc.Parameters.Barcode.BarHeight.Pixels = 100; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); + + Console.WriteLine("All barcode PNG files have been generated in " + + + +## Vad bör du lära dig härnäst? + +Följande handledningar täcker närbesläktade ämnen som bygger på teknikerna som demonstrerats i den här guiden. Varje resurs innehåller kompletta fungerande kodexempel med steg‑för‑steg‑förklaringar för att hjälpa dig bemästra ytterligare API‑funktioner och utforska alternativa implementeringsmetoder i dina egna projekt. + +- [Skapa streckkod med anpassad höjd – En-dimensionella streckkoder](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-barcode-height-adjustment/) +- [Skapa streckkod PNG – DataMatrix bildförhållande – Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-aspect-ratio-customization/) +- [Skapa streckkod bild C# – GS1 DataMatrix‑exempel](/barcode/english/net/gs1-barcode-encoding/gs1-datamatrix-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/swedish/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md b/barcode/swedish/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md new file mode 100644 index 000000000..3699412a3 --- /dev/null +++ b/barcode/swedish/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-08-15 +description: Skapa planetstreckkod i C# och lär dig hur du ställer in streckkodens + dimensioner för perfekt storlek. Steg‑för‑steg‑kodexempel med fyllda och tomma staplar. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create planet barcode +- how to set barcode dimensions +- planet barcode C# +- barcode X‑dimension +- empty barcode bars +language: sv +lastmod: 2026-08-15 +og_description: Skapa Planet-streckkod i C# och lär dig hur du anger streckkodens + dimensioner. Följ den här guiden för att omedelbart generera både fyllda och tomma + Planet-streckkoder. +og_image_alt: Screenshot showing a Planet barcode with filled bars generated by C# + code +og_title: Skapa planetstreckkod i C# – fullständig steg‑för‑steg‑guide +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Create planet barcode in C# and learn how to set barcode dimensions + for perfect sizing. Step‑by‑step code example with filled and empty bars. + headline: Create planet barcode in C# – complete programming guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.BarCode +title: Skapa planetstreckkod i C# – komplett programmeringsguide +url: /sv/python-java/general/create-planet-barcode-in-c-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Skapa planet-streckkod i C# – komplett programmeringsguide + +Om du behöver **skapa planet-streckkod** i C#, visar den här guiden exakt hur du gör det. Du kommer också att upptäcka **hur du ställer in streckkodsdimensioner** så att staplarna renderas med exakt den bredd du kräver. + +Att generera Planet‑streckkoder är vanligt när du arbetar med posttjänster eller logistiksystem. Koden nedan täcker både standardversionen med fyllda staplar och den valfria stilen med tomma staplar, samt ett snabbt exempel för RM4SCC‑formatet. I slutet av den här handledningen har du ett återanvändbart kodsnutt som du kan lägga in i vilket .NET‑projekt som helst. + +## Förutsättningar + +Innan du börjar, se till att du har: + +* .NET 6.0 eller senare installerat (API:et fungerar även med .NET Framework 4.6+). +* NuGet‑paketet **Aspose.BarCode for .NET** (`Aspose.BarCode`) har lagts till i ditt projekt. +* En skrivbar mappväg där PNG‑filerna ska sparas. +* Grundläggande kunskap om C#‑syntax och Visual Studio (eller någon IDE). + +> **Proffstips:** Använd en absolut sökväg eller `Path.Combine(Environment.CurrentDirectory, "output")` för att undvika behörighetsproblem när du sparar bilder. + +## Steg 1 – Initiera en Planet‑streckkodsgenerator (fyllda staplar) + +Det första steget är att skapa en `BarcodeGenerator`‑instans för Planet‑symbologi. Som standard producerar generatorn **fyllda** staplar. + +```csharp +// Step 1: Create a Planet barcode with the default (filled) bars +BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +`EncodeTypes.Planet`‑enumerationen talar om för Aspose.BarCode att använda Planet‑formatet, medan `"123456"` är data‑payloaden som ska kodas. + +## Steg 2 – Hur du ställer in streckkodsdimensioner för konsekvent storlek + +För att kontrollera bredden på varje stapel, justera **X‑dimensionen**. Detta är det primära sättet att **ställa in streckkodsdimensioner** och säkerställer att streckkoden passar din etikettstorlek. + +```csharp +// Step 2: Set the X‑dimension (width of each bar) to 4 pixels +planetFilled.Parameters.Barcode.XDimension.Pixels = 4; +``` + +`Pixels`‑egenskapen definierar stapelbredden i skärm‑pixlar. Vanliga värden är 2 – 5 pixlar för standardpostetiketter; öka värdet för större utskrifter. + +## Steg 3 – Spara den fyllda Planet‑streckkoden som PNG + +Skriv nu bilden till disk. PNG bevarar skarpa kanter, vilket är idealiskt för skanning. + +```csharp +// Step 3: Save the Planet barcode as a PNG image +planetFilled.Save("YOUR_DIRECTORY/PostalPlanetFilledBars.png", BarCodeImageFormat.Png); +``` + +Byt ut `YOUR_DIRECTORY` mot den sökväg du förberedde tidigare. Efter att ha kört koden kommer du att se en fil som liknar bilden nedan. + +![Planet-streckkod med fyllda staplar](planet_filled.png "Planet-streckkod med fyllda staplar – skapad av C#‑kod") + +*Alt‑text:* **Planet‑streckkod med fyllda staplar genererad av C#‑kod** (matches `og_image_alt`). + +## Steg 4 – Skapa en Planet‑streckkod med tomma (ofyllda) staplar + +Om din posttjänst kräver att staplarna är **tomma**, måste du växla `FilledBars`‑flaggan efter att generatorn har initierats. + +```csharp +// Step 4: Create a Planet barcode with empty (unfilled) bars +BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +Konstruktorn är identisk; skillnaden ligger i nästa konfigurationssteg. + +## Steg 5 – Hur du ställer in streckkodsdimensioner och gör staplarna tomma + +Återigen, sätt X‑dimensionen för visuell konsistens, och inaktivera sedan fyllda staplar. + +```csharp +// Step 5: Set the X‑dimension and specify that bars should be empty +planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; +planetEmpty.Parameters.Barcode.FilledBars = false; // makes bars empty +``` + +`FilledBars = false`‑egenskapen är det som faktiskt ändrar renderingsstilen. Att behålla samma X‑dimension säkerställer att den tomma‑stapelsstreckkoden alignerar perfekt med den fyllda versionen. + +## Steg 6 – Spara den tomma Planet‑streckkoden + +```csharp +// Step 6: Save the Planet barcode with empty bars as a PNG image +planetEmpty.Save("YOUR_DIRECTORY/PostalPlanetEmptyBars.png", BarCodeImageFormat.Png); +``` + +Du har nu två PNG‑filer: en med solida staplar och en med ihåliga staplar, båda med samma dimensioner. + +## Steg 7 – (Valfritt) Generera en RM4SCC‑streckkod för jämförelse + +RM4SCC är en annan post‑symbologi som använder samma standardstil med fyllda staplar. Stegen speglar Planet‑exemplet och visar att **hur du ställer in streckkodsdimensioner** fungerar över format. + +```csharp +// Step 7: Create an RM4SCC barcode (filled bars are the default) +BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Step 8: Set the X‑dimension for consistency +rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + +// Step 9: Save the RM4SCC barcode as a PNG image +rm4scc.Save("YOUR_DIRECTORY/PostalRM4SCCFilledBars.png", BarCodeImageFormat.Png); +``` + +När du kör dessa tre steg skapas `PostalRM4SCCFilledBars.png`, som du kan jämföra sida‑vid‑sida med Planet‑resultaten. + +## Varför X‑dimensionen är viktig + +X‑dimensionen bestämmer den **minsta utskrivbara bredden** för varje stapel. Om du sätter den för lågt kan streckkoden bli suddig på lågupplösta skrivare, vilket leder till skanningsfel. Omvänt kan en för stor X‑dimension överskrida etikettens mått och slösa utrymme. Genom att explicit **ställa in streckkodsdimensioner** får du deterministisk kontroll över den slutliga bildstorleken, vilket är avgörande för automatiserade postarbetsflöden. + +## Vanliga fallgropar och hur du undviker dem + +| Problem | Orsak | Lösning | +|-------|-------|-----| +| Streckkoden ser utdragen ut | X‑dimension satt i punkter istället för pixlar | Använd alltid `Pixels`‑egenskapen för pixel‑perfekt kontroll | +| Tomma staplar ser fortfarande fyllda ut | `FilledBars` är inte satt till `false` efter X‑dimension‑ändring | Sätt `FilledBars = false` *efter* att ha justerat X‑dimensionen | +| Sparad fil är tom | Utdatamappen finns inte eller saknar skrivbehörighet | Säkerställ att mappen finns (`Directory.CreateDirectory`) och att ditt program körs med tillräckliga rättigheter | +| Bilden är suddig vid utskrift | Låg DPI PNG sparad från en högupplöst skärm | Använd `BarCodeImageFormat.Png` (förlustfri) och överväg `Resolution`‑egenskapen om behövs | + +## Fullt, körbart exempel + +Kopiera hela blocket nedan till ett nytt konsolprojekt (`dotnet new console`) och kör det. Programmet skapar tre PNG‑filer i `output`‑mappen. + +```csharp +using System; +using System.IO; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Ensure output folder exists + string outDir = Path.Combine(Environment.CurrentDirectory, "output"); + Directory.CreateDirectory(outDir); + + // ---------- Planet barcode – filled bars ---------- + BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetFilled.Parameters.Barcode.XDimension.Pixels = 4; // set dimensions + planetFilled.Save(Path.Combine(outDir, "PostalPlanetFilledBars.png"), BarCodeImageFormat.Png); + + // ---------- Planet barcode – empty bars ---------- + BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; // same dimensions + planetEmpty.Parameters.Barcode.FilledBars = false; // make bars empty + planetEmpty.Save(Path.Combine(outDir, "PostalPlanetEmptyBars.png"), BarCodeImageFormat.Png); + + // ---------- RM4SCC barcode (filled bars) ---------- + BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; // consistent size + rm4scc.Save(Path.Combine(outDir, "PostalRM4SCCFilledBars.png"), BarCodeImageFormat.Png); + + Console.WriteLine($"Barcodes generated in: {outDir}"); + } +} +``` + +**Förväntat resultat:** tre PNG‑filer — `PostalPlanetFilledBars.png`, `PostalPlanetEmptyBars.png` och `PostalRM4SCCFilledBars.png` — med 4‑pixel breda staplar, redo för utskrift eller vidare bearbetning. + +## Slutsats + +Du vet nu hur du **skapar planet-streckkod** i C# och exakt **hur du ställer in streckkodsdimensioner** för både fyllda och tomma stapelstilar. Samma mönster gäller för andra symbologier som RM4SCC, vilket ger dig en flexibel grund för alla post‑streckkodskrav. + +Nästa steg kan vara att utforska: + +* Lägga till mänskligt läsbar text under streckkoden (`BarcodeGenerator.Parameters.Barcode.CodeText`) +* Ändra stapelfärger med `Parameters.Barcode.BarColor` +* Generera streckkoder i vektorformat (SVG, EPS) för skalbar utskrift + +Känn dig fri att experimentera med olika X‑dimension‑värden, datasträngar och utdataformat för att passa ditt specifika arbetsflöde. Lycka till med kodningen! + +## Vad bör du lära dig härnäst? + +Följande handledningar täcker närbesläktade ämnen som bygger på teknikerna som demonstreras i den här guiden. Varje resurs innehåller kompletta fungerande kodexempel med steg‑för‑steg‑förklaringar för att hjälpa dig bemästra ytterligare API‑funktioner och utforska alternativa implementeringsmetoder i dina egna projekt. + +- [Hur man skapar tyst zon för streckkod för Code 16K med Aspose.BarCode för .NET](/barcode/english/net/code-16k-encoding/code-16k-quiet-zone-settings/) +- [Hur man skapar tyst zon för streckkod för ITF-14 med Aspose.BarCode för .NET](/barcode/english/net/itf-14-barcode-customization/itf-14-barcode-quiet-zone-configuration/) +- [Hur man skapar Aztec‑streckkod med felkorrigering i .NET](/barcode/english/net/aztec-barcode-encoding/aztec-error-level-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/swedish/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md b/barcode/swedish/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md new file mode 100644 index 000000000..35dbcd641 --- /dev/null +++ b/barcode/swedish/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md @@ -0,0 +1,237 @@ +--- +category: general +date: 2026-08-15 +description: Databar utökade staplad streckkodsgenerering i C#. Lär dig hur du genererar + streckkodsbild, ställer in kolumner och rader för DataBar‑layouter. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- databar expanded stacked +- generate barcode image +- how to generate barcode +- how to set columns +- how to set rows +language: sv +lastmod: 2026-08-15 +og_description: Databar utökade staplad streckkodsgenerering i C#. Följ den här steg‑för‑steg‑guiden + för att generera streckkodsbilder, ange kolumner och ange rader effektivt. +og_image_alt: Screenshot of a databar expanded stacked barcode generated with C# +og_title: Databar expanded stacked – generera streckkodsbild i C# +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + headline: 'Databar expanded stacked: generate barcode image in C#' + type: TechArticle +- description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + name: 'Databar expanded stacked: generate barcode image in C#' + steps: + - name: 1. Install the Aspose.BarCode library + text: 'The code uses the **Aspose.BarCode for .NET** library, which provides the + `BarcodeGenerator` class. Install the NuGet package with the following command:' + - name: 2. Create a barcode generator for **databar expanded stacked** + text: The generator is the entry point for all barcode operations. You must specify + the symbology (`EncodeTypes.DatabarExpandedStacked`) and the text to encode. + - name: 3. How to set columns for DataBar + text: The `Columns` property controls how many vertical modules appear in the + stacked barcode. Valid values are 2, 3, or 4. Setting columns influences the + barcode’s width and the amount of data it can store. + - name: 4. Save the 4‑column barcode image + text: Saving the image produces a file that you can embed in reports, invoices, + or mobile apps. The `Save` method accepts a file path and an image format. + - name: 5. How to set rows for DataBar + text: Rows add a second dimension to the stacked layout, allowing more data to + be encoded without widening the barcode. The `Rows` property defaults to 1; + you can increase it up to 3 for the expanded stacked variant. + - name: 6. Save the 3‑row barcode image + text: '```csharp // Step 5: Save the 3‑row barcode image barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", + BarCodeImageFormat.Png); ```' + - name: 7. Complete C# example to generate barcode image + text: 'Putting all steps together yields a self‑contained program you can copy + into a console application:' + type: HowTo +tags: +- barcode +- C# +- Aspose.BarCode +title: 'Databar expanded stacked: generera streckkodbild i C#' +url: /sv/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Databar expanded stacked: generera streckkodbild i C# + +Om du behöver generera en **databar expanded stacked** streckkodbild i C#, visar den här guiden exakt **hur man genererar streckkoder** med anpassade kolumn- och radlayouter. Du kommer att se hur du ställer in kolumner, hur du ställer in rader och hur du sparar de resulterande bilderna utan att lämna IDE:n. + +Handledningen täcker: + +* Skapa en streckkodsgenerator för **databar expanded stacked**-symbologin. +* Konfigurera en 4‑kolumnslayout och en 3‑radslayout. +* Spara varje konfiguration som en PNG-fil. +* Tips för att hantera kantfall såsom ogiltiga kolumnantal. + +Ingen extern dokumentation krävs; det kompletta, körbara exemplet ingår. + +![Databar expanded stacked barcode example](YOUR_DIRECTORY/DatabarCols4.png){: .center alt="databar expanded stacked streckkod genererad med C#" } + +## Steg för generering av databar expanded stacked streckkod + +### 1. Installera Aspose.BarCode-biblioteket + +Koden använder **Aspose.BarCode for .NET**-biblioteket, som tillhandahåller klassen `BarcodeGenerator`. Installera NuGet-paketet med följande kommando: + +```bash +dotnet add package Aspose.BarCode +``` + +När paketet är installerat, lägg till det erforderliga namnutrymmet högst upp i din fil: + +```csharp +using Aspose.BarCode.Generation; +``` + +### 2. Skapa en streckkodsgenerator för **databar expanded stacked** + +Generatorn är ingångspunkten för alla streckkodoperationer. Du måste ange symbologin (`EncodeTypes.DatabarExpandedStacked`) och texten som ska kodas. + +```csharp +// Step 1: Create a barcode generator for Databar Expanded Stacked +BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); +``` + +*Varför detta är viktigt:* `EncodeTypes`-enumerationen talar om för biblioteket vilket streckkodformat som ska produceras. Att använda **databar expanded stacked** säkerställer att den resulterande bilden följer GS1 DataBar-specifikationen för staplade layouter. + +### 3. Så ställer du in kolumner för DataBar + +`Columns`-egenskapen styr hur många vertikala moduler som visas i den staplade streckkoden. Giltiga värden är 2, 3 eller 4. Att ställa in kolumner påverkar streckkodens bredd och mängden data den kan lagra. + +```csharp +// Step 2: Configure a 4‑column layout +barcode.Parameters.Barcode.DataBar.Columns = 4; +``` + +**Tips:** Om du försöker tilldela ett värde utanför det tillåtna intervallet, kastar biblioteket ett `ArgumentException`. Validera alltid indata när du exponerar kolumnval för användare. + +### 4. Spara 4‑kolumns streckkodsbilden + +Att spara bilden skapar en fil som du kan bädda in i rapporter, fakturor eller mobilappar. `Save`-metoden accepterar en filsökväg och ett bildformat. + +```csharp +// Step 3: Save the 4‑column barcode image +barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); +``` + +När filen har skrivits kan du öppna den med vilken bildvisare som helst för att bekräfta att **databar expanded stacked**-mönstret visas korrekt. + +### 5. Så ställer du in rader för DataBar + +Rader lägger till en andra dimension i den staplade layouten, vilket möjliggör mer data att kodas utan att bredda streckkoden. `Rows`-egenskapen har standardvärdet 1; du kan öka den upp till 3 för den expanded stacked-varianten. + +```csharp +// Step 4: Switch to a 3‑row layout (columns remain unchanged) +barcode.Parameters.Barcode.DataBar.Rows = 3; +``` + +**Varför rader är viktiga:** Att öka antalet rader minskar den totala bredden samtidigt som datakapaciteten bevaras, vilket är användbart för smala etiketter eller mobilskärmar. + +### 6. Spara 3‑raders streckkodsbilden + +```csharp +// Step 5: Save the 3‑row barcode image +barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); +``` + +Du har nu två PNG-filer – en med en 4‑kolumnslayout och en annan med en 3‑radslayout – båda använder **databar expanded stacked**-symbologin. + +### 7. Komplett C#-exempel för att generera streckkodbild + +Att sätta ihop alla steg ger ett fristående program som du kan kopiera in i en konsolapplikation: + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace DatabarExpandedStackedDemo +{ + class Program + { + static void Main() + { + // Create the generator for Databar Expanded Stacked + BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); + + // Configure a 4‑column layout and save + barcode.Parameters.Barcode.DataBar.Columns = 4; + barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); + Console.WriteLine("4‑column barcode saved."); + + // Change to a 3‑row layout (columns stay at 4) and save + barcode.Parameters.Barcode.DataBar.Rows = 3; + barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); + Console.WriteLine("3‑row barcode saved."); + } + } +} +``` + +**Förväntat resultat** + +När programmet körs skrivs: + +``` +4‑column barcode saved. +3‑row barcode saved. +``` + +och skapar två PNG-filer i `YOUR_DIRECTORY`. Öppna filerna för att verifiera att varje bild visar en giltig **databar expanded stacked** streckkod. + +## Vanliga fallgropar och praktiska tips + +* **Katalogens existens** – `Save` skapar inte saknade mappar. Se till att `YOUR_DIRECTORY` finns eller använd `Directory.CreateDirectory` innan du sparar. +* **Kolumnbegränsningar** – Värden annat än 2, 3 eller 4 utlöser ett undantag. Skydda mot användarinmatningsfel med en enkel intervallkontroll: + + ```csharp + int columns = 4; + if (columns < 2 || columns > 4) throw new ArgumentOutOfRangeException(nameof(columns)); + barcode.Parameters.Barcode.DataBar.Columns = columns; + ``` + +* **Radsbegränsningar** – Den expanded stacked-varianten stödjer upp till 3 rader. Att sätta `Rows` till 0 eller ett värde större än 3 ger också ett undantag. +* **Bildformat** – `BarCodeImageFormat.Png` ger förlustfri kvalitet, vilket är idealiskt för utskrift. Använd `Jpeg` endast när filstorlek är en huvudfaktor. + +## Nästa steg + +Nu när du vet **hur man genererar streckkoder** med anpassade kolumn- och radkonfigurationer, kan du: + +* Integrera generatorn i ett web‑API för att leverera streckkodsbilder på begäran. +* Kombinera streckkoden med PDF‑genereringsbibliotek för att bädda in den i fakturor. +* Experimentera med andra DataBar-varianter (`DatabarExpanded`, `DatabarLimited`) med samma `Parameters.Barcode.DataBar`‑objekt. + +För djupare anpassning — såsom att ändra stapelfärg, lägga till mänskligt läsbar text eller applicera QR‑kod‑överlägg — se Aspose.BarCode-dokumentationen om `BarcodeGenerator`‑egenskaper. + +--- + +Genom att följa den här guiden har du bemästrat **databar expanded stacked**‑arbetsflödet, lärt dig **hur man ställer in kolumner**, **hur man ställer in rader**, och skapat två olika streckkodsbilder som är redo för produktionsbruk. Lycka till med kodningen! + +## Vad bör du lära dig härnäst? + +Följande handledningar täcker närbesläktade ämnen som bygger på teknikerna som demonstrerats i den här guiden. Varje resurs innehåller kompletta fungerande kodexempel med steg‑för‑steg‑förklaringar för att hjälpa dig bemästra ytterligare API‑funktioner och utforska alternativa implementationsmetoder i dina egna projekt. + +- [Generera streckkodbild – GS1 Coupon UPC-A Databar](/barcode/english/net/gs1-barcode-encoding/gs1-coupon-upc-a-databar-configuration/) +- [Skapa DotCode streckkodbild – rader & kolumner (Aspose.BarCode)](/barcode/english/net/dotcode-barcode-configuration/dotcode-rows-columns-configuration/) +- [Hur man genererar streckkod – En-dimensionella streckkodstyper](/barcode/english/net/one-dimensional-barcode-types/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/swedish/python-java/general/how-to-set-barcode-complete-c-guide/_index.md b/barcode/swedish/python-java/general/how-to-set-barcode-complete-c-guide/_index.md new file mode 100644 index 000000000..80d3a279e --- /dev/null +++ b/barcode/swedish/python-java/general/how-to-set-barcode-complete-c-guide/_index.md @@ -0,0 +1,235 @@ +--- +category: general +date: 2026-08-15 +description: Hur man ställer in streckkodparametrar i C# och genererar streckkodsbilder. + Lär dig steg för steg att skapa Databar‑streckkod och spara PNG‑filer. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to set barcode +- how to generate barcode +- create databar barcode +- generate barcode image c# +language: sv +lastmod: 2026-08-15 +og_description: Hur man ställer in en streckkod i C# med Aspose.Barcode och sedan + genererar en streckkodsbild i C#. Följ den här guiden för att skapa en Databar‑streckkod + och spara PNG‑filer. +og_image_alt: Screenshot of a Databar barcode saved as PNG using C# code +og_title: Hur du ställer in streckkod i C# – steg‑för‑steg guide +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: How to set barcode parameters in C# and generate barcode images. Learn + step‑by‑step to create Databar barcode and save PNG files. + headline: How to set barcode – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.Barcode +title: Hur man ställer in streckkod – komplett C#‑guide +url: /sv/python-java/general/how-to-set-barcode-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hur man ställer in streckkod – komplett C#-guide + +Om du letar efter **how to set barcode**‑parametrar i ett .NET‑projekt, visar den här handledningen de exakta stegen du behöver. Du kommer att lära dig **how to generate barcode**‑bilder, skapa en Databar‑streckkod och kontrollera stapelhöjden pixel för pixel — allt med ren, produktionsklar C#‑kod. + +I den här guiden kommer du att: + +* Installera det erforderliga NuGet‑paketet. +* Skapa en Databar Omnidirectional‑streckkod (delen “create Databar barcode”). +* Justera X‑dimension och stapelhöjd för att demonstrera **how to set barcode**‑dimensioner. +* Spara resultatet som PNG‑filer, vilket täcker scenariot **generate barcode image C#**. + +Koden fungerar med den senaste Aspose.Barcode för .NET (v 24.12 vid skrivtillfället) och körs på .NET 6 eller senare. + +--- + +## Förutsättningar + +Innan du börjar, se till att du har: + +* .NET 6 SDK (eller någon senare version). +* En IDE som Visual Studio 2022 eller VS Code. +* Internetåtkomst för att ladda ner Aspose.Barcode‑paketet från NuGet. + +Inga ytterligare tredjepartsbibliotek krävs. + +--- + +## Steg 1: Installera Aspose.Barcode för .NET + +Det mest pålitliga sättet att **generate barcode**‑bilder i C# är att använda Aspose.Barcode. Öppna en terminal i din projektmapp och kör: + +```bash +dotnet add package Aspose.BarCode +``` + +Kommandot lägger till den senaste stabila versionen i din projektfil, vilket säkerställer att du har klassen `BarcodeGenerator` och uppräkningen `EncodeTypes`. + +*Pro tip:* Håll paketet uppdaterat (`dotnet list package --outdated`) för att dra nytta av buggfixar och nya streckkodssymbologier. + +--- + +## Steg 2: Skapa en Databar‑streckkod (create Databar barcode) + +Databar Omnidirectional är idealisk för detaljhandel och logistik eftersom den kan koda ett GTIN‑14‑värde plus ytterligare data. Följande kod skapar streckkodobjektet: + +```csharp +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +// Step 2: Initialize the generator for a Databar Omnidirectional barcode +BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); +``` + +*Varför detta är viktigt:* Uppräkningen `EncodeTypes.DatabarOmniDirectional` talar om för biblioteket att använda Databar‑symbologi, medan strängen `"(01)12345678901231"` följer GS1 Application Identifier‑formatet för ett 14‑siffrigt GTIN. + +--- + +## Steg 3: Definiera vanliga parametrar – X‑dimension och bashöjd + +De flesta streckkodsläsare förväntar sig en minsta X‑dimension (bredden på den smalaste stapeln). Att sätta den till 2 pixlar ger en kompakt men läsbar bild. + +```csharp +// Step 3: Set a 2‑pixel X‑dimension (common for most scanners) +generator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +Du kan senare justera stapelhöjden utan att återskapa generatorn — detta är kärnan i **how to set barcode**‑attribut efter instansiering. + +--- + +## Steg 4: Ställ in första stapelhöjden och spara bilden (generate barcode image C#) + +Nu demonstrerar vi den första delen av **how to set barcode**‑höjd. Stapelhöjden styr den visuella längden på varje stapel; ett värde på 30 pixlar ger en kort streckkod, medan 60 pixlar skapar en högre version. + +```csharp +// Step 4a: 30‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 30; + +// Save the first PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); +``` + +Efter körning innehåller `DatabarBarHeight30Pixels.png` en Databar‑streckkod med en 30‑pixlar hög stapel. Öppna filen i någon bildvisare för att verifiera resultatet. + +--- + +## Steg 5: Ändra stapelhöjden och spara en andra bild + +För att illustrera att **how to set barcode**‑värden kan ändras i farten, ändrar vi stapelhöjden till 60 pixlar och skriver en andra fil. + +```csharp +// Step 5a: 60‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 60; + +// Save the second PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); +``` + +Nu har du två PNG‑filer som visar samma Databar‑data men med olika visuella höjder. Detta är användbart när du behöver en större streckkod för tryckta etiketter eller en mindre för visning på skärm. + +--- + +## Steg 6: Fullt, körbart exempel + +När vi sätter ihop allt, här är ett fristående konsolprogram som utför alla stegen som beskrivits ovan. Kopiera koden till en ny `Program.cs`‑fil, ersätt `YOUR_DIRECTORY` med en faktisk sökväg och kör den. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Initialize the generator for a Databar Omnidirectional barcode + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); + + // Common parameters + generator.Parameters.Barcode.XDimension.Pixels = 2; // 2‑pixel narrow bar + + // First image: 30‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 30; + generator.Save(@"C:\Barcodes\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 30‑pixel barcode."); + + // Second image: 60‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 60; + generator.Save(@"C:\Barcodes\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 60‑pixel barcode."); + + // Dispose the generator to free native resources + generator.Dispose(); + } +} +``` + +**Förväntat resultat** + +När du kör programmet skriver konsolen ut: + +``` +Saved 30-pixel barcode. +Saved 60-pixel barcode. +``` + +Och mappen `C:\Barcodes` (eller den sökväg du angav) innehåller de två PNG‑filerna. Båda bilderna visar en giltig Databar Omnidirectional‑streckkod som kan läsas av standard‑GS1‑läsare. + +--- + +## Vanliga frågor + +**Fungerar detta med andra bildformat?** +Ja. Ersätt `BarCodeImageFormat.Png` med `Jpeg`, `Bmp`, `Gif` eller `Tiff` för att generera motsvarande filtyp. + +**Kan jag ändra förgrundsfärgen?** +Sätt `generator.Parameters.Barcode.ForeColor` till vilket `System.Drawing.Color`‑värde som helst, t.ex. `Color.Blue`. + +**Vad händer om jag behöver en annan symbologi?** +Skicka ett annat `EncodeTypes`‑värde till konstruktorn, till exempel `EncodeTypes.Code128` för en linjär streckkod eller `EncodeTypes.QR` för en matris‑kod. + +**Finns det ett sätt att bädda in streckkoden i en PDF?** +Aspose.Barcode tillhandahåller en `PdfGenerator`‑klass. Efter att ha genererat bilden kan du lägga till den på en PDF‑sida med hjälp av Aspose.PDF. + +--- + +## Bästa praxis för streckkodsgenerering i C# + +* **Återanvänd `BarcodeGenerator`‑instansen** när du bara behöver justera dimensioner — detta undviker onödiga minnesallokeringar. +* **Dispose generatorn** (`generator.Dispose()`) när du är klar för att snabbt frigöra inhemska resurser. +* **Validera indata** (t.ex. GTIN‑längd) innan du skapar streckkoden för att förhindra körningsfel. +* **Testa med en fysisk scanner** efter att du ändrat X‑dimension eller stapelhöjd; extrema värden kan påverka läsbarheten. +* **Se till att utskriftsmappen är skrivbar** för det körande kontot; annars kommer `Save` att kasta ett `UnauthorizedAccessException`. + +--- + +## Slutsats + +Du vet nu **how to set barcode**‑egenskaper såsom X‑dimension och stapelhöjd, **how to generate barcode**‑bilder i C#, och de exakta stegen för att **create Databar barcode**‑filer med Aspose.Barcode. Genom att följa det kompletta exemplet kan du generera flera PNG‑filer med olika visuella egenskaper, vilket uppfyller kravet **generate barcode image C#** för vilken .NET‑applikation som helst. + +Nästa steg är att utforska relaterade ämnen såsom **how to generate barcode** i bulk, inbäddning av streckkoder i PDF‑filer, eller byte till andra symbologier som QR eller Code 128. Experimentera med parametrarna som visas här för att finjustera streckkodens utseende för din specifika skannermiljö. Lycka till med kodningen! + +## Vad bör du lära dig härnäst? + +Följande handledningar täcker närbesläktade ämnen som bygger på teknikerna som demonstrerats i den här guiden. Varje resurs innehåller kompletta fungerande kodexempel med steg‑för‑steg‑förklaringar för att hjälpa dig bemästra ytterligare API‑funktioner och utforska alternativa implementationsmetoder i dina egna projekt. + +- [Hur man genererar DataMatrix‑streckkoder (ECC 200) med Aspose.BarCode för .NET](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-ecc-200-configuration/) +- [Hur man genererar Aztec‑streckkod med anpassat bildförhållande med Aspose.BarCode för .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [Hur man genererar streckkod – Code 39‑konfiguration med Aspose.BarCode](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-code-39-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/thai/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md b/barcode/thai/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md new file mode 100644 index 000000000..b3b506d8d --- /dev/null +++ b/barcode/thai/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md @@ -0,0 +1,184 @@ +--- +category: general +date: 2026-08-15 +description: ภาพบาร์โค้ด PNG ใน C# – เรียนรู้วิธีสร้างบาร์โค้ดไปรษณีย์, สร้างบาร์โค้ด + Planet, และปรับความสูงของบาร์โค้ดด้วยเครื่องสร้างง่าย ๆ. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- barcode image png +- barcode generator c# +- generate postal barcode +- create planet barcode +- change barcode height +language: th +lastmod: 2026-08-15 +og_description: บทแนะนำการสร้างภาพบาร์โค้ด PNG ใน C# แสดงวิธีสร้างบาร์โค้ดไปรษณีย์, + สร้างบาร์โค้ด Planet, และเปลี่ยนความสูงของบาร์โค้ดโดยใช้ BarcodeGenerator API. +og_image_alt: Screenshot of generated PNG barcode with custom height using C# BarcodeGenerator +og_title: ภาพบาร์โค้ด PNG ใน C# – สร้างและปรับแต่งบาร์โค้ด +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Barcode image PNG in C# – learn how to generate postal barcodes, create + a Planet barcode, and change barcode height with a simple generator. + headline: Barcode image PNG in C# generate barcodes, change height + type: TechArticle +tags: +- barcode +- C# +- PNG +- postal +- generator +title: ภาพบาร์โค้ด PNG ใน C# สร้างบาร์โค้ด, ปรับความสูง +url: /th/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# ภาพ Barcode PNG ใน C# – สร้าง barcode, ปรับความสูง + +หากคุณต้องการ **ภาพ barcode PNG** ใน C# คำแนะนำนี้จะพาคุณผ่านกระบวนการทั้งหมด คุณจะได้เรียนรู้วิธีสร้าง postal barcode, สร้าง Planet barcode, และเปลี่ยนความสูงของ barcode โดยไม่ต้องออกจาก IDE ของคุณ + +การสร้าง PNG barcode ที่เชื่อถือได้เป็นความต้องการทั่วไปสำหรับป้ายจัดส่ง, ระบบสินค้าคงคลัง, และโซลูชันการส่งจดหมายอัตโนมัติ เมื่อจบบทเรียนนี้คุณจะมีโค้ดสแนปช็อตที่สามารถนำกลับมาใช้ใหม่ได้ซึ่งสร้างไฟล์ PNG คุณภาพสูงสำหรับรูปแบบ Planet และ RM4SCC ทั้งสองแบบ และคุณจะเข้าใจวิธีปรับความสูงของบาร์ให้ตรงตามสเปคของไปรษณีย์ + +## สิ่งที่คุณต้องมี + +- .NET 6+ หรือ .NET Framework 4.7.2 (API BarcodeGenerator ทำงานกับ .NET runtime ใดก็ได้ที่ทันสมัย) +- การอ้างอิงไปยังแพคเกจ NuGet **Aspose.BarCode for .NET** (หรือไลบรารีที่เข้ากันได้ซึ่งให้ `BarcodeGenerator`, `EncodeTypes`, และ `BarCodeImageFormat`) +- ความคุ้นเคยพื้นฐานกับไวยากรณ์ C# และการทำ I/O กับไฟล์ + +ไม่ต้องใช้เครื่องมือเพิ่มเติม; โค้ดทำงานได้ใน Visual Studio, Rider หรือ `dotnet` CLI + +## ภาพ Barcode PNG – การสร้างพื้นฐาน + +ขั้นตอนแรกคือการสร้าง **ภาพ barcode PNG** ด้วยขนาดเริ่มต้น ซึ่งเป็นไฟล์ฐานที่คุณสามารถปรับแต่งต่อได้ + +```csharp +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +// Define the output folder (replace with your own path) +string outputFolder = @"C:\Barcodes"; + +// Ensure the folder exists +Directory.CreateDirectory(outputFolder); + +// 1️⃣ Create a Planet barcode generator with default height +BarcodeGenerator planetGenerator = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + +// Set the module width (X‑dimension) to 4 pixels – this defines the thin bar size +planetGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the image as PNG; this is the first **barcode image PNG** you’ll produce +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +**ทำไมวิธีนี้ถึงได้ผล:** +- `EncodeTypes.Planet` บอกให้ตัวสร้างใช้สัญลักษณ์ Planet ซึ่งจำเป็นสำหรับหลายบริการไปรษณีย์ +- `XDimension.Pixels` ควบคุมความกว้างของบาร์ที่เล็กที่สุด; ค่า 4 px ให้ barcode ที่อ่านได้ในขนาดป้ายทั่วไป +- เมธอด `Save` จะบันทึกไฟล์ **ภาพ barcode PNG** ไปยังดิสก์ โดยเก็บข้อมูลเวกเตอร์ทั้งหมดเป็นพิกเซลเรสเตอร์ + +## ปรับความสูงของ barcode – ปรับน้ำหนักภาพ + +แนวทางของไปรษณีย์มักกำหนดความสูงของบาร์เป็นค่าที่เฉพาะ โค้ดต่อไปนี้แสดงวิธีตั้งความสูงแบบกำหนดเอง 100 พิกเซลสำหรับ Planet barcode เดียวกัน + +```csharp +// 2️⃣ Apply a custom 100‑pixel bar height +planetGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Overwrite or save as a new file to keep both versions +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +**เหตุผลที่ต้องปรับความสูง:** +บาร์ที่สูงขึ้นช่วยเพิ่มความน่าเชื่อถือในการสแกนบนเครื่องพิมพ์ความละเอียดต่ำ, ในขณะที่บาร์ที่สั้นลงจะลดพื้นที่บนป้าย `BarHeight.Pixels` ให้คุณปรับค่าลักษณะนี้ได้โดยไม่กระทบต่อ X‑dimension + +## สร้าง postal barcode – ตัวอย่าง RM4SCC + +รูปแบบ RM4SCC เป็น barcode ไปรษณีย์ที่ใช้กันทั่วไปในสหราชอาณาจักร ขั้นตอนการสร้างคล้ายกับตัวอย่าง Planet, ทำให้แนวคิด **barcode generator c#** เป็นรูปแบบที่สอดคล้องกัน + +```csharp +// 3️⃣ Create an RM4SCC barcode generator with default height +BarcodeGenerator rm4sccGenerator = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Keep the same module width for consistency +rm4sccGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the default‑height PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +## ปรับความสูงของ barcode – เวอร์ชัน RM4SCC + +เช่นเดียวกับ Planet barcode, คุณสามารถปรับความสูงของบาร์ RM4SCC ได้ โค้ดด้านล่างตั้งความสูงเป็น 100 px, สร้าง **ภาพ barcode PNG** ที่สองสำหรับสตริงข้อมูลเดียวกัน + +```csharp +// 4️⃣ Set a custom 100‑pixel bar height for RM4SCC +rm4sccGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Save the customized PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +## ตัวอย่างเต็มที่สามารถรันได้ + +การรวมทุกขั้นตอนเข้าด้วยกันให้โปรแกรมเดียวที่สร้างไฟล์ PNG สี่ไฟล์: + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +class Program +{ + static void Main() + { + string outputFolder = @"C:\Barcodes"; + Directory.CreateDirectory(outputFolder); + + // Planet barcode – default height + var planet = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planet.Parameters.Barcode.XDimension.Pixels = 4; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // Planet barcode – custom 100‑pixel height + planet.Parameters.Barcode.BarHeight.Pixels = 100; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – default height + var rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – custom 100‑pixel height + rm4scc.Parameters.Barcode.BarHeight.Pixels = 100; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); + + Console.WriteLine("All barcode PNG files have been generated in " + + + +## คุณควรเรียนรู้อะไรต่อไป? + +บทแนะนำต่อไปนี้ครอบคลุมหัวข้อที่เกี่ยวข้องอย่างใกล้ชิดและต่อยอดจากเทคนิคที่แสดงในคู่มือนี้ แต่ละแหล่งข้อมูลมีตัวอย่างโค้ดทำงานเต็มรูปแบบพร้อมคำอธิบายทีละขั้นตอน เพื่อช่วยให้คุณเชี่ยวชาญฟีเจอร์ API เพิ่มเติมและสำรวจวิธีการทำงานแบบอื่นในโปรเจกต์ของคุณ + +- [สร้าง Barcode ความสูงกำหนดเอง – One-Dimensional Barcodes](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-barcode-height-adjustment/) +- [สร้าง Barcode PNG – อัตราส่วนภาพ DataMatrix – Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-aspect-ratio-customization/) +- [สร้างภาพ barcode C# – ตัวอย่าง GS1 DataMatrix](/barcode/english/net/gs1-barcode-encoding/gs1-datamatrix-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/thai/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md b/barcode/thai/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md new file mode 100644 index 000000000..548dc3879 --- /dev/null +++ b/barcode/thai/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-08-15 +description: สร้างบาร์โค้ดแบบ Planet ด้วย C# และเรียนรู้วิธีตั้งขนาดบาร์โค้ดให้พอดีอย่างสมบูรณ์ + ตัวอย่างโค้ดขั้นตอนต่อขั้นตอนพร้อมบาร์ที่เต็มและบาร์ที่ว่าง +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create planet barcode +- how to set barcode dimensions +- planet barcode C# +- barcode X‑dimension +- empty barcode bars +language: th +lastmod: 2026-08-15 +og_description: สร้างบาร์โค้ด Planet ด้วย C# และเรียนรู้วิธีตั้งขนาดบาร์โค้ด ตามคำแนะนำนี้เพื่อสร้างบาร์โค้ด + Planet แบบเต็มและแบบว่างได้ทันที +og_image_alt: Screenshot showing a Planet barcode with filled bars generated by C# + code +og_title: สร้างบาร์โค้ดดาวเคราะห์ใน C# – คู่มือเต็มขั้นตอนโดยละเอียด +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Create planet barcode in C# and learn how to set barcode dimensions + for perfect sizing. Step‑by‑step code example with filled and empty bars. + headline: Create planet barcode in C# – complete programming guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.BarCode +title: สร้างบาร์โค้ดดาวเคราะห์ใน C# – คู่มือการเขียนโปรแกรมฉบับสมบูรณ์ +url: /th/python-java/general/create-planet-barcode-in-c-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# สร้างบาร์โค้ด Planet ด้วย C# – คู่มือการเขียนโปรแกรมแบบครบถ้วน + +หากคุณต้องการ **สร้างบาร์โค้ด planet** ด้วย C# คู่มือนี้จะแสดงขั้นตอนที่ต้องทำอย่างละเอียด คุณยังจะได้เรียนรู้ **วิธีตั้งค่าขนาดบาร์โค้ด** เพื่อให้แถบมีความกว้างตามที่ต้องการอย่างแม่นยำ + +การสร้างบาร์โค้ด Planet เป็นเรื่องปกติเมื่อทำงานกับบริการไปรษณีย์หรือระบบโลจิสติกส์ โค้ดด้านล่างครอบคลุมทั้งเวอร์ชันแถบเต็ม (filled‑bar) เริ่มต้นและสไตล์แถบว่าง (empty‑bar) ทางเลือก พร้อมตัวอย่างสั้น ๆ สำหรับรูปแบบ RM4SCC เมื่อจบบทเรียนนี้คุณจะมีสแนปช็อตที่นำกลับไปใช้ใหม่ได้ในโปรเจกต์ .NET ใด ๆ + +## ข้อกำหนดเบื้องต้น + +ก่อนเริ่มทำงาน ตรวจสอบให้แน่ใจว่าคุณมี: + +* .NET 6.0 หรือใหม่กว่า (API นี้ทำงานกับ .NET Framework 4.6+ ด้วย) +* แพคเกจ NuGet **Aspose.BarCode for .NET** (`Aspose.BarCode`) ที่เพิ่มเข้าในโปรเจกต์ของคุณ +* โฟลเดอร์ที่สามารถเขียนไฟล์ PNG ได้ +* ความคุ้นเคยพื้นฐานกับไวยากรณ์ C# และ Visual Studio (หรือ IDE ใดก็ได้) + +> **เคล็ดลับ:** ใช้เส้นทางแบบ absolute หรือ `Path.Combine(Environment.CurrentDirectory, "output")` เพื่อหลีกเลี่ยงปัญหาการอนุญาตเมื่อบันทึกภาพ + +## ขั้นตอนที่ 1 – เริ่มต้นตัวสร้างบาร์โค้ด Planet (แถบเต็ม) + +ขั้นตอนแรกคือการสร้างอินสแตนซ์ `BarcodeGenerator` สำหรับสัญลักษณ์ Planet โดยค่าเริ่มต้นจะสร้าง **แถบเต็ม** + +```csharp +// Step 1: Create a Planet barcode with the default (filled) bars +BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +ค่า enum `EncodeTypes.Planet` บอก Aspose.BarCode ให้ใช้รูปแบบ Planet ส่วน `"123456"` คือข้อมูลที่ต้องเข้ารหัส + +## ขั้นตอนที่ 2 – วิธีตั้งค่าขนาดบาร์โค้ดเพื่อให้ได้ขนาดสม่ำเสมอ + +เพื่อควบคุมความกว้างของแต่ละแถบ ให้ปรับ **X‑dimension** นี่เป็นวิธีหลักในการ **ตั้งค่าขนาดบาร์โค้ด** และทำให้บาร์โค้ดพอดีกับขนาดฉลากของคุณ + +```csharp +// Step 2: Set the X‑dimension (width of each bar) to 4 pixels +planetFilled.Parameters.Barcode.XDimension.Pixels = 4; +``` + +คุณสมบัติ `Pixels` กำหนดความกว้างของแถบเป็นพิกเซลบนหน้าจอ ค่าที่นิยมใช้คือ 2 – 5 พิกเซลสำหรับฉลากไปรษณีย์มาตรฐาน; เพิ่มค่าเพื่อพิมพ์ขนาดใหญ่ขึ้น + +## ขั้นตอนที่ 3 – บันทึกบาร์โค้ด Planet แถบเต็มเป็น PNG + +ต่อไปให้เขียนภาพลงดิสก์ PNG จะรักษาความคมของขอบ ซึ่งเหมาะกับการสแกน + +```csharp +// Step 3: Save the Planet barcode as a PNG image +planetFilled.Save("YOUR_DIRECTORY/PostalPlanetFilledBars.png", BarCodeImageFormat.Png); +``` + +แทนที่ `YOUR_DIRECTORY` ด้วยเส้นทางที่คุณเตรียมไว้ก่อนหน้า หลังจากรันโค้ดนี้คุณจะเห็นไฟล์ที่คล้ายกับภาพด้านล่าง + +![บาร์โค้ด Planet พร้อมแถบเต็ม](planet_filled.png "บาร์โค้ด Planet พร้อมแถบเต็ม – สร้างโดยโค้ด C#") + +*Alt text:* **บาร์โค้ด Planet พร้อมแถบเต็มที่สร้างโดยโค้ด C#** (matches `og_image_alt`). + +## ขั้นตอนที่ 4 – สร้างบาร์โค้ด Planet ด้วยแถบว่าง (unfilled) + +หากบริการไปรษณีย์ของคุณต้องการให้แถบเป็น **ว่าง** ให้สลับค่าสถานะ `FilledBars` หลังจากสร้างอินสแตนซ์ + +```csharp +// Step 4: Create a Planet barcode with empty (unfilled) bars +BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +คอนสตรัคเตอร์ยังคงเหมือนเดิม; ความแตกต่างอยู่ที่ขั้นตอนการตั้งค่าถัดไป + +## ขั้นตอนที่ 5 – วิธีตั้งค่าขนาดบาร์โค้ดและทำให้แถบเป็นว่าง + +เช่นเดิม ให้ตั้งค่า X‑dimension เพื่อความสอดคล้องด้านภาพ แล้วปิดการใช้แถบเต็ม + +```csharp +// Step 5: Set the X‑dimension and specify that bars should be empty +planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; +planetEmpty.Parameters.Barcode.FilledBars = false; // makes bars empty +``` + +คุณสมบัติ `FilledBars = false` คือสิ่งที่ทำให้สไตล์การเรนเดอร์เปลี่ยนเป็นแถว่าง การใช้ X‑dimension เดียวกันทำให้บาร์โค้ดแถว่างตรงกับเวอร์ชันแถบเต็มอย่างพอดี + +## ขั้นตอนที่ 6 – บันทึกบาร์โค้ด Planet แถว่าง + +```csharp +// Step 6: Save the Planet barcode with empty bars as a PNG image +planetEmpty.Save("YOUR_DIRECTORY/PostalPlanetEmptyBars.png", BarCodeImageFormat.Png); +``` + +ตอนนี้คุณจะมีไฟล์ PNG สองไฟล์: หนึ่งไฟล์แถบเต็มและอีกไฟล์แถว่าง ทั้งสองใช้ขนาดเดียวกัน + +## ขั้นตอนที่ 7 – (ทางเลือก) สร้างบาร์โค้ด RM4SCC เพื่อเปรียบเทียบ + +RM4SCC เป็นสัญลักษณ์ไปรษณีย์อีกแบบหนึ่งที่ใช้สไตล์แถบเต็มแบบเริ่มต้น ขั้นตอนคล้ายกับตัวอย่าง Planet แสดงให้เห็นว่า **วิธีตั้งค่าขนาดบาร์โค้ด** ทำงานได้กับหลายรูปแบบ + +```csharp +// Step 7: Create an RM4SCC barcode (filled bars are the default) +BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Step 8: Set the X‑dimension for consistency +rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + +// Step 9: Save the RM4SCC barcode as a PNG image +rm4scc.Save("YOUR_DIRECTORY/PostalRM4SCCFilledBars.png", BarCodeImageFormat.Png); +``` + +การรันสามขั้นตอนนี้จะสร้างไฟล์ `PostalRM4SCCFilledBars.png` ซึ่งคุณสามารถเปรียบเทียบเคียงกับผลลัพธ์จาก Planet ได้ + +## ทำไม X‑dimension ถึงสำคัญ + +X‑dimension กำหนด **ความกว้างขั้นต่ำที่พิมพ์ได้** ของแต่ละแถบ หากตั้งค่านี้ต่ำเกินไป บาร์โค้ดอาจเบลอบนเครื่องพิมพ์ความละเอียดต่ำ ทำให้สแกนล้มเหลว ในทางกลับกัน X‑dimension ที่ใหญ่เกินไปอาจทำให้บาร์โค้ดเกินขนาดฉลากและเสียพื้นที่ ด้วยการ **ตั้งค่าขนาดบาร์โค้ด** อย่างชัดเจน คุณจะได้การควบคุมขนาดภาพสุดท้ายอย่างแน่นอน ซึ่งจำเป็นต่อกระบวนการไปรษณีย์อัตโนมัติ + +## ข้อผิดพลาดทั่วไปและวิธีหลีกเลี่ยง + +| ปัญหา | สาเหตุ | วิธีแก้ | +|-------|-------|-----| +| บาร์โค้ดดูบิดเบี้ยว | ตั้งค่า X‑dimension เป็นหน่วย points แทนพิกเซล | ใช้คุณสมบัติ `Pixels` เสมอเพื่อควบคุมพิกเซลอย่างแม่นยำ | +| แถบว่างยังดูเหมือนแถบเต็ม | ไม่ได้ตั้งค่า `FilledBars` เป็น `false` หลังจากเปลี่ยน X‑dimension | ตั้งค่า `FilledBars = false` *หลังจาก* ปรับ X‑dimension | +| ไฟล์ที่บันทึกเป็นไฟล์เปล่า | โฟลเดอร์ปลายทางไม่มีอยู่หรือไม่มีสิทธิ์เขียน | ตรวจสอบให้โฟลเดอร์มี (`Directory.CreateDirectory`) และแอปทำงานด้วยสิทธิ์ที่เพียงพอ | +| ภาพเบลอบนการพิมพ์ | PNG ที่บันทึกจากหน้าจอความละเอียดสูง | ใช้ `BarCodeImageFormat.Png` (lossless) และพิจารณาคุณสมบัติ `Resolution` หากจำเป็น | + +## ตัวอย่างเต็มที่สามารถรันได้ + +คัดลอกบล็อกทั้งหมดด้านล่างไปยังโปรเจกต์คอนโซลใหม่ (`dotnet new console`) แล้วรัน โปรแกรมจะสร้างไฟล์ PNG สามไฟล์ในโฟลเดอร์ `output` + +```csharp +using System; +using System.IO; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Ensure output folder exists + string outDir = Path.Combine(Environment.CurrentDirectory, "output"); + Directory.CreateDirectory(outDir); + + // ---------- Planet barcode – filled bars ---------- + BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetFilled.Parameters.Barcode.XDimension.Pixels = 4; // set dimensions + planetFilled.Save(Path.Combine(outDir, "PostalPlanetFilledBars.png"), BarCodeImageFormat.Png); + + // ---------- Planet barcode – empty bars ---------- + BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; // same dimensions + planetEmpty.Parameters.Barcode.FilledBars = false; // make bars empty + planetEmpty.Save(Path.Combine(outDir, "PostalPlanetEmptyBars.png"), BarCodeImageFormat.Png); + + // ---------- RM4SCC barcode (filled bars) ---------- + BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; // consistent size + rm4scc.Save(Path.Combine(outDir, "PostalRM4SCCFilledBars.png"), BarCodeImageFormat.Png); + + Console.WriteLine($"Barcodes generated in: {outDir}"); + } +} +``` + +**ผลลัพธ์ที่คาดหวัง:** ไฟล์ PNG สามไฟล์—`PostalPlanetFilledBars.png`, `PostalPlanetEmptyBars.png`, และ `PostalRM4SCCFilledBars.png`—แต่ละไฟล์มีแถบกว้าง 4 พิกเซล พร้อมพิมพ์หรือประมวลผลต่อไป + +## สรุป + +คุณได้เรียนรู้วิธี **สร้างบาร์โค้ด planet** ด้วย C# และวิธี **ตั้งค่าขนาดบาร์โค้ด** อย่างแม่นยำสำหรับสไตล์แถบเต็มและแถว่าง รูปแบบเดียวกันนี้ใช้ได้กับสัญลักษณ์อื่น ๆ เช่น RM4SCC ทำให้คุณมีพื้นฐานที่ยืดหยุ่นสำหรับความต้องการบาร์โค้ดไปรษณีย์ใด ๆ + +ต่อไปคุณอาจสำรวจ: + +* เพิ่มข้อความที่อ่านได้มนุษย์ใต้บาร์โค้ด (`BarcodeGenerator.Parameters.Barcode.CodeText`) +* เปลี่ยนสีแถบด้วย `Parameters.Barcode.BarColor` +* สร้างบาร์โค้ดในรูปแบบเวกเตอร์ (SVG, EPS) เพื่อการพิมพ์ที่ปรับขนาดได้ + +ลองปรับค่า X‑dimension, สตริงข้อมูล, และรูปแบบการบันทึกต่าง ๆ เพื่อให้เข้ากับกระบวนการทำงานของคุณเอง ขอให้สนุกกับการเขียนโค้ด! + +## คุณควรเรียนรู้อะไรต่อไป? + +บทแนะนำต่อไปนี้ครอบคลุมหัวข้อที่เกี่ยวข้องอย่างใกล้ชิดและต่อยอดจากเทคนิคในคู่มือนี้ แต่ละแหล่งข้อมูลมีตัวอย่างโค้ดทำงานเต็มรูปแบบพร้อมคำอธิบายทีละขั้นตอน เพื่อช่วยให้คุณเชี่ยวชาญฟีเจอร์ API เพิ่มเติมและสำรวจแนวทางการทำงานอื่น ๆ ในโปรเจกต์ของคุณ + +- [วิธีสร้าง quiet zone สำหรับ Code 16K ด้วย Aspose.BarCode for .NET](/barcode/english/net/code-16k-encoding/code-16k-quiet-zone-settings/) +- [วิธีสร้าง Quiet Zone สำหรับ ITF-14 ด้วย Aspose.BarCode for .NET](/barcode/english/net/itf-14-barcode-customization/itf-14-barcode-quiet-zone-configuration/) +- [วิธีสร้างบาร์โค้ด Aztec พร้อมการแก้ไขข้อผิดพลาดใน .NET](/barcode/english/net/aztec-barcode-encoding/aztec-error-level-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/thai/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md b/barcode/thai/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md new file mode 100644 index 000000000..b94811ebc --- /dev/null +++ b/barcode/thai/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md @@ -0,0 +1,237 @@ +--- +category: general +date: 2026-08-15 +description: Databar ขยายการสร้างบาร์โค้ดแบบซ้อนใน C#. เรียนรู้วิธีสร้างภาพบาร์โค้ด + ตั้งค่าคอลัมน์และแถวสำหรับเค้าโครง DataBar. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- databar expanded stacked +- generate barcode image +- how to generate barcode +- how to set columns +- how to set rows +language: th +lastmod: 2026-08-15 +og_description: Databar ขยายการสร้างบาร์โค้ดแบบซ้อนใน C#. ปฏิบัติตามคู่มือขั้นตอนต่อขั้นตอนนี้เพื่อสร้างภาพบาร์โค้ด + ตั้งค่าคอลัมน์ และตั้งค่าแถวอย่างมีประสิทธิภาพ. +og_image_alt: Screenshot of a databar expanded stacked barcode generated with C# +og_title: Databar expanded stacked – สร้างภาพบาร์โค้ดใน C# +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + headline: 'Databar expanded stacked: generate barcode image in C#' + type: TechArticle +- description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + name: 'Databar expanded stacked: generate barcode image in C#' + steps: + - name: 1. Install the Aspose.BarCode library + text: 'The code uses the **Aspose.BarCode for .NET** library, which provides the + `BarcodeGenerator` class. Install the NuGet package with the following command:' + - name: 2. Create a barcode generator for **databar expanded stacked** + text: The generator is the entry point for all barcode operations. You must specify + the symbology (`EncodeTypes.DatabarExpandedStacked`) and the text to encode. + - name: 3. How to set columns for DataBar + text: The `Columns` property controls how many vertical modules appear in the + stacked barcode. Valid values are 2, 3, or 4. Setting columns influences the + barcode’s width and the amount of data it can store. + - name: 4. Save the 4‑column barcode image + text: Saving the image produces a file that you can embed in reports, invoices, + or mobile apps. The `Save` method accepts a file path and an image format. + - name: 5. How to set rows for DataBar + text: Rows add a second dimension to the stacked layout, allowing more data to + be encoded without widening the barcode. The `Rows` property defaults to 1; + you can increase it up to 3 for the expanded stacked variant. + - name: 6. Save the 3‑row barcode image + text: '```csharp // Step 5: Save the 3‑row barcode image barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", + BarCodeImageFormat.Png); ```' + - name: 7. Complete C# example to generate barcode image + text: 'Putting all steps together yields a self‑contained program you can copy + into a console application:' + type: HowTo +tags: +- barcode +- C# +- Aspose.BarCode +title: 'Databar expanded stacked: สร้างภาพบาร์โค้ดใน C#' +url: /th/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Databar expanded stacked: สร้างภาพบาร์โค้ดใน C# + +หากคุณต้องการสร้างภาพบาร์โค้ด **databar expanded stacked** ใน C# คู่มือนี้จะแสดงให้คุณเห็นอย่างชัดเจนว่า **วิธีการสร้างบาร์โค้ด** ด้วยการจัดเรียงคอลัมน์และแถวแบบกำหนดเอง คุณจะได้เห็นวิธีตั้งค่าคอลัมน์ วิธีตั้งค่าแถว และวิธีบันทึกภาพที่ได้โดยไม่ต้องออกจาก IDE + +The tutorial covers: + +* การสร้างตัวสร้างบาร์โค้ดสำหรับสัญลักษณ์ **databar expanded stacked** +* การกำหนดค่าเลย์เอาต์ 4‑คอลัมน์และ 3‑แถว +* การบันทึกแต่ละการกำหนดค่าเป็นไฟล์ PNG +* เคล็ดลับการจัดการกรณีขอบเช่นจำนวนคอลัมน์ที่ไม่ถูกต้อง + +ไม่มีเอกสารภายนอกที่จำเป็น; ตัวอย่างที่สมบูรณ์และสามารถรันได้รวมอยู่ในนี้ + +![ตัวอย่างบาร์โค้ด Databar expanded stacked](YOUR_DIRECTORY/DatabarCols4.png){: .center alt="บาร์โค้ด databar expanded stacked ที่สร้างด้วย C#" } + +## ขั้นตอนการสร้างบาร์โค้ด Databar expanded stacked + +### 1. ติดตั้งไลบรารี Aspose.BarCode + +โค้ดนี้ใช้ไลบรารี **Aspose.BarCode for .NET** ซึ่งให้คลาส `BarcodeGenerator` ติดตั้งแพ็กเกจ NuGet ด้วยคำสั่งต่อไปนี้: + +```bash +dotnet add package Aspose.BarCode +``` + +หลังจากติดตั้งแพ็กเกจแล้ว ให้เพิ่มเนมสเปซที่จำเป็นที่ส่วนหัวของไฟล์ของคุณ: + +```csharp +using Aspose.BarCode.Generation; +``` + +### 2. สร้างตัวสร้างบาร์โค้ดสำหรับ **databar expanded stacked** + +ตัวสร้างเป็นจุดเริ่มต้นสำหรับการทำงานกับบาร์โค้ดทั้งหมด คุณต้องระบุสัญลักษณ์ (`EncodeTypes.DatabarExpandedStacked`) และข้อความที่ต้องการเข้ารหัส + +```csharp +// Step 1: Create a barcode generator for Databar Expanded Stacked +BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); +``` + +*Why this matters:* enum `EncodeTypes` บอกไลบรารีว่าต้องสร้างรูปแบบบาร์โค้ดใด การใช้ **databar expanded stacked** จะทำให้ภาพที่ได้สอดคล้องกับสเปค GS1 DataBar สำหรับเลย์เอาต์แบบ stacked + +### 3. วิธีตั้งค่าคอลัมน์สำหรับ DataBar + +คุณสมบัติ `Columns` ควบคุมจำนวนโมดูลแนวตั้งที่ปรากฏในบาร์โค้ดแบบ stacked ค่าที่ถูกต้องคือ 2, 3 หรือ 4 การตั้งค่าคอลัมน์จะส่งผลต่อความกว้างของบาร์โค้ดและปริมาณข้อมูลที่สามารถเก็บได้ + +```csharp +// Step 2: Configure a 4‑column layout +barcode.Parameters.Barcode.DataBar.Columns = 4; +``` + +**Tip:** หากคุณพยายามกำหนดค่าที่อยู่นอกช่วงที่อนุญาต ไลบรารีจะโยน `ArgumentException` ควรตรวจสอบค่าที่รับเข้ามาเสมอเมื่อให้ผู้ใช้เลือกคอลัมน์ + +### 4. บันทึกภาพบาร์โค้ด 4‑คอลัมน์ + +การบันทึกภาพจะสร้างไฟล์ที่คุณสามารถฝังในรายงาน ใบแจ้งหนี้ หรือแอปมือถือได้ วิธี `Save` รับพาธไฟล์และรูปแบบภาพเป็นพารามิเตอร์ + +```csharp +// Step 3: Save the 4‑column barcode image +barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); +``` + +เมื่อไฟล์ถูกเขียนเสร็จ คุณสามารถเปิดด้วยโปรแกรมดูภาพใดก็ได้เพื่อยืนยันว่ารูปแบบ **databar expanded stacked** ปรากฏอย่างถูกต้อง + +### 5. วิธีตั้งค่าแถวสำหรับ DataBar + +แถวเพิ่มมิติที่สองให้กับเลย์เอาต์แบบ stacked ทำให้สามารถเข้ารหัสข้อมูลได้มากขึ้นโดยไม่ต้องขยายความกว้างของบาร์โค้ด คุณสมบัติ `Rows` มีค่าเริ่มต้นเป็น 1; คุณสามารถเพิ่มได้สูงสุดถึง 3 สำหรับเวอร์ชัน expanded stacked + +```csharp +// Step 4: Switch to a 3‑row layout (columns remain unchanged) +barcode.Parameters.Barcode.DataBar.Rows = 3; +``` + +**Why rows matter:** การเพิ่มแถวจะลดความกว้างโดยรวมในขณะที่ยังคงความจุข้อมูลไว้ ซึ่งเป็นประโยชน์สำหรับป้ายแคบหรือหน้าจอมือถือที่มีพื้นที่จำกัด + +### 6. บันทึกภาพบาร์โค้ด 3‑แถว + +```csharp +// Step 5: Save the 3‑row barcode image +barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); +``` + +ตอนนี้คุณมีไฟล์ PNG สองไฟล์—หนึ่งไฟล์ที่มีเลย์เอาต์ 4‑คอลัมน์และอีกไฟล์ที่มีเลย์เอาต์ 3‑แถว—ทั้งสองใช้สัญลักษณ์ **databar expanded stacked** + +### 7. ตัวอย่าง C# สมบูรณ์เพื่อสร้างภาพบาร์โค้ด + +การรวมขั้นตอนทั้งหมดเข้าด้วยกันจะได้โปรแกรมที่ทำงานอิสระซึ่งคุณสามารถคัดลอกไปใส่ในแอปพลิเคชันคอนโซลได้: + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace DatabarExpandedStackedDemo +{ + class Program + { + static void Main() + { + // Create the generator for Databar Expanded Stacked + BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); + + // Configure a 4‑column layout and save + barcode.Parameters.Barcode.DataBar.Columns = 4; + barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); + Console.WriteLine("4‑column barcode saved."); + + // Change to a 3‑row layout (columns stay at 4) and save + barcode.Parameters.Barcode.DataBar.Rows = 3; + barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); + Console.WriteLine("3‑row barcode saved."); + } + } +} +``` + +**Expected output** + +การรันโปรแกรมจะแสดงผล: + +``` +4‑column barcode saved. +3‑row barcode saved. +``` + +และสร้างไฟล์ PNG สองไฟล์ใน `YOUR_DIRECTORY` เปิดไฟล์เหล่านั้นเพื่อยืนยันว่าภาพแต่ละภาพแสดงบาร์โค้ด **databar expanded stacked** ที่ถูกต้อง + +## ปัญหาที่พบบ่อยและเคล็ดลับปฏิบัติ + +* **Directory existence** – `Save` ไม่ได้สร้างโฟลเดอร์ที่หายไป ตรวจสอบให้แน่ใจว่า `YOUR_DIRECTORY` มีอยู่หรือใช้ `Directory.CreateDirectory` ก่อนบันทึก +* **Column limits** – ค่าที่ไม่ใช่ 2, 3 หรือ 4 จะทำให้เกิดข้อยกเว้น ใช้การตรวจสอบช่วงง่าย ๆ เพื่อป้องกันข้อผิดพลาดจากผู้ใช้: + + ```csharp + int columns = 4; + if (columns < 2 || columns > 4) throw new ArgumentOutOfRangeException(nameof(columns)); + barcode.Parameters.Barcode.DataBar.Columns = columns; + ``` + +* **Row limits** – เวอร์ชัน expanded stacked รองรับได้สูงสุด 3 แถว การตั้งค่า `Rows` เป็น 0 หรือค่าที่มากกว่า 3 จะทำให้เกิดข้อยกเว้นเช่นกัน +* **Image format** – `BarCodeImageFormat.Png` ให้คุณภาพแบบ lossless ซึ่งเหมาะสำหรับการพิมพ์ ใช้ `Jpeg` ก็ต่อเมื่อขนาดไฟล์เป็นปัจจัยสำคัญ + +## ขั้นตอนต่อไป + +ตอนนี้คุณรู้แล้วว่า **วิธีการสร้างบาร์โค้ด** ด้วยการกำหนดค่าคอลัมน์และแถวแบบกำหนดเอง คุณสามารถ: + +* ผสานตัวสร้างเข้ากับ Web API เพื่อให้บริการภาพบาร์โค้ดตามความต้องการ +* รวมบาร์โค้ดกับไลบรารีการสร้าง PDF เพื่อฝังลงในใบแจ้งหนี้ +* ทดลองใช้ DataBar เวอร์ชันอื่น (`DatabarExpanded`, `DatabarLimited`) ด้วยอ็อบเจกต์ `Parameters.Barcode.DataBar` เดียวกัน + +สำหรับการปรับแต่งขั้นสูง เช่น การเปลี่ยนสีของบาร์, การเพิ่มข้อความที่อ่านได้โดยมนุษย์, หรือการใส่ overlay QR‑code ให้ดูเอกสาร Aspose.BarCode เกี่ยวกับคุณสมบัติของ `BarcodeGenerator` + +--- + +โดยการทำตามคู่มือนี้คุณได้เชี่ยวชาญกระบวนการ **databar expanded stacked**, เรียนรู้ **วิธีตั้งค่าคอลัมน์**, **วิธีตั้งค่าแถว**, และสร้างภาพบาร์โค้ดสองแบบที่พร้อมใช้งานในงานผลิตจริง ขอให้สนุกกับการเขียนโค้ด! + +## คุณควรเรียนรู้อะไรต่อไป? + +บทแนะนำต่อไปนี้ครอบคลุมหัวข้อที่เกี่ยวข้องอย่างใกล้ชิดและต่อยอดจากเทคนิคที่แสดงในคู่มือนี้ แต่ละแหล่งรวมตัวอย่างโค้ดที่ทำงานได้เต็มรูปแบบพร้อมคำอธิบายทีละขั้นตอนเพื่อช่วยให้คุณเชี่ยวชาญฟีเจอร์ API เพิ่มเติมและสำรวจแนวทางการทำงานทางเลือกในโครงการของคุณเอง + +- [Generate barcode image – GS1 Coupon UPC-A Databar](/barcode/english/net/gs1-barcode-encoding/gs1-coupon-upc-a-databar-configuration/) +- [Create DotCode barcode image – rows & columns (Aspose.BarCode)](/barcode/english/net/dotcode-barcode-configuration/dotcode-rows-columns-configuration/) +- [How to Generate Barcode - One-Dimensional Barcode Types](/barcode/english/net/one-dimensional-barcode-types/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/thai/python-java/general/how-to-set-barcode-complete-c-guide/_index.md b/barcode/thai/python-java/general/how-to-set-barcode-complete-c-guide/_index.md new file mode 100644 index 000000000..f0ac291fc --- /dev/null +++ b/barcode/thai/python-java/general/how-to-set-barcode-complete-c-guide/_index.md @@ -0,0 +1,234 @@ +--- +category: general +date: 2026-08-15 +description: วิธีตั้งค่าพารามิเตอร์บาร์โค้ดใน C# และสร้างภาพบาร์โค้ด เรียนรู้ขั้นตอนต่อขั้นตอนเพื่อสร้างบาร์โค้ด + Databar และบันทึกเป็นไฟล์ PNG +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to set barcode +- how to generate barcode +- create databar barcode +- generate barcode image c# +language: th +lastmod: 2026-08-15 +og_description: วิธีตั้งค่า barcode ใน C# ด้วย Aspose.Barcode แล้วสร้างภาพ barcode + C# ตามคำแนะนำนี้เพื่อสร้าง Databar barcode และบันทึกเป็นไฟล์ PNG. +og_image_alt: Screenshot of a Databar barcode saved as PNG using C# code +og_title: วิธีตั้งค่าโค้ดบาร์ใน C# – คู่มือขั้นตอนโดยละเอียด +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: How to set barcode parameters in C# and generate barcode images. Learn + step‑by‑step to create Databar barcode and save PNG files. + headline: How to set barcode – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.Barcode +title: วิธีตั้งค่า Barcode – คู่มือ C# ฉบับสมบูรณ์ +url: /th/python-java/general/how-to-set-barcode-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# วิธีตั้งค่า barcode – คู่มือ C# ฉบับสมบูรณ์ + +หากคุณกำลังมองหา **how to set barcode** parameters ในโครงการ .NET นี้ บทแนะนำจะแสดงขั้นตอนที่คุณต้องการอย่างชัดเจน คุณจะได้เรียนรู้ **how to generate barcode** images, สร้าง Databar barcode, และควบคุมความสูงของบาร์พิกเซลต่อพิกเซล — ทั้งหมดด้วยโค้ด C# ที่สะอาดและพร้อมใช้งานในสภาพแวดล้อมการผลิต + +ในคู่มือนี้คุณจะ: + +* ติดตั้งแพคเกจ NuGet ที่จำเป็น +* สร้าง Databar Omnidirectional barcode (ส่วน “create Databar barcode”) +* ปรับ X‑dimension และความสูงของบาร์เพื่อสาธิต **how to set barcode** dimensions +* บันทึกผลลัพธ์เป็นไฟล์ PNG, ครอบคลุมสถานการณ์ **generate barcode image C#** + +โค้ดทำงานกับ Aspose.Barcode for .NET รุ่นล่าสุด (v 24.12 ณ เวลาที่เขียน) และทำงานบน .NET 6 หรือใหม่กว่า + +--- + +## ข้อกำหนดเบื้องต้น + +ก่อนเริ่มทำงาน โปรดตรวจสอบว่าคุณมี: + +* .NET 6 SDK (หรือเวอร์ชันที่ใหม่กว่า) +* IDE เช่น Visual Studio 2022 หรือ VS Code +* การเชื่อมต่ออินเทอร์เน็ตเพื่อดาวน์โหลดแพคเกจ NuGet ของ Aspose.Barcode + +ไม่ต้องใช้ไลบรารีของบุคคลที่สามเพิ่มเติม + +--- + +## ขั้นตอนที่ 1: ติดตั้ง Aspose.Barcode สำหรับ .NET + +วิธีที่เชื่อถือได้ที่สุดในการ **generate barcode** images ใน C# คือการใช้ Aspose.Barcode เปิดเทอร์มินัลในโฟลเดอร์โครงการของคุณและรัน: + +```bash +dotnet add package Aspose.BarCode +``` + +คำสั่งจะเพิ่มเวอร์ชันเสถียรล่าสุดลงในไฟล์โครงการของคุณ ทำให้คุณมีคลาส `BarcodeGenerator` และ enumeration `EncodeTypes` + +*Pro tip:* Keep the package up to date (`dotnet list package --outdated`) to benefit from bug fixes and new barcode symbologies. + +--- + +## ขั้นตอนที่ 2: สร้าง Databar barcode (create Databar barcode) + +Databar Omnidirectional เหมาะอย่างยิ่งสำหรับการค้าปลีกและโลจิสติกส์ เนื่องจากสามารถเข้ารหัสค่า GTIN‑14 พร้อมข้อมูลเพิ่มเติม โค้ดต่อไปนี้สร้างอ็อบเจกต์ barcode: + +```csharp +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +// Step 2: Initialize the generator for a Databar Omnidirectional barcode +BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); +``` + +*Why this matters:* The `EncodeTypes.DatabarOmniDirectional` enum tells the library to use the Databar symbology, while the string `"(01)12345678901231"` follows the GS1 Application Identifier format for a 14‑digit GTIN. + +--- + +## ขั้นตอนที่ 3: กำหนดพารามิเตอร์ทั่วไป – X‑dimension และความสูงฐาน + +สแกนเนอร์ส่วนใหญ่คาดหวัง X‑dimension ขั้นต่ำ (ความกว้างของบาร์ที่แคบที่สุด) การตั้งค่าเป็น 2 pixels จะให้ภาพที่กระชับแต่ยังอ่านได้ชัดเจน + +```csharp +// Step 3: Set a 2‑pixel X‑dimension (common for most scanners) +generator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +คุณสามารถปรับความสูงของบาร์ในภายหลังโดยไม่ต้องสร้าง generator ใหม่ — นี่คือหัวใจของ **how to set barcode** attributes after instantiation + +--- + +## ขั้นตอนที่ 4: ตั้งค่าความสูงบาร์แรกและบันทึกภาพ (generate barcode image C#) + +ตอนนี้เราจะแสดงส่วนแรกของ **how to set barcode** height ความสูงของบาร์ควบคุมความยาวของบาร์แต่ละบาร์; ค่า 30 pixels จะให้ barcode สั้น ส่วน 60 pixels จะสร้างเวอร์ชันที่สูงกว่า + +```csharp +// Step 4a: 30‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 30; + +// Save the first PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); +``` + +หลังจากรันเสร็จ `DatabarBarHeight30Pixels.png` จะมี Databar barcode ที่บาร์สูง 30 pixels เปิดไฟล์ด้วยโปรแกรมดูรูปใดก็ได้เพื่อยืนยันผลลัพธ์ + +--- + +## ขั้นตอนที่ 5: เปลี่ยนความสูงบาร์และบันทึกภาพที่สอง + +เพื่อแสดงให้เห็นว่า **how to set barcode** values สามารถเปลี่ยนได้แบบไดนามิก เราจะปรับความสูงบาร์เป็น 60 pixels และบันทึกไฟล์ที่สอง + +```csharp +// Step 5a: 60‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 60; + +// Save the second PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); +``` + +ตอนนี้คุณมีไฟล์ PNG สองไฟล์ที่แสดงข้อมูล Databar เดียวกันแต่ความสูงภาพต่างกัน ซึ่งมีประโยชน์เมื่อคุณต้องการ barcode ขนาดใหญ่สำหรับป้ายพิมพ์หรือขนาดเล็กสำหรับแสดงบนหน้าจอ + +--- + +## ขั้นตอนที่ 6: ตัวอย่างเต็มที่สามารถรันได้ + +รวมทุกอย่างเข้าด้วยกัน นี่คือตัวอย่างโปรแกรมคอนโซลที่ทำทุกขั้นตอนที่อธิบายไว้ข้างต้น คัดลอกโค้ดไปยังไฟล์ `Program.cs` ใหม่ แทนที่ `YOUR_DIRECTORY` ด้วยเส้นทางโฟลเดอร์จริง แล้วรัน + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Initialize the generator for a Databar Omnidirectional barcode + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); + + // Common parameters + generator.Parameters.Barcode.XDimension.Pixels = 2; // 2‑pixel narrow bar + + // First image: 30‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 30; + generator.Save(@"C:\Barcodes\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 30‑pixel barcode."); + + // Second image: 60‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 60; + generator.Save(@"C:\Barcodes\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 60‑pixel barcode."); + + // Dispose the generator to free native resources + generator.Dispose(); + } +} +``` + +**Expected output** + +เมื่อคุณรันโปรแกรม คอนโซลจะแสดง: + +``` +Saved 30-pixel barcode. +Saved 60-pixel barcode. +``` + +และโฟลเดอร์ `C:\Barcodes` (หรือเส้นทางที่คุณระบุ) จะมีไฟล์ PNG สองไฟล์ ทั้งสองภาพแสดง Databar Omnidirectional barcode ที่สามารถสแกนด้วยเครื่องอ่าน GS1 มาตรฐานได้ + +--- + +## คำถามที่พบบ่อย + +**Does this work with other image formats?** +ใช่. แทนที่ `BarCodeImageFormat.Png` ด้วย `Jpeg`, `Bmp`, `Gif` หรือ `Tiff` เพื่อสร้างไฟล์ประเภทที่ต้องการ + +**Can I change the foreground color?** +ตั้งค่า `generator.Parameters.Barcode.ForeColor` ให้เป็นค่า `System.Drawing.Color` ใดก็ได้ เช่น `Color.Blue` + +**What if I need a different symbology?** +ส่งค่า `EncodeTypes` ที่แตกต่างไปยังคอนสตรัคเตอร์ เช่น `EncodeTypes.Code128` สำหรับ barcode แบบเชิงเส้น หรือ `EncodeTypes.QR` สำหรับรหัสเมทริกซ์ + +**Is there a way to embed the barcode in a PDF?** +Aspose.Barcode มีคลาส `PdfGenerator` หลังจากสร้างภาพแล้ว คุณสามารถเพิ่มภาพลงในหน้า PDF ด้วย Aspose.PDF + +--- + +## แนวทางปฏิบัติที่ดีที่สุดสำหรับการสร้าง barcode ใน C# + +* **Reuse the `BarcodeGenerator` instance** เมื่อคุณต้องการปรับขนาดเท่านั้น — จะช่วยลดการจัดสรรหน่วยความจำที่ไม่จำเป็น +* **Dispose the generator** (`generator.Dispose()`) หลังใช้งานเพื่อปล่อยทรัพยากรเนทีฟโดยเร็ว +* **Validate input data** (เช่น ความยาว GTIN) ก่อนสร้าง barcode เพื่อป้องกันข้อยกเว้นขณะรัน +* **Test with a physical scanner** หลังปรับ X‑dimension หรือความสูงบาร์; ค่าที่สุดขีดอาจทำให้สแกนอ่านไม่ได้ +* **Keep the output folder writable** สำหรับบัญชีผู้ใช้ที่รันโปรแกรม; มิฉะนั้น `Save` จะโยน `UnauthorizedAccessException` + +--- + +## สรุป + +คุณได้เรียนรู้ **how to set barcode** properties เช่น X‑dimension และความสูงของบาร์, **how to generate barcode** images ใน C#, และขั้นตอนที่แน่นอนในการ **create Databar barcode** ด้วย Aspose.Barcode ด้วยตัวอย่างเต็ม คุณสามารถสร้างไฟล์ PNG หลายไฟล์ที่มีลักษณะภาพต่างกัน เพื่อตอบสนองความต้องการ **generate barcode image C#** ของแอปพลิเคชัน .NET ใดก็ได้ + +ต่อไปให้สำรวจหัวข้อที่เกี่ยวข้อง เช่น **how to generate barcode** แบบจำนวนมาก, การฝัง barcode ลงใน PDF, หรือการสลับไปใช้ symbology อื่น ๆ เช่น QR หรือ Code 128 ทดลองปรับพารามิเตอร์ที่แสดงในนี้เพื่อปรับแต่งลักษณะ barcode ให้เหมาะกับสภาพแวดล้อมการสแกนของคุณเอง Happy coding! + +## คุณควรเรียนรู้อะไรต่อไป? + +บทแนะนำต่อไปนี้ครอบคลุมหัวข้อที่เกี่ยวข้องอย่างใกล้ชิดและต่อยอดจากเทคนิคในคู่มือนี้ แต่ละแหล่งรวมตัวอย่างโค้ดทำงานเต็มรูปแบบพร้อมคำอธิบายทีละขั้นตอน เพื่อช่วยคุณเชี่ยวชาญฟีเจอร์ API เพิ่มเติมและสำรวจแนวทางการนำไปใช้แบบต่าง ๆ ในโครงการของคุณ + +- [วิธีสร้าง DataMatrix Barcode (ECC 200) ด้วย Aspose.BarCode สำหรับ .NET](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-ecc-200-configuration/) +- [วิธีสร้าง Aztec barcode ด้วยอัตราส่วนภาพที่กำหนดเองโดยใช้ Aspose.BarCode สำหรับ .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [วิธีสร้าง Barcode – การกำหนดค่า Code 39 ด้วย Aspose.BarCode](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-code-39-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/turkish/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md b/barcode/turkish/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md new file mode 100644 index 000000000..ef91ad037 --- /dev/null +++ b/barcode/turkish/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md @@ -0,0 +1,149 @@ +--- +category: general +date: 2026-08-15 +description: C#'ta barkod görüntüsü PNG – posta barkodları oluşturmayı, Planet barkodu + yaratmayı ve basit bir jeneratörle barkod yüksekliğini değiştirmeyi öğrenin. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- barcode image png +- barcode generator c# +- generate postal barcode +- create planet barcode +- change barcode height +language: tr +lastmod: 2026-08-15 +og_description: C#'ta Barcode image PNG öğreticisi, posta barkodları oluşturmayı, + Planet barkodu yaratmayı ve BarcodeGenerator API'si kullanarak barkod yüksekliğini + değiştirmeyi gösterir. +og_image_alt: Screenshot of generated PNG barcode with custom height using C# BarcodeGenerator +og_title: C#'ta Barkod Görüntüsü PNG – Barkodları Oluştur ve Ayarla +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Barcode image PNG in C# – learn how to generate postal barcodes, create + a Planet barcode, and change barcode height with a simple generator. + headline: Barcode image PNG in C# generate barcodes, change height + type: TechArticle +tags: +- barcode +- C# +- PNG +- postal +- generator +title: 'C#''de Barkod Görüntüsü PNG: Barkod Oluşturma, Yüksekliği Değiştirme' +url: /tr/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#'ta Barcode Görüntüsü PNG – barkod oluşturma, yüksekliği değiştirme + +Eğer C#'ta bir **barcode image PNG**'ye ihtiyacınız varsa, bu rehber sizi sürecin tamamından geçirir. Posta barkodları oluşturmayı, Planet barkodu yaratmayı ve barkod yüksekliğini IDE'nizden çıkmadan değiştirmeyi öğreneceksiniz. + +Güvenilir PNG barkodları oluşturmak, gönderi etiketleri, envanter sistemleri ve otomatik posta çözümleri için yaygın bir gereksinimdir. Bu öğreticinin sonunda, hem Planet hem de RM4SCC formatları için yüksek kaliteli PNG dosyaları üreten yeniden kullanılabilir bir kod parçacığına sahip olacak ve posta standartlarına uygun şekilde çubuk yüksekliğini nasıl ayarlayacağınızı anlayacaksınız. + +## Gereksinimler + +- .NET 6+ veya .NET Framework 4.7.2 (BarcodeGenerator API'si herhangi bir yeni .NET çalışma zamanı ile çalışır) +- **Aspose.BarCode for .NET** NuGet paketine referans (veya `BarcodeGenerator`, `EncodeTypes` ve `BarCodeImageFormat` sağlayan herhangi bir uyumlu kütüphane) +- C# sözdizimi ve dosya G/Ç konusunda temel bilgi + +Ek bir araç gerekmez; kod Visual Studio, Rider veya `dotnet` CLI'da çalışır. + +## Barcode Görüntüsü PNG – temel oluşturma + +İlk adım, varsayılan boyutlarla bir **barcode image PNG** oluşturmaktır. Bu, daha sonra özelleştirebileceğiniz temel dosyayı oluşturur. + +```csharp +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +// Define the output folder (replace with your own path) +string outputFolder = @"C:\Barcodes"; + +// Ensure the folder exists +Directory.CreateDirectory(outputFolder); + +// 1️⃣ Create a Planet barcode generator with default height +BarcodeGenerator planetGenerator = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + +// Set the module width (X‑dimension) to 4 pixels – this defines the thin bar size +planetGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the image as PNG; this is the first **barcode image PNG** you’ll produce +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +**Neden bu şekilde çalışır:** +- `EncodeTypes.Planet` jeneratöre Planet sembolojisini kullanmasını söyler; bu, birçok posta servisi için gereklidir. +- `XDimension.Pixels` en küçük çubuğun genişliğini kontrol eder; 4 px değeri tipik etiket boyutlarında okunabilir bir barkod sağlar. +- `Save` yöntemi bir **barcode image PNG** dosyasını diske yazar, tüm vektör bilgilerini raster pikseller olarak korur. + +## Barkod yüksekliğini değiştir – görsel ağırlığı özelleştirme + +Posta yönergeleri genellikle belirli bir çubuk yüksekliği gerektirir. Aşağıdaki kod parçacığı, aynı Planet barkodu için özel 100 piksel yüksekliğin nasıl ayarlanacağını gösterir. + +```csharp +// 2️⃣ Apply a custom 100‑pixel bar height +planetGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Overwrite or save as a new file to keep both versions +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +**Yüksekliği neden değiştirirsiniz:** +Daha uzun bir çubuk, düşük çözünürlüklü yazıcılarda tarama güvenilirliğini artırırken, daha kısa bir çubuk etiket alanını azaltır. `BarHeight.Pixels` özelliği, X‑boyutunu etkilemeden bu parametreyi ince ayar yapmanıza olanak tanır. + +## Posta barkodu oluştur – RM4SCC örneği oluşturma + +RM4SCC formatı, Birleşik Krallık'ta kullanılan bir başka yaygın posta barkodudur. Oluşturma adımları Planet örneğini yansıtır ve **barcode generator c#** desenini pekiştirir. + +```csharp +// 3️⃣ Create an RM4SCC barcode generator with default height +BarcodeGenerator rm4sccGenerator = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Keep the same module width for consistency +rm4sccGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the default‑height PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +## Barkod yüksekliğini değiştir – RM4SCC varyasyonu + +Planet barkodu gibi, RM4SCC çubuğunun yüksekliğini de ayarlayabilirsiniz. Aşağıdaki kod, yüksekliği 100 px olarak ayarlar ve aynı veri dizesi için ikinci bir **barcode image PNG** üretir. + +```csharp +// 4️⃣ Set a custom 100‑pixel bar height for RM4SCC +rm4sccGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Save the customized PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +## Tam, çalıştırılabilir örnek + +Tüm adımları bir araya getirdiğinizde dört PNG dosyası oluşturan tek bir, bağımsız program elde edersiniz: + + + +## Sonra Ne Öğrenmelisiniz? + +Aşağıdaki öğreticiler, bu rehberde gösterilen tekniklere dayanan ve yakından ilgili konuları kapsar. Her kaynak, ek API özelliklerini ustalaşmanıza ve kendi projelerinizde alternatif uygulama yaklaşımlarını keşfetmenize yardımcı olmak için adım adım açıklamalarla tam çalışan kod örnekleri içerir. + +- [Barkod Özel Yükseklik Oluştur – Tek Boyutlu Barkodlar](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-barcode-height-adjustment/) +- [Barkod PNG Oluştur – DataMatrix En‑Boy Oranı – Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-aspect-ratio-customization/) +- [Barkod Görüntüsü C# Oluştur – GS1 DataMatrix Örneği](/barcode/english/net/gs1-barcode-encoding/gs1-datamatrix-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/turkish/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md b/barcode/turkish/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md new file mode 100644 index 000000000..e7c1cee15 --- /dev/null +++ b/barcode/turkish/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-08-15 +description: C#'ta gezegen barkodu oluşturun ve mükemmel boyutlandırma için barkod + boyutlarını nasıl ayarlayacağınızı öğrenin. Dolu ve boş çubuklarla adım adım kod + örneği. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create planet barcode +- how to set barcode dimensions +- planet barcode C# +- barcode X‑dimension +- empty barcode bars +language: tr +lastmod: 2026-08-15 +og_description: C#'ta gezegen barkodu oluşturun ve barkod boyutlarını nasıl ayarlayacağınızı + öğrenin. Dolu ve boş Planet barkodlarını anında oluşturmak için bu rehberi izleyin. +og_image_alt: Screenshot showing a Planet barcode with filled bars generated by C# + code +og_title: C#'ta gezegen barkodu oluşturma – tam adım adım rehber +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Create planet barcode in C# and learn how to set barcode dimensions + for perfect sizing. Step‑by‑step code example with filled and empty bars. + headline: Create planet barcode in C# – complete programming guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.BarCode +title: C# ile gezegen barkodu oluşturma – kapsamlı programlama rehberi +url: /tr/python-java/general/create-planet-barcode-in-c-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#'ta Planet barkodu oluşturma – tam programlama rehberi + +C#'ta **planet barkodu oluşturmanız** gerekiyorsa, bu rehber tam olarak nasıl yapılacağını gösterir. Ayrıca **barkod boyutlarını nasıl ayarlayacağınızı** keşfedecek ve çubukların istediğiniz tam genişlikte görüntülenmesini sağlayacaksınız. + +Planet barkodları oluşturmak, posta hizmetleri veya lojistik sistemleriyle çalışırken yaygındır. Aşağıdaki kod, varsayılan dolu‑çubuk sürümünü ve isteğe bağlı boş‑çubuk stilini kapsar, ayrıca RM4SCC formatı için hızlı bir örnek içerir. Bu öğreticinin sonunda, herhangi bir .NET projesine ekleyebileceğiniz yeniden kullanılabilir bir kod parçacığına sahip olacaksınız. + +## Önkoşullar + +* .NET 6.0 veya daha yeni bir sürüm yüklü olmalı (API, .NET Framework 4.6+ ile de çalışır) +* **Aspose.BarCode for .NET** NuGet paketi (`Aspose.BarCode`) projenize eklenmiş olmalı +* PNG dosyalarının kaydedileceği yazılabilir bir klasör yolu +* C# sözdizimi ve Visual Studio (veya herhangi bir IDE) hakkında temel bilgi + +> **Pro ipucu:** Görüntüleri kaydederken izin sorunlarından kaçınmak için mutlak bir yol veya `Path.Combine(Environment.CurrentDirectory, "output")` kullanın. + +## 1. Adım – Planet barkodu oluşturucusunu başlatma (dolu çubuklar) + +İlk adım, Planet sembolü için bir `BarcodeGenerator` örneği oluşturmaktır. Varsayılan olarak oluşturucu **dolu** çubuklar üretir. + +```csharp +// Step 1: Create a Planet barcode with the default (filled) bars +BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +`EncodeTypes.Planet` enum'u, Aspose.BarCode'e Planet formatını kullanmasını söyler, `"123456"` ise kodlanacak veri yüküdür. + +## 2. Adım – Tutarlı boyutlandırma için barkod boyutlarını nasıl ayarlarsınız + +Her bir çubuğun genişliğini kontrol etmek için **X‑dimension** ayarlanır. Bu, **barkod boyutlarını ayarlamanın** birincil yoludur ve barkodun etiket boyutunuza uymasını sağlar. + +```csharp +// Step 2: Set the X‑dimension (width of each bar) to 4 pixels +planetFilled.Parameters.Barcode.XDimension.Pixels = 4; +``` + +`Pixels` özelliği, çubuk genişliğini ekran pikseli cinsinden tanımlar. Standart posta etiketleri için yaygın değerler 2 – 5 piksel arasındadır; daha büyük baskılar için değeri artırın. + +## 3. Adım – Dolu Planet barkodunu PNG olarak kaydetme + +Şimdi görüntüyü diske yazın. PNG, net kenarları korur ve tarama için idealdir. + +```csharp +// Step 3: Save the Planet barcode as a PNG image +planetFilled.Save("YOUR_DIRECTORY/PostalPlanetFilledBars.png", BarCodeImageFormat.Png); +``` + +`YOUR_DIRECTORY` ifadesini önceden hazırladığınız yol ile değiştirin. Bu kodu çalıştırdıktan sonra aşağıdaki görüntüye benzer bir dosya göreceksiniz. + +![Dolu çubuklu Planet barkodu](planet_filled.png "Dolu çubuklu Planet barkodu – C# kodu ile oluşturuldu") + +*Alt metin:* **C# kodu ile oluşturulmuş dolu çubuklu Planet barkodu** (matches `og_image_alt`). + +## 4. Adım – Boş (dolgusuz) çubuklu Planet barkodu oluşturma + +Posta hizmetiniz çubukların **boş** olmasını gerektiriyorsa, oluşturucuyu başlattıktan sonra `FilledBars` bayrağını değiştirmeniz gerekir. + +```csharp +// Step 4: Create a Planet barcode with empty (unfilled) bars +BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +Yapıcı aynı; fark bir sonraki yapılandırma adımında ortaya çıkar. + +## 5. Adım – Barkod boyutlarını ayarlama ve çubukları boş yapma + +Yine, görsel tutarlılık için X‑dimension'ı ayarlayın, ardından dolu çubukları devre dışı bırakın. + +```csharp +// Step 5: Set the X‑dimension and specify that bars should be empty +planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; +planetEmpty.Parameters.Barcode.FilledBars = false; // makes bars empty +``` + +`FilledBars = false` özelliği, render stilini gerçekten değiştirir. Aynı X‑dimension'ı korumak, boş‑çubuk barkodunun dolu sürümle mükemmel hizalanmasını sağlar. + +## 6. Adım – Boş Planet barkodunu kaydetme + +```csharp +// Step 6: Save the Planet barcode with empty bars as a PNG image +planetEmpty.Save("YOUR_DIRECTORY/PostalPlanetEmptyBars.png", BarCodeImageFormat.Png); +``` + +Artık iki PNG dosyanız olacak: biri katı çubuklu, diğeri boş çubuklu, ikisi de aynı boyutları paylaşacak. + +## 7. Adım – (İsteğe Bağlı) Karşılaştırma için RM4SCC barkodu oluşturma + +RM4SCC, aynı varsayılan dolu‑çubuk stilini kullanan başka bir posta sembolüdür. Adımlar, Planet örneğini yansıtır ve **barkod boyutlarını nasıl ayarlayacağınız**'ın formatlar arasında çalıştığını gösterir. + +```csharp +// Step 7: Create an RM4SCC barcode (filled bars are the default) +BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Step 8: Set the X‑dimension for consistency +rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + +// Step 9: Save the RM4SCC barcode as a PNG image +rm4scc.Save("YOUR_DIRECTORY/PostalRM4SCCFilledBars.png", BarCodeImageFormat.Png); +``` + +Bu üç adımı çalıştırdığınızda `PostalRM4SCCFilledBars.png` oluşturulur; bunu Planet çıktılarıyla yan yana karşılaştırabilirsiniz. + +## X‑dimension'ın önemi + +X‑dimension, her bir çubuğun **minimum yazdırılabilir genişliğini** belirler. Çok düşük ayarlarsanız, barkod düşük çözünürlüklü yazıcılarda bulanıklaşabilir ve tarama hatalarına yol açar. Aksine, çok büyük bir X‑dimension etiket boyutlarını aşabilir ve alan kaybına neden olur. **Barkod boyutlarını nasıl ayarlayacağınızı** açıkça belirleyerek, son görüntü boyutu üzerinde kesin kontrol elde edersiniz; bu, otomatik posta iş akışları için çok önemlidir. + +## Yaygın tuzaklar ve nasıl önlenir + +| Sorun | Neden | Çözüm | +|-------|-------|-----| +| Barkod uzatılmış görünüyor | X‑dimension noktalar yerine piksellerle ayarlandığında | `Pixels` özelliğini her zaman piksel‑tam kontrol için kullanın | +| Boş çubuklar hâlâ dolu görünüyor | `FilledBars`, X‑dimension değiştirildikten sonra `false` olarak ayarlanmamış | `FilledBars = false`'ı X‑dimension'ı ayarladıktan *sonra* ayarlayın | +| Kaydedilen dosya boş | Çıktı dizini mevcut değil veya yazma izni yok | Dizinin var olduğundan emin olun (`Directory.CreateDirectory`) ve uygulamanızın yeterli izinle çalıştığını kontrol edin | +| Görüntü baskıda bulanık | Yüksek çözünürlüklü ekrandan düşük DPI PNG kaydedildi | `BarCodeImageFormat.Png` (kayıpsız) kullanın ve gerekirse `Resolution` özelliğini düşünün | + +## Tam, çalıştırılabilir örnek + +Aşağıdaki tüm bloğu yeni bir konsol projesine (`dotnet new console`) kopyalayın ve çalıştırın. Program, `output` klasöründe üç PNG dosyası oluşturur. + +```csharp +using System; +using System.IO; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Ensure output folder exists + string outDir = Path.Combine(Environment.CurrentDirectory, "output"); + Directory.CreateDirectory(outDir); + + // ---------- Planet barcode – filled bars ---------- + BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetFilled.Parameters.Barcode.XDimension.Pixels = 4; // set dimensions + planetFilled.Save(Path.Combine(outDir, "PostalPlanetFilledBars.png"), BarCodeImageFormat.Png); + + // ---------- Planet barcode – empty bars ---------- + BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; // same dimensions + planetEmpty.Parameters.Barcode.FilledBars = false; // make bars empty + planetEmpty.Save(Path.Combine(outDir, "PostalPlanetEmptyBars.png"), BarCodeImageFormat.Png); + + // ---------- RM4SCC barcode (filled bars) ---------- + BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; // consistent size + rm4scc.Save(Path.Combine(outDir, "PostalRM4SCCFilledBars.png"), BarCodeImageFormat.Png); + + Console.WriteLine($"Barcodes generated in: {outDir}"); + } +} +``` + +**Beklenen çıktı:** üç PNG dosyası—`PostalPlanetFilledBars.png`, `PostalPlanetEmptyBars.png` ve `PostalRM4SCCFilledBars.png`—her biri 4 piksel genişliğinde çubuklar içerir, baskı veya sonraki işlem için hazır. + +## Sonuç + +Artık C#'ta **planet barkodu oluşturmayı** ve dolu ve boş çubuk stilleri için **barkod boyutlarını nasıl ayarlayacağınızı** kesin olarak biliyorsunuz. Aynı desen, RM4SCC gibi diğer sembollere de uygulanır ve herhangi bir posta‑barkodu ihtiyacı için esnek bir temel sağlar. + +Sonra, şunları keşfedebilirsiniz: + +* Barkodun altına insan tarafından okunabilir metin ekleme (`BarcodeGenerator.Parameters.Barcode.CodeText`) +* `Parameters.Barcode.BarColor` ile çubuk renklerini değiştirme +* Ölçeklenebilir baskı için vektör formatlarında (SVG, EPS) barkod oluşturma + +Farklı X‑dimension değerleri, veri dizileri ve çıktı formatlarıyla denemeler yapmaktan çekinmeyin; böylece belirli iş akışınıza uyarlayabilirsiniz. Kodlamanın tadını çıkarın! + +## Sonra Ne Öğrenmelisiniz? + +Aşağıdaki öğreticiler, bu rehberde gösterilen tekniklere dayanarak yakından ilgili konuları kapsar. Her kaynak, ek API özelliklerini öğrenmenize ve kendi projelerinizde alternatif uygulama yaklaşımlarını keşfetmenize yardımcı olmak için adım adım açıklamalar içeren tam çalışan kod örnekleri sunar. + +- [Code 16K için barkod sessiz bölgesi oluşturma (Aspose.BarCode for .NET kullanarak)](/barcode/english/net/code-16k-encoding/code-16k-quiet-zone-settings/) +- [ITF-14 için Barkod Sessiz Bölgesi Oluşturma (Aspose.BarCode for .NET kullanarak)](/barcode/english/net/itf-14-barcode-customization/itf-14-barcode-quiet-zone-configuration/) +- [.NET'te hata düzeltmeli Aztec barkodu oluşturma](/barcode/english/net/aztec-barcode-encoding/aztec-error-level-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/turkish/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md b/barcode/turkish/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md new file mode 100644 index 000000000..2eee0d9ed --- /dev/null +++ b/barcode/turkish/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md @@ -0,0 +1,238 @@ +--- +category: general +date: 2026-08-15 +description: Databar, C#'ta genişletilmiş yığılmış barkod oluşturmayı sağlar. Barkod + görüntüsü oluşturmayı, DataBar düzenleri için sütun ve satırları ayarlamayı öğrenin. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- databar expanded stacked +- generate barcode image +- how to generate barcode +- how to set columns +- how to set rows +language: tr +lastmod: 2026-08-15 +og_description: Databar, C#'ta genişletilmiş yığılmış barkod oluşturmayı sağlar. Barkod + görüntüleri oluşturmak, sütunları ayarlamak ve satırları verimli bir şekilde belirlemek + için bu adım adım kılavuzu izleyin. +og_image_alt: Screenshot of a databar expanded stacked barcode generated with C# +og_title: Databar genişletilmiş yığılmış – C#'ta barkod görüntüsü oluştur +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + headline: 'Databar expanded stacked: generate barcode image in C#' + type: TechArticle +- description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + name: 'Databar expanded stacked: generate barcode image in C#' + steps: + - name: 1. Install the Aspose.BarCode library + text: 'The code uses the **Aspose.BarCode for .NET** library, which provides the + `BarcodeGenerator` class. Install the NuGet package with the following command:' + - name: 2. Create a barcode generator for **databar expanded stacked** + text: The generator is the entry point for all barcode operations. You must specify + the symbology (`EncodeTypes.DatabarExpandedStacked`) and the text to encode. + - name: 3. How to set columns for DataBar + text: The `Columns` property controls how many vertical modules appear in the + stacked barcode. Valid values are 2, 3, or 4. Setting columns influences the + barcode’s width and the amount of data it can store. + - name: 4. Save the 4‑column barcode image + text: Saving the image produces a file that you can embed in reports, invoices, + or mobile apps. The `Save` method accepts a file path and an image format. + - name: 5. How to set rows for DataBar + text: Rows add a second dimension to the stacked layout, allowing more data to + be encoded without widening the barcode. The `Rows` property defaults to 1; + you can increase it up to 3 for the expanded stacked variant. + - name: 6. Save the 3‑row barcode image + text: '```csharp // Step 5: Save the 3‑row barcode image barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", + BarCodeImageFormat.Png); ```' + - name: 7. Complete C# example to generate barcode image + text: 'Putting all steps together yields a self‑contained program you can copy + into a console application:' + type: HowTo +tags: +- barcode +- C# +- Aspose.BarCode +title: 'Databar genişletilmiş yığılmış: C#''ta barkod resmi oluştur' +url: /tr/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Databar expanded stacked: C#'de barkod resmi oluşturma + +C#'de **databar expanded stacked** barkod resmi oluşturmanız gerekiyorsa, bu kılavuz size **barkod** resimlerini özel sütun ve satır düzenleriyle nasıl oluşturacağınızı tam olarak gösterir. Sütunları nasıl ayarlayacağınızı, satırları nasıl belirleyeceğinizi ve ortaya çıkan resimleri IDE'den çıkmadan nasıl kaydedeceğinizi göreceksiniz. + +Bu öğreticide şunlar ele alınmaktadır: + +* **databar expanded stacked** sembolojisi için bir barkod üreticisi oluşturma. +* 4‑sütunlu ve 3‑satırlı bir düzen yapılandırma. +* Her yapılandırmayı bir PNG dosyası olarak kaydetme. +* Geçersiz sütun sayıları gibi kenar durumlarını ele alma ipuçları. + +Harici bir dokümantasyona ihtiyaç yok; tamamen çalıştırılabilir örnek dahil edilmiştir. + +![Databar expanded stacked barcode example](YOUR_DIRECTORY/DatabarCols4.png){: .center alt="C# ile oluşturulmuş databar expanded stacked barkod örneği" } + +## Databar expanded stacked barkod oluşturma adımları + +### 1. Aspose.BarCode kütüphanesini kurun + +Kod, `BarcodeGenerator` sınıfını sağlayan **Aspose.BarCode for .NET** kütüphanesini kullanır. NuGet paketini aşağıdaki komutla kurun: + +```bash +dotnet add package Aspose.BarCode +``` + +Paket kurulduktan sonra dosyanızın en üstüne gerekli ad alanını ekleyin: + +```csharp +using Aspose.BarCode.Generation; +``` + +### 2. **databar expanded stacked** için bir barkod üreticisi oluşturun + +Üretici, tüm barkod işlemlerinin giriş noktasıdır. Sembolojiyi (`EncodeTypes.DatabarExpandedStacked`) ve kodlanacak metni belirtmeniz gerekir. + +```csharp +// Step 1: Create a barcode generator for Databar Expanded Stacked +BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); +``` + +*Neden önemli:* `EncodeTypes` enum’u, kütüphaneye hangi barkod formatını üreteceğini söyler. **databar expanded stacked** kullanmak, ortaya çıkan resmin GS1 DataBar spesifikasyonuna uygun yığılmış bir düzen üretmesini sağlar. + +### 3. DataBar için sütunları nasıl ayarlarsınız + +`Columns` özelliği, yığılmış barkodda kaç dikey modül görüneceğini kontrol eder. Geçerli değerler 2, 3 veya 4’tür. Sütun sayısını ayarlamak, barkodun genişliğini ve depolayabileceği veri miktarını etkiler. + +```csharp +// Step 2: Configure a 4‑column layout +barcode.Parameters.Barcode.DataBar.Columns = 4; +``` + +**İpucu:** İzin verilen aralığın dışındaki bir değer atamaya çalışırsanız, kütüphane bir `ArgumentException` fırlatır. Kullanıcıya sütun seçimi sunarken her zaman girdiyi doğrulayın. + +### 4. 4‑sütunlu barkod resmini kaydedin + +Resmi kaydetmek, raporlar, faturalar veya mobil uygulamalarda gömebileceğiniz bir dosya oluşturur. `Save` metodu bir dosya yolu ve bir görüntü formatı alır. + +```csharp +// Step 3: Save the 4‑column barcode image +barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); +``` + +Dosya yazıldığında, **databar expanded stacked** deseninin doğru göründüğünden emin olmak için herhangi bir görüntü görüntüleyicide açabilirsiniz. + +### 5. DataBar için satırları nasıl ayarlarsınız + +Satırlar, yığılmış düzene ikinci bir boyut ekleyerek barkodu genişletmeden daha fazla veri kodlamayı sağlar. `Rows` özelliği varsayılan olarak 1’dir; genişletilmiş yığılmış varyant için 3’e kadar artırabilirsiniz. + +```csharp +// Step 4: Switch to a 3‑row layout (columns remain unchanged) +barcode.Parameters.Barcode.DataBar.Rows = 3; +``` + +**Satırların önemi:** Satır sayısını artırmak, veri kapasitesini korurken toplam genişliği azaltır; bu, dar etiketler veya mobil ekran alanı için faydalıdır. + +### 6. 3‑satırlı barkod resmini kaydedin + +```csharp +// Step 5: Save the 3‑row barcode image +barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); +``` + +Artık iki PNG dosyanız var—biri 4‑sütunlu düzen, diğeri 3‑satırlı düzen—her ikisi de **databar expanded stacked** sembolojisini kullanıyor. + +### 7. Barkod resmi oluşturmak için tam C# örneği + +Tüm adımları bir araya getirdiğinizde, bir konsol uygulamasına kopyalayabileceğiniz bağımsız bir program elde edersiniz: + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace DatabarExpandedStackedDemo +{ + class Program + { + static void Main() + { + // Create the generator for Databar Expanded Stacked + BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); + + // Configure a 4‑column layout and save + barcode.Parameters.Barcode.DataBar.Columns = 4; + barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); + Console.WriteLine("4‑column barcode saved."); + + // Change to a 3‑row layout (columns stay at 4) and save + barcode.Parameters.Barcode.DataBar.Rows = 3; + barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); + Console.WriteLine("3‑row barcode saved."); + } + } +} +``` + +**Beklenen çıktı** + +Programı çalıştırdığınızda şunlar yazdırılır: + +``` +4‑column barcode saved. +3‑row barcode saved. +``` + +ve `YOUR_DIRECTORY` içinde iki PNG dosyası oluşturur. Dosyaları açarak her birinin geçerli bir **databar expanded stacked** barkod gösterdiğini doğrulayın. + +## Yaygın hatalar ve pratik ipuçları + +* **Dizin varlığı** – `Save` eksik klasörleri oluşturmaz. `YOUR_DIRECTORY`nin var olduğundan emin olun veya kaydetmeden önce `Directory.CreateDirectory` kullanın. +* **Sütun sınırları** – 2, 3 veya 4 dışındaki değerler bir istisna oluşturur. Kullanıcı girdisini basit bir aralık kontrolüyle koruyun: + + ```csharp + int columns = 4; + if (columns < 2 || columns > 4) throw new ArgumentOutOfRangeException(nameof(columns)); + barcode.Parameters.Barcode.DataBar.Columns = columns; + ``` + +* **Satır sınırları** – Genişletilmiş yığılmış varyant en fazla 3 satırı destekler. `Rows` değerini 0 ya da 3’ten büyük bir sayıya ayarlamak da bir istisna fırlatır. +* **Görüntü formatı** – `BarCodeImageFormat.Png` kayıpsız kalite sağlar ve baskı için idealdir. Dosya boyutu öncelikliyse `Jpeg` kullanın. + +## Sonraki adımlar + +Artık **barkod** resimlerini özel sütun ve satır yapılandırmalarıyla nasıl oluşturacağınızı bildiğinize göre, şunları yapabilirsiniz: + +* Üreticiyi bir web API'sine entegre ederek barkod resimlerini talep üzerine sunma. +* Barkodu PDF oluşturma kütüphaneleriyle birleştirerek faturalar içine gömme. +* Aynı `Parameters.Barcode.DataBar` nesnesini kullanarak diğer DataBar varyantlarını (`DatabarExpanded`, `DatabarLimited`) deneme. + +Bar renklerini değiştirme, insan‑okunur metin ekleme veya QR‑kod bindirmeleri gibi daha derin özelleştirmeler için `BarcodeGenerator` özelliklerine ilişkin Aspose.BarCode dokümantasyonuna bakın. + +--- + +Bu kılavuzu izleyerek **databar expanded stacked** iş akışını ustalıkla tamamladınız, **sütunları nasıl ayarlayacağınızı**, **satırları nasıl ayarlayacağınızı** öğrendiniz ve üretim kullanımı için iki ayrı barkod resmi ürettiniz. Kodlamanın tadını çıkarın! + +## Bir sonraki öğrenmeniz gerekenler + +Aşağıdaki öğreticiler, bu rehberde gösterilen tekniklere dayanarak yakından ilgili konuları kapsar. Her kaynak, ek API özelliklerini öğrenmenize ve projelerinizde alternatif uygulama yaklaşımlarını keşfetmenize yardımcı olacak tam çalışan kod örnekleri ve adım‑adım açıklamalar içerir. + +- [Generate barcode image – GS1 Coupon UPC-A Databar](/barcode/english/net/gs1-barcode-encoding/gs1-coupon-upc-a-databar-configuration/) +- [Create DotCode barcode image – rows & columns (Aspose.BarCode)](/barcode/english/net/dotcode-barcode-configuration/dotcode-rows-columns-configuration/) +- [How to Generate Barcode - One-Dimensional Barcode Types](/barcode/english/net/one-dimensional-barcode-types/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/turkish/python-java/general/how-to-set-barcode-complete-c-guide/_index.md b/barcode/turkish/python-java/general/how-to-set-barcode-complete-c-guide/_index.md new file mode 100644 index 000000000..0d64da820 --- /dev/null +++ b/barcode/turkish/python-java/general/how-to-set-barcode-complete-c-guide/_index.md @@ -0,0 +1,236 @@ +--- +category: general +date: 2026-08-15 +description: C#'ta barkod parametrelerini nasıl ayarlayacağınızı ve barkod görüntüleri + oluşturacağınızı öğrenin. Adım adım Databar barkodu oluşturmayı ve PNG dosyalarını + kaydetmeyi öğrenin. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to set barcode +- how to generate barcode +- create databar barcode +- generate barcode image c# +language: tr +lastmod: 2026-08-15 +og_description: Aspose.Barcode ile C#’ta barkod nasıl ayarlanır, ardından barkod görüntüsü + C#’ta nasıl oluşturulur. Databar barkodu oluşturmak ve PNG dosyalarını kaydetmek + için bu kılavuzu izleyin. +og_image_alt: Screenshot of a Databar barcode saved as PNG using C# code +og_title: C#'de barkod nasıl ayarlanır – adım adım rehber +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: How to set barcode parameters in C# and generate barcode images. Learn + step‑by‑step to create Databar barcode and save PNG files. + headline: How to set barcode – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.Barcode +title: Barkod Nasıl Ayarlanır – Tam C# Rehberi +url: /tr/python-java/general/how-to-set-barcode-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Barkod Ayarlama – Tam C# Rehberi + +Eğer bir .NET projesinde **how to set barcode** parametrelerini ayarlamayı arıyorsanız, bu öğretici tam olarak ihtiyacınız olan adımları gösterir. **how to generate barcode** görüntülerini nasıl oluşturacağınızı, bir Databar barkodu nasıl yaratacağınızı ve çubuk yüksekliğini piksel‑piksel nasıl kontrol edeceğinizi — temiz, üretime hazır C# kodu ile öğreneceksiniz. + +Bu rehberde şunları yapacaksınız: + +* Gerekli NuGet paketini kurun. +* Databar Omnidirectional barkodu oluşturun (“create Databar barcode” bölümü). +* X‑dimension ve bar yüksekliğini ayarlayarak **how to set barcode** boyutlarını gösterin. +* Sonucu PNG dosyaları olarak kaydedin, **generate barcode image C#** senaryosunu kapsayın. + +Kod, en yeni Aspose.Barcode for .NET (yazım anında v 24.12) ile çalışır ve .NET 6 ya da daha yeni sürümlerde çalıştırılabilir. + +--- + +## Önkoşullar + +Başlamadan önce şunlara sahip olduğunuzdan emin olun: + +* .NET 6 SDK (veya daha yeni bir sürüm). +* Visual Studio 2022 ya da VS Code gibi bir IDE. +* Aspose.Barcode NuGet paketini indirmek için internet erişimi. + +Ek üçüncü‑taraf kütüphanelerine ihtiyaç yoktur. + +--- + +## Adım 1: Aspose.Barcode for .NET'i Kurun + +C# içinde **generate barcode** görüntüleri oluşturmanın en güvenilir yolu Aspose.Barcode kullanmaktır. Proje klasörünüzde bir terminal açın ve şu komutu çalıştırın: + +```bash +dotnet add package Aspose.BarCode +``` + +Bu komut, `BarcodeGenerator` sınıfına ve `EncodeTypes` enumına sahip olmanızı sağlayarak en yeni kararlı sürümü proje dosyanıza ekler. + +*Pro ipucu:* Paketi güncel tutun (`dotnet list package --outdated`) böylece hata düzeltmelerinden ve yeni barkod sembolleri desteğinden yararlanabilirsiniz. + +--- + +## Adım 2: Databar barkodu oluşturun (create Databar barcode) + +Databar Omnidirectional perakende ve lojistik için idealdir; çünkü bir GTIN‑14 değeri ve ek veri kodlayabilir. Aşağıdaki kod barkod nesnesini oluşturur: + +```csharp +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +// Step 2: Initialize the generator for a Databar Omnidirectional barcode +BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); +``` + +*Neden önemli:* `EncodeTypes.DatabarOmniDirectional` enumu, kütüphaneye Databar sembolünü kullanmasını söyler; `"(01)12345678901231"` dizgesi ise 14‑haneli bir GTIN için GS1 Uygulama Tanımlayıcısı formatını izler. + +--- + +## Adım 3: Ortak parametreleri tanımlayın – X‑dimension ve temel yükseklik + +Çoğu barkod tarayıcısı minimum bir X‑dimension (en dar çubuğun genişliği) bekler. 2 piksel olarak ayarlamak, kompakt ama okunabilir bir görüntü verir. + +```csharp +// Step 3: Set a 2‑pixel X‑dimension (common for most scanners) +generator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +Generator’ı yeniden oluşturmadan bar yüksekliğini daha sonra ayarlayabilirsiniz — bu, **how to set barcode** özniteliklerini örnekleme sonrası değiştirmenin temelidir. + +--- + +## Adım 4: İlk bar yüksekliğini ayarlayın ve görüntüyü kaydedin (generate barcode image C#) + +Şimdi **how to set barcode** yüksekliğinin ilk kısmını gösteriyoruz. Bar yüksekliği, her bir çubuğun görsel uzunluğunu kontrol eder; 30 piksel değeri kısa bir barkod, 60 piksel ise daha uzun bir versiyon üretir. + +```csharp +// Step 4a: 30‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 30; + +// Save the first PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); +``` + +Çalıştırdıktan sonra `DatabarBarHeight30Pixels.png` dosyası 30 piksel yüksekliğinde bir Databar barkodu içerir. Sonucu doğrulamak için dosyayı herhangi bir görüntüleyicide açın. + +--- + +## Adım 5: Bar yüksekliğini değiştirin ve ikinci bir görüntü kaydedin + +**how to set barcode** değerlerinin anında değiştirilebileceğini göstermek için bar yüksekliğini 60 piksele ayarlayıp ikinci bir dosya yazıyoruz. + +```csharp +// Step 5a: 60‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 60; + +// Save the second PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); +``` + +Artık aynı Databar verisini iki farklı görsel yükseklikte gösteren iki PNG dosyanız var. Bu, baskı etiketleri için daha büyük bir barkoda ya da ekranda gösterim için daha küçük bir barkoda ihtiyaç duyduğunuzda faydalıdır. + +--- + +## Adım 6: Tam, çalıştırılabilir örnek + +Her şeyi bir araya getirerek, yukarıda açıklanan tüm adımları gerçekleştiren bağımsız bir konsol programı sunuyoruz. Kodu yeni bir `Program.cs` dosyasına kopyalayın, `YOUR_DIRECTORY` ifadesini gerçek bir klasör yolu ile değiştirin ve çalıştırın. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Initialize the generator for a Databar Omnidirectional barcode + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); + + // Common parameters + generator.Parameters.Barcode.XDimension.Pixels = 2; // 2‑pixel narrow bar + + // First image: 30‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 30; + generator.Save(@"C:\Barcodes\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 30‑pixel barcode."); + + // Second image: 60‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 60; + generator.Save(@"C:\Barcodes\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 60‑pixel barcode."); + + // Dispose the generator to free native resources + generator.Dispose(); + } +} +``` + +**Beklenen çıktı** + +Programı çalıştırdığınızda konsol şu çıktıyı verir: + +``` +Saved 30-pixel barcode. +Saved 60-pixel barcode. +``` + +Ve `C:\Barcodes` klasörü (veya belirttiğiniz yol) iki PNG dosyasını içerir. Her iki görüntü de standart GS1 okuyucular tarafından taranabilen geçerli bir Databar Omnidirectional barkodu gösterir. + +--- + +## Sıkça Sorulan Sorular + +**Bu diğer görüntü formatlarıyla çalışır mı?** +Evet. `BarCodeImageFormat.Png` ifadesini `Jpeg`, `Bmp`, `Gif` ya da `Tiff` ile değiştirerek ilgili dosya tipini oluşturabilirsiniz. + +**Ön plan rengini değiştirebilir miyim?** +`generator.Parameters.Barcode.ForeColor` değerini istediğiniz bir `System.Drawing.Color` değeriyle ayarlayın; örn. `Color.Blue`. + +**Farklı bir sembolojiye ihtiyacım olursa?** +Yapıcıya farklı bir `EncodeTypes` değeri gönderin; örneğin lineer barkod için `EncodeTypes.Code128` ya da matris kod için `EncodeTypes.QR`. + +**Barkodu bir PDF’e gömmenin bir yolu var mı?** +Aspose.Barcode bir `PdfGenerator` sınıfı sağlar. Görüntüyü oluşturduktan sonra Aspose.PDF kullanarak bir PDF sayfasına ekleyebilirsiniz. + +--- + +## C#’ta barkod oluşturma için en iyi uygulamalar + +* **`BarcodeGenerator` örneğini yeniden kullanın**; sadece boyutları ayarlamanız gerektiğinde bu, gereksiz bellek tahsislerini önler. +* **Generator’ı serbest bırakın** (`generator.Dispose()`) işlem tamamlandığında yerel kaynakları hemen serbest bırakmak için. +* **Girdi verisini doğrulayın** (örn. GTIN uzunluğu) barkodu oluşturmadan önce, çalışma zamanı istisnalarını önlemek için. +* **X‑dimension veya bar yüksekliğini değiştirdikten sonra fiziksel bir tarayıcıyla test edin**; aşırı değerler okunabilirliği etkileyebilir. +* **Çıktı klasörünün çalıştıran hesap için yazılabilir olduğundan emin olun**; aksi takdirde `Save` bir `UnauthorizedAccessException` fırlatır. + +--- + +## Sonuç + +Artık **how to set barcode** özelliklerini (X‑dimension ve bar yüksekliği gibi) nasıl ayarlayacağınızı, C# içinde **how to generate barcode** görüntülerini nasıl oluşturacağınızı ve Aspose.Barcode ile **create Databar barcode** dosyalarını adım adım nasıl yapacağınızı biliyorsunuz. Tam örneği izleyerek farklı görsel özelliklere sahip birden çok PNG dosyası üretebilir, **generate barcode image C#** ihtiyacını herhangi bir .NET uygulaması için karşılayabilirsiniz. + +Sonraki adımda, toplu **how to generate barcode** üretimi, barkodları PDF’lere gömme ya da QR ya da Code 128 gibi diğer sembolojilere geçiş gibi ilgili konuları keşfedin. Burada gösterilen parametrelerle denemeler yaparak barkod görünümünü tarama ortamınıza göre ince ayar yapın. Kodlamanın tadını çıkarın! + +## Bir Sonraki Öğrenmeniz Gerekenler + +Aşağıdaki öğreticiler, bu rehberde gösterilen tekniklere dayanan ve yakından ilgili konuları kapsar. Her kaynak, ek API özelliklerini öğrenmenize ve projelerinizde alternatif uygulama yaklaşımlarını keşfetmenize yardımcı olacak tam çalışan kod örnekleri ve adım adım açıklamalar içerir. + +- [Aspose.BarCode for .NET ile DataMatrix Barkodları (ECC 200) Nasıl Oluşturulur](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-ecc-200-configuration/) +- [Aspose.BarCode for .NET ile Özel En‑Boy Oranı Kullanarak Aztec Barkod Nasıl Oluşturulur](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [Aspose.BarCode ile Barkod Oluşturma – Code 39 Yapılandırması](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-code-39-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/vietnamese/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md b/barcode/vietnamese/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md new file mode 100644 index 000000000..988a09219 --- /dev/null +++ b/barcode/vietnamese/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/_index.md @@ -0,0 +1,185 @@ +--- +category: general +date: 2026-08-15 +description: Hình ảnh mã vạch PNG trong C# – tìm hiểu cách tạo mã vạch bưu chính, + tạo mã vạch Planet và thay đổi chiều cao mã vạch bằng một công cụ tạo đơn giản. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- barcode image png +- barcode generator c# +- generate postal barcode +- create planet barcode +- change barcode height +language: vi +lastmod: 2026-08-15 +og_description: Hướng dẫn tạo ảnh mã vạch PNG trong C# cho thấy cách tạo mã vạch bưu + chính, tạo mã vạch Planet và thay đổi chiều cao mã vạch bằng API BarcodeGenerator. +og_image_alt: Screenshot of generated PNG barcode with custom height using C# BarcodeGenerator +og_title: Hình ảnh mã vạch PNG trong C# – tạo và điều chỉnh mã vạch +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Barcode image PNG in C# – learn how to generate postal barcodes, create + a Planet barcode, and change barcode height with a simple generator. + headline: Barcode image PNG in C# generate barcodes, change height + type: TechArticle +tags: +- barcode +- C# +- PNG +- postal +- generator +title: Hình ảnh mã vạch PNG trong C# – tạo mã vạch, thay đổi chiều cao +url: /vi/python-java/general/barcode-image-png-in-c-generate-barcodes-change-height/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hình ảnh mã vạch PNG trong C# – tạo mã vạch, thay đổi chiều cao + +Nếu bạn cần một **hình ảnh mã vạch PNG** trong C#, hướng dẫn này sẽ đưa bạn qua toàn bộ quá trình. Bạn sẽ học cách tạo mã vạch bưu chính, tạo mã vạch Planet, và thay đổi chiều cao mã vạch mà không rời khỏi IDE. + +Việc tạo ra các file PNG mã vạch đáng tin cậy là yêu cầu phổ biến cho nhãn vận chuyển, hệ thống tồn kho và các giải pháp gửi thư tự động. Khi kết thúc tutorial này, bạn sẽ có một đoạn mã có thể tái sử dụng để tạo ra các file PNG chất lượng cao cho cả định dạng Planet và RM4SCC, và bạn sẽ hiểu cách điều chỉnh chiều cao thanh để đáp ứng các tiêu chuẩn bưu chính. + +## Những gì bạn cần + +- .NET 6+ hoặc .NET Framework 4.7.2 (API BarcodeGenerator hoạt động với bất kỳ runtime .NET hiện đại nào) +- Tham chiếu tới gói NuGet **Aspose.BarCode for .NET** (hoặc bất kỳ thư viện tương thích nào cung cấp `BarcodeGenerator`, `EncodeTypes`, và `BarCodeImageFormat`) +- Kiến thức cơ bản về cú pháp C# và I/O file + +Không cần công cụ bổ sung; đoạn mã chạy được trong Visual Studio, Rider, hoặc CLI `dotnet`. + +## Hình ảnh mã vạch PNG – tạo cơ bản + +Bước đầu tiên là tạo một **hình ảnh mã vạch PNG** với kích thước mặc định. Điều này sẽ tạo ra file cơ sở mà bạn có thể tùy chỉnh sau này. + +```csharp +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +// Define the output folder (replace with your own path) +string outputFolder = @"C:\Barcodes"; + +// Ensure the folder exists +Directory.CreateDirectory(outputFolder); + +// 1️⃣ Create a Planet barcode generator with default height +BarcodeGenerator planetGenerator = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + +// Set the module width (X‑dimension) to 4 pixels – this defines the thin bar size +planetGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the image as PNG; this is the first **barcode image PNG** you’ll produce +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +**Tại sao cách này hoạt động:** +- `EncodeTypes.Planet` chỉ cho trình tạo sử dụng ký hiệu Planet, được yêu cầu bởi nhiều dịch vụ bưu chính. +- `XDimension.Pixels` điều khiển độ rộng của thanh nhỏ nhất; giá trị 4 px tạo ra mã vạch dễ đọc ở kích thước nhãn tiêu chuẩn. +- Phương thức `Save` ghi một file **hình ảnh mã vạch PNG** vào đĩa, bảo toàn tất cả thông tin vector dưới dạng pixel raster. + +## Thay đổi chiều cao mã vạch – tùy chỉnh trọng lượng hình ảnh + +Các hướng dẫn bưu chính thường yêu cầu một chiều cao thanh cụ thể. Đoạn mã dưới đây minh họa cách đặt chiều cao tùy chỉnh 100 pixel cho cùng một mã vạch Planet. + +```csharp +// 2️⃣ Apply a custom 100‑pixel bar height +planetGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Overwrite or save as a new file to keep both versions +planetGenerator.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +**Lý do bạn thay đổi chiều cao:** +Thanh cao hơn cải thiện độ tin cậy khi quét trên các máy in độ phân giải thấp, trong khi thanh ngắn hơn giúp tiết kiệm không gian nhãn. Thuộc tính `BarHeight.Pixels` cho phép bạn tinh chỉnh thuộc tính này mà không ảnh hưởng đến kích thước X. + +## Tạo mã vạch bưu chính – ví dụ RM4SCC + +Định dạng RM4SCC là một loại mã vạch bưu chính phổ biến khác ở Vương quốc Anh. Các bước tạo tương tự như ví dụ Planet, củng cố mẫu **barcode generator c#**. + +```csharp +// 3️⃣ Create an RM4SCC barcode generator with default height +BarcodeGenerator rm4sccGenerator = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Keep the same module width for consistency +rm4sccGenerator.Parameters.Barcode.XDimension.Pixels = 4; + +// Save the default‑height PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); +``` + +## Thay đổi chiều cao mã vạch – biến thể RM4SCC + +Giống như mã vạch Planet, bạn có thể điều chỉnh chiều cao thanh RM4SCC. Đoạn mã dưới đây đặt chiều cao thành 100 px, tạo ra một **hình ảnh mã vạch PNG** thứ hai cho cùng một chuỗi dữ liệu. + +```csharp +// 4️⃣ Set a custom 100‑pixel bar height for RM4SCC +rm4sccGenerator.Parameters.Barcode.BarHeight.Pixels = 100; + +// Save the customized PNG +rm4sccGenerator.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); +``` + +## Ví dụ đầy đủ, có thể chạy được + +Kết hợp tất cả các bước lại với nhau sẽ cho ra một chương trình tự chứa tạo bốn file PNG: + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; +using Aspose.BarCode; + +class Program +{ + static void Main() + { + string outputFolder = @"C:\Barcodes"; + Directory.CreateDirectory(outputFolder); + + // Planet barcode – default height + var planet = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planet.Parameters.Barcode.XDimension.Pixels = 4; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // Planet barcode – custom 100‑pixel height + planet.Parameters.Barcode.BarHeight.Pixels = 100; + planet.Save(Path.Combine(outputFolder, "PlanetBarHeight100.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – default height + var rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeightDefault.png"), + BarCodeImageFormat.Png); + + // RM4SCC barcode – custom 100‑pixel height + rm4scc.Parameters.Barcode.BarHeight.Pixels = 100; + rm4scc.Save(Path.Combine(outputFolder, "RM4SCCBarHeight100.png"), + BarCodeImageFormat.Png); + + Console.WriteLine("All barcode PNG files have been generated in " + + + +## Bạn nên học gì tiếp theo? + + +Các tutorial sau đây đề cập đến các chủ đề liên quan chặt chẽ, xây dựng trên các kỹ thuật được trình bày trong hướng dẫn này. Mỗi tài nguyên bao gồm các ví dụ mã hoàn chỉnh với giải thích từng bước để giúp bạn làm chủ các tính năng API bổ sung và khám phá các cách triển khai thay thế trong dự án của mình. + +- [Create Barcode Custom Height – One-Dimensional Barcodes](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-barcode-height-adjustment/) +- [Create Barcode PNG – DataMatrix Aspect Ratio – Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-aspect-ratio-customization/) +- [Create barcode image C# – GS1 DataMatrix Example](/barcode/english/net/gs1-barcode-encoding/gs1-datamatrix-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/vietnamese/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md b/barcode/vietnamese/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md new file mode 100644 index 000000000..bfc1fb414 --- /dev/null +++ b/barcode/vietnamese/python-java/general/create-planet-barcode-in-c-complete-programming-guide/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-08-15 +description: Tạo mã vạch hành tinh bằng C# và tìm hiểu cách thiết lập kích thước mã + vạch để đạt kích thước hoàn hảo. Ví dụ mã nguồn từng bước với các thanh đầy và trống. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create planet barcode +- how to set barcode dimensions +- planet barcode C# +- barcode X‑dimension +- empty barcode bars +language: vi +lastmod: 2026-08-15 +og_description: Tạo mã vạch Planet trong C# và học cách thiết lập kích thước mã vạch. + Hãy làm theo hướng dẫn này để tạo ngay các mã vạch Planet đầy và trống. +og_image_alt: Screenshot showing a Planet barcode with filled bars generated by C# + code +og_title: Tạo mã vạch hành tinh trong C# – hướng dẫn chi tiết từng bước +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Create planet barcode in C# and learn how to set barcode dimensions + for perfect sizing. Step‑by‑step code example with filled and empty bars. + headline: Create planet barcode in C# – complete programming guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.BarCode +title: Tạo mã vạch hành tinh trong C# – hướng dẫn lập trình toàn diện +url: /vi/python-java/general/create-planet-barcode-in-c-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tạo mã vạch Planet trong C# – hướng dẫn lập trình đầy đủ + +Nếu bạn cần **tạo mã vạch planet** trong C#, hướng dẫn này sẽ chỉ cho bạn cách thực hiện chi tiết. Bạn cũng sẽ khám phá **cách đặt kích thước mã vạch** để các thanh hiển thị đúng chiều rộng bạn yêu cầu. + +Việc tạo mã vạch Planet thường gặp khi làm việc với các dịch vụ bưu chính hoặc hệ thống logistics. Đoạn mã dưới đây bao gồm cả phiên bản thanh đầy (filled‑bar) mặc định và kiểu thanh rỗng (empty‑bar) tùy chọn, cùng một ví dụ nhanh cho định dạng RM4SCC. Khi kết thúc tutorial, bạn sẽ có một đoạn mã có thể tái sử dụng và chèn vào bất kỳ dự án .NET nào. + +## Yêu cầu trước + +Trước khi bắt đầu, hãy chắc chắn rằng bạn có: + +* .NET 6.0 hoặc phiên bản mới hơn đã được cài đặt (API cũng hoạt động với .NET Framework 4.6+) +* Gói NuGet **Aspose.BarCode for .NET** (`Aspose.BarCode`) đã được thêm vào dự án +* Một đường dẫn thư mục có quyền ghi để lưu các file PNG +* Kiến thức cơ bản về cú pháp C# và Visual Studio (hoặc bất kỳ IDE nào) + +> **Mẹo chuyên nghiệp:** Sử dụng đường dẫn tuyệt đối hoặc `Path.Combine(Environment.CurrentDirectory, "output")` để tránh các vấn đề quyền khi lưu ảnh. + +## Bước 1 – Khởi tạo trình tạo mã vạch Planet (thanh đầy) + +Bước đầu tiên là tạo một thể hiện `BarcodeGenerator` cho ký hiệu Planet. Mặc định, trình tạo sẽ tạo các **thanh đầy**. + +```csharp +// Step 1: Create a Planet barcode with the default (filled) bars +BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +Enum `EncodeTypes.Planet` thông báo cho Aspose.BarCode sử dụng định dạng Planet, trong khi `"123456"` là dữ liệu sẽ được mã hoá. + +## Bước 2 – Cách đặt kích thước mã vạch để đồng nhất + +Để kiểm soát chiều rộng của mỗi thanh, điều chỉnh **X‑dimension**. Đây là cách chính để **đặt kích thước mã vạch** và đảm bảo mã vạch phù hợp với kích thước nhãn của bạn. + +```csharp +// Step 2: Set the X‑dimension (width of each bar) to 4 pixels +planetFilled.Parameters.Barcode.XDimension.Pixels = 4; +``` + +Thuộc tính `Pixels` xác định độ rộng thanh tính bằng pixel trên màn hình. Giá trị thường dùng là 2 – 5 pixel cho các nhãn thư tiêu chuẩn; tăng giá trị lên nếu cần in lớn hơn. + +## Bước 3 – Lưu mã vạch Planet đầy dưới dạng PNG + +Bây giờ ghi ảnh ra đĩa. PNG giữ được các cạnh sắc nét, rất thích hợp cho việc quét. + +```csharp +// Step 3: Save the Planet barcode as a PNG image +planetFilled.Save("YOUR_DIRECTORY/PostalPlanetFilledBars.png", BarCodeImageFormat.Png); +``` + +Thay `YOUR_DIRECTORY` bằng đường dẫn bạn đã chuẩn bị ở trên. Sau khi chạy đoạn mã, bạn sẽ thấy một file tương tự như hình dưới. + +![Planet barcode with filled bars](planet_filled.png "Planet barcode with filled bars – created by C# code") + +*Alt text:* **Planet barcode with filled bars generated by C# code** (matches `og_image_alt`). + +## Bước 4 – Tạo mã vạch Planet với các thanh rỗng (không đầy) + +Nếu dịch vụ bưu chính của bạn yêu cầu các thanh **rỗng**, bạn cần bật cờ `FilledBars` sau khi khởi tạo trình tạo. + +```csharp +// Step 4: Create a Planet barcode with empty (unfilled) bars +BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); +``` + +Constructor vẫn giống nhau; sự khác biệt nằm ở bước cấu hình tiếp theo. + +## Bước 5 – Cách đặt kích thước mã vạch và làm thanh rỗng + +Một lần nữa, đặt X‑dimension để đồng nhất về mặt hình ảnh, sau đó tắt thanh đầy. + +```csharp +// Step 5: Set the X‑dimension and specify that bars should be empty +planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; +planetEmpty.Parameters.Barcode.FilledBars = false; // makes bars empty +``` + +Thuộc tính `FilledBars = false` chính là yếu tố thay đổi kiểu hiển thị. Giữ nguyên X‑dimension giúp mã vạch thanh rỗng căn chỉnh hoàn hảo với phiên bản thanh đầy. + +## Bước 6 – Lưu mã vạch Planet rỗng + +```csharp +// Step 6: Save the Planet barcode with empty bars as a PNG image +planetEmpty.Save("YOUR_DIRECTORY/PostalPlanetEmptyBars.png", BarCodeImageFormat.Png); +``` + +Bây giờ bạn sẽ có hai file PNG: một với thanh đặc và một với thanh rỗng, cả hai cùng kích thước. + +## Bước 7 – (Tùy chọn) Tạo mã vạch RM4SCC để so sánh + +RM4SCC là một ký hiệu bưu chính khác sử dụng cùng kiểu thanh đầy mặc định. Các bước tương tự như ví dụ Planet, chứng minh rằng **cách đặt kích thước mã vạch** hoạt động trên nhiều định dạng. + +```csharp +// Step 7: Create an RM4SCC barcode (filled bars are the default) +BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + +// Step 8: Set the X‑dimension for consistency +rm4scc.Parameters.Barcode.XDimension.Pixels = 4; + +// Step 9: Save the RM4SCC barcode as a PNG image +rm4scc.Save("YOUR_DIRECTORY/PostalRM4SCCFilledBars.png", BarCodeImageFormat.Png); +``` + +Chạy ba bước này sẽ tạo ra file `PostalRM4SCCFilledBars.png`, bạn có thể so sánh nó bên cạnh các output của Planet. + +## Tại sao X‑dimension lại quan trọng + +X‑dimension quyết định **chiều rộng tối thiểu có thể in** của mỗi thanh. Nếu đặt quá thấp, mã vạch có thể bị mờ trên máy in độ phân giải thấp, gây lỗi quét. Ngược lại, X‑dimension quá lớn có thể vượt quá kích thước nhãn và lãng phí không gian. Bằng cách **cách đặt kích thước mã vạch** một cách rõ ràng, bạn có được kiểm soát quyết định về kích thước ảnh cuối cùng, điều này rất quan trọng cho quy trình gửi thư tự động. + +## Những lỗi thường gặp và cách tránh + +| Vấn đề | Nguyên nhân | Giải pháp | +|-------|------------|-----------| +| Mã vạch bị kéo dài | X‑dimension được đặt bằng điểm thay vì pixel | Luôn dùng thuộc tính `Pixels` để kiểm soát pixel chính xác | +| Thanh rỗng vẫn hiện đầy | `FilledBars` chưa được đặt thành `false` sau khi thay đổi X‑dimension | Đặt `FilledBars = false` *sau* khi điều chỉnh X‑dimension | +| File lưu trống | Thư mục đầu ra không tồn tại hoặc thiếu quyền ghi | Đảm bảo thư mục tồn tại (`Directory.CreateDirectory`) và ứng dụng có đủ quyền | +| Ảnh in mờ | PNG DPI thấp được lưu từ màn hình độ phân giải cao | Sử dụng `BarCodeImageFormat.Png` (không mất dữ liệu) và cân nhắc thuộc tính `Resolution` nếu cần | + +## Ví dụ đầy đủ, có thể chạy ngay + +Sao chép toàn bộ khối dưới đây vào một dự án console mới (`dotnet new console`) và chạy. Chương trình sẽ tạo ba file PNG trong thư mục `output`. + +```csharp +using System; +using System.IO; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Ensure output folder exists + string outDir = Path.Combine(Environment.CurrentDirectory, "output"); + Directory.CreateDirectory(outDir); + + // ---------- Planet barcode – filled bars ---------- + BarcodeGenerator planetFilled = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetFilled.Parameters.Barcode.XDimension.Pixels = 4; // set dimensions + planetFilled.Save(Path.Combine(outDir, "PostalPlanetFilledBars.png"), BarCodeImageFormat.Png); + + // ---------- Planet barcode – empty bars ---------- + BarcodeGenerator planetEmpty = new BarcodeGenerator(EncodeTypes.Planet, "123456"); + planetEmpty.Parameters.Barcode.XDimension.Pixels = 4; // same dimensions + planetEmpty.Parameters.Barcode.FilledBars = false; // make bars empty + planetEmpty.Save(Path.Combine(outDir, "PostalPlanetEmptyBars.png"), BarCodeImageFormat.Png); + + // ---------- RM4SCC barcode (filled bars) ---------- + BarcodeGenerator rm4scc = new BarcodeGenerator(EncodeTypes.RM4SCC, "123456"); + rm4scc.Parameters.Barcode.XDimension.Pixels = 4; // consistent size + rm4scc.Save(Path.Combine(outDir, "PostalRM4SCCFilledBars.png"), BarCodeImageFormat.Png); + + Console.WriteLine($"Barcodes generated in: {outDir}"); + } +} +``` + +**Kết quả mong đợi:** ba file PNG—`PostalPlanetFilledBars.png`, `PostalPlanetEmptyBars.png`, và `PostalRM4SCCFilledBars.png`—có thanh rộng 4 pixel, sẵn sàng để in hoặc xử lý tiếp. + +## Kết luận + +Bây giờ bạn đã biết cách **tạo mã vạch planet** trong C# và cách **đặt kích thước mã vạch** một cách chính xác cho cả kiểu thanh đầy và thanh rỗng. Mẫu này cũng áp dụng cho các ký hiệu khác như RM4SCC, cung cấp nền tảng linh hoạt cho bất kỳ yêu cầu mã vạch bưu chính nào. + +Tiếp theo, bạn có thể khám phá: + +* Thêm văn bản có thể đọc được dưới mã vạch (`BarcodeGenerator.Parameters.Barcode.CodeText`) +* Thay đổi màu thanh bằng `Parameters.Barcode.BarColor` +* Tạo mã vạch ở định dạng vector (SVG, EPS) để in mở rộng + +Hãy tự do thử nghiệm với các giá trị X‑dimension khác nhau, chuỗi dữ liệu và định dạng xuất để phù hợp với quy trình làm việc của bạn. Chúc bạn lập trình vui vẻ! + +## Bạn nên học gì tiếp theo? + +Các tutorial dưới đây đề cập đến các chủ đề liên quan chặt chẽ, xây dựng trên các kỹ thuật đã trình bày trong hướng dẫn này. Mỗi tài nguyên đều bao gồm mã mẫu đầy đủ và giải thích từng bước để giúp bạn làm chủ các tính năng API bổ sung và khám phá các cách triển khai thay thế trong dự án của mình. + +- [How to create barcode quiet zone for Code 16K using Aspose.BarCode for .NET](/barcode/english/net/code-16k-encoding/code-16k-quiet-zone-settings/) +- [How to Create Barcode Quiet Zone for ITF-14 Using Aspose.BarCode for .NET](/barcode/english/net/itf-14-barcode-customization/itf-14-barcode-quiet-zone-configuration/) +- [How to create Aztec barcode with error correction in .NET](/barcode/english/net/aztec-barcode-encoding/aztec-error-level-example/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/vietnamese/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md b/barcode/vietnamese/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md new file mode 100644 index 000000000..b8583f9d2 --- /dev/null +++ b/barcode/vietnamese/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/_index.md @@ -0,0 +1,238 @@ +--- +category: general +date: 2026-08-15 +description: Databar mở rộng việc tạo mã vạch xếp chồng trong C#. Tìm hiểu cách tạo + hình ảnh mã vạch, thiết lập số cột và hàng cho bố cục DataBar. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- databar expanded stacked +- generate barcode image +- how to generate barcode +- how to set columns +- how to set rows +language: vi +lastmod: 2026-08-15 +og_description: Databar mở rộng việc tạo mã vạch xếp chồng trong C#. Hãy làm theo + hướng dẫn từng bước này để tạo hình ảnh mã vạch, thiết lập cột và thiết lập hàng + một cách hiệu quả. +og_image_alt: Screenshot of a databar expanded stacked barcode generated with C# +og_title: Databar mở rộng dạng xếp chồng – tạo hình ảnh mã vạch trong C# +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + headline: 'Databar expanded stacked: generate barcode image in C#' + type: TechArticle +- description: Databar expanded stacked barcode generation in C#. Learn how to generate + barcode image, set columns and rows for DataBar layouts. + name: 'Databar expanded stacked: generate barcode image in C#' + steps: + - name: 1. Install the Aspose.BarCode library + text: 'The code uses the **Aspose.BarCode for .NET** library, which provides the + `BarcodeGenerator` class. Install the NuGet package with the following command:' + - name: 2. Create a barcode generator for **databar expanded stacked** + text: The generator is the entry point for all barcode operations. You must specify + the symbology (`EncodeTypes.DatabarExpandedStacked`) and the text to encode. + - name: 3. How to set columns for DataBar + text: The `Columns` property controls how many vertical modules appear in the + stacked barcode. Valid values are 2, 3, or 4. Setting columns influences the + barcode’s width and the amount of data it can store. + - name: 4. Save the 4‑column barcode image + text: Saving the image produces a file that you can embed in reports, invoices, + or mobile apps. The `Save` method accepts a file path and an image format. + - name: 5. How to set rows for DataBar + text: Rows add a second dimension to the stacked layout, allowing more data to + be encoded without widening the barcode. The `Rows` property defaults to 1; + you can increase it up to 3 for the expanded stacked variant. + - name: 6. Save the 3‑row barcode image + text: '```csharp // Step 5: Save the 3‑row barcode image barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", + BarCodeImageFormat.Png); ```' + - name: 7. Complete C# example to generate barcode image + text: 'Putting all steps together yields a self‑contained program you can copy + into a console application:' + type: HowTo +tags: +- barcode +- C# +- Aspose.BarCode +title: 'Databar mở rộng dạng xếp chồng: tạo hình ảnh mã vạch trong C#' +url: /vi/python-java/general/databar-expanded-stacked-generate-barcode-image-in-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Databar expanded stacked: tạo hình ảnh mã vạch trong C# + +Nếu bạn cần tạo một hình ảnh mã vạch **databar expanded stacked** trong C#, hướng dẫn này sẽ cho bạn biết chính xác **cách tạo mã vạch** với bố cục cột và hàng tùy chỉnh. Bạn sẽ thấy cách đặt cột, cách đặt hàng và cách lưu các hình ảnh kết quả mà không rời khỏi IDE. + +Hướng dẫn bao gồm: + +* Tạo một trình tạo mã vạch cho ký hiệu **databar expanded stacked**. +* Cấu hình bố cục 4‑cột và 3‑hàng. +* Lưu mỗi cấu hình dưới dạng tệp PNG. +* Mẹo xử lý các trường hợp đặc biệt như số lượng cột không hợp lệ. + +Không cần tài liệu bên ngoài; ví dụ đầy đủ, có thể chạy được đã được bao gồm. + +![Ví dụ mã vạch Databar expanded stacked](YOUR_DIRECTORY/DatabarCols4.png){: .center alt="mã vạch databar expanded stacked được tạo bằng C#" } + +## Các bước tạo mã vạch Databar expanded stacked + +### 1. Cài đặt thư viện Aspose.BarCode + +Mã sử dụng thư viện **Aspose.BarCode for .NET**, cung cấp lớp `BarcodeGenerator`. Cài đặt gói NuGet bằng lệnh sau: + +```bash +dotnet add package Aspose.BarCode +``` + +Sau khi gói được cài đặt, thêm namespace cần thiết ở đầu tệp của bạn: + +```csharp +using Aspose.BarCode.Generation; +``` + +### 2. Tạo một trình tạo mã vạch cho **databar expanded stacked** + +Trình tạo là điểm vào cho mọi thao tác mã vạch. Bạn phải chỉ định ký hiệu (`EncodeTypes.DatabarExpandedStacked`) và văn bản cần mã hoá. + +```csharp +// Step 1: Create a barcode generator for Databar Expanded Stacked +BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); +``` + +*Why this matters:* Enum `EncodeTypes` cho thư viện biết định dạng mã vạch nào sẽ được tạo. Sử dụng **databar expanded stacked** đảm bảo hình ảnh kết quả tuân theo tiêu chuẩn GS1 DataBar cho bố cục xếp chồng. + +### 3. Cách đặt cột cho DataBar + +Thuộc tính `Columns` kiểm soát số mô-đun dọc xuất hiện trong mã vạch xếp chồng. Giá trị hợp lệ là 2, 3 hoặc 4. Đặt cột ảnh hưởng đến độ rộng của mã vạch và lượng dữ liệu nó có thể lưu trữ. + +```csharp +// Step 2: Configure a 4‑column layout +barcode.Parameters.Barcode.DataBar.Columns = 4; +``` + +**Tip:** Nếu bạn cố gắng gán một giá trị ngoài phạm vi cho phép, thư viện sẽ ném ra `ArgumentException`. Luôn kiểm tra đầu vào khi cho phép người dùng chọn cột. + +### 4. Lưu hình ảnh mã vạch 4‑cột + +Lưu hình ảnh tạo ra một tệp mà bạn có thể nhúng vào báo cáo, hoá đơn hoặc ứng dụng di động. Phương thức `Save` nhận đường dẫn tệp và định dạng ảnh. + +```csharp +// Step 3: Save the 4‑column barcode image +barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); +``` + +Khi tệp được ghi, bạn có thể mở nó bằng bất kỳ trình xem ảnh nào để xác nhận rằng mẫu **databar expanded stacked** hiển thị đúng. + +### 5. Cách đặt hàng cho DataBar + +Hàng thêm một chiều thứ hai vào bố cục xếp chồng, cho phép mã hoá nhiều dữ liệu hơn mà không làm rộng mã vạch. Thuộc tính `Rows` mặc định là 1; bạn có thể tăng lên tới 3 cho biến thể expanded stacked. + +```csharp +// Step 4: Switch to a 3‑row layout (columns remain unchanged) +barcode.Parameters.Barcode.DataBar.Rows = 3; +``` + +**Why rows matter:** Tăng số hàng giảm độ rộng tổng thể trong khi vẫn giữ khả năng chứa dữ liệu, hữu ích cho nhãn hẹp hoặc không gian màn hình di động. + +### 6. Lưu hình ảnh mã vạch 3‑hàng + +```csharp +// Step 5: Save the 3‑row barcode image +barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); +``` + +Bây giờ bạn có hai tệp PNG — một với bố cục 4‑cột và một với bố cục 3‑hàng — đều sử dụng ký hiệu **databar expanded stacked**. + +### 7. Ví dụ C# hoàn chỉnh để tạo hình ảnh mã vạch + +Kết hợp tất cả các bước lại với nhau tạo ra một chương trình tự chứa mà bạn có thể sao chép vào ứng dụng console: + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace DatabarExpandedStackedDemo +{ + class Program + { + static void Main() + { + // Create the generator for Databar Expanded Stacked + BarcodeGenerator barcode = new BarcodeGenerator( + EncodeTypes.DatabarExpandedStacked, + "Databar Expanded Stacked long"); + + // Configure a 4‑column layout and save + barcode.Parameters.Barcode.DataBar.Columns = 4; + barcode.Save("YOUR_DIRECTORY/DatabarCols4.png", BarCodeImageFormat.Png); + Console.WriteLine("4‑column barcode saved."); + + // Change to a 3‑row layout (columns stay at 4) and save + barcode.Parameters.Barcode.DataBar.Rows = 3; + barcode.Save("YOUR_DIRECTORY/DatabarRows3.png", BarCodeImageFormat.Png); + Console.WriteLine("3‑row barcode saved."); + } + } +} +``` + +**Expected output** + +Chạy chương trình sẽ in: + +``` +4‑column barcode saved. +3‑row barcode saved. +``` + +và tạo hai tệp PNG trong `YOUR_DIRECTORY`. Mở các tệp để xác minh rằng mỗi hình ảnh hiển thị một mã vạch **databar expanded stacked** hợp lệ. + +## Common pitfalls and practical tips + +* **Directory existence** – `Save` không tạo thư mục thiếu. Đảm bảo `YOUR_DIRECTORY` tồn tại hoặc sử dụng `Directory.CreateDirectory` trước khi lưu. +* **Column limits** – Giá trị khác 2, 3 hoặc 4 sẽ gây ra ngoại lệ. Bảo vệ khỏi lỗi nhập liệu của người dùng bằng một kiểm tra phạm vi đơn giản: + + ```csharp + int columns = 4; + if (columns < 2 || columns > 4) throw new ArgumentOutOfRangeException(nameof(columns)); + barcode.Parameters.Barcode.DataBar.Columns = columns; + ``` + +* **Row limits** – Biến thể expanded stacked hỗ trợ tối đa 3 hàng. Đặt `Rows` thành 0 hoặc giá trị lớn hơn 3 cũng sẽ gây ra ngoại lệ. +* **Image format** – `BarCodeImageFormat.Png` cung cấp chất lượng không mất dữ liệu, lý tưởng cho in ấn. Chỉ sử dụng `Jpeg` khi kích thước tệp là mối quan tâm chính. + +## Next steps + +Bây giờ bạn đã biết **cách tạo mã vạch** với cấu hình cột và hàng tùy chỉnh, bạn có thể: + +* Tích hợp trình tạo vào một web API để cung cấp hình ảnh mã vạch theo yêu cầu. +* Kết hợp mã vạch với các thư viện tạo PDF để nhúng vào hoá đơn. +* Thử nghiệm các biến thể DataBar khác (`DatabarExpanded`, `DatabarLimited`) bằng cách sử dụng cùng đối tượng `Parameters.Barcode.DataBar`. + +Để tùy chỉnh sâu hơn — chẳng hạn thay đổi màu thanh, thêm văn bản có thể đọc được bởi con người, hoặc áp dụng lớp phủ QR‑code — hãy tham khảo tài liệu Aspose.BarCode về các thuộc tính `BarcodeGenerator`. + +--- + +Bằng cách làm theo hướng dẫn này, bạn đã nắm vững quy trình **databar expanded stacked**, học **cách đặt cột**, **cách đặt hàng**, và tạo ra hai hình ảnh mã vạch riêng biệt, sẵn sàng cho việc sản xuất. Chúc lập trình vui! + +## What Should You Learn Next? + +Các hướng dẫn sau đây bao gồm các chủ đề liên quan chặt chẽ, xây dựng trên các kỹ thuật được trình bày trong hướng dẫn này. Mỗi tài nguyên bao gồm các ví dụ mã đầy đủ, hoạt động với giải thích từng bước để giúp bạn làm chủ các tính năng API bổ sung và khám phá các cách triển khai thay thế trong dự án của mình. + +- [Generate barcode image – GS1 Coupon UPC-A Databar](/barcode/english/net/gs1-barcode-encoding/gs1-coupon-upc-a-databar-configuration/) +- [Create DotCode barcode image – rows & columns (Aspose.BarCode)](/barcode/english/net/dotcode-barcode-configuration/dotcode-rows-columns-configuration/) +- [How to Generate Barcode - One-Dimensional Barcode Types](/barcode/english/net/one-dimensional-barcode-types/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/vietnamese/python-java/general/how-to-set-barcode-complete-c-guide/_index.md b/barcode/vietnamese/python-java/general/how-to-set-barcode-complete-c-guide/_index.md new file mode 100644 index 000000000..9549e1dcc --- /dev/null +++ b/barcode/vietnamese/python-java/general/how-to-set-barcode-complete-c-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-08-15 +description: Cách thiết lập các tham số mã vạch trong C# và tạo hình ảnh mã vạch. + Học từng bước để tạo mã vạch Databar và lưu tệp PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to set barcode +- how to generate barcode +- create databar barcode +- generate barcode image c# +language: vi +lastmod: 2026-08-15 +og_description: Cách thiết lập mã vạch trong C# với Aspose.Barcode, sau đó tạo hình + ảnh mã vạch C#. Hãy làm theo hướng dẫn này để tạo mã vạch Databar và lưu dưới dạng + tệp PNG. +og_image_alt: Screenshot of a Databar barcode saved as PNG using C# code +og_title: Cách thiết lập mã vạch trong C# – hướng dẫn từng bước +schemas: +- author: Aspose + dateModified: '2026-08-15' + description: How to set barcode parameters in C# and generate barcode images. Learn + step‑by‑step to create Databar barcode and save PNG files. + headline: How to set barcode – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- Aspose.Barcode +title: Cách thiết lập mã vạch – hướng dẫn C# đầy đủ +url: /vi/python-java/general/how-to-set-barcode-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cách thiết lập mã vạch – hướng dẫn đầy đủ C# + +Nếu bạn đang tìm kiếm **cách thiết lập mã vạch** trong một dự án .NET, hướng dẫn này sẽ chỉ cho bạn các bước cần thiết. Bạn sẽ học **cách tạo mã vạch** dưới dạng hình ảnh, tạo mã Databar, và kiểm soát chiều cao thanh pixel‑by‑pixel — tất cả bằng mã C# sạch sẽ, sẵn sàng cho môi trường production. + +Trong hướng dẫn này bạn sẽ: + +* Cài đặt gói NuGet cần thiết. +* Tạo mã Databar Omnidirectional (phần “tạo mã Databar”). +* Điều chỉnh X‑dimension và chiều cao thanh để minh họa **cách thiết lập mã vạch** kích thước. +* Lưu kết quả dưới dạng tệp PNG, bao phủ kịch bản **tạo hình ảnh mã vạch C#**. + +Mã này hoạt động với Aspose.Barcode for .NET mới nhất (phiên bản 24.12 tại thời điểm viết) và chạy trên .NET 6 hoặc cao hơn. + +## Yêu cầu trước + +Trước khi bắt đầu, hãy chắc chắn rằng bạn có: + +* .NET 6 SDK (hoặc bất kỳ phiên bản nào mới hơn). +* Một IDE như Visual Studio 2022 hoặc VS Code. +* Kết nối Internet để tải gói NuGet Aspose.Barcode. + +Không cần thư viện bên thứ ba nào khác. + +## Bước 1: Cài đặt Aspose.Barcode cho .NET + +Cách đáng tin cậy nhất để **tạo mã vạch** dưới dạng hình ảnh trong C# là sử dụng Aspose.Barcode. Mở terminal trong thư mục dự án của bạn và chạy: + +```bash +dotnet add package Aspose.BarCode +``` + +Lệnh này sẽ thêm phiên bản ổn định mới nhất vào tệp dự án của bạn, đảm bảo bạn có lớp `BarcodeGenerator` và enum `EncodeTypes`. + +*Mẹo:* Giữ gói luôn cập nhật (`dotnet list package --outdated`) để nhận được các bản sửa lỗi và các biểu tượng mã vạch mới. + +## Bước 2: Tạo mã Databar (tạo mã Databar) + +Databar Omnidirectional rất phù hợp cho bán lẻ và logistics vì nó có thể mã hoá giá trị GTIN‑14 cùng với dữ liệu bổ sung. Đoạn mã sau tạo đối tượng mã vạch: + +```csharp +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +// Step 2: Initialize the generator for a Databar Omnidirectional barcode +BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); +``` + +*Tại sao điều này quan trọng:* Enum `EncodeTypes.DatabarOmniDirectional` thông báo cho thư viện sử dụng biểu tượng Databar, trong khi chuỗi `"(01)12345678901231"` tuân theo định dạng GS1 Application Identifier cho một GTIN 14 chữ số. + +## Bước 3: Định nghĩa các tham số chung – X‑dimension và chiều cao cơ bản + +Hầu hết các máy quét mã vạch yêu cầu X‑dimension tối thiểu (độ rộng của thanh mảnh nhất). Đặt nó thành 2 pixel sẽ tạo ra một hình ảnh gọn gàng nhưng vẫn dễ đọc. + +```csharp +// Step 3: Set a 2‑pixel X‑dimension (common for most scanners) +generator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +Bạn có thể điều chỉnh chiều cao thanh sau này mà không cần tạo lại generator — đây là cốt lõi của **cách thiết lập mã vạch** các thuộc tính sau khi khởi tạo. + +## Bước 4: Đặt chiều cao thanh đầu tiên và lưu hình ảnh (tạo hình ảnh mã vạch C#) + +Bây giờ chúng ta sẽ minh họa phần đầu tiên của **cách thiết lập mã vạch** chiều cao. Chiều cao thanh kiểm soát độ dài hiển thị của mỗi thanh; giá trị 30 pixel tạo ra một mã vạch ngắn, trong khi 60 pixel tạo ra phiên bản cao hơn. + +```csharp +// Step 4a: 30‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 30; + +// Save the first PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); +``` + +Sau khi thực thi, `DatabarBarHeight30Pixels.png` chứa một mã Databar với thanh cao 30 pixel. Mở tệp trong bất kỳ trình xem ảnh nào để xác nhận kết quả. + +## Bước 5: Thay đổi chiều cao thanh và lưu ảnh thứ hai + +Để minh họa rằng **cách thiết lập mã vạch** có thể thay đổi ngay lập tức, chúng ta sẽ thay đổi chiều cao thanh thành 60 pixel và ghi một tệp thứ hai. + +```csharp +// Step 5a: 60‑pixel bar height +generator.Parameters.Barcode.BarHeight.Pixels = 60; + +// Save the second PNG image +generator.Save(@"YOUR_DIRECTORY\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); +``` + +Bây giờ bạn có hai tệp PNG hiển thị cùng dữ liệu Databar nhưng với chiều cao hiển thị khác nhau. Điều này hữu ích khi bạn cần một mã vạch lớn hơn cho nhãn in hoặc nhỏ hơn cho hiển thị trên màn hình. + +## Bước 6: Ví dụ đầy đủ, có thể chạy + +Kết hợp tất cả lại, dưới đây là một chương trình console tự chứa thực hiện tất cả các bước đã mô tả ở trên. Sao chép mã vào một tệp `Program.cs` mới, thay thế `YOUR_DIRECTORY` bằng đường dẫn thư mục thực tế, và chạy nó. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // Initialize the generator for a Databar Omnidirectional barcode + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.DatabarOmniDirectional, "(01)12345678901231"); + + // Common parameters + generator.Parameters.Barcode.XDimension.Pixels = 2; // 2‑pixel narrow bar + + // First image: 30‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 30; + generator.Save(@"C:\Barcodes\DatabarBarHeight30Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 30‑pixel barcode."); + + // Second image: 60‑pixel height + generator.Parameters.Barcode.BarHeight.Pixels = 60; + generator.Save(@"C:\Barcodes\DatabarBarHeight60Pixels.png", BarCodeImageFormat.Png); + Console.WriteLine("Saved 60‑pixel barcode."); + + // Dispose the generator to free native resources + generator.Dispose(); + } +} +``` + +**Kết quả mong đợi** + +``` +Saved 30-pixel barcode. +Saved 60-pixel barcode. +``` + +Và thư mục `C:\Barcodes` (hoặc đường dẫn bạn đã cung cấp) chứa hai tệp PNG. Cả hai hình ảnh đều hiển thị một mã Databar Omnidirectional hợp lệ có thể được máy đọc GS1 tiêu chuẩn quét. + +## Câu hỏi thường gặp + +**Liệu điều này có hoạt động với các định dạng ảnh khác không?** +Có. Thay `BarCodeImageFormat.Png` bằng `Jpeg`, `Bmp`, `Gif`, hoặc `Tiff` để tạo ra loại tệp tương ứng. + +**Tôi có thể thay đổi màu nền (foreground) không?** +Đặt `generator.Parameters.Barcode.ForeColor` thành bất kỳ giá trị `System.Drawing.Color` nào, ví dụ `Color.Blue`. + +**Nếu tôi cần một biểu tượng (symbology) khác thì sao?** +Truyền một giá trị `EncodeTypes` khác vào constructor, chẳng hạn `EncodeTypes.Code128` cho mã vạch tuyến tính hoặc `EncodeTypes.QR` cho mã ma trận. + +**Có cách nào để nhúng mã vạch vào PDF không?** +Aspose.Barcode cung cấp lớp `PdfGenerator`. Sau khi tạo hình ảnh, bạn có thể thêm nó vào một trang PDF bằng Aspose.PDF. + +## Các thực tiễn tốt nhất cho việc tạo mã vạch trong C# + +* **Tái sử dụng instance `BarcodeGenerator`** khi bạn chỉ cần điều chỉnh kích thước — điều này tránh việc cấp phát bộ nhớ không cần thiết. +* **Giải phóng (Dispose) generator** (`generator.Dispose()`) sau khi hoàn thành để giải phóng tài nguyên gốc kịp thời. +* **Xác thực dữ liệu đầu vào** (ví dụ, độ dài GTIN) trước khi tạo mã vạch để tránh ngoại lệ thời gian chạy. +* **Kiểm tra bằng máy quét thực tế** sau khi thay đổi X‑dimension hoặc chiều cao thanh; các giá trị cực đoan có thể ảnh hưởng đến khả năng đọc. +* **Đảm bảo thư mục đầu ra có quyền ghi** cho tài khoản thực thi; nếu không `Save` sẽ ném ra `UnauthorizedAccessException`. + +## Kết luận + +Bây giờ bạn đã biết **cách thiết lập mã vạch** các thuộc tính như X‑dimension và chiều cao thanh, **cách tạo mã vạch** dưới dạng hình ảnh trong C#, và các bước chính xác để **tạo mã Databar** bằng Aspose.Barcode. Bằng cách theo dõi ví dụ đầy đủ, bạn có thể tạo nhiều tệp PNG với các đặc điểm hình ảnh khác nhau, đáp ứng yêu cầu **tạo hình ảnh mã vạch C#** cho bất kỳ ứng dụng .NET nào. + +Tiếp theo, hãy khám phá các chủ đề liên quan như **cách tạo mã vạch** hàng loạt, nhúng mã vạch vào PDF, hoặc chuyển sang các biểu tượng khác như QR hoặc Code 128. Thử nghiệm các tham số được trình bày ở đây để tinh chỉnh giao diện mã vạch cho môi trường quét cụ thể của bạn. Chúc lập trình vui vẻ! + +## Bạn Nên Học Gì Tiếp Theo? + +Các hướng dẫn sau đây bao gồm các chủ đề liên quan chặt chẽ, xây dựng trên các kỹ thuật đã trình bày trong hướng dẫn này. Mỗi tài nguyên đều có các ví dụ mã hoạt động đầy đủ kèm theo giải thích từng bước để giúp bạn nắm vững các tính năng API bổ sung và khám phá các cách triển khai thay thế trong dự án của mình. + +- [How to Generate DataMatrix Barcodes (ECC 200) with Aspose.BarCode for .NET](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-ecc-200-configuration/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) +- [How to Generate Barcode – Code 39 Configuration with Aspose.BarCode](/barcode/english/net/one-dimensional-barcode-types/one-dimensional-code-39-configuration/) + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file