From cc37a2dd885c10e659642a33427bc0681860c2ae Mon Sep 17 00:00:00 2001 From: Muhammad Adil Date: Mon, 3 Aug 2026 10:43:08 +0000 Subject: [PATCH] Add 4 barcode net tutorials MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Categories: compact-pdf417-encoding Source: AI Search API Tutorials: - Create PDF417 barcode in C# – step‑by‑step guide - Generate PDF417 barcode C# – complete guide with Aspose.BarCode - how to save barcode as an image – complete C# guide - Read PDF417 barcode in C# – barcode reader example Auto-generated by Professionalize.Tutorials Agent --- .../net/compact-pdf417-encoding/_index.md | 9 +- .../_index.md | 225 ++++++++++++++++ .../_index.md | 240 +++++++++++++++++ .../_index.md | 186 ++++++++++++++ .../_index.md | 215 ++++++++++++++++ .../net/compact-pdf417-encoding/_index.md | 18 +- .../_index.md | 223 ++++++++++++++++ .../_index.md | 240 +++++++++++++++++ .../_index.md | 184 +++++++++++++ .../_index.md | 213 +++++++++++++++ .../net/compact-pdf417-encoding/_index.md | 14 +- .../_index.md | 224 ++++++++++++++++ .../_index.md | 240 +++++++++++++++++ .../_index.md | 186 ++++++++++++++ .../_index.md | 216 ++++++++++++++++ .../net/compact-pdf417-encoding/_index.md | 18 +- .../_index.md | 221 ++++++++++++++++ .../_index.md | 241 +++++++++++++++++ .../_index.md | 187 ++++++++++++++ .../_index.md | 216 ++++++++++++++++ .../net/compact-pdf417-encoding/_index.md | 10 +- .../_index.md | 227 ++++++++++++++++ .../og-image.png | Bin 0 -> 48794 bytes .../_index.md | 242 ++++++++++++++++++ .../og-image.png | Bin 0 -> 50725 bytes .../_index.md | 188 ++++++++++++++ .../og-image.png | Bin 0 -> 51309 bytes .../_index.md | 218 ++++++++++++++++ .../og-image.png | Bin 0 -> 48283 bytes .../net/compact-pdf417-encoding/_index.md | 14 +- .../_index.md | 223 ++++++++++++++++ .../_index.md | 241 +++++++++++++++++ .../_index.md | 190 ++++++++++++++ .../_index.md | 217 ++++++++++++++++ .../net/compact-pdf417-encoding/_index.md | 16 +- .../_index.md | 223 ++++++++++++++++ .../_index.md | 240 +++++++++++++++++ .../_index.md | 187 ++++++++++++++ .../_index.md | 216 ++++++++++++++++ .../net/compact-pdf417-encoding/_index.md | 12 +- .../_index.md | 227 ++++++++++++++++ .../_index.md | 242 ++++++++++++++++++ .../_index.md | 186 ++++++++++++++ .../_index.md | 218 ++++++++++++++++ .../net/compact-pdf417-encoding/_index.md | 12 +- .../_index.md | 226 ++++++++++++++++ .../_index.md | 241 +++++++++++++++++ .../_index.md | 186 ++++++++++++++ .../_index.md | 214 ++++++++++++++++ .../net/compact-pdf417-encoding/_index.md | 10 +- .../_index.md | 223 ++++++++++++++++ .../_index.md | 240 +++++++++++++++++ .../_index.md | 184 +++++++++++++ .../_index.md | 211 +++++++++++++++ .../net/compact-pdf417-encoding/_index.md | 14 +- .../_index.md | 223 ++++++++++++++++ .../_index.md | 242 ++++++++++++++++++ .../_index.md | 188 ++++++++++++++ .../_index.md | 215 ++++++++++++++++ .../net/compact-pdf417-encoding/_index.md | 10 +- .../_index.md | 226 ++++++++++++++++ .../_index.md | 241 +++++++++++++++++ .../_index.md | 187 ++++++++++++++ .../_index.md | 214 ++++++++++++++++ .../net/compact-pdf417-encoding/_index.md | 16 +- .../_index.md | 227 ++++++++++++++++ .../_index.md | 241 +++++++++++++++++ .../_index.md | 188 ++++++++++++++ .../_index.md | 216 ++++++++++++++++ .../net/compact-pdf417-encoding/_index.md | 10 +- .../_index.md | 224 ++++++++++++++++ .../_index.md | 240 +++++++++++++++++ .../_index.md | 184 +++++++++++++ .../_index.md | 214 ++++++++++++++++ .../net/compact-pdf417-encoding/_index.md | 12 +- .../_index.md | 223 ++++++++++++++++ .../_index.md | 242 ++++++++++++++++++ .../_index.md | 186 ++++++++++++++ .../_index.md | 216 ++++++++++++++++ .../net/compact-pdf417-encoding/_index.md | 18 +- .../_index.md | 226 ++++++++++++++++ .../_index.md | 240 +++++++++++++++++ .../_index.md | 186 ++++++++++++++ .../_index.md | 217 ++++++++++++++++ .../net/compact-pdf417-encoding/_index.md | 14 +- .../_index.md | 226 ++++++++++++++++ .../_index.md | 241 +++++++++++++++++ .../_index.md | 188 ++++++++++++++ .../_index.md | 218 ++++++++++++++++ .../net/compact-pdf417-encoding/_index.md | 14 +- .../_index.md | 226 ++++++++++++++++ .../_index.md | 241 +++++++++++++++++ .../_index.md | 186 ++++++++++++++ .../_index.md | 217 ++++++++++++++++ .../net/compact-pdf417-encoding/_index.md | 10 +- .../_index.md | 223 ++++++++++++++++ .../_index.md | 241 +++++++++++++++++ .../_index.md | 188 ++++++++++++++ .../_index.md | 218 ++++++++++++++++ .../net/compact-pdf417-encoding/_index.md | 10 +- .../_index.md | 223 ++++++++++++++++ .../_index.md | 240 +++++++++++++++++ .../_index.md | 186 ++++++++++++++ .../_index.md | 214 ++++++++++++++++ .../net/compact-pdf417-encoding/_index.md | 10 +- .../_index.md | 225 ++++++++++++++++ .../_index.md | 242 ++++++++++++++++++ .../_index.md | 186 ++++++++++++++ .../_index.md | 214 ++++++++++++++++ .../net/compact-pdf417-encoding/_index.md | 14 +- .../_index.md | 227 ++++++++++++++++ .../_index.md | 241 +++++++++++++++++ .../_index.md | 187 ++++++++++++++ .../_index.md | 216 ++++++++++++++++ .../net/compact-pdf417-encoding/_index.md | 10 +- .../_index.md | 225 ++++++++++++++++ .../_index.md | 240 +++++++++++++++++ .../_index.md | 186 ++++++++++++++ .../_index.md | 216 ++++++++++++++++ 119 files changed, 20220 insertions(+), 29 deletions(-) create mode 100644 barcode/arabic/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md create mode 100644 barcode/arabic/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md create mode 100644 barcode/arabic/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md create mode 100644 barcode/arabic/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md create mode 100644 barcode/chinese/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md create mode 100644 barcode/chinese/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md create mode 100644 barcode/chinese/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md create mode 100644 barcode/chinese/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md create mode 100644 barcode/czech/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md create mode 100644 barcode/czech/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md create mode 100644 barcode/czech/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md create mode 100644 barcode/czech/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md create mode 100644 barcode/dutch/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md create mode 100644 barcode/dutch/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md create mode 100644 barcode/dutch/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md create mode 100644 barcode/dutch/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md create mode 100644 barcode/english/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md create mode 100644 barcode/english/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/og-image.png create mode 100644 barcode/english/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md create mode 100644 barcode/english/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/og-image.png create mode 100644 barcode/english/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md create mode 100644 barcode/english/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/og-image.png create mode 100644 barcode/english/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md create mode 100644 barcode/english/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/og-image.png create mode 100644 barcode/french/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md create mode 100644 barcode/french/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md create mode 100644 barcode/french/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md create mode 100644 barcode/french/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md create mode 100644 barcode/german/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md create mode 100644 barcode/german/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md create mode 100644 barcode/german/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md create mode 100644 barcode/german/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md create mode 100644 barcode/greek/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md create mode 100644 barcode/greek/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md create mode 100644 barcode/greek/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md create mode 100644 barcode/greek/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md create mode 100644 barcode/hindi/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md create mode 100644 barcode/hindi/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md create mode 100644 barcode/hindi/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md create mode 100644 barcode/hindi/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md create mode 100644 barcode/hongkong/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md create mode 100644 barcode/hongkong/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md create mode 100644 barcode/hongkong/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md create mode 100644 barcode/hongkong/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md create mode 100644 barcode/hungarian/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md create mode 100644 barcode/hungarian/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md create mode 100644 barcode/hungarian/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md create mode 100644 barcode/hungarian/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md create mode 100644 barcode/indonesian/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md create mode 100644 barcode/indonesian/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md create mode 100644 barcode/indonesian/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md create mode 100644 barcode/indonesian/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md create mode 100644 barcode/italian/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md create mode 100644 barcode/italian/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md create mode 100644 barcode/italian/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md create mode 100644 barcode/italian/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md create mode 100644 barcode/japanese/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md create mode 100644 barcode/japanese/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md create mode 100644 barcode/japanese/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md create mode 100644 barcode/japanese/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md create mode 100644 barcode/korean/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md create mode 100644 barcode/korean/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md create mode 100644 barcode/korean/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md create mode 100644 barcode/korean/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md create mode 100644 barcode/polish/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md create mode 100644 barcode/polish/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md create mode 100644 barcode/polish/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md create mode 100644 barcode/polish/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md create mode 100644 barcode/portuguese/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md create mode 100644 barcode/portuguese/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md create mode 100644 barcode/portuguese/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md create mode 100644 barcode/portuguese/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md create mode 100644 barcode/russian/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md create mode 100644 barcode/russian/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md create mode 100644 barcode/russian/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md create mode 100644 barcode/russian/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md create mode 100644 barcode/spanish/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md create mode 100644 barcode/spanish/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md create mode 100644 barcode/spanish/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md create mode 100644 barcode/spanish/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md create mode 100644 barcode/swedish/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md create mode 100644 barcode/swedish/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md create mode 100644 barcode/swedish/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md create mode 100644 barcode/swedish/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md create mode 100644 barcode/thai/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md create mode 100644 barcode/thai/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md create mode 100644 barcode/thai/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md create mode 100644 barcode/thai/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md create mode 100644 barcode/turkish/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md create mode 100644 barcode/turkish/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md create mode 100644 barcode/turkish/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md create mode 100644 barcode/turkish/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md create mode 100644 barcode/vietnamese/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md create mode 100644 barcode/vietnamese/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md create mode 100644 barcode/vietnamese/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md create mode 100644 barcode/vietnamese/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md diff --git a/barcode/arabic/net/compact-pdf417-encoding/_index.md b/barcode/arabic/net/compact-pdf417-encoding/_index.md index 6b447ecb2..ae8321bff 100644 --- a/barcode/arabic/net/compact-pdf417-encoding/_index.md +++ b/barcode/arabic/net/compact-pdf417-encoding/_index.md @@ -84,6 +84,13 @@ PDF417 المدمج هو رمز ثنائي الأبعاد عالي السعة ي ## دروس ترميز PDF417 المدمج ### [إنشاء باركودات PDF417 المدمجة](./compact-pdf417-basic-configuration/) تعلم كيفية إنشاء باركودات PDF417 المدمجة باستخدام Aspose.BarCode for .NET. دليل شامل مع تعليمات خطوة بخطوة وأمثلة شفرة. +### [إنشاء باركود PDF417 في C# – دليل خطوة بخطوة](./create-pdf417-barcode-in-c-step-by-step-guide/) +تعلم كيفية إنشاء باركود PDF417 باستخدام C# خطوة بخطوة مع Aspose.BarCode. +### [إنشاء باركود PDF417 باستخدام C# – دليل كامل مع Aspose.BarCode](./generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/) +دليل شامل لإنشاء باركود PDF417 باستخدام C# مع مكتبة Aspose.BarCode، يشمل خطوات مفصلة وأمثلة عملية. +### [كيفية حفظ الباركود كصورة – دليل كامل C#](./how-to-save-barcode-as-an-image-complete-c-guide/) +تعلم كيفية حفظ الباركود كملف صورة باستخدام Aspose.BarCode في C# خطوة بخطوة. +### [قراءة باركود PDF417 في C# – مثال قارئ الباركود](./read-pdf417-barcode-in-c-barcode-reader-example/) ## الأسئلة المتكررة @@ -113,4 +120,4 @@ PDF417 المدمج هو رمز ثنائي الأبعاد عالي السعة ي {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/arabic/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md b/barcode/arabic/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..1ad613c1c --- /dev/null +++ b/barcode/arabic/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md @@ -0,0 +1,225 @@ +--- +category: general +date: 2026-08-03 +description: إنشاء رمز شريطي PDF417 في C# بسرعة. تعلم كيفية توليد رمز شريطي PDF417 + وكيفية حفظ صورة الرمز الشريطي بصيغة PNG باستخدام Aspose.Barcode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create pdf417 barcode +- how to generate pdf417 barcode +- how to save barcode image +language: ar +lastmod: 2026-08-03 +og_description: إنشاء رمز شريطي PDF417 في C# باستخدام Aspose.Barcode. اتبع هذا الدليل + لإنشاء رمز شريطي PDF417 وكيفية حفظ صورة الرمز الشريطي بكفاءة. +og_image_alt: Screenshot of a generated compact PDF417 barcode saved as PNG +og_title: إنشاء باركود PDF417 في C# – دليل برمجة كامل +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + headline: Create PDF417 barcode in C# – step‑by‑step guide + type: TechArticle +- description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + name: Create PDF417 barcode in C# – step‑by‑step guide + steps: + - name: Why this matters + text: '* **EncodeTypes.Pdf417** tells the library to use the PDF417 standard, + which supports large data payloads and error correction. * Providing Unicode + characters proves the generator handles non‑ASCII input without extra configuration.' + - name: Practical tip + text: If you need a taller barcode for limited horizontal space, increase `Columns`. + Setting `Truncate` to `true` reduces the overall height by removing quiet zones, + which is ideal for mobile screens. + - name: Expected result + text: Running the program creates `CompactPdf417.png` in the project folder. Opening + the file shows a compact PDF417 barcode that encodes the string *Åspóse.Barcóde©*. + The image can be embedded in HTML, PDF reports, or printed on labels. + - name: Verifying the output + text: 'After the program finishes, you can verify the file exists with a quick + command:' + type: HowTo +tags: +- barcode +- C# +- PDF417 +- image generation +title: إنشاء رمز شريطي PDF417 في C# – دليل خطوة بخطوة +url: /ar/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# إنشاء شيفرة PDF417 في C# – دليل خطوة بخطوة + +إذا كنت بحاجة إلى **إنشاء شيفرة PDF417** في تطبيق .NET، يوضح لك هذا الدليل بالضبط كيفية توليد شيفرة PDF417 وكيفية حفظ صورة الشيفرة. ستحصل في النهاية على ملف PNG يمكن استخدامه في التقارير، التذاكر، أو تطبيقات المسح على الهواتف المحمولة. + +يغطي الدرس كل شيء من إعداد المشروع حتى ملف PNG النهائي. لا تحتاج إلى وثائق خارجية؛ فقط اتبع الخطوات وشغّل الكود. + +## ما ستحتاجه + +قبل أن تبدأ، تأكد من توفر ما يلي: + +* .NET 6.0 SDK أو أحدث (الكود يعمل أيضاً مع .NET Framework 4.7+) +* Visual Studio 2022 أو أي بيئة تطوير تدعم C# +* اتصال بالإنترنت لتثبيت حزمة **Aspose.Barcode for .NET** عبر NuGet + +هذه المتطلبات المسبقة تضمن أن الكود يُترجم دون الحاجة إلى إعدادات إضافية. + +## إنشاء شيفرة PDF417 – إعداد المشروع + +1. افتح موجه الأوامر وأنشئ مشروع console جديد: + + ```bash + dotnet new console -n Pdf417Demo + cd Pdf417Demo + ``` + +2. أضف مكتبة Aspose.Barcode: + + ```bash + dotnet add package Aspose.Barcode + ``` + +3. افتح ملف `Program.cs` الذي تم إنشاؤه. توضح عبارات `using` في الأعلى كيفية الوصول إلى فئات الشيفرة: + + ```csharp + using System; + using Aspose.Barcode.Generation; + using Aspose.Barcode; + ``` + +المشروع الآن جاهز **لإنشاء شيفرة PDF417**. + +## كيفية توليد شيفرة PDF417 باستخدام Aspose.Barcode + +تكمن جوهر عملية إنشاء الشيفرة في الفئة `BarcodeGenerator`. تقوم بتحديد نوع الترميز (`EncodeTypes.Pdf417`) والبيانات التي تريد ترميزها. + +```csharp +// Step 1: Initialise the generator with PDF417 symbology and sample text. +// The text includes Unicode characters to demonstrate full‑range support. +BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Pdf417, "Åspóse.Barcóde©"); +``` + +### لماذا هذا مهم + +* **EncodeTypes.Pdf417** يوجه المكتبة لاستخدام معيار PDF417، الذي يدعم أحجام بيانات كبيرة وتصحيح الأخطاء. +* توفير أحرف Unicode يثبت أن المولد يتعامل مع مدخلات غير ASCII دون إعدادات إضافية. + +## كيفية ضبط مظهر الشيفرة + +يمكنك التحكم في حجم كل وحدة، عدد الأعمدة، وما إذا كانت الشيفرة تستخدم الوضع المضغوط (truncated). تؤثر هذه الإعدادات على كل من قابلية القراءة وحجم الملف. + +```csharp +// Step 2: Set the module (X) dimension – each barcode element will be 2 pixels wide. +generator.Parameters.Barcode.XDimension.Pixels = 2; + +// Step 3: Configure PDF417‑specific options. +generator.Parameters.Barcode.Pdf417.Columns = 3; // Number of columns (affects height) +generator.Parameters.Barcode.Pdf417.Truncate = true; // Enable compact mode +``` + +### نصيحة عملية + +إذا كنت بحاجة إلى شيفرة أطول لوجود مساحة أفقية محدودة، قم بزيادة قيمة `Columns`. ضبط `Truncate` على `true` يقلل الارتفاع الكلي بإزالة مناطق الصمت، وهو مثالي لشاشات الهواتف المحمولة. + +## كيفية حفظ صورة الشيفرة بصيغة PNG + +بعد ضبط المولد، استدعِ الدالة `Save` مع مسار الملف وصيغة الصورة المطلوبة. تقوم الطريقة بكتابة الصورة مباشرة إلى القرص. + +```csharp +// Step 4: Save the generated barcode as a PNG image. +string outputPath = @"./CompactPdf417.png"; +generator.Save(outputPath, BarCodeImageFormat.Png); +Console.WriteLine($"Barcode saved to {outputPath}"); +``` + +### النتيجة المتوقعة + +تشغيل البرنامج ينشئ ملف `CompactPdf417.png` في مجلد المشروع. عند فتح الملف ستظهر شيفرة PDF417 مضغوطة ترمز السلسلة *Åspóse.Barcóde©*. يمكن تضمين الصورة في HTML، تقارير PDF، أو طباعتها على الملصقات. + +## الكود الكامل + +فيما يلي البرنامج الكامل القابل للتنفيذ. انسخه إلى `Program.cs` ثم نفّذ الأمر `dotnet run`. + +```csharp +using System; +using Aspose.Barcode.Generation; +using Aspose.Barcode; + +namespace Pdf417Demo +{ + class Program + { + static void Main() + { + // Initialise the generator with PDF417 symbology and sample text. + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.Pdf417, + "Åspóse.Barcóde©"); + + // Set the module width to 2 pixels. + generator.Parameters.Barcode.XDimension.Pixels = 2; + + // Configure PDF417‑specific options. + generator.Parameters.Barcode.Pdf417.Columns = 3; + generator.Parameters.Barcode.Pdf417.Truncate = true; + + // Define the output file path. + string outputPath = @"./CompactPdf417.png"; + + // Save the barcode as a PNG image. + generator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"Barcode saved to {outputPath}"); + } + } +} +``` + +### التحقق من النتيجة + +بعد انتهاء البرنامج، يمكنك التحقق من وجود الملف بأمر سريع: + +```bash +dotnet run && ls -l CompactPdf417.png +``` + +إذا ظهر الملف، فإن عملية **إنشاء شيفرة PDF417** نجحت. + +## الاختلافات الشائعة وحالات الحافة + +| الحالة | التعديل | +|-----------|------------| +| **سلسلة بيانات أطول** | زيادة `Columns` أو ضبط `Rows` لاستيعاب المزيد من الكلمات المشفرة. | +| **صيغة صورة مختلفة** | استبدال `BarCodeImageFormat.Png` بـ `Jpeg` أو `Bmp` أو `Gif`. | +| **دقة أعلى** | ضبط `generator.Parameters.ImageResolution` قبل استدعاء `Save`. | +| **لون الخلفية** | استخدم `generator.Parameters.Barcode.ImageBackgroundColor = Color.White;` | +| **معالجة الاستثناءات** | غلف `generator.Save` بكتلة `try/catch` لالتقاط أخطاء الإدخال/الإخراج. | + +تتيح لك هذه التعديلات تخصيص الشيفرة لتناسب الأجهزة أو متطلبات العلامة التجارية الخاصة بك. + +## الخلاصة + +أنت الآن تعرف كيف **تنشئ شيفرة PDF417** في C# باستخدام Aspose.Barcode، وتضبط مظهرها، و**تحفظ صورة الشيفرة** بصيغة PNG. يوضح المثال الكامل كل خطوة مطلوبة، من إعداد المشروع حتى التحقق، لتتمكن من دمج توليد الشيفرات في أي حل .NET. + +بعد ذلك، يمكنك استكشاف مواضيع ذات صلة مثل **كيفية توليد رموز QR**، **إدراج الشيفرات في مستندات PDF**، أو **تخصيص ألوان الشيفرة**. جميع هذه المواضيع تعتمد على نفس واجهة برمجة التطبيقات، مما يتيح لك توسيع قدرات المسح في تطبيقك بأقل جهد. برمجة سعيدة! + +## ما الذي يجب أن تتعلمه بعد ذلك؟ + +الدروس التالية تغطي مواضيع ذات صلة وثيقة تبني على التقنيات الموضحة في هذا الدليل. كل مصدر يتضمن أمثلة شيفرة كاملة مع شروحات خطوة بخطوة لمساعدتك على إتقان ميزات API إضافية واستكشاف أساليب تنفيذ بديلة في مشاريعك. + +- [How to Create Barcode – Compact PDF417 with Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [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/) + +{{< /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/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md b/barcode/arabic/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md new file mode 100644 index 000000000..d1edbe971 --- /dev/null +++ b/barcode/arabic/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md @@ -0,0 +1,240 @@ +--- +category: general +date: 2026-08-03 +description: إنشاء باركود PDF417 باستخدام C# و Aspose.BarCode. تعلم خطوة بخطوة كيفية + إضافة بيانات تعريف Macro PDF417 وحفظها كملف PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- generate PDF417 barcode C# +- Macro PDF417 barcode +- Aspose.BarCode +- C# barcode generation +- PDF417 metadata +- barcode image PNG +language: ar +lastmod: 2026-08-03 +og_description: إنشاء رمز شريطي PDF417 باستخدام C# مع Aspose.BarCode. يوضح هذا الدرس + كيفية تضمين بيانات تعريفية لـ Macro PDF417 وتصدير النتيجة كصورة PNG. +og_image_alt: Screenshot of a generated PDF417 barcode created with C# +og_title: إنشاء باركود PDF417 بلغة C# – دليل Aspose.BarCode خطوة بخطوة +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + headline: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + type: TechArticle +- description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + name: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + steps: + - name: Create a Macro PDF417 barcode generator + text: First, instantiate `BarcodeGenerator` with the `EncodeTypes.MacroPdf417` + enum. The constructor also accepts the text you want to encode – in this example + we use a string that contains Unicode characters to demonstrate full‑width support. + - name: Adjust basic barcode appearance + text: Next, define the visual size of the barcode. `XDimension.Pixels` controls + the width of a single module (the smallest black/white square), while `Pdf417.Columns` + influences the overall shape by setting the number of columns. + - name: Populate Macro PDF417 metadata + text: Macro PDF417 allows you to embed file‑level information that many back‑office + systems rely on (e.g., file ID, segment ID, timestamp). The following properties + illustrate the most common fields. + - name: Save the barcode image as PNG + text: Finally, call `Save` to write the barcode to disk. PNG is lossless, making + it ideal for high‑quality scanning. + - name: How to verify the result + text: 1. Open `ExtPDF417Meta.png` in any image viewer. 2. Use a PDF417 scanner + app (e.g., *Zebra Scanner* or *BarCode Reader* on Android/iOS). 3. Confirm that + the decoded payload includes the original text and a JSON‑like block with the + macro fields you set. + - name: Next steps + text: '- Experiment with other barcode formats (e.g., QR, Code128) by changing + `EncodeTypes`. - Explore `Pdf417.ErrorCorrectionLevel` to improve scan reliability + under poor lighting. - Integrate the generated image into a PDF report using + Aspose.PDF for end‑to‑end document automation.' + type: HowTo +tags: +- PDF417 +- C# +- Barcode +title: إنشاء باركود PDF417 باستخدام C# – دليل كامل مع Aspose.BarCode +url: /ar/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# توليد باركود PDF417 باستخدام C# – دليل شامل + +إذا كنت بحاجة إلى **توليد باركود PDF417 C#** لنظام لوجستي أو لإدارة المستندات، يوضح لك هذا البرنامج التعليمي بالضبط كيفية القيام بذلك باستخدام Aspose.BarCode. سترى كيفية تكوين الباركود، وإدراج بيانات Macro PDF417 الوصفية، وحفظ النتيجة كصورة PNG في بضع أسطر من الشيفرة فقط. + +توليد باركود PDF417 في C# غالبًا ما يعني التعامل مع معلومات إضافية مثل معرفات الملفات، أرقام القطاعات، أو الطوابع الزمنية. يغطي هذا الدليل تلك التفاصيل، حتى لا تضطر للبحث في وثائق متفرقة. بنهاية المقال ستحصل على برنامج جاهز للتنفيذ ينتج صورة باركود Macro PDF417 متوافقة. + +## ما الذي ستحتاجه + +- .NET 6.0 أو أحدث (الكود يعمل أيضًا مع .NET Framework 4.7+) +- Aspose.BarCode for .NET (v23.9 أو أحدث) – تثبيت عبر NuGet `Install-Package Aspose.BarCode` +- بيئة تطوير مثل Visual Studio 2022 أو Visual Studio Code +- إلمام أساسي بصياغة C# + +> **نصيحة احترافية:** استخدم أحدث نسخة من Aspose.BarCode للاستفادة من إصلاحات الأخطاء ودعم أحدث مواصفات PDF417. + +## كيفية توليد باركود PDF417 C# باستخدام Aspose.BarCode + +تتكون العملية من أربع خطوات منطقية. كل خطوة موضوعة في كتلة شيفرة واضحة حتى يمكنك نسخها ولصقها وتشغيلها فورًا. + +### الخطوة 1: إنشاء مولد باركود Macro PDF417 + +أولًا، أنشئ كائن `BarcodeGenerator` مع تعداد `EncodeTypes.MacroPdf417`. القالب يقبل أيضًا النص الذي تريد ترميزه – في هذا المثال نستخدم سلسلة تحتوي على أحرف يونيكود لتوضيح دعم العرض الكامل. + +```csharp +using System; +using Aspose.BarCode.Generation; + +// Create a Macro PDF417 barcode generator with the desired text +using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) +{ + // Subsequent steps go inside this using block +``` + +*لماذا هذا مهم*: النوع `MacroPdf417` يخبر Aspose.BarCode بمعاملة الرمز كباركود ماكرو، والذي يمكنه حمل بيانات وصفية على مستوى الملف. بدون هذا العلم، الحقول الإضافية التي ستضبطها لاحقًا سيتم تجاهلها. + +### الخطوة 2: تعديل مظهر الباركود الأساسي + +بعد ذلك، حدد الحجم البصري للباركود. `XDimension.Pixels` يتحكم في عرض الوحدة الواحدة (أصغر مربع أسود/أبيض)، بينما `Pdf417.Columns` يؤثر على الشكل العام عبر تحديد عدد الأعمدة. + +```csharp + // Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol +``` + +*لماذا هذا مهم*: قيمة `XDimension` الأصغر تنتج صورة ذات دقة أعلى، وهو مفيد عندما يجب مسح الباركود من شاشة. تغيير عدد الأعمدة يمكن أن يساعد في ملاءمة الباركود في مساحة محدودة دون التضحية بسعة البيانات. + +### الخطوة 3: تعبئة بيانات Macro PDF417 الوصفية + +يتيح Macro PDF417 لك إدراج معلومات على مستوى الملف تعتمد عليها العديد من أنظمة الخلفية (مثل معرف الملف، معرف القطاع، الطابع الزمني). الخصائص التالية توضح أكثر الحقول شيوعًا. + +```csharp + // Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; +``` + +*لماذا هذا مهم*: كل حقل يطابق مباشرةً جزءًا من مواصفات باركود الماكرو. على سبيل المثال، `MacroPdf417FileID` يحدد هوية الملف المنطقي بشكل فريد، بينما `MacroPdf417SegmentsCount` يخبر القارئ بعدد الأجزاء المتوقعة. توفير بيانات وصفية دقيقة يضمن أن الأنظمة اللاحقة يمكنها إعادة بناء المستند الأصلي دون أخطاء. + +### الخطوة 4: حفظ صورة الباركود كـ PNG + +أخيرًا، استدعِ `Save` لكتابة الباركود إلى القرص. PNG هو تنسيق غير مضغوط، مما يجعله مثاليًا للمسح عالي الجودة. + +```csharp + // Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); +} +``` + +*لماذا هذا مهم*: تعداد `BarCodeImageFormat.Png` يضمن أن ملف الإخراج يحتوي على بيانات البكسل التي ضبطتها بالضبط. إذا احتجت تنسيقًا متجهيًا للتكبير، استبدل `Png` بـ `Svg` – Aspose.BarCode يدعم ذلك مباشرة. + +#### النتيجة المتوقعة + +تشغيل البرنامج الكامل ينشئ ملفًا باسم **ExtPDF417Meta.png**. تُظهر الصورة رمز PDF417 كثيفًا ومتعدد الصفوف يتضمن النص “Åspóse.Barcóde©” والبيانات الوصفية للماكرو التي زودتها. عند مسح الباركود باستخدام قارئ يدعم PDF417، يتم إرجاع النص الأصلي بالإضافة إلى كتلة بيانات منظمة تحتوي على معرف الملف، معرف القطاع، الطابع الزمني، وغيرها من الحقول. + +![لقطة شاشة للباركود PDF417 المُولد](/images/pdf417-example.png){: .center-image alt="مثال إخراج توليد باركود PDF417 C#"} + +## الشيفرة الكاملة (جاهزة للنسخ واللصق) + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace Pdf417MacroDemo +{ + class Program + { + static void Main() + { + // Step 1: Create a Macro PDF417 barcode generator with the desired text + using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) + { + // Step 2: Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol + + // Step 3: Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; + + // Step 4: Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); + } + + Console.WriteLine("Macro PDF417 barcode generated successfully."); + } + } +} +``` + +### كيفية التحقق من النتيجة + +1. افتح `ExtPDF417Meta.png` في أي عارض صور. +2. استخدم تطبيق مسح PDF417 (مثل *Zebra Scanner* أو *BarCode Reader* على Android/iOS). +3. تأكد من أن الحمولة المفكوكة تشمل النص الأصلي وكتلة شبيهة بـ JSON تحتوي على حقول الماكرو التي ضبطتها. + +## أسئلة شائعة وتعامل مع الحالات الخاصة + +| السؤال | الجواب | +|----------|--------| +| **هل يمكنني توليد صورة متجهة بدلاً من PNG؟** | نعم. استبدل `BarCodeImageFormat.Png` بـ `BarCodeImageFormat.Svg`. يبقى باقي الشيفرة دون تغيير. | +| **ماذا لو تجاوزت البيانات السعة الافتراضية؟** | زد `Pdf417.Columns` أو اضبط `Pdf417.Rows` يدويًا. القيم الأكبر تسمح بمزيد من الكلمات الرمزية لكل قطاع. | +| **هل يدعم Unicode في النص المشفر؟** | بالتأكيد. المثال يستخدم “Åspóse.Barcóde©”. Aspose.BarCode يتحول تلقائيًا إلى ترميز UTF‑8 عند الحاجة. | +| **هل أحتاج إلى ترخيص لـ Aspose.BarCode؟** | للإنتاج يجب تطبيق ترخيص لتجنب علامة مائية التقييم. استدعِ `License license = new License(); license.SetLicense("Aspose.BarCode.lic");` قبل إنشاء المولد. | +| **كيف أتعامل مع الأخطاء عند حفظ الملف؟** | غلف استدعاء `Save` بكتلة try/catch وسجّل `IOException` أو `BarCodeException` لتتبع المشكلات. | + +## الخلاصة + +أنت الآن تعرف كيف **تولد باركود PDF417 C#** باستخدام Aspose.BarCode، وتدمج بيانات Macro PDF417 الوصفية بالكامل، وتصدّر النتيجة كصورة PNG عالية الجودة. الخطوات — إنشاء المولد، تعديل المظهر، تعبئة البيانات الوصفية، وحفظ الصورة — تشكل نمطًا قابلاً لإعادة الاستخدام يمكنك تكييفه للفواتير، بطاقات الشحن، أو أي سيناريو يتطلب بيانات باركود غنية. + +### الخطوات التالية + +- جرّب صيغ باركود أخرى (مثل QR، Code128) بتغيير `EncodeTypes`. +- استكشف `Pdf417.ErrorCorrectionLevel` لتحسين موثوقية المسح في ظروف إضاءة ضعيفة. +- دمج الصورة المولدة في تقرير PDF باستخدام Aspose.PDF لأتمتة المستندات من البداية إلى النهاية. + +لا تتردد في تعديل حقول البيانات الوصفية لتتناسب مع قواعد عملك، ودع توليد الباركود يصبح جزءًا سلسًا من تطبيقات C# الخاصة بك. برمجة سعيدة! + +## ما الذي يجب أن تتعلمه بعد ذلك؟ + +الدروس التالية تغطي مواضيع ذات صلة وثيقة تبني على التقنيات الموضحة في هذا الدليل. كل مورد يتضمن أمثلة شيفرة كاملة مع شروحات خطوة بخطوة لمساعدتك على إتقان ميزات API إضافية واستكشاف أساليب تنفيذ بديلة في مشاريعك. + +- [How to Create Barcode – Compact PDF417 with Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [So erstellen Sie einen Barcode – Kompaktes PDF417 mit Aspose.BarCode](/barcode/german/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [java barcode library – Add barcode to PDF using Aspose](/barcode/english/java/barcode-basics/adding-barcode-to-pdf-document/) + +{{< /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/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md b/barcode/arabic/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md new file mode 100644 index 000000000..2769f2235 --- /dev/null +++ b/barcode/arabic/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md @@ -0,0 +1,186 @@ +--- +category: general +date: 2026-08-03 +description: كيفية حفظ الباركود بسرعة باستخدام C#. تعلم توليد باركود MicroPDF417، + ضبط الأبعاد، اختيار الأعمدة، وتصديره إلى PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to save barcode +- MicroPDF417 barcode +- C# barcode generation +- barcode XDimension +- PDF417 columns +- barcode image format +language: ar +lastmod: 2026-08-03 +og_description: كيفية حفظ الباركود في C# مع مثال كامل. إنشاء باركود MicroPDF417، تعديل + الحجم، ضبط الأعمدة، وتصديره إلى PNG. +og_image_alt: Screenshot showing a MicroPDF417 barcode saved as a PNG file +og_title: كيفية حفظ الباركود – دليل C# خطوة بخطوة +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: how to save barcode quickly using C#. Learn MicroPDF417 barcode generation, + set dimensions, choose columns, and export to PNG. + headline: how to save barcode as an image – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- imaging +title: كيفية حفظ الباركود كصورة – دليل C# الكامل +url: /ar/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية حفظ الباركود – دليل C# كامل + +إذا كنت بحاجة إلى **كيفية حفظ الباركود** في تطبيق .NET، فإن هذا الدليل يوضح لك الخطوات الدقيقة. ستقوم بإنشاء باركود MicroPDF417، وتعديل أبعاده، واختيار عدد الأعمدة، وأخيرًا كتابة الصورة إلى القرص كملف PNG. + +إنشاء وحفظ الباركود لا يتطلب مكتبة ثقيلة—فقط فئة `BarcodeGenerator` من مجموعة Aspose.BarCode for .NET. في الأقسام أدناه نستعرض كل خيار تكوين، نشرح لماذا هو مهم، ونقدم لك مثالًا جاهزًا للتنفيذ. + +## المتطلبات المسبقة + +- .NET 6.0 أو أحدث (واجهة برمجة التطبيقات تعمل مع .NET Core و .NET Framework) +- Aspose.BarCode for .NET (حزمة NuGet `Aspose.BarCode`) +- مجلد لديك صلاحية كتابة فيه (يُستخدم في خطوة **كيفية حفظ الباركود**) + +## الخطوة 1: إنشاء مولد باركود MicroPDF417 + +المهمة الأولى في أي سير عمل **كيفية حفظ الباركود** هي إنشاء كائن `BarcodeGenerator` بالترميز والبيانات المطلوبة. MicroPDF417 هو نسخة مضغوطة من باركود PDF417 المصفوفي، مثالي للملصقات الصغيرة. + +```csharp +using Aspose.BarCode.Generation; + +// Create a MicroPDF417 barcode with sample text that includes Unicode characters. +BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, // Symbology + "Åspóse.Barcóde©"); // Data to encode +``` + +**لماذا هذا مهم:** +`EncodeTypes.MicroPdf417` يخبر المكتبة باستخدام خوارزمية MicroPDF417، التي تتعامل تلقائيًا مع تصحيح الأخطاء وترميز البيانات. تقديم نص Unicode يوضح أن المولد يعالج الأحرف غير ASCII بشكل صحيح. + +## الخطوة 2: تعديل البُعد X (حجم الوحدة) + +البُعد X يحدد عرض وحدة الباركود الواحدة (بالبكسل). قيمة أصغر تنتج باركودًا أكثر تماسكًا، بينما قيمة أكبر تسهل قراءته. + +```csharp +// Set each module to 2 pixels wide. +barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +**لماذا هذا مهم:** +ضبط `barcode XDimension` يضمن أن الباركود يتناسب مع حجم الملصق المستهدف. إذا تخطيت هذه الخطوة، قد يكون الحجم الافتراضي كبيرًا جدًا لشاشات الهواتف المحمولة أو الطباعة الصغيرة. + +## الخطوة 3: اختيار عدد الأعمدة لمصفوفة PDF417 + +يدعم MicroPDF417 من 1 إلى 4 أعمدة. المزيد من الأعمدة ينتج باركودًا أكثر مربعًا؛ القليل من الأعمدة يمده عموديًا. + +```csharp +// Use the maximum of 4 columns for a compact, square shape. +barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; +``` + +**لماذا هذا مهم:** +تعديل **أعمدة PDF417** يتيح لك موازنة قابلية القراءة مع قيود المساحة. في كثير من سيناريوهات المسح، يوفر تخطيط 4 أعمدة أفضل توازن. + +## الخطوة 4: حفظ الباركود المُولد كصورة PNG + +الآن بعد تكوين الباركود، يمكنك أخيرًا الإجابة على سؤال “**كيفية حفظ الباركود**” بكتابة الصورة إلى ملف. PNG يحافظ على جودة غير مضغوطة، وهو أمر أساسي للمسح الدقيق. + +```csharp +// Define the output path (ensure the directory exists). +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + +// Export the barcode to PNG. +barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + +Console.WriteLine($"Barcode saved to: {outputPath}"); +``` + +**لماذا هذا مهم:** +`barcode image format` يحدد دقة الصورة المحفوظة. PNG مفضلة لمعظم واجهات المستخدم وسير عمل الطباعة لأنها تحتفظ بالحواف الواضحة دون تشوهات ضغط. + +## مثال كامل قابل للتنفيذ + +دمج كل ما سبق يمنحك برنامجًا مستقلًا يمكنك نسخه ولصقه وتشغيله. + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // 1️⃣ Create the barcode generator. + BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, + "Åspóse.Barcóde©"); + + // 2️⃣ Adjust module size. + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; + + // 3️⃣ Set column count (1‑4 allowed). + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; + + // 4️⃣ Define output location. + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + + // 5️⃣ Save as PNG. + barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"✅ Barcode saved to: {outputPath}"); + } +} +``` + +**الناتج المتوقع** + +تشغيل البرنامج ينشئ ملف `MicroPdf417.png` على سطح المكتب. عند فتح الملف ستظهر صورة باركود MicroPDF417 واضحة تشفر السلسلة `Åspóse.Barcóde©`. مسحه بأي قارئ باركود قياسي سيعيد النص الأصلي. + +## أسئلة شائعة وحالات خاصة + +| السؤال | الجواب | +|----------|--------| +| *هل يمكنني استخدام JPEG بدلاً من PNG؟* | نعم. استبدل `BarCodeImageFormat.Png` بـ `BarCodeImageFormat.Jpeg`. JPEG أصغر حجماً لكنه يضيف تشوهات ضغط قد تؤثر على القراءة. | +| *ماذا لو تجاوزت بياناتي سعة MicroPDF417؟* | يمكن لـ MicroPDF417 تخزين ما يصل إلى 1 KB من البيانات. للحمولات الأكبر انتقل إلى `EncodeTypes.Pdf417` الكامل. | +| *كيف يمكنني تغيير لون الباركود؟* | استخدم `barcodeGenerator.Parameters.Barcode.BarColor` و `BackColor` لتعيين ألوان المقدمة/الخلفية قبل استدعاء `Save`. | +| *هل يقتصر البُعد X على بكسلات صحيحة؟* | الخاصية تقبل قيمة `float`. القيم مثل `1.5f` مسموح بها، لكن معظم الطابعات تعمل بشكل أفضل مع أحجام بكسل كاملة. | + +## نصائح احترافية لتنفيذ **كيفية حفظ الباركود** بشكل موثوق + +- **تحقق من وجود مجلد الإخراج** باستخدام `Directory.Exists` قبل استدعاء `Save` لتجنب `IOException`. +- **قم بتحرير المولد** (`barcodeGenerator.Dispose()`) عندما تنشئ العديد من الباركودات داخل حلقة لتحرير الموارد الأصلية. +- **اختبر باستخدام ماسحات حقيقية** بعد الحفظ؛ الفحص البصري غير كافٍ للنشر في بيئات الإنتاج. +- **احرص على تحديث المكتبة**—الإصدارات الأحدث من Aspose.BarCode تضيف تحسينات للرموز وإصلاحات للأخطاء. + +## الخلاصة + +أنت الآن تعرف **كيفية حفظ صور الباركود** في C# باستخدام مكتبة Aspose.BarCode. من خلال إنشاء باركود MicroPDF417، وتكوين **XDimension** للباركود، واختيار **أعمدة PDF417** المناسبة، وتصديره إلى **تنسيق صورة باركود** مثل PNG، لديك حل كامل جاهز للإنتاج. + +بعد ذلك، استكشف المواضيع ذات الصلة مثل **إنشاء باركود C# للرموز QR**، **إنشاء باركود دفعي**، أو **دمج الباركود في تقارير PDF**. كلٌ منها يبني على نفس المبادئ التي تم توضيحها هنا، مما يتيح لك توسيع مجموعة أدوات التصوير الخاصة بك بثقة. + +## ماذا يجب أن تتعلم بعد ذلك؟ + +الدروس التالية تغطي مواضيع ذات صلة وثيقة تبني على التقنيات الموضحة في هذا الدليل. كل مورد يتضمن أمثلة شاملة مع شروحات خطوة بخطوة لمساعدتك على إتقان ميزات API إضافية واستكشاف أساليب تنفيذ بديلة في مشاريعك. + +- [كيفية حفظ PNG باستخدام DataMatrix C40 مع Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-c40/) +- [كيفية تعيين حد لتخصيص باركود ITF-14](/barcode/english/net/itf-14-barcode-customization/) +- [كيفية إنشاء باركود Aztec بنسبة أبعاد مخصصة باستخدام Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) + +{{< /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/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md b/barcode/arabic/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md new file mode 100644 index 000000000..cc91ba35a --- /dev/null +++ b/barcode/arabic/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md @@ -0,0 +1,215 @@ +--- +category: general +date: 2026-08-03 +description: قراءة الباركود PDF417 من صورة باستخدام C# BarCodeReader – مثال كامل لقارئ + الباركود يوضح أيضًا كيفية قراءة عدة باركودات. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- read PDF417 barcode +- barcode reader example +- read multiple barcodes +- read barcodes image +language: ar +lastmod: 2026-08-03 +og_description: اقرأ رمز PDF417 بسرعة باستخدام مثال BarCodeReader بلغة C#. اتبع هذا + الدليل خطوة بخطوة لفك تشفير macro PDF417 وقراءة عدة رموز شريطية من صورة. +og_image_alt: Console output of a read PDF417 barcode example in C# +og_title: قراءة رمز PDF417 الشريطي في C# – مثال كامل لقارئ الباركود +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + headline: Read PDF417 barcode in C# – barcode reader example + type: TechArticle +- description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + name: Read PDF417 barcode in C# – barcode reader example + steps: + - name: '**Create a new console project**' + text: '**Create a new console project**' + - name: '**Add the barcode library**' + text: '**Add the barcode library**' + - name: '**Copy the barcode image**' + text: '**Copy the barcode image**' + type: HowTo +tags: +- barcode +- PDF417 +- C# +- .NET +title: قراءة الباركود PDF417 في C# – مثال على قارئ الباركود +url: /ar/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# قراءة الباركود PDF417 في C# – مثال على قارئ الباركود + +إذا كنت بحاجة إلى قراءة بيانات باركود PDF417 من صورة، يوضح لك هذا الدليل كيفية القيام بذلك باستخدام الفئة **BarCodeReader** في C#. ستتعلم مثالًا على قارئ الباركود يتعامل أيضًا مع macro PDF417 ويمكنه قراءة عدة باركودات في صورة واحدة. + +العمل مع الباركودات غالبًا ما يعني التعامل مع مصادر صور مختلفة، ظروف إضاءة متباينة، وأحيانًا بيانات مركبة مثل مقاطع macro PDF417. يغطي هذا البرنامج التعليمي كل ما تحتاجه لفك تشفير باركود PDF417، استخراج حقوله الموسعة، ومعالجة عدة باركودات من نفس الصورة. في النهاية ستحصل على برنامج كونسول قابل للتنفيذ يقرأ الباركودات من ملف صورة ويطبع معلومات مفصلة إلى الكونسول. + +## ما ستحتاجه + +قبل أن تبدأ، تأكد من وجود ما يلي: + +* .NET 6.0 SDK أو أحدث مثبت +* نسخة حديثة من حزمة **Aspose.BarCode for .NET** على NuGet (أو أي مكتبة متوافقة توفر `BarCodeReader` و `DecodeType.MacroPdf417`) +* ملف صورة يحتوي على باركود PDF417 أو macro PDF417 (العينة تستخدم `ExtPDF417Meta.png`) +* محرر شفرة أو بيئة تطوير متكاملة مثل Visual Studio 2022 + +لا توجد خدمات إضافية أو واجهات برمجة تطبيقات خارجية مطلوبة. + +## إعداد المشروع لقراءة الباركود + +1. **إنشاء مشروع كونسول جديد** + + ```bash + dotnet new console -n Pdf417ReaderDemo + cd Pdf417ReaderDemo + ``` + +2. **إضافة مكتبة الباركود** + + ```bash + dotnet add package Aspose.BarCode --version 23.12 + ``` + +3. **نسخ صورة الباركود** + + ضع `ExtPDF417Meta.png` (أو أي صورة تحتوي على باركود PDF417) في مجلد المشروع. + لهذا البرنامج التعليمي نفترض أن الملف موجود في `YOUR_DIRECTORY/ExtPDF417Meta.png`. + +المشروع الآن جاهز للترجمة والتنفيذ مثال قارئ الباركود. + +## كيفية قراءة باركود PDF417 باستخدام BarCodeReader + +جوهر الحل هو كتلة `using` تنشئ مثيلًا من `BarCodeReader`، تحدد `DecodeType.MacroPdf417`، وتكرر عبر كل باركود مكتشف. الشيفرة التالية برنامج كامل ومستقل يمكنك لصقه في `Program.cs`. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.BarCodeRecognition; + +class Program +{ + static void Main() + { + // Path to the image that contains one or more PDF417 barcodes + const string imagePath = "YOUR_DIRECTORY/ExtPDF417Meta.png"; + + // Step 1: Create a BarCodeReader for a macro PDF417 image + using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.MacroPdf417)) + { + // Step 2: Read all barcodes from the image + foreach (BarCodeResult result in reader.ReadBarCodes()) + { + // Step 3: Output basic barcode information + Console.WriteLine($"CodeType: {result.CodeTypeName}"); + Console.WriteLine($"CodeText: {result.CodeText}"); + + // Step 4: Output macro PDF417 specific fields + Console.WriteLine($"Pdf417MacroFileID: {result.Extended.Pdf417.MacroPdf417FileID}"); + Console.WriteLine($"Pdf417MacroSegmentID: {result.Extended.Pdf417.MacroPdf417SegmentID}"); + Console.WriteLine($"Pdf417MacroSegmentsCount: {result.Extended.Pdf417.MacroPdf417SegmentsCount}"); + Console.WriteLine($"Pdf417MacroFileName: {result.Extended.Pdf417.MacroPdf417FileName}"); + Console.WriteLine($"Pdf417MacroChecksum: {result.Extended.Pdf417.MacroPdf417Checksum}"); + Console.WriteLine($"Pdf417MacroFileSize: {result.Extended.Pdf417.MacroPdf417FileSize}"); + Console.WriteLine($"Pdf417MacroTimeStamp: {result.Extended.Pdf417.MacroPdf417TimeStamp}"); + Console.WriteLine($"Pdf417MacroAddressee: {result.Extended.Pdf417.MacroPdf417Addressee}"); + Console.WriteLine($"Pdf417MacroSender: {result.Extended.Pdf417.MacroPdf417Sender}"); + Console.WriteLine($"MacroPdf417Terminator: {result.Extended.Pdf417.MacroPdf417Terminator}"); + Console.WriteLine(new string('-', 40)); + } + + // Pro tip: If no barcodes are found, ReadBarCodes() returns an empty collection. + // You can check reader.HasBarcodes for a quick boolean test. + if (!reader.HasBarcodes) + { + Console.WriteLine("No barcodes detected in the provided image."); + } + } + } +} +``` + +**لماذا يعمل هذا**: + +* `DecodeType.MacroPdf417` يخبر القارئ بالبحث عن امتداد macro لباركود PDF417، والذي يحمل بيانات وصفية إضافية مثل معرف الملف، عدد المقاطع، والطوابع الزمنية. +* جملة `using` تضمن تحرير الموارد غير المدارية (مقابض الملفات، مخازن فك الترميز الأصلية) بسرعة. +* حلقة `foreach` تعالج **جميع** الباركودات الموجودة في الصورة، مما يلبي متطلب *قراءة عدة باركودات*. + +عند تشغيل البرنامج (`dotnet run`)، يجب أن ترى مخرجات مشابهة للتالي: + +``` +CodeType: MacroPdf417 +CodeText: https://example.com/document.pdf +Pdf417MacroFileID: 12345 +Pdf417MacroSegmentID: 1 +Pdf417MacroSegmentsCount: 3 +Pdf417MacroFileName: document.pdf +Pdf417MacroChecksum: 0x1A2B +Pdf417MacroFileSize: 204800 +Pdf417MacroTimeStamp: 2024-07-15T10:25:00Z +Pdf417MacroAddressee: John Doe +Pdf417MacroSender: Acme Corp +MacroPdf417Terminator: True +---------------------------------------- +``` + +إذا احتوت الصورة على أكثر من باركود PDF417 واحد، تطبع الحلقة كتلة منفصلة لكل باركود، وبالتالي توضح كيفية **قراءة عدة باركودات** من صورة واحدة. + +## قراءة عدة باركودات من صورة + +يمكن لنفس مثيل `BarCodeReader` فك تشفير عدة أنواع باركود في آن واحد. لتوسيع النطاق من macro PDF417 فقط إلى أي PDF417 (أو حتى QR، Code128، إلخ)، عدل علم `DecodeType`: + +```csharp +using (BarCodeReader reader = new BarCodeReader(imagePath, + DecodeType.Pdf417 | DecodeType.MacroPdf417 | DecodeType.QR | DecodeType.Code128)) +{ + // The rest of the code stays unchanged. +} +``` + +*`DecodeType`* هو قناع بت، لذا يمكنك دمج أي عدد من الصيغ المدعومة. هذه المرونة تجعل المقتطف **مثالًا على قارئ الباركود** يعمل لمجموعة واسعة من حالات الاستخدام، مثل مسح ملصقات المنتجات، التذاكر، أو بطاقات الهوية. + +## الوصول إلى حقول macro PDF417 بأمان + +يضيف macro PDF417 مجموعة غنية من الخصائص الموسعة. ومع ذلك، ليس كل باركود يحتوي على كل حقل. محاولة الوصول إلى خاصية مفقودة قد تؤدي إلى استثناء `NullReferenceException`. النهج الأكثر أمانًا هو التحقق من كل خاصية قبل طباعتها: + +```csharp +var macro = result.Extended?.Pdf417; +if (macro != null) +{ + Console.WriteLine($"Pdf417MacroFileID: {macro.MacroPdf417FileID ?? "N/A"}"); + // Repeat for other fields... +} +``` + +*لماذا هذا مهم*: في عمليات النشر الواقعية قد تتلقى باركودات PDF417 عادية لا تحتوي على بيانات macro. الفحص الوقائي يضمن استمرار تشغيل تطبيقك دون تعطل. + +## الأخطاء الشائعة وأفضل الممارسات + +| المشكلة | لماذا يحدث | الحل الموصى به | +|-------|----------------|-----------------| +| مسار الصورة غير صحيح | `BarCodeReader` يرمي استثناء ملف غير موجود قبل أي عملية فك ترميز | استخدم `Path.Combine` وتحقق من وجود الملف باستخدام `File.Exists` | +| صورة منخفضة الدقة | لا يستطيع المفكك تحديد حواف الباركود، مما ينتج عنه عدم اكتشاف أي باركود | قدم دقة لا تقل عن 300 dpi للحصول على نتائج موثوقة | +| دوران الباركود > 45° | العديد من المكتبات تفترض وضعية رأسية | فعّل `reader.RecognitionOptions.RotateImage = true` إذا كان | + +## ماذا يجب أن تتعلمه بعد ذلك؟ + +الدروس التالية تغطي مواضيع ذات صلة وثيقة تبني على التقنيات الموضحة في هذا الدليل. كل مصدر يتضمن أمثلة شفرة كاملة مع شروحات خطوة بخطوة لمساعدتك على إتقان ميزات API إضافية واستكشاف أساليب تنفيذ بديلة في مشاريعك. + +- [How to Read DataMatrix Barcodes with Aspose.BarCode for .NET](/barcode/english/net/datamatrix-barcode-reading/) +- [Read DataMatrix barcode C# – Generate DataMatrix Mode (Auto)](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-auto/) +- [Read Barcode from Image – Mastering Barcode Region Extraction in Java with Aspose.BarCode](/barcode/english/java/advanced-settings-and-optimization/extracting-barcode-region-information/) + +{{< /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/net/compact-pdf417-encoding/_index.md b/barcode/chinese/net/compact-pdf417-encoding/_index.md index 165dd64a9..9516c731e 100644 --- a/barcode/chinese/net/compact-pdf417-encoding/_index.md +++ b/barcode/chinese/net/compact-pdf417-encoding/_index.md @@ -87,6 +87,22 @@ Aspose.BarCode 允许您设置 `Pdf417ErrorCorrectionLevel` 属性(0‑8)。 了解如何使用 Aspose.BarCode for .NET 生成紧凑 PDF417 条形码。提供完整的分步指南和代码示例。 +### [在 C# 中创建 PDF417 条形码 – 步骤指南](./create-pdf417-barcode-in-c-step-by-step-guide/) + +提供在 C# 环境下使用 Aspose.BarCode for .NET 生成 PDF417 条码的完整分步教程。 + +### [生成 PDF417 条形码 C# – Aspose.BarCode 完整指南](./generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/) + +提供使用 Aspose.BarCode for .NET 在 C# 中完整生成 PDF417 条码的详细指南。 + +### [如何将条形码保存为图像 – 完整 C# 指南](./how-to-save-barcode-as-an-image-complete-c-guide/) + +提供使用 Aspose.BarCode for .NET 在 C# 中将条形码保存为图像的完整步骤和代码示例。 + +### [在 C# 中读取 PDF417 条码 – 条码读取器示例](./read-pdf417-barcode-in-c-barcode-reader-example/) + +演示如何使用 Aspose.BarCode for .NET 在 C# 中读取 PDF417 条码的完整示例代码。 + ## 常见问题 **问:在紧凑 PDF417 条形码中,我可以存储的最大数据量是多少?** @@ -115,4 +131,4 @@ Aspose.BarCode 允许您设置 `Pdf417ErrorCorrectionLevel` 属性(0‑8)。 {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/chinese/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md b/barcode/chinese/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..58e273caa --- /dev/null +++ b/barcode/chinese/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-08-03 +description: 在 C# 中快速创建 PDF417 条码。了解如何生成 PDF417 条码以及如何使用 Aspose.Barcode 将条码图像保存为 PNG。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create pdf417 barcode +- how to generate pdf417 barcode +- how to save barcode image +language: zh +lastmod: 2026-08-03 +og_description: 使用 Aspose.Barcode 在 C# 中创建 PDF417 条码。请按照本指南生成 PDF417 条码并高效保存条码图像。 +og_image_alt: Screenshot of a generated compact PDF417 barcode saved as PNG +og_title: 在 C# 中创建 PDF417 条码 – 完整编码教程 +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + headline: Create PDF417 barcode in C# – step‑by‑step guide + type: TechArticle +- description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + name: Create PDF417 barcode in C# – step‑by‑step guide + steps: + - name: Why this matters + text: '* **EncodeTypes.Pdf417** tells the library to use the PDF417 standard, + which supports large data payloads and error correction. * Providing Unicode + characters proves the generator handles non‑ASCII input without extra configuration.' + - name: Practical tip + text: If you need a taller barcode for limited horizontal space, increase `Columns`. + Setting `Truncate` to `true` reduces the overall height by removing quiet zones, + which is ideal for mobile screens. + - name: Expected result + text: Running the program creates `CompactPdf417.png` in the project folder. Opening + the file shows a compact PDF417 barcode that encodes the string *Åspóse.Barcóde©*. + The image can be embedded in HTML, PDF reports, or printed on labels. + - name: Verifying the output + text: 'After the program finishes, you can verify the file exists with a quick + command:' + type: HowTo +tags: +- barcode +- C# +- PDF417 +- image generation +title: 在 C# 中创建 PDF417 条码 – 步骤指南 +url: /zh/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 在 C# 中创建 PDF417 条形码 – 步骤指南 + +如果您需要在 .NET 应用程序中**创建 PDF417 条形码**,本指南将准确展示如何生成 PDF417 条形码以及如何保存条形码图像。您最终会得到一个可用于报表、票据或移动扫描应用的 PNG 文件。 + +本教程涵盖从项目设置到最终 PNG 文件的全部过程。无需查阅外部文档,只需按照步骤操作并运行代码即可。 + +## 您需要的条件 + +在开始之前,请确保您具备以下条件: + +* .NET 6.0 SDK 或更高版本(代码同样适用于 .NET Framework 4.7+) +* Visual Studio 2022 或任何支持 C# 的 IDE +* Internet 访问以安装 **Aspose.Barcode for .NET** NuGet 包 + +这些前置条件可确保代码在无需额外配置的情况下成功编译。 + +## 创建 PDF417 条形码 – 项目设置 + +1. 打开命令提示符并创建一个新的控制台项目: + + ```bash + dotnet new console -n Pdf417Demo + cd Pdf417Demo + ``` + +2. 添加 Aspose.Barcode 库: + + ```bash + dotnet add package Aspose.Barcode + ``` + +3. 打开生成的 `Program.cs` 文件。文件顶部的 `using` 语句为您提供对条形码类的访问: + + ```csharp + using System; + using Aspose.Barcode.Generation; + using Aspose.Barcode; + ``` + +项目现在已准备好**创建 PDF417 条形码**。 + +## 使用 Aspose.Barcode 生成 PDF417 条形码 + +条形码创建的核心位于 `BarcodeGenerator` 类中。您需要指定符号类型(`EncodeTypes.Pdf417`)以及要编码的数据。 + +```csharp +// Step 1: Initialise the generator with PDF417 symbology and sample text. +// The text includes Unicode characters to demonstrate full‑range support. +BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Pdf417, "Åspóse.Barcóde©"); +``` + +### 为什么这很重要 + +* **EncodeTypes.Pdf417** 告诉库使用 PDF417 标准,该标准支持大容量数据和错误纠正。 +* 提供 Unicode 字符可证明生成器能够在无需额外配置的情况下处理非 ASCII 输入。 + +## 如何配置条形码外观 + +您可以控制每个模块的大小、列数以及条形码是否使用紧凑(截断)模式。这些设置会影响可读性和文件大小。 + +```csharp +// Step 2: Set the module (X) dimension – each barcode element will be 2 pixels wide. +generator.Parameters.Barcode.XDimension.Pixels = 2; + +// Step 3: Configure PDF417‑specific options. +generator.Parameters.Barcode.Pdf417.Columns = 3; // Number of columns (affects height) +generator.Parameters.Barcode.Pdf417.Truncate = true; // Enable compact mode +``` + +### 实用技巧 + +如果水平空间受限,需要更高的条形码,可增大 `Columns`。将 `Truncate` 设置为 `true` 可通过去除安静区来降低整体高度,这在移动设备屏幕上尤为适用。 + +## 如何将条形码图像保存为 PNG + +在配置好生成器后,使用 `Save` 方法并提供文件路径和所需的图像格式。该方法会直接将图像写入磁盘。 + +```csharp +// Step 4: Save the generated barcode as a PNG image. +string outputPath = @"./CompactPdf417.png"; +generator.Save(outputPath, BarCodeImageFormat.Png); +Console.WriteLine($"Barcode saved to {outputPath}"); +``` + +### 预期结果 + +运行程序后会在项目文件夹中生成 `CompactPdf417.png`。打开该文件即可看到一个紧凑的 PDF417 条形码,编码的字符串为 *Åspóse.Barcóde©*。该图像可嵌入 HTML、PDF 报告或打印在标签上。 + +## 完整源代码 + +下面是完整的可运行程序。将其复制到 `Program.cs` 中并执行 `dotnet run`。 + +```csharp +using System; +using Aspose.Barcode.Generation; +using Aspose.Barcode; + +namespace Pdf417Demo +{ + class Program + { + static void Main() + { + // Initialise the generator with PDF417 symbology and sample text. + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.Pdf417, + "Åspóse.Barcóde©"); + + // Set the module width to 2 pixels. + generator.Parameters.Barcode.XDimension.Pixels = 2; + + // Configure PDF417‑specific options. + generator.Parameters.Barcode.Pdf417.Columns = 3; + generator.Parameters.Barcode.Pdf417.Truncate = true; + + // Define the output file path. + string outputPath = @"./CompactPdf417.png"; + + // Save the barcode as a PNG image. + generator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"Barcode saved to {outputPath}"); + } + } +} +``` + +### 验证输出 + +程序执行完毕后,您可以使用以下命令快速检查文件是否存在: + +```bash +dotnet run && ls -l CompactPdf417.png +``` + +如果文件出现,则**创建 PDF417 条形码**的过程已成功。 + +## 常见变体和边缘情况 + +| 情形 | 调整 | +|-----------|------------| +| **Longer data string** | Increase `Columns` or set `Rows` to accommodate more codewords. | +| **Different image format** | Replace `BarCodeImageFormat.Png` with `Jpeg`, `Bmp`, or `Gif`. | +| **Higher resolution** | Set `generator.Parameters.ImageResolution` before `Save`. | +| **Background color** | Use `generator.Parameters.Barcode.ImageBackgroundColor = Color.White;` | +| **Exception handling** | Wrap `generator.Save` in a `try/catch` block to capture I/O errors. | + +这些变体可帮助您根据特定设备或品牌需求定制条形码。 + +## 结论 + +您现在已经掌握了如何在 C# 中使用 Aspose.Barcode **创建 PDF417 条形码**、配置其外观,并将条形码图像 **保存为 PNG 文件**。完整示例展示了从项目设置到验证的每一步,使您能够将条形码生成集成到任何 .NET 解决方案中。 + +接下来,您可以进一步探索以下相关主题,如**如何生成 QR 码**、**在 PDF 文档中嵌入条形码**或**自定义条形码颜色**。这些内容均基于相同的生成器 API,帮助您以最小的工作量扩展应用的扫描能力。祝编码愉快! + +## 接下来您应该学习什么? + +以下教程涵盖与本指南技术紧密相关的主题,帮助您在自己的项目中进一步掌握 API 功能并探索替代实现方式。 + +- [如何使用 Aspose.BarCode 创建条形码 – 紧凑 PDF417](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [如何使用 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/) + +{{< /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/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md b/barcode/chinese/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md new file mode 100644 index 000000000..5b75f9595 --- /dev/null +++ b/barcode/chinese/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md @@ -0,0 +1,240 @@ +--- +category: general +date: 2026-08-03 +description: 使用 Aspose.BarCode 在 C# 中生成 PDF417 条码。一步一步学习如何添加 Macro PDF417 元数据并保存为 + PNG。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- generate PDF417 barcode C# +- Macro PDF417 barcode +- Aspose.BarCode +- C# barcode generation +- PDF417 metadata +- barcode image PNG +language: zh +lastmod: 2026-08-03 +og_description: 使用 Aspose.BarCode 在 C# 中生成 PDF417 条码。本教程展示如何嵌入 Macro PDF417 元数据并将结果导出为 + PNG 图像。 +og_image_alt: Screenshot of a generated PDF417 barcode created with C# +og_title: 使用 C# 生成 PDF417 条码 – Aspose.BarCode 分步教程 +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + headline: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + type: TechArticle +- description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + name: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + steps: + - name: Create a Macro PDF417 barcode generator + text: First, instantiate `BarcodeGenerator` with the `EncodeTypes.MacroPdf417` + enum. The constructor also accepts the text you want to encode – in this example + we use a string that contains Unicode characters to demonstrate full‑width support. + - name: Adjust basic barcode appearance + text: Next, define the visual size of the barcode. `XDimension.Pixels` controls + the width of a single module (the smallest black/white square), while `Pdf417.Columns` + influences the overall shape by setting the number of columns. + - name: Populate Macro PDF417 metadata + text: Macro PDF417 allows you to embed file‑level information that many back‑office + systems rely on (e.g., file ID, segment ID, timestamp). The following properties + illustrate the most common fields. + - name: Save the barcode image as PNG + text: Finally, call `Save` to write the barcode to disk. PNG is lossless, making + it ideal for high‑quality scanning. + - name: How to verify the result + text: 1. Open `ExtPDF417Meta.png` in any image viewer. 2. Use a PDF417 scanner + app (e.g., *Zebra Scanner* or *BarCode Reader* on Android/iOS). 3. Confirm that + the decoded payload includes the original text and a JSON‑like block with the + macro fields you set. + - name: Next steps + text: '- Experiment with other barcode formats (e.g., QR, Code128) by changing + `EncodeTypes`. - Explore `Pdf417.ErrorCorrectionLevel` to improve scan reliability + under poor lighting. - Integrate the generated image into a PDF report using + Aspose.PDF for end‑to‑end document automation.' + type: HowTo +tags: +- PDF417 +- C# +- Barcode +title: 使用 Aspose.BarCode 生成 PDF417 条码 C# 完全指南 +url: /zh/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 生成 PDF417 条形码 C# – 完整指南 + +如果您需要为物流或文档管理系统 **生成 PDF417 条形码 C#**,本教程将向您展示如何使用 Aspose.BarCode 完成此操作。您将看到如何配置条形码、嵌入 Macro PDF417 元数据,并仅用几行代码将结果保存为 PNG 图像。 + +在 C# 中生成 PDF417 条形码通常需要处理额外信息,例如文件标识符、段号或时间戳。本指南涵盖这些细节,您无需在零散的文档中搜索。文章结束时,您将拥有一个可直接运行的程序,生成符合规范的 Macro PDF417 条形码图像。 + +## 您需要的条件 + +- .NET 6.0 或更高(代码同样适用于 .NET Framework 4.7+) +- Aspose.BarCode for .NET (v23.9 或更新)– 通过 NuGet 安装 `Install-Package Aspose.BarCode` +- 开发环境,例如 Visual Studio 2022 或 Visual Studio Code +- 对 C# 语法有基本了解 + +> **专业提示:** 使用最新的 Aspose.BarCode 版本,以受益于错误修复和对最新 PDF417 规范的支持。 + +## 如何使用 Aspose.BarCode 生成 PDF417 条形码 C# + +该过程包括四个逻辑步骤。每个步骤都放在清晰的代码块中,您可以直接复制、粘贴并运行。 + +### 步骤 1:创建 Macro PDF417 条形码生成器 + +首先,使用 `EncodeTypes.MacroPdf417` 枚举实例化 `BarcodeGenerator`。构造函数还接受要编码的文本——在本例中我们使用包含 Unicode 字符的字符串,以演示全宽支持。 + +```csharp +using System; +using Aspose.BarCode.Generation; + +// Create a Macro PDF417 barcode generator with the desired text +using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) +{ + // Subsequent steps go inside this using block +``` + +*为什么重要*:`MacroPdf417` 类型告诉 Aspose.BarCode 将符号视为宏条形码,能够携带额外的文件级元数据。如果没有此标志,后续设置的额外字段将被忽略。 + +### 步骤 2:调整条形码基本外观 + +接下来,定义条形码的视觉尺寸。`XDimension.Pixels` 控制单个模块(最小的黑白方块)的宽度,而 `Pdf417.Columns` 通过设置列数影响整体形状。 + +```csharp + // Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol +``` + +*为什么重要*:较小的 `XDimension` 可产生更高分辨率的图像,这在需要从屏幕扫描条形码时很有用。更改列数可以帮助在空间受限的情况下容纳条形码,而不会牺牲数据容量。 + +### 步骤 3:填充 Macro PDF417 元数据 + +Macro PDF417 允许您嵌入许多后台系统依赖的文件级信息(例如文件 ID、段 ID、时间戳)。以下属性展示了最常用的字段。 + +```csharp + // Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; +``` + +*为什么重要*:每个字段直接映射到宏条形码规范的相应段。例如,`MacroPdf417FileID` 唯一标识逻辑文件,而 `MacroPdf417SegmentsCount` 告诉扫描仪预期的段数。提供准确的元数据可确保下游系统能够无误地重建原始文档。 + +### 步骤 4:将条形码图像保存为 PNG + +最后,调用 `Save` 将条形码写入磁盘。PNG 为无损格式,非常适合高质量扫描。 + +```csharp + // Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); +} +``` + +*为什么重要*:`BarCodeImageFormat.Png` 枚举确保输出文件包含您配置的精确像素数据。如果需要可缩放的矢量格式,可将 `Png` 替换为 `Svg`——Aspose.BarCode 开箱即支持。 + +#### 预期输出 + +运行完整程序会生成名为 **ExtPDF417Meta.png** 的文件。该图像显示了一个密集的多行 PDF417 符号,包含文本 “Åspóse.Barcóde©” 和您提供的宏元数据。使用兼容 PDF417 的读取器扫描条形码时,会返回原始文本以及包含文件 ID、段 ID、时间戳和其他字段的结构化数据块。 + +![生成的 PDF417 条形码截图](/images/pdf417-example.png){: .center-image alt="生成 PDF417 条形码 C# 示例输出"} + +## 完整源代码(可复制粘贴) + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace Pdf417MacroDemo +{ + class Program + { + static void Main() + { + // Step 1: Create a Macro PDF417 barcode generator with the desired text + using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) + { + // Step 2: Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol + + // Step 3: Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; + + // Step 4: Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); + } + + Console.WriteLine("Macro PDF417 barcode generated successfully."); + } + } +} +``` + +### 如何验证结果 + +1. 在任意图像查看器中打开 `ExtPDF417Meta.png`。 +2. 使用 PDF417 扫描应用(例如 Android/iOS 上的 *Zebra Scanner* 或 *BarCode Reader*)。 +3. 确认解码后的负载包含原始文本以及您设置的宏字段的类似 JSON 的块。 + +## 常见问题与边缘情况处理 + +| 问题 | 答案 | +|----------|--------| +| **我可以生成矢量图像而不是 PNG 吗?** | 可以。将 `BarCodeImageFormat.Png` 替换为 `BarCodeImageFormat.Svg`。其余代码保持不变。 | +| **如果我的数据超过默认容量怎么办?** | 增加 `Pdf417.Columns` 或手动设置 `Pdf417.Rows`。更大的数值允许每个段包含更多代码字。 | +| **编码文本支持 Unicode 吗?** | 完全支持。示例使用 “Åspóse.Barcóde©”。Aspose.BarCode 会在需要时自动切换到 UTF‑8 编码。 | +| **我需要为 Aspose.BarCode 签署许可证吗?** | 在生产环境中应使用许可证以避免评估水印。请在创建生成器之前调用 `License license = new License(); license.SetLicense("Aspose.BarCode.lic");`。 | +| **保存文件时如何处理错误?** | 将 `Save` 调用包装在 try/catch 块中,并记录 `IOException` 或 `BarCodeException` 以进行故障排除。 | + +## 结论 + +现在您已经了解如何使用 Aspose.BarCode **生成 PDF417 条形码 C#**,嵌入完整的 Macro PDF417 元数据,并将结果导出为高质量的 PNG 图像。创建生成器、调整外观、填充元数据以及保存图像这几个步骤构成了可复用的模式,您可以将其应用于发票、运单或任何需要丰富条形码数据的场景。 + +### 接下来的步骤 + +- 通过更改 `EncodeTypes` 试验其他条形码格式(例如 QR、Code128)。 +- 探索 `Pdf417.ErrorCorrectionLevel` 以在光线不足的情况下提升扫描可靠性。 +- 使用 Aspose.PDF 将生成的图像集成到 PDF 报告中,实现端到端的文档自动化。 + +随意修改元数据字段以符合您的业务规则,让条形码生成成为 C# 应用程序的无缝组成部分。祝编码愉快! + +## 接下来您应该学习什么? + +以下教程涵盖与本指南技术紧密相关的主题。每个资源都包含完整的可运行代码示例和逐步说明,帮助您掌握更多 API 功能并在项目中探索替代实现方案。 + +- [如何创建条形码 – 使用 Aspose.BarCode 的紧凑 PDF417](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [如何创建条形码 – 使用 Aspose.BarCode 的紧凑 PDF417(德语)](/barcode/german/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [Java 条形码库 – 使用 Aspose 将条形码添加到 PDF](/barcode/english/java/barcode-basics/adding-barcode-to-pdf-document/) + +{{< /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/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md b/barcode/chinese/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md new file mode 100644 index 000000000..154a9fa89 --- /dev/null +++ b/barcode/chinese/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md @@ -0,0 +1,184 @@ +--- +category: general +date: 2026-08-03 +description: 如何使用 C# 快速保存条形码。学习 MicroPDF417 条码生成,设置尺寸,选择列数,并导出为 PNG。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to save barcode +- MicroPDF417 barcode +- C# barcode generation +- barcode XDimension +- PDF417 columns +- barcode image format +language: zh +lastmod: 2026-08-03 +og_description: 如何在 C# 中保存条形码的完整示例。生成 MicroPDF417 条码,调整大小,设置列数,并导出为 PNG。 +og_image_alt: Screenshot showing a MicroPDF417 barcode saved as a PNG file +og_title: 如何保存条形码 – 步骤详解 C# 教程 +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: how to save barcode quickly using C#. Learn MicroPDF417 barcode generation, + set dimensions, choose columns, and export to PNG. + headline: how to save barcode as an image – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- imaging +title: 如何将条形码保存为图像 – 完整的 C# 指南 +url: /zh/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何保存条形码 – 完整 C# 指南 + +如果您需要在 .NET 应用程序中 **how to save barcode**,本教程将向您展示具体步骤。您将生成一个 MicroPDF417 条形码,微调其尺寸,选择列数,最后将图像写入磁盘保存为 PNG 文件。 + +创建和持久化条形码并不需要庞大的库——只需使用 Aspose.BarCode for .NET 套件中的 `BarcodeGenerator` 类。以下章节我们将逐一演示每个配置选项,解释其重要性,并提供可直接运行的代码示例。 + +## 前置条件 + +- .NET 6.0 或更高(API 支持 .NET Core 和 .NET Framework) +- Aspose.BarCode for .NET(NuGet 包 `Aspose.BarCode`) +- 您拥有写入权限的文件夹(在 **how to save barcode** 步骤中使用) + +## 步骤 1:创建 MicroPDF417 条形码生成器 + +在任何 **how to save barcode** 工作流中的第一步是实例化一个带有所需符号和数据的 `BarcodeGenerator`。MicroPDF417 是 PDF417 矩阵条形码的紧凑版,适用于小标签。 + +```csharp +using Aspose.BarCode.Generation; + +// Create a MicroPDF417 barcode with sample text that includes Unicode characters. +BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, // Symbology + "Åspóse.Barcóde©"); // Data to encode +``` + +**为什么这很重要:** +`EncodeTypes.MicroPdf417` 告诉库使用 MicroPDF417 算法,该算法会自动处理错误纠正和数据编码。提供 Unicode 文本可演示生成器能够正确处理非 ASCII 字符。 + +## 步骤 2:调整 X‑维度(模块大小) + +X‑维度定义单个条形码模块(像素)的宽度。较小的数值会产生更紧凑的条形码,而较大的数值则更易于扫描。 + +```csharp +// Set each module to 2 pixels wide. +barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +**为什么这很重要:** +设置 `barcode XDimension` 可确保条形码适配目标标签尺寸。如果跳过此步骤,默认尺寸可能对移动屏幕或小尺寸打印件来说过大。 + +## 步骤 3:选择 PDF417 矩阵的列数 + +MicroPDF417 支持 1–4 列。列数越多,条形码越接近正方形;列数越少,条形码会在垂直方向上拉伸。 + +```csharp +// Use the maximum of 4 columns for a compact, square shape. +barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; +``` + +**为什么这很重要:** +调整 **PDF417 columns** 可在可读性与空间限制之间取得平衡。在许多扫描场景中,4 列布局提供了最佳折中。 + +## 步骤 4:将生成的条形码保存为 PNG 图像 + +现在条形码已配置完毕,您可以最终通过写入文件来回答 “**how to save barcode**”。PNG 保持无损质量,这对清晰扫描至关重要。 + +```csharp +// Define the output path (ensure the directory exists). +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + +// Export the barcode to PNG. +barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + +Console.WriteLine($"Barcode saved to: {outputPath}"); +``` + +**为什么这很重要:** +`barcode image format` 决定了保存文件的视觉保真度。PNG 因其保留清晰边缘且无压缩伪影,通常是大多数 UI 和打印工作流的首选。 + +## 完整、可运行的示例 + +将所有内容组合在一起即可得到一个可自行复制、粘贴并运行的完整程序。 + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // 1️⃣ Create the barcode generator. + BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, + "Åspóse.Barcóde©"); + + // 2️⃣ Adjust module size. + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; + + // 3️⃣ Set column count (1‑4 allowed). + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; + + // 4️⃣ Define output location. + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + + // 5️⃣ Save as PNG. + barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"✅ Barcode saved to: {outputPath}"); + } +} +``` + +**预期输出** + +运行程序后会在桌面生成 `MicroPdf417.png`。打开该文件可看到清晰的 MicroPDF417 条形码,编码的字符串为 `Åspóse.Barcóde©`。使用任何标准条形码扫描器扫描后会返回原始文本。 + +## 常见问题与边缘情况 + +| Question | Answer | +|----------|--------| +| *我可以使用 JPEG 而不是 PNG 吗?* | 可以。将 `BarCodeImageFormat.Png` 替换为 `BarCodeImageFormat.Jpeg`。JPEG 文件更小,但会产生压缩伪影,可能影响扫描。 | +| *如果我的数据超出 MicroPDF417 的容量怎么办?* | MicroPDF417 最多可存储 1 KB 数据。若负载更大,请切换到完整的 `EncodeTypes.Pdf417`。 | +| *如何更改条形码颜色?* | 在调用 `Save` 之前,使用 `barcodeGenerator.Parameters.Barcode.BarColor` 和 `BackColor` 设置前景色/背景色。 | +| *X‑维度是否只能是整数像素?* | 该属性接受 `float` 类型。可以使用如 `1.5f` 的值,但大多数打印机在整数像素尺寸下表现最佳。 | + +## 可靠的 **how to save barcode** 实现的专业技巧 + +- **使用 `Directory.Exists` 验证输出文件夹**,在调用 `Save` 前确保文件夹存在,以避免 `IOException`。 +- **在循环中生成大量条形码时,调用 `barcodeGenerator.Dispose()` 释放生成器**,以释放本机资源。 +- **保存后使用真实扫描仪进行测试**;仅凭目视检查不足以满足生产部署需求。 +- **保持库的最新版本**——新版 Aspose.BarCode 会加入符号改进和错误修复。 + +## 结论 + +现在您已经了解如何使用 Aspose.BarCode 库在 C# 中 **how to save barcode** 图像。通过创建 MicroPDF417 条形码、配置 **barcode XDimension**、选择合适的 **PDF417 columns**,并导出为 PNG 等 **barcode image format**,您拥有了完整的生产就绪解决方案。 + +接下来,您可以探索相关主题,例如 **C# 条形码生成用于 QR 码**、**批量条形码创建**,或 **在 PDF 报告中嵌入条形码**。这些都基于本指南展示的相同原理,帮助您自信地扩展影像工具箱。 + +## 接下来您应该学习什么? + +以下教程涵盖与本指南密切相关的主题,基于本教程演示的技术。每个资源都包含完整的可运行代码示例和逐步说明,帮助您掌握更多 API 功能并在项目中探索替代实现方法。 + +- [如何使用 DataMatrix C40 保存 PNG(Aspose.BarCode)](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-c40/) +- [如何为 ITF-14 条形码自定义设置边框](/barcode/english/net/itf-14-barcode-customization/) +- [如何使用 Aspose.BarCode for .NET 生成具有自定义宽高比的 Aztec 条形码](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) + +{{< /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/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md b/barcode/chinese/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md new file mode 100644 index 000000000..65f5fbb66 --- /dev/null +++ b/barcode/chinese/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-08-03 +description: 使用 C# BarCodeReader 从图像读取 PDF417 条码 – 一个完整的条码读取示例,还展示了如何读取多个条码。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- read PDF417 barcode +- barcode reader example +- read multiple barcodes +- read barcodes image +language: zh +lastmod: 2026-08-03 +og_description: 使用 C# BarCodeReader 示例快速读取 PDF417 条码。按照本分步指南解码宏 PDF417 并从图像中读取多个条码。 +og_image_alt: Console output of a read PDF417 barcode example in C# +og_title: 在 C# 中读取 PDF417 条码 – 完整的条码读取示例 +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + headline: Read PDF417 barcode in C# – barcode reader example + type: TechArticle +- description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + name: Read PDF417 barcode in C# – barcode reader example + steps: + - name: '**Create a new console project**' + text: '**Create a new console project**' + - name: '**Add the barcode library**' + text: '**Add the barcode library**' + - name: '**Copy the barcode image**' + text: '**Copy the barcode image**' + type: HowTo +tags: +- barcode +- PDF417 +- C# +- .NET +title: 在 C# 中读取 PDF417 条码 – 条码读取示例 +url: /zh/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 在 C# 中读取 PDF417 条码 – 条码读取示例 + +如果您需要从图像中读取 PDF417 条码数据,本指南将展示如何使用 C# 中的 **BarCodeReader** 类来实现。您将学习一个条码读取示例,该示例还能处理宏 PDF417,并且可以在单张图像中读取多个条码。 + +处理条码通常意味着要应对不同的图像来源、变化的光照条件,有时还会遇到诸如宏 PDF417 片段之类的复合数据。本教程涵盖了解码 PDF417 条码、提取其扩展字段以及从同一图片中处理多个条码所需的全部内容。完成后,您将拥有一个可运行的控制台程序,能够从图像文件读取条码并将详细信息打印到控制台。 + +## 您需要的准备 + +在开始之前,请确保您已具备: + +* 已安装 .NET 6.0 SDK 或更高版本 +* 最近版本的 **Aspose.BarCode for .NET** NuGet 包(或任何提供 `BarCodeReader` 和 `DecodeType.MacroPdf417` 的兼容库) +* 包含 PDF417 或宏 PDF417 条码的图像文件(示例使用 `ExtPDF417Meta.png`) +* Visual Studio 2022 等代码编辑器或 IDE + +无需额外的服务或外部 API。 + +## 设置条码读取项目 + +1. **创建一个新的控制台项目** + + ```bash + dotnet new console -n Pdf417ReaderDemo + cd Pdf417ReaderDemo + ``` + +2. **添加条码库** + + ```bash + dotnet add package Aspose.BarCode --version 23.12 + ``` + +3. **复制条码图像** + + 将 `ExtPDF417Meta.png`(或任何包含 PDF417 条码的图像)放入项目文件夹。 + 本教程默认文件位于 `YOUR_DIRECTORY/ExtPDF417Meta.png`。 + +项目现在已准备好编译并运行条码读取示例。 + +## 使用 BarCodeReader 读取 PDF417 条码 + +解决方案的核心是一个 `using` 块,它创建 `BarCodeReader` 实例,指定 `DecodeType.MacroPdf417`,并遍历每个检测到的条码。以下代码是一个完整的、独立的程序,您可以直接粘贴到 `Program.cs` 中。 + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.BarCodeRecognition; + +class Program +{ + static void Main() + { + // Path to the image that contains one or more PDF417 barcodes + const string imagePath = "YOUR_DIRECTORY/ExtPDF417Meta.png"; + + // Step 1: Create a BarCodeReader for a macro PDF417 image + using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.MacroPdf417)) + { + // Step 2: Read all barcodes from the image + foreach (BarCodeResult result in reader.ReadBarCodes()) + { + // Step 3: Output basic barcode information + Console.WriteLine($"CodeType: {result.CodeTypeName}"); + Console.WriteLine($"CodeText: {result.CodeText}"); + + // Step 4: Output macro PDF417 specific fields + Console.WriteLine($"Pdf417MacroFileID: {result.Extended.Pdf417.MacroPdf417FileID}"); + Console.WriteLine($"Pdf417MacroSegmentID: {result.Extended.Pdf417.MacroPdf417SegmentID}"); + Console.WriteLine($"Pdf417MacroSegmentsCount: {result.Extended.Pdf417.MacroPdf417SegmentsCount}"); + Console.WriteLine($"Pdf417MacroFileName: {result.Extended.Pdf417.MacroPdf417FileName}"); + Console.WriteLine($"Pdf417MacroChecksum: {result.Extended.Pdf417.MacroPdf417Checksum}"); + Console.WriteLine($"Pdf417MacroFileSize: {result.Extended.Pdf417.MacroPdf417FileSize}"); + Console.WriteLine($"Pdf417MacroTimeStamp: {result.Extended.Pdf417.MacroPdf417TimeStamp}"); + Console.WriteLine($"Pdf417MacroAddressee: {result.Extended.Pdf417.MacroPdf417Addressee}"); + Console.WriteLine($"Pdf417MacroSender: {result.Extended.Pdf417.MacroPdf417Sender}"); + Console.WriteLine($"MacroPdf417Terminator: {result.Extended.Pdf417.MacroPdf417Terminator}"); + Console.WriteLine(new string('-', 40)); + } + + // Pro tip: If no barcodes are found, ReadBarCodes() returns an empty collection. + // You can check reader.HasBarcodes for a quick boolean test. + if (!reader.HasBarcodes) + { + Console.WriteLine("No barcodes detected in the provided image."); + } + } + } +} +``` + +**工作原理**: + +* `DecodeType.MacroPdf417` 告诉读取器查找 PDF417 的宏扩展,该扩展携带文件 ID、段计数、时间戳等额外元数据。 +* `using` 语句确保非托管资源(文件句柄、原生解码缓冲区)能够及时释放。 +* `foreach` 循环自动处理图像中 **所有** 条码,满足 *读取多个条码* 的需求。 + +运行程序(`dotnet run`)后,您应看到类似以下的输出: + +``` +CodeType: MacroPdf417 +CodeText: https://example.com/document.pdf +Pdf417MacroFileID: 12345 +Pdf417MacroSegmentID: 1 +Pdf417MacroSegmentsCount: 3 +Pdf417MacroFileName: document.pdf +Pdf417MacroChecksum: 0x1A2B +Pdf417MacroFileSize: 204800 +Pdf417MacroTimeStamp: 2024-07-15T10:25:00Z +Pdf417MacroAddressee: John Doe +Pdf417MacroSender: Acme Corp +MacroPdf417Terminator: True +---------------------------------------- +``` + +如果图像中包含多个 PDF417 条码,循环会为每个条码打印一个独立的块,从而演示如何 **从单张图片读取多个条码**。 + +## 从图像中读取多个条码 + +同一个 `BarCodeReader` 实例可以一次解码多种条码类型。若要将范围从仅宏 PDF417 扩展到任意 PDF417(甚至 QR、Code128 等),只需调整 `DecodeType` 标志: + +```csharp +using (BarCodeReader reader = new BarCodeReader(imagePath, + DecodeType.Pdf417 | DecodeType.MacroPdf417 | DecodeType.QR | DecodeType.Code128)) +{ + // The rest of the code stays unchanged. +} +``` + +*`DecodeType`* 是位掩码,您可以组合任意数量的受支持格式。这种灵活性使得代码片段成为一个 **条码读取示例**,能够适用于扫描商品标签、票据或身份证等各种使用场景。 + +## 安全访问宏 PDF417 字段 + +宏 PDF417 添加了一组丰富的扩展属性。但并非每个条码都包含所有字段。访问不存在的属性会抛出 `NullReferenceException`。最安全的做法是在打印之前先验证每个属性是否为 null: + +```csharp +var macro = result.Extended?.Pdf417; +if (macro != null) +{ + Console.WriteLine($"Pdf417MacroFileID: {macro.MacroPdf417FileID ?? "N/A"}"); + // Repeat for other fields... +} +``` + +*为何重要*:在实际部署中,您可能会收到不包含宏数据的普通 PDF417 条码。防御性检查可确保应用程序在缺少字段时仍能正常运行,而不会崩溃。 + +## 常见陷阱与最佳实践 + +| 问题 | 产生原因 | 推荐解决方案 | +|------|----------|--------------| +| 图像路径不正确 | `BarCodeReader` 在解码前会抛出文件未找到异常 | 使用 `Path.Combine` 并通过 `File.Exists` 验证文件是否存在 | +| 低分辨率图像 | 解码器无法定位条码边缘,导致检测为零 | 提供至少 300 dpi 的最小分辨率以获得可靠结果 | +| 条码旋转 > 45° | 许多库默认假设条码是正向的 | 如有需要,启用 `reader.RecognitionOptions.RotateImage = true` | + +## 接下来应该学习什么? + +以下教程涵盖了与本指南技术紧密相关的主题,帮助您在已有技巧的基础上进一步深入。每篇资源都提供完整的可运行代码示例,并配有逐步说明,帮助您掌握更多 API 功能并在项目中探索替代实现方案。 + +- [How to Read DataMatrix Barcodes with Aspose.BarCode for .NET](/barcode/english/net/datamatrix-barcode-reading/) +- [Read DataMatrix barcode C# – Generate DataMatrix Mode (Auto)](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-auto/) +- [Read Barcode from Image – Mastering Barcode Region Extraction in Java with Aspose.BarCode](/barcode/english/java/advanced-settings-and-optimization/extracting-barcode-region-information/) + +{{< /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/net/compact-pdf417-encoding/_index.md b/barcode/czech/net/compact-pdf417-encoding/_index.md index 29de108a1..d09710fd2 100644 --- a/barcode/czech/net/compact-pdf417-encoding/_index.md +++ b/barcode/czech/net/compact-pdf417-encoding/_index.md @@ -86,6 +86,18 @@ Mimo základy, zde jsou některé praktické tipy pro zefektivnění vašeho pra ### [Vytváření Compact PDF417 čárových kódů](./compact-pdf417-basic-configuration/) Naučte se generovat Compact PDF417 čárové kódy pomocí Aspose.BarCode pro .NET. Kompletní průvodce s krok‑za‑krokem instrukcemi a ukázkami kódu. +### [Vytvoření PDF417 čárového kódu v C# – krok za krokem](./create-pdf417-barcode-in-c-step-by-step-guide/) +Kompletní návod, jak v C# pomocí Aspose.BarCode vytvořit PDF417 čárový kód krok po kroku. + +### [Generování PDF417 čárového kódu v C# – kompletní průvodce s Aspose.BarCode](./generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/) +Kompletní návod, jak v C# vytvořit PDF417 čárový kód pomocí Aspose.BarCode, včetně nastavení a příkladů. + +### [Jak uložit čárový kód jako obrázek – kompletní průvodce v C#](./how-to-save-barcode-as-an-image-complete-c-guide/) +Kompletní průvodce, jak v C# pomocí Aspose.BarCode uložit čárový kód jako obrázek. + +### [Čtení PDF417 čárového kódu v C# – příklad čtečky čárových kódů](./read-pdf417-barcode-in-c-barcode-reader-example/) +Ukázka, jak pomocí Aspose.BarCode pro .NET načíst PDF417 čárový kód v C#. + ## Často kladené otázky **Q:** Jaké je maximální množství dat, která mohu uložit do Compact PDF417 čárového kódu? @@ -114,4 +126,4 @@ Naučte se generovat Compact PDF417 čárové kódy pomocí Aspose.BarCode pro . {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/czech/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md b/barcode/czech/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..73066697d --- /dev/null +++ b/barcode/czech/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md @@ -0,0 +1,224 @@ +--- +category: general +date: 2026-08-03 +description: Rychle vytvořte čárový kód PDF417 v C#. Naučte se, jak generovat čárový + kód PDF417 a jak uložit obrázek čárového kódu jako PNG pomocí Aspose.Barcode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create pdf417 barcode +- how to generate pdf417 barcode +- how to save barcode image +language: cs +lastmod: 2026-08-03 +og_description: Vytvořte čárový kód PDF417 v C# pomocí Aspose.Barcode. Postupujte + podle tohoto návodu k vygenerování čárového kódu PDF417 a k efektivnímu uložení + obrázku čárového kódu. +og_image_alt: Screenshot of a generated compact PDF417 barcode saved as PNG +og_title: Vytvořte PDF417 čárový kód v C# – kompletní programovací tutoriál +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + headline: Create PDF417 barcode in C# – step‑by‑step guide + type: TechArticle +- description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + name: Create PDF417 barcode in C# – step‑by‑step guide + steps: + - name: Why this matters + text: '* **EncodeTypes.Pdf417** tells the library to use the PDF417 standard, + which supports large data payloads and error correction. * Providing Unicode + characters proves the generator handles non‑ASCII input without extra configuration.' + - name: Practical tip + text: If you need a taller barcode for limited horizontal space, increase `Columns`. + Setting `Truncate` to `true` reduces the overall height by removing quiet zones, + which is ideal for mobile screens. + - name: Expected result + text: Running the program creates `CompactPdf417.png` in the project folder. Opening + the file shows a compact PDF417 barcode that encodes the string *Åspóse.Barcóde©*. + The image can be embedded in HTML, PDF reports, or printed on labels. + - name: Verifying the output + text: 'After the program finishes, you can verify the file exists with a quick + command:' + type: HowTo +tags: +- barcode +- C# +- PDF417 +- image generation +title: Vytvořte čárový kód PDF417 v C# – průvodce krok za krokem +url: /cs/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Vytvoření čárového kódu PDF417 v C# – krok za krokem + +Pokud potřebujete **vytvořit čárový kód PDF417** v .NET aplikaci, tento návod vám přesně ukáže, jak vygenerovat čárový kód PDF417 a jak uložit obrázek čárového kódu. Výsledkem bude soubor PNG, který lze použít v reportech, vstupenkách nebo mobilních skenovacích aplikacích. + +Návod pokrývá vše od nastavení projektu až po finální soubor PNG. Není potřeba žádná externí dokumentace; stačí postupovat podle kroků a spustit kód. + +## Co budete potřebovat + +* .NET 6.0 SDK nebo novější (kód také funguje s .NET Framework 4.7+) +* Visual Studio 2022 nebo jakékoli IDE podporující C# +* Přístup k internetu pro instalaci balíčku **Aspose.Barcode for .NET** NuGet + +Tyto předpoklady zajišťují, že kód se zkompiluje bez další konfigurace. + +## Vytvoření čárového kódu PDF417 – nastavení projektu + +1. Otevřete příkazový řádek a vytvořte nový konzolový projekt: + + ```bash + dotnet new console -n Pdf417Demo + cd Pdf417Demo + ``` + +2. Přidejte knihovnu Aspose.Barcode: + + ```bash + dotnet add package Aspose.Barcode + ``` + +3. Otevřete vygenerovaný soubor `Program.cs`. `using` direktivy v horní části vám poskytují přístup ke třídám čárových kódů: + + ```csharp + using System; + using Aspose.Barcode.Generation; + using Aspose.Barcode; + ``` + +Projekt je nyní připraven **vytvořit čárový kód PDF417**. + +## Jak vygenerovat čárový kód PDF417 pomocí Aspose.Barcode + +Jádro tvorby čárového kódu se nachází ve třídě `BarcodeGenerator`. Zadejte symbologii (`EncodeTypes.Pdf417`) a data, která chcete zakódovat. + +```csharp +// Step 1: Initialise the generator with PDF417 symbology and sample text. +// The text includes Unicode characters to demonstrate full‑range support. +BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Pdf417, "Åspóse.Barcóde©"); +``` + +### Proč je to důležité + +* **EncodeTypes.Pdf417** říká knihovně, aby použila standard PDF417, který podporuje velké objemy dat a korekci chyb. +* Poskytnutí Unicode znaků dokazuje, že generátor zvládá vstup mimo ASCII bez další konfigurace. + +## Jak nastavit vzhled čárového kódu + +Můžete řídit velikost jednotlivých modulů, počet sloupců a zda čárový kód používá kompaktní (zkrácený) režim. Tato nastavení ovlivňují jak čitelnost, tak velikost souboru. + +```csharp +// Step 2: Set the module (X) dimension – each barcode element will be 2 pixels wide. +generator.Parameters.Barcode.XDimension.Pixels = 2; + +// Step 3: Configure PDF417‑specific options. +generator.Parameters.Barcode.Pdf417.Columns = 3; // Number of columns (affects height) +generator.Parameters.Barcode.Pdf417.Truncate = true; // Enable compact mode +``` + +### Praktický tip + +Pokud potřebujete vyšší čárový kód pro omezený horizontální prostor, zvyšte `Columns`. Nastavení `Truncate` na `true` snižuje celkovou výšku odstraněním tichých zón, což je ideální pro mobilní obrazovky. + +## Jak uložit obrázek čárového kódu jako PNG + +Po nastavení generátoru zavolejte `Save` s cestou k souboru a požadovaným formátem obrázku. Metoda zapíše obrázek přímo na disk. + +```csharp +// Step 4: Save the generated barcode as a PNG image. +string outputPath = @"./CompactPdf417.png"; +generator.Save(outputPath, BarCodeImageFormat.Png); +Console.WriteLine($"Barcode saved to {outputPath}"); +``` + +### Očekávaný výsledek + +Spuštěním programu se v adresáři projektu vytvoří soubor `CompactPdf417.png`. Otevřením souboru uvidíte kompaktní PDF417 čárový kód, který kóduje řetězec *Åspóse.Barcóde©*. Obrázek lze vložit do HTML, PDF reportů nebo vytisknout na štítky. + +## Kompletní zdrojový kód + +Níže je kompletní spustitelný program. Zkopírujte jej do `Program.cs` a spusťte `dotnet run`. + +```csharp +using System; +using Aspose.Barcode.Generation; +using Aspose.Barcode; + +namespace Pdf417Demo +{ + class Program + { + static void Main() + { + // Initialise the generator with PDF417 symbology and sample text. + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.Pdf417, + "Åspóse.Barcóde©"); + + // Set the module width to 2 pixels. + generator.Parameters.Barcode.XDimension.Pixels = 2; + + // Configure PDF417‑specific options. + generator.Parameters.Barcode.Pdf417.Columns = 3; + generator.Parameters.Barcode.Pdf417.Truncate = true; + + // Define the output file path. + string outputPath = @"./CompactPdf417.png"; + + // Save the barcode as a PNG image. + generator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"Barcode saved to {outputPath}"); + } + } +} +``` + +### Ověření výstupu + +Po dokončení programu můžete rychlým příkazem ověřit, že soubor existuje: + +```bash +dotnet run && ls -l CompactPdf417.png +``` + +Pokud se soubor zobrazí, proces **vytvoření čárového kódu PDF417** byl úspěšný. + +## Běžné varianty a okrajové případy + +| Situace | Úprava | +|-----------|------------| +| **Delší řetězec dat** | Zvyšte `Columns` nebo nastavte `Rows`, aby pojaly více kódových slov. | +| **Jiný formát obrázku** | Nahraďte `BarCodeImageFormat.Png` za `Jpeg`, `Bmp` nebo `Gif`. | +| **Vyšší rozlišení** | Nastavte `generator.Parameters.ImageResolution` před voláním `Save`. | +| **Barva pozadí** | Použijte `generator.Parameters.Barcode.ImageBackgroundColor = Color.White;` | +| **Zpracování výjimek** | Zabalte `generator.Save` do bloku `try/catch` pro zachycení I/O chyb. | + +Tyto varianty vám umožní přizpůsobit čárový kód konkrétním zařízením nebo požadavkům na značku. + +## Závěr + +Nyní víte, jak **vytvořit čárový kód PDF417** v C# pomocí Aspose.Barcode, nastavit jeho vzhled a **uložit obrázek čárového kódu** jako soubor PNG. Kompletní příklad ukazuje každý potřebný krok, od nastavení projektu až po ověření, takže můžete integraci generování čárových kódů použít v jakémkoli .NET řešení. + +Dále zvažte prozkoumání souvisejících témat, jako je **jak generovat QR kódy**, **vkládání čárových kódů do PDF dokumentů** nebo **přizpůsobení barev čárových kódů**. Každé z nich staví na stejném API generátoru, což vám umožní rozšířit skenovací schopnosti vaší aplikace s minimálním úsilím. Šť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, které vám pomohou zvládnout další funkce API a prozkoumat alternativní přístupy k implementaci ve vašich projektech. + +- [Jak vytvořit čárový kód – Kompaktní PDF417 s Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [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/) + +{{< /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/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md b/barcode/czech/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md new file mode 100644 index 000000000..09b040719 --- /dev/null +++ b/barcode/czech/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md @@ -0,0 +1,240 @@ +--- +category: general +date: 2026-08-03 +description: Generujte čárový kód PDF417 v C# pomocí Aspose.BarCode. Naučte se krok + za krokem, jak přidat metadata Macro PDF417 a uložit jako PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- generate PDF417 barcode C# +- Macro PDF417 barcode +- Aspose.BarCode +- C# barcode generation +- PDF417 metadata +- barcode image PNG +language: cs +lastmod: 2026-08-03 +og_description: Generujte čárový kód PDF417 v C# pomocí Aspose.BarCode. Tento tutoriál + ukazuje, jak vložit metadata Macro PDF417 a exportovat výsledek jako PNG obrázek. +og_image_alt: Screenshot of a generated PDF417 barcode created with C# +og_title: Generování čárového kódu PDF417 v C# – krok za krokem tutoriál Aspose.BarCode +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + headline: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + type: TechArticle +- description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + name: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + steps: + - name: Create a Macro PDF417 barcode generator + text: First, instantiate `BarcodeGenerator` with the `EncodeTypes.MacroPdf417` + enum. The constructor also accepts the text you want to encode – in this example + we use a string that contains Unicode characters to demonstrate full‑width support. + - name: Adjust basic barcode appearance + text: Next, define the visual size of the barcode. `XDimension.Pixels` controls + the width of a single module (the smallest black/white square), while `Pdf417.Columns` + influences the overall shape by setting the number of columns. + - name: Populate Macro PDF417 metadata + text: Macro PDF417 allows you to embed file‑level information that many back‑office + systems rely on (e.g., file ID, segment ID, timestamp). The following properties + illustrate the most common fields. + - name: Save the barcode image as PNG + text: Finally, call `Save` to write the barcode to disk. PNG is lossless, making + it ideal for high‑quality scanning. + - name: How to verify the result + text: 1. Open `ExtPDF417Meta.png` in any image viewer. 2. Use a PDF417 scanner + app (e.g., *Zebra Scanner* or *BarCode Reader* on Android/iOS). 3. Confirm that + the decoded payload includes the original text and a JSON‑like block with the + macro fields you set. + - name: Next steps + text: '- Experiment with other barcode formats (e.g., QR, Code128) by changing + `EncodeTypes`. - Explore `Pdf417.ErrorCorrectionLevel` to improve scan reliability + under poor lighting. - Integrate the generated image into a PDF report using + Aspose.PDF for end‑to‑end document automation.' + type: HowTo +tags: +- PDF417 +- C# +- Barcode +title: Generování PDF417 čárového kódu v C# – kompletní průvodce s Aspose.BarCode +url: /cs/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Generování PDF417 čárového kódu C# – kompletní průvodce + +Pokud potřebujete **generovat PDF417 čárový kód C#** pro logistický nebo dokumentační systém, tento tutoriál vám přesně ukáže, jak to provést pomocí Aspose.BarCode. Uvidíte, jak nakonfigurovat čárový kód, vložit metadata Macro PDF417 a uložit výsledek jako PNG obrázek během několika řádků kódu. + +Generování PDF417 čárového kódu v C# často znamená zpracování dalších informací, jako jsou identifikátory souborů, čísla segmentů nebo časová razítka. Tento průvodce pokrývá tyto detaily, takže nemusíte prohledávat roztříštěnou dokumentaci. Na konci článku budete mít připravený program, který vytváří kompatibilní obrázek Macro PDF417 čárového kódu. + +## Co budete potřebovat + +- .NET 6.0 nebo novější (kód také funguje s .NET Framework 4.7+) +- Aspose.BarCode pro .NET (v23.9 nebo novější) – nainstalujte přes NuGet `Install-Package Aspose.BarCode` +- Vývojové prostředí jako Visual Studio 2022 nebo Visual Studio Code +- Základní znalost syntaxe C# + +> **Tip:** Používejte nejnovější verzi Aspose.BarCode, abyste získali opravy chyb a podporu nejnovějších specifikací PDF417. + +## Jak generovat PDF417 čárový kód C# pomocí Aspose.BarCode + +Proces se skládá ze čtyř logických kroků. Každý krok je uzavřen v přehledném bloku kódu, takže jej můžete okamžitě zkopírovat, vložit a spustit. + +### Krok 1: Vytvořte generátor Macro PDF417 čárového kódu + +Nejprve vytvořte instanci `BarcodeGenerator` s výčtem `EncodeTypes.MacroPdf417`. Konstruktor také přijímá text, který chcete zakódovat – v tomto příkladu používáme řetězec obsahující Unicode znaky pro demonstraci podpory plné šířky. + +```csharp +using System; +using Aspose.BarCode.Generation; + +// Create a Macro PDF417 barcode generator with the desired text +using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) +{ + // Subsequent steps go inside this using block +``` + +*Proč je to důležité*: Typ `MacroPdf417` říká Aspose.BarCode, aby symbol považoval za makro čárový kód, který může nést další metadata na úrovni souboru. Bez tohoto příznaku by později nastavená pole byla ignorována. + +### Krok 2: Upravit základní vzhled čárového kódu + +Dále definujte vizuální velikost čárového kódu. `XDimension.Pixels` řídí šířku jednoho modulu (nejmenšího černobílého čtverce), zatímco `Pdf417.Columns` ovlivňuje celkový tvar nastavením počtu sloupců. + +```csharp + // Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol +``` + +*Proč je to důležité*: Menší `XDimension` poskytuje vyšší rozlišení obrázku, což je užitečné, když je čárový kód skenován ze obrazovky. Změna počtu sloupců může pomoci umístit čárový kód do omezeného prostoru, aniž by se snížila kapacita dat. + +### Krok 3: Vyplnit metadata Macro PDF417 + +Macro PDF417 vám umožňuje vložit informace na úrovni souboru, na které se spoléhá mnoho back‑office systémů (např. ID souboru, ID segmentu, časové razítko). Následující vlastnosti ilustrují nejčastější pole. + +```csharp + // Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; +``` + +*Proč je to důležité*: Každé pole přímo mapuje na segment specifikace makro čárového kódu. Například `MacroPdf417FileID` jednoznačně identifikuje logický soubor, zatímco `MacroPdf417SegmentsCount` říká skeneru, kolik částí má očekávat. Poskytnutí přesných metadat zajišťuje, že následné systémy dokážou originální dokument bez chyby zrekonstruovat. + +### Krok 4: Uložit obrázek čárového kódu jako PNG + +Nakonec zavolejte `Save`, aby se čárový kód zapsal na disk. PNG je bezztrátový formát, což ho činí ideálním pro skenování vysoké kvality. + +```csharp + // Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); +} +``` + +*Proč je to důležité*: Výčet `BarCodeImageFormat.Png` zaručuje, že výstupní soubor obsahuje přesně ty pixelové údaje, které jste nakonfigurovali. Pokud potřebujete vektorový formát pro škálování, nahraďte `Png` za `Svg` – Aspose.BarCode to podporuje přímo z krabice. + +#### Očekávaný výstup + +Spuštěním kompletního programu se vytvoří soubor pojmenovaný **ExtPDF417Meta.png**. Obrázek zobrazuje hustý, víceřádkový PDF417 symbol, který obsahuje text “Åspóse.Barcóde©” a makro metadata, jež jste zadali. Skenování čárového kódu pomocí PDF417‑kompatibilního čtečky vrátí původní text plus strukturovaný datový blok obsahující ID souboru, ID segmentu, časové razítko a další pole. + +![Snímek vygenerovaného PDF417 čárového kódu](/images/pdf417-example.png){: .center-image alt="vygenerovat PDF417 čárový kód C# příklad výstupu"} + +## Kompletní zdrojový kód (připravený ke kopírování) + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace Pdf417MacroDemo +{ + class Program + { + static void Main() + { + // Step 1: Create a Macro PDF417 barcode generator with the desired text + using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) + { + // Step 2: Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol + + // Step 3: Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; + + // Step 4: Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); + } + + Console.WriteLine("Macro PDF417 barcode generated successfully."); + } + } +} +``` + +### Jak ověřit výsledek + +1. Otevřete `ExtPDF417Meta.png` v libovolném prohlížeči obrázků. +2. Použijte aplikaci pro skenování PDF417 (např. *Zebra Scanner* nebo *BarCode Reader* na Androidu/iOS). +3. Potvrďte, že dekódované data obsahují původní text a blok podobný JSON s makro poli, která jste nastavili. + +## Časté otázky a řešení okrajových případů + +| Otázka | Odpověď | +|----------|--------| +| **Mohu generovat vektorový obrázek místo PNG?** | Ano. Nahraďte `BarCodeImageFormat.Png` za `BarCodeImageFormat.Svg`. Zbytek kódu zůstane beze změny. | +| **Co když moje data překročí výchozí kapacitu?** | Zvyšte `Pdf417.Columns` nebo nastavte `Pdf417.Rows` ručně. Větší hodnoty umožňují více kódových slov na segment. | +| **Je Unicode podporováno v kódovaném textu?** | Ano. Příklad používá “Åspóse.Barcóde©”. Aspose.BarCode automaticky přepne na kódování UTF‑8, pokud je to potřeba. | +| **Potřebuji podepsat licenci pro Aspose.BarCode?** | Pro produkční nasazení byste měli použít licenci, aby se odstranila vodotisková značka z hodnocení. Zavolejte `License license = new License(); license.SetLicense("Aspose.BarCode.lic");` před vytvořením generátoru. | +| **Jak zachytit chyby při ukládání souboru?** | Zabalte volání `Save` do bloku try/catch a zaznamenejte `IOException` nebo `BarCodeException` pro odstraňování problémů. | + +## Závěr + +Nyní víte, jak **generovat PDF417 čárový kód C#** pomocí Aspose.BarCode, vložit kompletní metadata Macro PDF417 a exportovat výsledek jako vysoce kvalitní PNG obrázek. Kroky – vytvoření generátoru, úprava vzhledu, vyplnění metadat a uložení obrázku – tvoří znovupoužitelný vzor, který můžete přizpůsobit pro faktury, přepravní štítky nebo jakýkoli scénář vyžadující bohatá data v čárovém kódu. + +### Další kroky + +- Experimentujte s dalšími formáty čárových kódů (např. QR, Code128) změnou `EncodeTypes`. +- Prozkoumejte `Pdf417.ErrorCorrectionLevel` pro zlepšení spolehlivosti skenování při špatném osvětlení. +- Integrujte vygenerovaný obrázek do PDF zprávy pomocí Aspose.PDF pro kompletní automatizaci dokumentů. + +Neváhejte upravit pole metadat tak, aby odpovídala vašim obchodním pravidlům, a nechte generování čárových kódů stát se plynulou součástí vašich C# aplikací. Šť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í přístupy k implementaci ve vašich projektech. + +- [Jak vytvořit čárový kód – Kompaktní PDF417 s Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [Jak vytvořit čárový kód – Kompaktní PDF417 s Aspose.BarCode](/barcode/german/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [java knihovna čárových kódů – Přidat čárový kód do PDF pomocí Aspose](/barcode/english/java/barcode-basics/adding-barcode-to-pdf-document/) + +{{< /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/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md b/barcode/czech/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md new file mode 100644 index 000000000..e881ca11a --- /dev/null +++ b/barcode/czech/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md @@ -0,0 +1,186 @@ +--- +category: general +date: 2026-08-03 +description: jak rychle uložit čárový kód pomocí C#. Naučte se generování čárového + kódu MicroPDF417, nastavte rozměry, vyberte sloupce a exportujte do PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to save barcode +- MicroPDF417 barcode +- C# barcode generation +- barcode XDimension +- PDF417 columns +- barcode image format +language: cs +lastmod: 2026-08-03 +og_description: jak uložit čárový kód v C# s kompletním příkladem. Vygenerujte MicroPDF417 + čárový kód, upravte velikost, nastavte sloupce a exportujte do PNG. +og_image_alt: Screenshot showing a MicroPDF417 barcode saved as a PNG file +og_title: Jak uložit čárový kód – krok za krokem C# tutoriál +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: how to save barcode quickly using C#. Learn MicroPDF417 barcode generation, + set dimensions, choose columns, and export to PNG. + headline: how to save barcode as an image – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- imaging +title: Jak uložit čárový kód jako obrázek – kompletní průvodce C# +url: /cs/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# jak uložit čárový kód – kompletní průvodce pro C# + +Pokud potřebujete **jak uložit čárový kód** v aplikaci .NET, tento tutoriál vám ukáže přesné kroky. Vygenerujete čárový kód MicroPDF417, upravíte jeho rozměry, zvolíte počet sloupců a nakonec zapíšete obrázek na disk jako soubor PNG. + +Vytváření a ukládání čárových kódů nevyžaduje těžkou knihovnu – stačí třída `BarcodeGenerator` ze sady Aspose.BarCode pro .NET. V následujících sekcích projdeme každou konfigurační možnost, vysvětlíme, proč je důležitá, a poskytneme připravený ukázkový kód. + +## Požadavky + +- .NET 6.0 nebo novější (API funguje s .NET Core i .NET Framework) +- Aspose.BarCode pro .NET (NuGet balíček `Aspose.BarCode`) +- Složka, do které máte oprávnění zapisovat (používá se ve kroku **jak uložit čárový kód**) + +## Krok 1: Vytvořit generátor čárového kódu MicroPDF417 + +Prvním úkolem v jakémkoli workflow **jak uložit čárový kód** je vytvořit instanci `BarcodeGenerator` s požadovanou symbologií a daty. MicroPDF417 je kompaktní verze matice PDF417, ideální pro malé štítky. + +```csharp +using Aspose.BarCode.Generation; + +// Create a MicroPDF417 barcode with sample text that includes Unicode characters. +BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, // Symbology + "Åspóse.Barcóde©"); // Data to encode +``` + +**Proč je to důležité:** +`EncodeTypes.MicroPdf417` říká knihovně, aby použila algoritmus MicroPDF417, který automaticky řeší korekci chyb a kódování dat. Poskytnutí Unicode textu ukazuje, že generátor správně zpracovává ne‑ASCII znaky. + +## Krok 2: Upravit X‑dimenzi (velikost modulu) + +X‑dimenze určuje šířku jednoho modulu čárového kódu (pixel). Menší hodnota vytvoří hustší kód, větší hodnota usnadní skenování. + +```csharp +// Set each module to 2 pixels wide. +barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +**Proč je to důležité:** +Nastavení `barcode XDimension` zajišťuje, že čárový kód bude odpovídat velikosti cílového štítku. Pokud tento krok přeskočíte, výchozí velikost může být příliš velká pro mobilní obrazovky nebo malé výtisky. + +## Krok 3: Zvolit počet sloupců pro matici PDF417 + +MicroPDF417 podporuje 1–4 sloupce. Více sloupců vytvoří čtverečtější kód; méně sloupců jej protáhne vertikálně. + +```csharp +// Use the maximum of 4 columns for a compact, square shape. +barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; +``` + +**Proč je to důležité:** +Úprava **sloupců PDF417** vám umožní vyvážit čitelnost a prostorové omezení. V mnoha scénářích skenování nabízí rozložení se 4 sloupci nejlepší kompromis. + +## Krok 4: Uložit vygenerovaný čárový kód jako PNG obrázek + +Jakmile je čárový kód nakonfigurován, můžete konečně odpovědět na otázku “**jak uložit čárový kód**” a zapsat jej do souboru. PNG zachovává bezztrátovou kvalitu, což je klíčové pro ostré skenování. + +```csharp +// Define the output path (ensure the directory exists). +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + +// Export the barcode to PNG. +barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + +Console.WriteLine($"Barcode saved to: {outputPath}"); +``` + +**Proč je to důležité:** +`barcode image format` určuje vizuální věrnost uloženého souboru. PNG je preferováno pro většinu UI a tiskových workflow, protože zachovává ostré hrany bez kompresních artefaktů. + +## Kompletní, spustitelný příklad + +Sestavením všech částí získáte samostatný program, který můžete zkopírovat, vložit a spustit. + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // 1️⃣ Create the barcode generator. + BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, + "Åspóse.Barcóde©"); + + // 2️⃣ Adjust module size. + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; + + // 3️⃣ Set column count (1‑4 allowed). + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; + + // 4️⃣ Define output location. + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + + // 5️⃣ Save as PNG. + barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"✅ Barcode saved to: {outputPath}"); + } +} +``` + +**Očekávaný výstup** + +Spuštěním programu se na ploše vytvoří soubor `MicroPdf417.png`. Otevřením souboru uvidíte jasný čárový kód MicroPDF417, který kóduje řetězec `Åspóse.Barcóde©`. Skenováním libovolným standardním čtečkou se vrátí původní text. + +## Často kladené otázky a okrajové případy + +| Otázka | Odpověď | +|----------|--------| +| *Mohu místo PNG použít JPEG?* | Ano. Nahraďte `BarCodeImageFormat.Png` za `BarCodeImageFormat.Jpeg`. JPEG je menší, ale zavádí kompresní artefakty, které mohou ovlivnit skenování. | +| *Co když moje data přesáhnou kapacitu MicroPDF417?* | MicroPDF417 pojme až 1 KB dat. Pro větší objemy přepněte na plný `EncodeTypes.Pdf417`. | +| *Jak změním barvu čárového kódu?* | Použijte `barcodeGenerator.Parameters.Barcode.BarColor` a `BackColor` k nastavení popředí/pozadí před voláním `Save`. | +| *Je X‑dimenze omezena na celočíselné pixely?* | Vlastnost přijímá `float`. Hodnoty jako `1.5f` jsou povoleny, ale většina tiskáren nejlépe funguje s celými pixely. | + +## Profesionální tipy pro spolehlivé implementace **jak uložit čárový kód** + +- **Ověřte výstupní složku** pomocí `Directory.Exists` před voláním `Save`, abyste předešli `IOException`. +- **Uvolněte generátor** (`barcodeGenerator.Dispose()`) při generování mnoha čárových kódů v cyklu, aby se uvolnily nativní zdroje. +- **Testujte s reálnými skenery** po uložení; vizuální kontrola není dostatečná pro produkční nasazení. +- **Udržujte knihovnu aktuální** – novější verze Aspose.BarCode přinášejí vylepšení symbologie a opravy chyb. + +## Závěr + +Nyní víte, **jak uložit čárový kód** v C# pomocí knihovny Aspose.BarCode. Vytvořením čárového kódu MicroPDF417, nastavením **X‑dimenze čárového kódu**, výběrem vhodných **sloupců PDF417** a exportem do **formátu obrázku čárového kódu** jako PNG máte kompletní, připravené řešení pro produkci. + +Dále se podívejte na související témata, jako je **generování QR kódů v C#**, **hromadné vytváření čárových kódů** nebo **vkládání čárových kódů do PDF reportů**. Každé z nich staví na stejných principech předvedených zde a umožní vám rozšířit svůj imaging toolbox s jistotou. + +## 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í přístupy ve vlastních projektech. + +- [How to Save PNG using DataMatrix C40 with Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-c40/) +- [How to Set Border for ITF-14 Barcode Customization](/barcode/english/net/itf-14-barcode-customization/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) + +{{< /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/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md b/barcode/czech/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md new file mode 100644 index 000000000..6e023d310 --- /dev/null +++ b/barcode/czech/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md @@ -0,0 +1,216 @@ +--- +category: general +date: 2026-08-03 +description: Načtěte čárový kód PDF417 z obrázku pomocí C# BarCodeReader – kompletní + příklad čtečky čárových kódů, který také ukazuje, jak načíst více čárových kódů. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- read PDF417 barcode +- barcode reader example +- read multiple barcodes +- read barcodes image +language: cs +lastmod: 2026-08-03 +og_description: Rychle načtěte čárový kód PDF417 pomocí příkladu C# BarCodeReader. + Postupujte podle tohoto krok‑za‑krokem průvodce, abyste dekódovali macro PDF417 + a načetli více čárových kódů z obrázku. +og_image_alt: Console output of a read PDF417 barcode example in C# +og_title: Čtení PDF417 čárového kódu v C# – kompletní příklad čtečky čárových kódů +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + headline: Read PDF417 barcode in C# – barcode reader example + type: TechArticle +- description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + name: Read PDF417 barcode in C# – barcode reader example + steps: + - name: '**Create a new console project**' + text: '**Create a new console project**' + - name: '**Add the barcode library**' + text: '**Add the barcode library**' + - name: '**Copy the barcode image**' + text: '**Copy the barcode image**' + type: HowTo +tags: +- barcode +- PDF417 +- C# +- .NET +title: Čtení PDF417 čárového kódu v C# – příklad čtečky čárových kódů +url: /cs/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Čtení čárového kódu PDF417 v C# – příklad čtečky čárových kódů + +Pokud potřebujete načíst data čárového kódu PDF417 z obrázku, tento průvodce vám ukáže, jak to provést pomocí třídy **BarCodeReader** v C#. Naučíte se příklad čtečky čárových kódů, který také zvládá macro PDF417 a dokáže načíst více čárových kódů v jednom obrázku. + +Práce s čárovými kódy často zahrnuje různé zdroje obrázků, proměnlivé osvětlení a někdy složená data, jako jsou segmenty macro PDF417. Tento tutoriál pokrývá vše, co potřebujete k dekódování čárového kódu PDF417, extrakci jeho rozšířených polí a zpracování několika čárových kódů ze stejného obrázku. Na konci budete mít spustitelný konzolový program, který načte čárové kódy ze souboru s obrázkem a vypíše podrobné informace do konzole. + +## Co budete potřebovat + +* .NET 6.0 SDK nebo novější nainstalovaný +* Aktuální verze NuGet balíčku **Aspose.BarCode for .NET** (nebo jakékoli kompatibilní knihovny, která poskytuje `BarCodeReader` a `DecodeType.MacroPdf417`) +* Obrázkový soubor obsahující čárový kód PDF417 nebo macro PDF417 (ve vzoru se používá `ExtPDF417Meta.png`) +* Editor kódu nebo IDE, např. Visual Studio 2022 + +Žádné další služby ani externí API nejsou vyžadovány. + +## Nastavení projektu pro čtení čárových kódů + +1. **Create a new console project** + + ```bash + dotnet new console -n Pdf417ReaderDemo + cd Pdf417ReaderDemo + ``` + +2. **Add the barcode library** + + ```bash + dotnet add package Aspose.BarCode --version 23.12 + ``` + +3. **Copy the barcode image** + + Place `ExtPDF417Meta.png` (or any image that contains a PDF417 barcode) into the project folder. + For this tutorial we assume the file resides at `YOUR_DIRECTORY/ExtPDF417Meta.png`. + + Umístěte `ExtPDF417Meta.png` (nebo jakýkoli obrázek obsahující čárový kód PDF417) do složky projektu. Pro tento tutoriál předpokládáme, že soubor se nachází v `YOUR_DIRECTORY/ExtPDF417Meta.png`. + +Projekt je nyní připraven ke kompilaci a spuštění příkladu čtečky čárových kódů. + +## Jak číst čárový kód PDF417 pomocí BarCodeReader + +Jádrem řešení je blok `using`, který vytvoří instanci `BarCodeReader`, specifikuje `DecodeType.MacroPdf417` a iteruje přes každý detekovaný čárový kód. Následující kód je kompletní, samostatný program, který můžete vložit do souboru `Program.cs`. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.BarCodeRecognition; + +class Program +{ + static void Main() + { + // Path to the image that contains one or more PDF417 barcodes + const string imagePath = "YOUR_DIRECTORY/ExtPDF417Meta.png"; + + // Step 1: Create a BarCodeReader for a macro PDF417 image + using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.MacroPdf417)) + { + // Step 2: Read all barcodes from the image + foreach (BarCodeResult result in reader.ReadBarCodes()) + { + // Step 3: Output basic barcode information + Console.WriteLine($"CodeType: {result.CodeTypeName}"); + Console.WriteLine($"CodeText: {result.CodeText}"); + + // Step 4: Output macro PDF417 specific fields + Console.WriteLine($"Pdf417MacroFileID: {result.Extended.Pdf417.MacroPdf417FileID}"); + Console.WriteLine($"Pdf417MacroSegmentID: {result.Extended.Pdf417.MacroPdf417SegmentID}"); + Console.WriteLine($"Pdf417MacroSegmentsCount: {result.Extended.Pdf417.MacroPdf417SegmentsCount}"); + Console.WriteLine($"Pdf417MacroFileName: {result.Extended.Pdf417.MacroPdf417FileName}"); + Console.WriteLine($"Pdf417MacroChecksum: {result.Extended.Pdf417.MacroPdf417Checksum}"); + Console.WriteLine($"Pdf417MacroFileSize: {result.Extended.Pdf417.MacroPdf417FileSize}"); + Console.WriteLine($"Pdf417MacroTimeStamp: {result.Extended.Pdf417.MacroPdf417TimeStamp}"); + Console.WriteLine($"Pdf417MacroAddressee: {result.Extended.Pdf417.MacroPdf417Addressee}"); + Console.WriteLine($"Pdf417MacroSender: {result.Extended.Pdf417.MacroPdf417Sender}"); + Console.WriteLine($"MacroPdf417Terminator: {result.Extended.Pdf417.MacroPdf417Terminator}"); + Console.WriteLine(new string('-', 40)); + } + + // Pro tip: If no barcodes are found, ReadBarCodes() returns an empty collection. + // You can check reader.HasBarcodes for a quick boolean test. + if (!reader.HasBarcodes) + { + Console.WriteLine("No barcodes detected in the provided image."); + } + } + } +} +``` + +**Proč to funguje**: + +* `DecodeType.MacroPdf417` říká čtečce, aby hledala makro rozšíření PDF417, které obsahuje další metadata jako ID souboru, počet segmentů a časová razítka. +* `using` příkaz zajišťuje, že neřízené prostředky (souborové handly, nativní dekódovací buffery) jsou uvolněny okamžitě. +* `foreach` smyčka automaticky zpracuje **všechny** čárové kódy, které obrázek obsahuje, čímž splňuje požadavek na *čtení více čárových kódů*. + +Když spustíte program (`dotnet run`), měli byste vidět výstup podobný následujícímu: + +``` +CodeType: MacroPdf417 +CodeText: https://example.com/document.pdf +Pdf417MacroFileID: 12345 +Pdf417MacroSegmentID: 1 +Pdf417MacroSegmentsCount: 3 +Pdf417MacroFileName: document.pdf +Pdf417MacroChecksum: 0x1A2B +Pdf417MacroFileSize: 204800 +Pdf417MacroTimeStamp: 2024-07-15T10:25:00Z +Pdf417MacroAddressee: John Doe +Pdf417MacroSender: Acme Corp +MacroPdf417Terminator: True +---------------------------------------- +``` + +Pokud obrázek obsahuje více než jeden PDF417 čárový kód, smyčka vytiskne samostatný blok pro každý čárový kód, čímž demonstruje, jak **číst více čárových kódů** z jednoho obrázku. + +## Čtení více čárových kódů z obrázku + +Stejná instance `BarCodeReader` může najednou dekódovat několik typů čárových kódů. Pro rozšíření rozsahu z pouhého macro PDF417 na jakýkoli PDF417 (nebo dokonce QR, Code128 atd.) upravte příznak `DecodeType`: + +```csharp +using (BarCodeReader reader = new BarCodeReader(imagePath, + DecodeType.Pdf417 | DecodeType.MacroPdf417 | DecodeType.QR | DecodeType.Code128)) +{ + // The rest of the code stays unchanged. +} +``` + +*`DecodeType`* je bitová maska, takže můžete kombinovat libovolný počet podporovaných formátů. Tato flexibilita dělá úryvek **příkladem čtečky čárových kódů**, který funguje pro širokou škálu případů použití, jako je skenování štítků produktů, vstupenek nebo ID karet. + +## Bezpečný přístup k polím macro PDF417 + +Macro PDF417 přidává bohatou sadu rozšířených vlastností. Nicméně ne každý čárový kód obsahuje všechna pole. Přístup k chybějící vlastnosti může vyvolat `NullReferenceException`. Nejbezpečnější přístup je ověřit každou vlastnost před jejím vytištěním: + +```csharp +var macro = result.Extended?.Pdf417; +if (macro != null) +{ + Console.WriteLine($"Pdf417MacroFileID: {macro.MacroPdf417FileID ?? "N/A"}"); + // Repeat for other fields... +} +``` + +*Proč je to důležité*: V reálných nasazeních můžete obdržet čisté PDF417 čárové kódy, které postrádají macro data. Defenzivní kontrola zajišťuje, že vaše aplikace bude nadále běžet bez zhroucení. + +## Časté úskalí a osvědčené postupy + +| Problém | Proč k tomu dochází | Doporučené řešení | +|-------|----------------|-----------------| +| Cesta k obrázku je nesprávná | `BarCodeReader` vyvolá výjimku soubor‑nenalezen před jakýmkoli dekódováním | Použijte `Path.Combine` a ověřte, že soubor existuje pomocí `File.Exists` | +| Obrázek s nízkým rozlišením | Dekodér nedokáže najít hrany čárového kódu, což vede k nulovým detekcím | Zajistěte minimální rozlišení 300 dpi pro spolehlivé výsledky | +| Čárový kód otočený > 45° | Mnoho knihoven předpokládá svislou orientaci | Povolte `reader.RecognitionOptions.RotateImage = true`, pokud je | + +## 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 číst DataMatrix čárové kódy pomocí Aspose.BarCode pro .NET](/barcode/english/net/datamatrix-barcode-reading/) +- [Čtení DataMatrix čárového kódu C# – Generování DataMatrix režimu (Auto)](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-auto/) +- [Čtení čárového kódu z obrázku – Ovládání extrakce oblasti čárového kódu v Java s Aspose.BarCode](/barcode/english/java/advanced-settings-and-optimization/extracting-barcode-region-information/) + +{{< /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/net/compact-pdf417-encoding/_index.md b/barcode/dutch/net/compact-pdf417-encoding/_index.md index 64f0fba6f..69d79ac78 100644 --- a/barcode/dutch/net/compact-pdf417-encoding/_index.md +++ b/barcode/dutch/net/compact-pdf417-encoding/_index.md @@ -84,6 +84,22 @@ Voorbij de basis, hier zijn enkele praktische tips om je workflow te stroomlijne Leer hoe je Compact PDF417 barcodes genereert met Aspose.BarCode voor .NET. Uitgebreide gids met stap‑voor‑stap instructies en code‑voorbeelden. +### [PDF417 barcode maken in C# – stapsgewijze gids](./create-pdf417-barcode-in-c-step-by-step-guide/) + +Leer hoe je een PDF417 barcode maakt in C# met een stapsgewijze handleiding. + +### [PDF417 barcode genereren in C# – volledige gids met Aspose.BarCode](./generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/) + +Leer hoe je een PDF417 barcode genereert in C# met een volledige stap‑voor‑stap handleiding. + +### [Hoe een barcode op te slaan als afbeelding – volledige C#-gids](./how-to-save-barcode-as-an-image-complete-c-guide/) + +Leer hoe je een barcode opslaat als PNG/JPEG met Aspose.BarCode in C# met een volledige stap‑voor‑stap handleiding. + +### [PDF417 barcode lezen in C# – barcodelezer voorbeeld](./read-pdf417-barcode-in-c-barcode-reader-example/) + +Leer hoe je een PDF417 barcode leest in C# met een voorbeeld van de barcodelezer. + ## Veelgestelde Vragen **V: Wat is de maximale hoeveelheid data die ik kan opslaan in een Compact PDF417 barcode?** @@ -112,4 +128,4 @@ A: Geen externe lettertypen zijn nodig; de bibliotheek verwerkt alle rendering i {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/dutch/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md b/barcode/dutch/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..1e630fdab --- /dev/null +++ b/barcode/dutch/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-08-03 +description: Creëer snel een PDF417‑barcode in C#. Leer hoe je een PDF417‑barcode + genereert en hoe je de barcode‑afbeelding opslaat als PNG met Aspose.Barcode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create pdf417 barcode +- how to generate pdf417 barcode +- how to save barcode image +language: nl +lastmod: 2026-08-03 +og_description: Maak een PDF417-barcode in C# met Aspose.Barcode. Volg deze gids om + een PDF417-barcode te genereren en hoe je de barcode‑afbeelding efficiënt opslaat. +og_image_alt: Screenshot of a generated compact PDF417 barcode saved as PNG +og_title: PDF417-barcode maken in C# – volledige programmeertutorial +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + headline: Create PDF417 barcode in C# – step‑by‑step guide + type: TechArticle +- description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + name: Create PDF417 barcode in C# – step‑by‑step guide + steps: + - name: Why this matters + text: '* **EncodeTypes.Pdf417** tells the library to use the PDF417 standard, + which supports large data payloads and error correction. * Providing Unicode + characters proves the generator handles non‑ASCII input without extra configuration.' + - name: Practical tip + text: If you need a taller barcode for limited horizontal space, increase `Columns`. + Setting `Truncate` to `true` reduces the overall height by removing quiet zones, + which is ideal for mobile screens. + - name: Expected result + text: Running the program creates `CompactPdf417.png` in the project folder. Opening + the file shows a compact PDF417 barcode that encodes the string *Åspóse.Barcóde©*. + The image can be embedded in HTML, PDF reports, or printed on labels. + - name: Verifying the output + text: 'After the program finishes, you can verify the file exists with a quick + command:' + type: HowTo +tags: +- barcode +- C# +- PDF417 +- image generation +title: PDF417‑barcode maken in C# – stapsgewijze handleiding +url: /nl/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PDF417-streepjescode maken in C# – stapsgewijze handleiding + +Als je een **PDF417-streepjescode** moet maken in een .NET‑applicatie, laat deze handleiding je precies zien hoe je een PDF417‑streepjescode genereert en hoe je de streepjescode‑afbeelding opslaat. Je krijgt een PNG‑bestand dat kan worden gebruikt in rapporten, tickets of mobiele scan‑apps. + +De tutorial behandelt alles, van projectopzet tot het uiteindelijke PNG‑bestand. Er is geen externe documentatie nodig; volg gewoon de stappen en voer de code uit. + +## Wat je nodig hebt + +* .NET 6.0 SDK of later (de code werkt ook met .NET Framework 4.7+) +* Visual Studio 2022 of een IDE die C# ondersteunt +* Internettoegang om het **Aspose.Barcode for .NET** NuGet‑pakket te installeren + +Deze vereisten zorgen ervoor dat de code compileert zonder extra configuratie. + +## PDF417-streepjescode maken – projectopzet + +1. Open een opdrachtprompt en maak een nieuw console‑project aan: + + ```bash + dotnet new console -n Pdf417Demo + cd Pdf417Demo + ``` + +2. Voeg de Aspose.Barcode‑bibliotheek toe: + + ```bash + dotnet add package Aspose.Barcode + ``` + +3. Open het gegenereerde `Program.cs`‑bestand. De `using`‑statements bovenaan geven je toegang tot de streepjescode‑klassen: + + ```csharp + using System; + using Aspose.Barcode.Generation; + using Aspose.Barcode; + ``` + +Het project is nu klaar om **PDF417‑streepjescode te maken**. + +## Hoe PDF417‑streepjescode te genereren met Aspose.Barcode + +De kern van het maken van de streepjescode bevindt zich in de `BarcodeGenerator`‑klasse. Je specificeert de symbologie (`EncodeTypes.Pdf417`) en de gegevens die je wilt coderen. + +```csharp +// Step 1: Initialise the generator with PDF417 symbology and sample text. +// The text includes Unicode characters to demonstrate full‑range support. +BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Pdf417, "Åspóse.Barcóde©"); +``` + +### Waarom dit belangrijk is + +* **EncodeTypes.Pdf417** geeft de bibliotheek aan de PDF417‑standaard te gebruiken, die grote gegevenspayloads en foutcorrectie ondersteunt. +* Het verstrekken van Unicode‑tekens bewijst dat de generator niet‑ASCII‑invoer zonder extra configuratie kan verwerken. + +## Hoe de weergave van de streepjescode te configureren + +Je kunt de grootte van elke module, het aantal kolommen en of de streepjescode compacte (afgekorte) modus gebruikt, regelen. Deze instellingen beïnvloeden zowel de leesbaarheid als de bestandsgrootte. + +```csharp +// Step 2: Set the module (X) dimension – each barcode element will be 2 pixels wide. +generator.Parameters.Barcode.XDimension.Pixels = 2; + +// Step 3: Configure PDF417‑specific options. +generator.Parameters.Barcode.Pdf417.Columns = 3; // Number of columns (affects height) +generator.Parameters.Barcode.Pdf417.Truncate = true; // Enable compact mode +``` + +### Praktische tip + +Als je een hogere streepjescode nodig hebt voor beperkte horizontale ruimte, verhoog dan `Columns`. Het instellen van `Truncate` op `true` verkleint de totale hoogte door de stille zones te verwijderen, wat ideaal is voor mobieltjeschermen. + +## Hoe de streepjescode‑afbeelding op te slaan als PNG + +Na het configureren van de generator roep je `Save` aan met een bestandspad en het gewenste afbeeldingsformaat. De methode schrijft de afbeelding direct naar de schijf. + +```csharp +// Step 4: Save the generated barcode as a PNG image. +string outputPath = @"./CompactPdf417.png"; +generator.Save(outputPath, BarCodeImageFormat.Png); +Console.WriteLine($"Barcode saved to {outputPath}"); +``` + +### Verwacht resultaat + +Het uitvoeren van het programma maakt `CompactPdf417.png` aan in de projectmap. Het openen van het bestand toont een compacte PDF417‑streepjescode die de tekenreeks *Åspóse.Barcóde©* codeert. De afbeelding kan worden ingebed in HTML, PDF‑rapporten of afgedrukt op labels. + +## Volledige broncode + +Hieronder staat het volledige, uitvoerbare programma. Kopieer het naar `Program.cs` en voer `dotnet run` uit. + +```csharp +using System; +using Aspose.Barcode.Generation; +using Aspose.Barcode; + +namespace Pdf417Demo +{ + class Program + { + static void Main() + { + // Initialise the generator with PDF417 symbology and sample text. + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.Pdf417, + "Åspóse.Barcóde©"); + + // Set the module width to 2 pixels. + generator.Parameters.Barcode.XDimension.Pixels = 2; + + // Configure PDF417‑specific options. + generator.Parameters.Barcode.Pdf417.Columns = 3; + generator.Parameters.Barcode.Pdf417.Truncate = true; + + // Define the output file path. + string outputPath = @"./CompactPdf417.png"; + + // Save the barcode as a PNG image. + generator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"Barcode saved to {outputPath}"); + } + } +} +``` + +### De output verifiëren + +Nadat het programma is voltooid, kun je met een snelle opdracht controleren of het bestand bestaat: + +```bash +dotnet run && ls -l CompactPdf417.png +``` + +Als het bestand verschijnt, is het **PDF417‑streepjescode maken** proces geslaagd. + +## Veelvoorkomende variaties en randgevallen + +| Situation | Adjustment | +|-----------|------------| +| **Langere gegevensreeks** | Verhoog `Columns` of stel `Rows` in om meer codewoorden te huisvesten. | +| **Ander afbeeldingsformaat** | Vervang `BarCodeImageFormat.Png` door `Jpeg`, `Bmp` of `Gif`. | +| **Hogere resolutie** | Stel `generator.Parameters.ImageResolution` in vóór `Save`. | +| **Achtergrondkleur** | Gebruik `generator.Parameters.Barcode.ImageBackgroundColor = Color.White;` | +| **Foutafhandeling** | Plaats `generator.Save` in een `try/catch`‑blok om I/O‑fouten op te vangen. | + +## Conclusie + +Je weet nu hoe je een **PDF417‑streepjescode** in C# kunt **maken** met Aspose.Barcode, hoe je de weergave kunt configureren, en hoe je een **streepjescode‑afbeelding** als PNG‑bestand kunt **opslaan**. Het volledige voorbeeld toont elke benodigde stap, van projectopzet tot verificatie, zodat je barcode‑generatie kunt integreren in elke .NET‑oplossing. + +Vervolgens kun je gerelateerde onderwerpen verkennen, zoals **hoe je QR‑codes genereert**, **streepjescodes in PDF‑documenten embedden**, of **barcode‑kleuren aanpassen**. Elk van deze bouwt voort op dezelfde generator‑API, waardoor je de scan‑mogelijkheden van je applicatie met minimale inspanning kunt uitbreiden. Veel programmeerplezier! + +## Wat moet je hierna leren? + +De volgende tutorials behandelen nauw verwante onderwerpen die voortbouwen op de technieken die in deze handleiding 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. + +- [Hoe een streepjescode te maken – Compact PDF417 met Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [Hoe DataMatrix‑streepjescodes (ECC 200) te genereren met Aspose.BarCode voor .NET](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-ecc-200-configuration/) +- [Hoe een Aztec‑streepjescode te genereren met aangepaste beeldverhouding met Aspose.BarCode voor .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) + +{{< /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/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md b/barcode/dutch/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md new file mode 100644 index 000000000..8d82d4404 --- /dev/null +++ b/barcode/dutch/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md @@ -0,0 +1,241 @@ +--- +category: general +date: 2026-08-03 +description: Genereer PDF417‑barcode C# met Aspose.BarCode. Leer stap voor stap hoe + je Macro PDF417‑metadata toevoegt en opslaat als PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- generate PDF417 barcode C# +- Macro PDF417 barcode +- Aspose.BarCode +- C# barcode generation +- PDF417 metadata +- barcode image PNG +language: nl +lastmod: 2026-08-03 +og_description: Genereer PDF417-barcode C# met Aspose.BarCode. Deze tutorial laat + zien hoe je Macro PDF417-metadata kunt insluiten en het resultaat exporteert als + een PNG-afbeelding. +og_image_alt: Screenshot of a generated PDF417 barcode created with C# +og_title: PDF417‑barcode genereren in C# – stap‑voor‑stap Aspose.BarCode‑tutorial +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + headline: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + type: TechArticle +- description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + name: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + steps: + - name: Create a Macro PDF417 barcode generator + text: First, instantiate `BarcodeGenerator` with the `EncodeTypes.MacroPdf417` + enum. The constructor also accepts the text you want to encode – in this example + we use a string that contains Unicode characters to demonstrate full‑width support. + - name: Adjust basic barcode appearance + text: Next, define the visual size of the barcode. `XDimension.Pixels` controls + the width of a single module (the smallest black/white square), while `Pdf417.Columns` + influences the overall shape by setting the number of columns. + - name: Populate Macro PDF417 metadata + text: Macro PDF417 allows you to embed file‑level information that many back‑office + systems rely on (e.g., file ID, segment ID, timestamp). The following properties + illustrate the most common fields. + - name: Save the barcode image as PNG + text: Finally, call `Save` to write the barcode to disk. PNG is lossless, making + it ideal for high‑quality scanning. + - name: How to verify the result + text: 1. Open `ExtPDF417Meta.png` in any image viewer. 2. Use a PDF417 scanner + app (e.g., *Zebra Scanner* or *BarCode Reader* on Android/iOS). 3. Confirm that + the decoded payload includes the original text and a JSON‑like block with the + macro fields you set. + - name: Next steps + text: '- Experiment with other barcode formats (e.g., QR, Code128) by changing + `EncodeTypes`. - Explore `Pdf417.ErrorCorrectionLevel` to improve scan reliability + under poor lighting. - Integrate the generated image into a PDF report using + Aspose.PDF for end‑to‑end document automation.' + type: HowTo +tags: +- PDF417 +- C# +- Barcode +title: PDF417-barcode genereren in C# – volledige gids met Aspose.BarCode +url: /nl/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PDF417 barcode genereren C# – volledige gids + +Als u **PDF417 barcode C#** moet genereren voor een logistiek of document‑beheersysteem, laat deze tutorial u precies zien hoe u dit doet met Aspose.BarCode. U ziet hoe u de barcode configureert, Macro PDF417‑metadata insluit, en het resultaat opslaat als een PNG‑afbeelding in slechts een paar regels code. + +Het genereren van een PDF417 barcode in C# betekent vaak dat u extra informatie moet verwerken, zoals bestands‑identifiers, segmentnummers of tijdstempels. Deze gids behandelt die details, zodat u niet door verspreide documentatie hoeft te zoeken. Aan het einde van het artikel heeft u een kant‑klaar programma dat een conforme Macro PDF417 barcode‑afbeelding produceert. + +## Wat u nodig heeft + +- .NET 6.0 of later (de code werkt ook met .NET Framework 4.7+) +- Aspose.BarCode voor .NET (v23.9 of nieuwer) – installeren via NuGet `Install-Package Aspose.BarCode` +- Een ontwikkelomgeving zoals Visual Studio 2022 of Visual Studio Code +- Basiskennis van C#‑syntaxis + +> **Pro tip:** Gebruik de nieuwste versie van Aspose.BarCode om te profiteren van bugfixes en ondersteuning voor de nieuwste PDF417‑specificaties. + +## Hoe PDF417 barcode C# genereren met Aspose.BarCode + +Het proces bestaat uit vier logische stappen. Elke stap staat in een duidelijk code‑blok zodat u deze direct kunt kopiëren, plakken en uitvoeren. + +### Stap 1: Maak een Macro PDF417 barcode‑generator + +Instantieer eerst `BarcodeGenerator` met de `EncodeTypes.MacroPdf417`‑enum. De constructor accepteert ook de tekst die u wilt coderen – in dit voorbeeld gebruiken we een string met Unicode‑tekens om volledige breedte‑ondersteuning te demonstreren. + +```csharp +using System; +using Aspose.BarCode.Generation; + +// Create a Macro PDF417 barcode generator with the desired text +using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) +{ + // Subsequent steps go inside this using block +``` + +*Waarom dit belangrijk is*: Het `MacroPdf417`‑type vertelt Aspose.BarCode om het symbool als een macro‑barcode te behandelen, die extra metadata op bestandsniveau kan dragen. Zonder deze vlag zouden de extra velden die u later instelt worden genegeerd. + +### Stap 2: Pas de basisuiterlijk van de barcode aan + +Definieer vervolgens de visuele grootte van de barcode. `XDimension.Pixels` bepaalt de breedte van één module (het kleinste zwart/witte vierkant), terwijl `Pdf417.Columns` de algehele vorm beïnvloedt door het aantal kolommen in te stellen. + +```csharp + // Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol +``` + +*Waarom dit belangrijk is*: Een kleinere `XDimension` levert een afbeelding met hogere resolutie op, wat nuttig is wanneer de barcode vanaf een scherm moet worden gescand. Het aanpassen van het aantal kolommen kan helpen de barcode in beperkte ruimte te passen zonder de gegevenscapaciteit te verminderen. + +### Stap 3: Vul Macro PDF417 metadata in + +Macro PDF417 stelt u in staat bestands‑niveau informatie in te sluiten waar veel back‑office systemen op vertrouwen (bijv. bestand‑ID, segment‑ID, tijdstempel). De volgende eigenschappen illustreren de meest voorkomende velden. + +```csharp + // Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; +``` + +*Waarom dit belangrijk is*: Elk veld correspondeert direct met een segment van de macro‑barcode‑specificatie. Bijvoorbeeld, `MacroPdf417FileID` identificeert het logische bestand uniek, terwijl `MacroPdf417SegmentsCount` de scanner vertelt hoeveel delen te verwachten. Het leveren van nauwkeurige metadata zorgt ervoor dat downstream‑systemen het oorspronkelijke document foutloos kunnen reconstrueren. + +### Stap 4: Sla de barcode‑afbeelding op als PNG + +Roep tenslotte `Save` aan om de barcode naar schijf te schrijven. PNG is verliesvrij, waardoor het ideaal is voor scannen van hoge kwaliteit. + +```csharp + // Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); +} +``` + +*Waarom dit belangrijk is*: De `BarCodeImageFormat.Png`‑enum garandeert dat het uitvoerbestand exact de pixelgegevens bevat die u hebt geconfigureerd. Als u een vectorformaat nodig heeft voor schalen, vervang dan `Png` door `Svg` – Aspose.BarCode ondersteunt dat direct. + +#### Verwachte output + +Het uitvoeren van het volledige programma maakt een bestand aan met de naam **ExtPDF417Meta.png**. De afbeelding toont een dichte, meer‑rijige PDF417‑symbool dat de tekst “Åspóse.Barcóde©” en de door u opgegeven macro‑metadata bevat. Het scannen van de barcode met een PDF417‑compatibele lezer geeft de oorspronkelijke tekst terug plus een gestructureerd gegevensblok met de bestand‑ID, segment‑ID, tijdstempel en andere velden. + +![Schermafbeelding van gegenereerde PDF417 barcode](/images/pdf417-example.png){: .center-image alt="voorbeeldoutput van PDF417 barcode genereren C#"} + +## Volledige broncode (klaar om te kopiëren‑plakken) + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace Pdf417MacroDemo +{ + class Program + { + static void Main() + { + // Step 1: Create a Macro PDF417 barcode generator with the desired text + using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) + { + // Step 2: Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol + + // Step 3: Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; + + // Step 4: Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); + } + + Console.WriteLine("Macro PDF417 barcode generated successfully."); + } + } +} +``` + +### Hoe het resultaat te verifiëren + +1. Open `ExtPDF417Meta.png` in een willekeurige afbeeldingsviewer. +2. Gebruik een PDF417‑scannerapp (bijv. *Zebra Scanner* of *BarCode Reader* op Android/iOS). +3. Bevestig dat de gedecodeerde payload de oorspronkelijke tekst bevat en een JSON‑achtig blok met de macro‑velden die u hebt ingesteld. + +## Veelgestelde vragen en afhandeling van randgevallen + +| Vraag | Antwoord | +|----------|--------| +| **Kan ik een vectorafbeelding genereren in plaats van PNG?** | Ja. Vervang `BarCodeImageFormat.Png` door `BarCodeImageFormat.Svg`. De rest van de code blijft ongewijzigd. | +| **Wat als mijn gegevens de standaardcapaciteit overschrijden?** | Verhoog `Pdf417.Columns` of stel `Pdf417.Rows` handmatig in. Grotere waarden staan meer codewoorden per segment toe. | +| **Wordt Unicode ondersteund in de gecodeerde tekst?** | Absoluut. Het voorbeeld gebruikt “Åspóse.Barcóde©”. Aspose.BarCode schakelt automatisch over naar UTF‑8‑codering wanneer nodig. | +| **Moet ik een licentie voor Aspose.BarCode aanschaffen?** | Voor productie moet u een licentie toepassen om het evaluatiewatermerk te vermijden. Roep `License license = new License(); license.SetLicense("Aspose.BarCode.lic");` aan vóór het maken van de generator. | +| **Hoe ga ik om met fouten bij het opslaan van het bestand?** | Plaats de `Save`‑aanroep in een try/catch‑blok en log `IOException` of `BarCodeException` voor probleemoplossing. | + +## Conclusie + +U weet nu hoe u **PDF417 barcode C#** kunt genereren met Aspose.BarCode, volledige Macro PDF417‑metadata kunt insluiten, en het resultaat kunt exporteren als een PNG‑afbeelding van hoge kwaliteit. De stappen – het maken van de generator, het aanpassen van het uiterlijk, het vullen van metadata en het opslaan van de afbeelding – vormen een herbruikbaar patroon dat u kunt aanpassen voor facturen, verzendetiketten of elke situatie die rijke barcode‑gegevens vereist. + +### Volgende stappen + +- Experimenteer met andere barcode‑formaten (bijv. QR, Code128) door `EncodeTypes` te wijzigen. +- Verken `Pdf417.ErrorCorrectionLevel` om de scanbetrouwbaarheid bij slecht licht te verbeteren. +- Integreer de gegenereerde afbeelding in een PDF‑rapport met behulp van Aspose.PDF voor end‑to‑end documentautomatisering. + +Voel u vrij om de metadata‑velden aan te passen aan uw bedrijfsregels, en laat de barcode‑generatie een naadloos onderdeel worden van uw C#‑applicaties. Veel programmeerplezier! + +## Wat moet u 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 u te helpen extra API‑functies onder de knie te krijgen en alternatieve implementatie‑benaderingen in uw eigen projecten te verkennen. + +- [Hoe een barcode maken – Compact PDF417 met Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [Zo maakt u een barcode – Compact PDF417 met Aspose.BarCode](/barcode/german/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [java barcode bibliotheek – Barcode toevoegen aan PDF met Aspose](/barcode/english/java/barcode-basics/adding-barcode-to-pdf-document/) + +{{< /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/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md b/barcode/dutch/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md new file mode 100644 index 000000000..58b9fd59e --- /dev/null +++ b/barcode/dutch/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md @@ -0,0 +1,187 @@ +--- +category: general +date: 2026-08-03 +description: Hoe barcode snel opslaan met C#. Leer MicroPDF417 barcodegeneratie, stel + de afmetingen in, kies kolommen en exporteer naar PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to save barcode +- MicroPDF417 barcode +- C# barcode generation +- barcode XDimension +- PDF417 columns +- barcode image format +language: nl +lastmod: 2026-08-03 +og_description: hoe je een barcode opslaat in C# met een volledig voorbeeld. Genereer + een MicroPDF417‑barcode, pas de grootte aan, stel kolommen in en exporteer naar + PNG. +og_image_alt: Screenshot showing a MicroPDF417 barcode saved as a PNG file +og_title: hoe je een barcode opslaat – stap‑voor‑stap C#‑tutorial +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: how to save barcode quickly using C#. Learn MicroPDF417 barcode generation, + set dimensions, choose columns, and export to PNG. + headline: how to save barcode as an image – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- imaging +title: hoe een barcode opslaan als afbeelding – volledige C#‑gids +url: /nl/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# hoe barcode op te slaan – volledige C# gids + +Als je **how to save barcode** nodig hebt in een .NET‑applicatie, laat deze tutorial je de exacte stappen zien. Je genereert een MicroPDF417‑barcode, past de afmetingen aan, kiest het aantal kolommen en schrijft tenslotte de afbeelding naar schijf als een PNG‑bestand. + +Barcodes maken en opslaan vereist geen zware bibliotheek—alleen de `BarcodeGenerator`‑klasse uit de Aspose.BarCode for .NET‑suite. In de onderstaande secties lopen we elke configuratie‑optie door, leggen we uit waarom deze belangrijk is, en geven we je een kant‑klaar code‑voorbeeld. + +## Vereisten + +- .NET 6.0 of later (de API werkt met .NET Core en .NET Framework) +- Aspose.BarCode for .NET (NuGet‑pakket `Aspose.BarCode`) +- Een map waar je schrijfrechten voor hebt (gebruikt in de **how to save barcode** stap) + +## Stap 1: Maak een MicroPDF417‑barcode‑generator + +De eerste taak in elke **how to save barcode** workflow is het instantieren van een `BarcodeGenerator` met de gewenste symbologie en data. MicroPDF417 is een compacte versie van de PDF417‑matrixbarcode, ideaal voor kleine etiketten. + +```csharp +using Aspose.BarCode.Generation; + +// Create a MicroPDF417 barcode with sample text that includes Unicode characters. +BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, // Symbology + "Åspóse.Barcóde©"); // Data to encode +``` + +**Waarom dit belangrijk is:** +`EncodeTypes.MicroPdf417` vertelt de bibliotheek om het MicroPDF417‑algoritme te gebruiken, dat automatisch foutcorrectie en data‑codering afhandelt. Het verstrekken van Unicode‑tekst toont aan dat de generator niet‑ASCII‑tekens correct verwerkt. + +## Stap 2: Pas de X‑dimensie (module‑grootte) aan + +De X‑dimensie bepaalt de breedte van één barcode‑module (pixel). Een kleinere waarde levert een compactere barcode op, terwijl een grotere waarde het scannen vergemakkelijkt. + +```csharp +// Set each module to 2 pixels wide. +barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +**Waarom dit belangrijk is:** +Het instellen van `barcode XDimension` zorgt ervoor dat de barcode past binnen de beoogde etiketgrootte. Als je deze stap overslaat, kan de standaardgrootte te groot zijn voor mobiele schermen of kleine afdrukken. + +## Stap 3: Kies het aantal kolommen voor de PDF417‑matrix + +MicroPDF417 ondersteunt 1–4 kolommen. Meer kolommen geven een vierkante barcode; minder kolommen rekken deze verticaal uit. + +```csharp +// Use the maximum of 4 columns for a compact, square shape. +barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; +``` + +**Waarom dit belangrijk is:** +Het aanpassen van **PDF417 columns** laat je de leesbaarheid afstemmen op de beschikbare ruimte. In veel scansituaties biedt een 4‑kolomsindeling het beste compromis. + +## Stap 4: Sla de gegenereerde barcode op als PNG‑afbeelding + +Nu de barcode is geconfigureerd, kun je eindelijk de vraag “**how to save barcode**” beantwoorden door deze naar een bestand te schrijven. PNG behoudt verliesvrije kwaliteit, wat essentieel is voor scherp scannen. + +```csharp +// Define the output path (ensure the directory exists). +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + +// Export the barcode to PNG. +barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + +Console.WriteLine($"Barcode saved to: {outputPath}"); +``` + +**Waarom dit belangrijk is:** +`barcode image format` bepaalt de visuele getrouwheid van het opgeslagen bestand. PNG heeft de voorkeur in de meeste UI‑ en print‑workflows omdat het scherpe randen behoudt zonder compressie‑artefacten. + +## Volledig, uitvoerbaar voorbeeld + +Alles bij elkaar geeft je een zelfstandige applicatie die je kunt kopiëren, plakken en uitvoeren. + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // 1️⃣ Create the barcode generator. + BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, + "Åspóse.Barcóde©"); + + // 2️⃣ Adjust module size. + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; + + // 3️⃣ Set column count (1‑4 allowed). + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; + + // 4️⃣ Define output location. + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + + // 5️⃣ Save as PNG. + barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"✅ Barcode saved to: {outputPath}"); + } +} +``` + +**Verwachte output** + +Het uitvoeren van het programma maakt `MicroPdf417.png` op je bureaublad aan. Het openen van het bestand toont een duidelijke MicroPDF417‑barcode die de string `Åspóse.Barcóde©` codeert. Scannen met een standaard barcode‑scanner levert de oorspronkelijke tekst op. + +## Veelgestelde vragen en randgevallen + +| Vraag | Antwoord | +|----------|--------| +| *Kan ik JPEG gebruiken in plaats van PNG?* | Ja. Vervang `BarCodeImageFormat.Png` door `BarCodeImageFormat.Jpeg`. JPEG is kleiner, maar introduceert compressie‑artefacten die het scannen kunnen beïnvloeden. | +| *Wat als mijn data de capaciteit van MicroPDF417 overschrijdt?* | MicroPDF417 kan tot 1 KB data opslaan. Voor grotere payloads schakel over naar de volledige `EncodeTypes.Pdf417`. | +| *Hoe wijzig ik de kleur van de barcode?* | Gebruik `barcodeGenerator.Parameters.Barcode.BarColor` en `BackColor` om voor‑ en achtergrondkleur in te stellen vóór het aanroepen van `Save`. | +| *Is de X‑dimensie beperkt tot gehele pixels?* | De eigenschap accepteert een `float`. Waarden zoals `1.5f` zijn toegestaan, maar de meeste printers werken het beste met hele pixelgroottes. | + +## Pro‑tips voor betrouwbare **how to save barcode** implementaties + +- **Valideer de doelmap** met `Directory.Exists` voordat je `Save` aanroept om een `IOException` te voorkomen. +- **Dispose de generator** (`barcodeGenerator.Dispose()`) wanneer je veel barcodes in een lus genereert om native resources vrij te geven. +- **Test met echte scanners** na het opslaan; visuele inspectie is niet voldoende voor productie‑omgevingen. +- **Houd de bibliotheek up‑to‑date**—nieuwere Aspose.BarCode‑releases voegen symbologie‑verbeteringen en bug‑fixes toe. + +## Conclusie + +Je weet nu **how to save barcode** afbeeldingen in C# met de Aspose.BarCode‑bibliotheek. Door een MicroPDF417‑barcode te maken, de **barcode XDimension** te configureren, de juiste **PDF417 columns** te selecteren en te exporteren naar een **barcode image format** zoals PNG, beschik je over een complete, productie‑klare oplossing. + +Verken vervolgens gerelateerde onderwerpen zoals **C# barcode generation for QR codes**, **batch barcode creation**, of **embedding barcodes in PDF reports**. Elk van deze bouwt voort op dezelfde principes die hier zijn getoond, zodat je je imaging‑toolkit met vertrouwen kunt uitbreiden. + +## Wat moet je hierna leren? + +De volgende tutorials behandelen nauw verwante onderwerpen die voortbouwen op de technieken die in deze gids worden 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 Save PNG using DataMatrix C40 with Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-c40/) +- [How to Set Border for ITF-14 Barcode Customization](/barcode/english/net/itf-14-barcode-customization/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) + +{{< /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/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md b/barcode/dutch/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md new file mode 100644 index 000000000..1e8f0273b --- /dev/null +++ b/barcode/dutch/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md @@ -0,0 +1,216 @@ +--- +category: general +date: 2026-08-03 +description: Lees PDF417-barcode van een afbeelding met C# BarCodeReader – een compleet + barcode-leesvoorbeeld dat ook laat zien hoe meerdere barcodes gelezen kunnen worden. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- read PDF417 barcode +- barcode reader example +- read multiple barcodes +- read barcodes image +language: nl +lastmod: 2026-08-03 +og_description: Lees PDF417‑barcode snel met een C# BarCodeReader‑voorbeeld. Volg + deze stap‑voor‑stap‑gids om macro PDF417 te decoderen en meerdere barcodes uit een + afbeelding te lezen. +og_image_alt: Console output of a read PDF417 barcode example in C# +og_title: PDF417‑barcode lezen in C# – compleet voorbeeld van een barcodelezer +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + headline: Read PDF417 barcode in C# – barcode reader example + type: TechArticle +- description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + name: Read PDF417 barcode in C# – barcode reader example + steps: + - name: '**Create a new console project**' + text: '**Create a new console project**' + - name: '**Add the barcode library**' + text: '**Add the barcode library**' + - name: '**Copy the barcode image**' + text: '**Copy the barcode image**' + type: HowTo +tags: +- barcode +- PDF417 +- C# +- .NET +title: PDF417‑barcode lezen in C# – voorbeeld van barcodelezer +url: /nl/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PDF417 barcode lezen in C# – barcode lezer voorbeeld + +Als je PDF417 barcode‑gegevens uit een afbeelding moet lezen, laat deze gids zien hoe je dat doet met de **BarCodeReader**‑klasse in C#. Je leert een barcode‑lezer‑voorbeeld dat ook macro PDF417 afhandelt en meerdere barcodes in één afbeelding kan lezen. + +Werken met barcodes betekent vaak omgaan met verschillende afbeeldingsbronnen, wisselende lichtomstandigheden en soms samengestelde gegevens zoals macro PDF417‑segmenten. Deze tutorial behandelt alles wat je nodig hebt om een PDF417‑barcode te decoderen, de uitgebreide velden te extraheren en meerdere barcodes uit dezelfde afbeelding te verwerken. Aan het einde heb je een uitvoerbaar console‑programma dat barcodes uit een afbeeldingsbestand leest en gedetailleerde informatie naar de console print. + +## Wat je nodig hebt + +Voordat je begint, zorg dat je het volgende hebt: + +* .NET 6.0 SDK of later geïnstalleerd +* Een recente versie van het **Aspose.BarCode for .NET** NuGet‑pakket (of een compatibele bibliotheek die `BarCodeReader` en `DecodeType.MacroPdf417` biedt) +* Een afbeeldingsbestand dat een PDF417‑ of macro PDF417‑barcode bevat (het voorbeeld gebruikt `ExtPDF417Meta.png`) +* Een code‑editor of IDE zoals Visual Studio 2022 + +Er zijn geen extra services of externe API’s vereist. + +## Het project instellen voor barcode‑lezen + +1. **Maak een nieuw console‑project** + + ```bash + dotnet new console -n Pdf417ReaderDemo + cd Pdf417ReaderDemo + ``` + +2. **Voeg de barcode‑bibliotheek toe** + + ```bash + dotnet add package Aspose.BarCode --version 23.12 + ``` + +3. **Kopieer de barcode‑afbeelding** + + Plaats `ExtPDF417Meta.png` (of elke afbeelding die een PDF417‑barcode bevat) in de projectmap. + Voor deze tutorial gaan we ervan uit dat het bestand zich bevindt op `YOUR_DIRECTORY/ExtPDF417Meta.png`. + +Het project is nu klaar om te compileren en het barcode‑lezer‑voorbeeld uit te voeren. + +## Hoe PDF417 barcode lezen met BarCodeReader + +De kern van de oplossing is een `using`‑blok dat een `BarCodeReader`‑instantie maakt, `DecodeType.MacroPdf417` specificeert en over elke gedetecteerde barcode iterereert. De volgende code is een compleet, zelfstandig programma dat je kunt plakken in `Program.cs`. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.BarCodeRecognition; + +class Program +{ + static void Main() + { + // Path to the image that contains one or more PDF417 barcodes + const string imagePath = "YOUR_DIRECTORY/ExtPDF417Meta.png"; + + // Step 1: Create a BarCodeReader for a macro PDF417 image + using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.MacroPdf417)) + { + // Step 2: Read all barcodes from the image + foreach (BarCodeResult result in reader.ReadBarCodes()) + { + // Step 3: Output basic barcode information + Console.WriteLine($"CodeType: {result.CodeTypeName}"); + Console.WriteLine($"CodeText: {result.CodeText}"); + + // Step 4: Output macro PDF417 specific fields + Console.WriteLine($"Pdf417MacroFileID: {result.Extended.Pdf417.MacroPdf417FileID}"); + Console.WriteLine($"Pdf417MacroSegmentID: {result.Extended.Pdf417.MacroPdf417SegmentID}"); + Console.WriteLine($"Pdf417MacroSegmentsCount: {result.Extended.Pdf417.MacroPdf417SegmentsCount}"); + Console.WriteLine($"Pdf417MacroFileName: {result.Extended.Pdf417.MacroPdf417FileName}"); + Console.WriteLine($"Pdf417MacroChecksum: {result.Extended.Pdf417.MacroPdf417Checksum}"); + Console.WriteLine($"Pdf417MacroFileSize: {result.Extended.Pdf417.MacroPdf417FileSize}"); + Console.WriteLine($"Pdf417MacroTimeStamp: {result.Extended.Pdf417.MacroPdf417TimeStamp}"); + Console.WriteLine($"Pdf417MacroAddressee: {result.Extended.Pdf417.MacroPdf417Addressee}"); + Console.WriteLine($"Pdf417MacroSender: {result.Extended.Pdf417.MacroPdf417Sender}"); + Console.WriteLine($"MacroPdf417Terminator: {result.Extended.Pdf417.MacroPdf417Terminator}"); + Console.WriteLine(new string('-', 40)); + } + + // Pro tip: If no barcodes are found, ReadBarCodes() returns an empty collection. + // You can check reader.HasBarcodes for a quick boolean test. + if (!reader.HasBarcodes) + { + Console.WriteLine("No barcodes detected in the provided image."); + } + } + } +} +``` + +**Waarom dit werkt**: + +* `DecodeType.MacroPdf417` vertelt de lezer om te zoeken naar de macro‑extensie van PDF417, die extra metadata bevat zoals bestand‑ID, segment‑aantal en tijdstempels. +* De `using`‑statement zorgt ervoor dat onbeheerste resources (bestandshandles, native decode‑buffers) direct worden vrijgegeven. +* De `foreach`‑lus verwerkt automatisch **alle** barcodes die in de afbeelding aanwezig zijn, waardoor wordt voldaan aan de *meerdere barcodes lezen*‑vereiste. + +Wanneer je het programma uitvoert (`dotnet run`), zie je output die lijkt op het volgende: + +``` +CodeType: MacroPdf417 +CodeText: https://example.com/document.pdf +Pdf417MacroFileID: 12345 +Pdf417MacroSegmentID: 1 +Pdf417MacroSegmentsCount: 3 +Pdf417MacroFileName: document.pdf +Pdf417MacroChecksum: 0x1A2B +Pdf417MacroFileSize: 204800 +Pdf417MacroTimeStamp: 2024-07-15T10:25:00Z +Pdf417MacroAddressee: John Doe +Pdf417MacroSender: Acme Corp +MacroPdf417Terminator: True +---------------------------------------- +``` + +Bevat de afbeelding meer dan één PDF417‑barcode, dan print de lus een apart blok voor elke barcode, waarmee wordt aangetoond hoe je **meerdere barcodes** uit één afbeelding kunt **lezen**. + +## Meerdere barcodes uit een afbeelding lezen + +Dezelfde `BarCodeReader`‑instantie kan meerdere barcode‑typen tegelijk decoderen. Om de scope uit te breiden van alleen macro PDF417 naar elke PDF417 (of zelfs QR, Code128, enz.), pas je de `DecodeType`‑vlag aan: + +```csharp +using (BarCodeReader reader = new BarCodeReader(imagePath, + DecodeType.Pdf417 | DecodeType.MacroPdf417 | DecodeType.QR | DecodeType.Code128)) +{ + // The rest of the code stays unchanged. +} +``` + +*`DecodeType`* is een bitmasker, zodat je een willekeurig aantal ondersteunde formaten kunt combineren. Deze flexibiliteit maakt de snippet een **barcode lezer voorbeeld** dat werkt voor een breed scala aan use‑cases, zoals het scannen van productlabels, tickets of ID‑kaarten. + +## Macro PDF417‑velden veilig benaderen + +Macro PDF417 voegt een rijke set uitgebreide eigenschappen toe. Niet elke barcode bevat echter elk veld. Het benaderen van een ontbrekende eigenschap kan een `NullReferenceException` veroorzaken. De veiligste aanpak is om elke eigenschap te verifiëren voordat je deze afdrukt: + +```csharp +var macro = result.Extended?.Pdf417; +if (macro != null) +{ + Console.WriteLine($"Pdf417MacroFileID: {macro.MacroPdf417FileID ?? "N/A"}"); + // Repeat for other fields... +} +``` + +*Waarom dit belangrijk is*: In real‑world implementaties kun je gewone PDF417‑barcodes ontvangen die geen macro‑data bevatten. De defensieve controle zorgt ervoor dat je applicatie blijft draaien zonder te crashen. + +## Veelvoorkomende valkuilen en best practices + +| Probleem | Waarom het gebeurt | Aanbevolen oplossing | +|----------|--------------------|----------------------| +| Pad naar afbeelding is onjuist | `BarCodeReader` gooit een file‑not‑found‑exception voordat er gedecodeerd wordt | Gebruik `Path.Combine` en controleer of het bestand bestaat met `File.Exists` | +| Lage resolutie afbeelding | De decoder kan de barcode‑randen niet vinden, wat leidt tot nul detecties | Zorg voor een minimale resolutie van 300 dpi voor betrouwbare resultaten | +| Barcode gedraaid > 45° | Veel bibliotheken gaan uit van een rechtopstaande oriëntatie | Schakel `reader.RecognitionOptions.RotateImage = true` in als de afbeelding gedraaid kan zijn | + +## 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 complete 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 Read DataMatrix Barcodes with Aspose.BarCode for .NET](/barcode/english/net/datamatrix-barcode-reading/) +- [Read DataMatrix barcode C# – Generate DataMatrix Mode (Auto)](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-auto/) +- [Read Barcode from Image – Mastering Barcode Region Extraction in Java with Aspose.BarCode](/barcode/english/java/advanced-settings-and-optimization/extracting-barcode-region-information/) + +{{< /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/net/compact-pdf417-encoding/_index.md b/barcode/english/net/compact-pdf417-encoding/_index.md index 1762ea2a8..5f2dc3fcc 100644 --- a/barcode/english/net/compact-pdf417-encoding/_index.md +++ b/barcode/english/net/compact-pdf417-encoding/_index.md @@ -83,6 +83,14 @@ Beyond the basics, here are some practical tips to streamline your workflow: ## Compact PDF417 Encoding Tutorials ### [Creating Compact PDF417 Barcodes](./compact-pdf417-basic-configuration/) Learn how to generate Compact PDF417 barcodes using Aspose.BarCode for .NET. Comprehensive guide with step-by-step instructions and code examples. +### [Create PDF417 barcode in C# – step‑by‑step guide](./create-pdf417-barcode-in-c-step-by-step-guide/) +Step‑by‑step guide to creating PDF417 barcodes in C# using Aspose.BarCode for .NET. +### [Generate PDF417 barcode C# – complete guide with Aspose.BarCode](./generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/) +Complete guide to generating PDF417 barcodes in C# using Aspose.BarCode, covering setup, encoding, and customization. +### [How to Save Barcode as an Image – Complete C# Guide](./how-to-save-barcode-as-an-image-complete-c-guide/) +Step-by-step guide to saving barcodes as images in C# using Aspose.BarCode for .NET. +### [Read PDF417 barcode in C# – barcode reader example](./read-pdf417-barcode-in-c-barcode-reader-example/) +Example of reading PDF417 barcodes in C# using Aspose.BarCode for .NET. ## Frequently Asked Questions @@ -112,4 +120,4 @@ A: No external fonts are required; the library handles all rendering internally. {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/english/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md b/barcode/english/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..cbaf2bc74 --- /dev/null +++ b/barcode/english/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md @@ -0,0 +1,227 @@ +--- +category: general +date: 2026-08-03 +description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create pdf417 barcode +- how to generate pdf417 barcode +- how to save barcode image +language: en +lastmod: 2026-08-03 +og_description: Create PDF417 barcode in C# with Aspose.Barcode. Follow this guide + to generate PDF417 barcode and how to save barcode image efficiently. +og_image_alt: Screenshot of a generated compact PDF417 barcode saved as PNG +og_title: Create PDF417 barcode in C# – complete coding tutorial +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + headline: Create PDF417 barcode in C# – step‑by‑step guide + type: TechArticle +- description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + name: Create PDF417 barcode in C# – step‑by‑step guide + steps: + - name: Why this matters + text: '* **EncodeTypes.Pdf417** tells the library to use the PDF417 standard, + which supports large data payloads and error correction. * Providing Unicode + characters proves the generator handles non‑ASCII input without extra configuration.' + - name: Practical tip + text: If you need a taller barcode for limited horizontal space, increase `Columns`. + Setting `Truncate` to `true` reduces the overall height by removing quiet zones, + which is ideal for mobile screens. + - name: Expected result + text: Running the program creates `CompactPdf417.png` in the project folder. Opening + the file shows a compact PDF417 barcode that encodes the string *Åspóse.Barcóde©*. + The image can be embedded in HTML, PDF reports, or printed on labels. + - name: Verifying the output + text: 'After the program finishes, you can verify the file exists with a quick + command:' + type: HowTo +tags: +- barcode +- C# +- PDF417 +- image generation +title: Create PDF417 barcode in C# – step‑by‑step guide +url: /net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Create PDF417 barcode in C# – step‑by‑step guide + +If you need to **create PDF417 barcode** in a .NET application, this guide shows you exactly how to generate PDF417 barcode and how to save barcode image. You’ll end up with a PNG file that can be used in reports, tickets, or mobile scanning apps. + +The tutorial covers everything from project setup to the final PNG file. No external documentation is required; just follow the steps and run the code. + +## What you’ll need + +Before you start, make sure you have: + +* .NET 6.0 SDK or later (the code also works with .NET Framework 4.7+) +* Visual Studio 2022 or any IDE that supports C# +* Internet access to install the **Aspose.Barcode for .NET** NuGet package + +These prerequisites ensure the code compiles without additional configuration. + +## Create PDF417 barcode – project setup + +1. Open a command prompt and create a new console project: + + ```bash + dotnet new console -n Pdf417Demo + cd Pdf417Demo + ``` + +2. Add the Aspose.Barcode library: + + ```bash + dotnet add package Aspose.Barcode + ``` + +3. Open the generated `Program.cs` file. The `using` statements at the top give you access to the barcode classes: + + ```csharp + using System; + using Aspose.Barcode.Generation; + using Aspose.Barcode; + ``` + +The project is now ready to **create PDF417 barcode**. + +## How to generate PDF417 barcode with Aspose.Barcode + +The core of the barcode creation lives in the `BarcodeGenerator` class. You specify the symbology (`EncodeTypes.Pdf417`) and the data you want to encode. + +```csharp +// Step 1: Initialise the generator with PDF417 symbology and sample text. +// The text includes Unicode characters to demonstrate full‑range support. +BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Pdf417, "Åspóse.Barcóde©"); +``` + +### Why this matters + +* **EncodeTypes.Pdf417** tells the library to use the PDF417 standard, which supports large data payloads and error correction. +* Providing Unicode characters proves the generator handles non‑ASCII input without extra configuration. + +## How to configure barcode appearance + +You can control the size of each module, the number of columns, and whether the barcode uses compact (truncated) mode. These settings affect both readability and file size. + +```csharp +// Step 2: Set the module (X) dimension – each barcode element will be 2 pixels wide. +generator.Parameters.Barcode.XDimension.Pixels = 2; + +// Step 3: Configure PDF417‑specific options. +generator.Parameters.Barcode.Pdf417.Columns = 3; // Number of columns (affects height) +generator.Parameters.Barcode.Pdf417.Truncate = true; // Enable compact mode +``` + +### Practical tip + +If you need a taller barcode for limited horizontal space, increase `Columns`. Setting `Truncate` to `true` reduces the overall height by removing quiet zones, which is ideal for mobile screens. + +## How to save barcode image as PNG + +After configuring the generator, call `Save` with a file path and the desired image format. The method writes the image directly to disk. + +```csharp +// Step 4: Save the generated barcode as a PNG image. +string outputPath = @"./CompactPdf417.png"; +generator.Save(outputPath, BarCodeImageFormat.Png); +Console.WriteLine($"Barcode saved to {outputPath}"); +``` + +### Expected result + +Running the program creates `CompactPdf417.png` in the project folder. Opening the file shows a compact PDF417 barcode that encodes the string *Åspóse.Barcóde©*. The image can be embedded in HTML, PDF reports, or printed on labels. + +## Full source code + +Below is the complete, runnable program. Copy it into `Program.cs` and execute `dotnet run`. + +```csharp +using System; +using Aspose.Barcode.Generation; +using Aspose.Barcode; + +namespace Pdf417Demo +{ + class Program + { + static void Main() + { + // Initialise the generator with PDF417 symbology and sample text. + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.Pdf417, + "Åspóse.Barcóde©"); + + // Set the module width to 2 pixels. + generator.Parameters.Barcode.XDimension.Pixels = 2; + + // Configure PDF417‑specific options. + generator.Parameters.Barcode.Pdf417.Columns = 3; + generator.Parameters.Barcode.Pdf417.Truncate = true; + + // Define the output file path. + string outputPath = @"./CompactPdf417.png"; + + // Save the barcode as a PNG image. + generator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"Barcode saved to {outputPath}"); + } + } +} +``` + +### Verifying the output + +After the program finishes, you can verify the file exists with a quick command: + +```bash +dotnet run && ls -l CompactPdf417.png +``` + +If the file appears, the **create PDF417 barcode** process succeeded. + +## Common variations and edge cases + +| Situation | Adjustment | +|-----------|------------| +| **Longer data string** | Increase `Columns` or set `Rows` to accommodate more codewords. | +| **Different image format** | Replace `BarCodeImageFormat.Png` with `Jpeg`, `Bmp`, or `Gif`. | +| **Higher resolution** | Set `generator.Parameters.ImageResolution` before `Save`. | +| **Background color** | Use `generator.Parameters.Barcode.ImageBackgroundColor = Color.White;` | +| **Exception handling** | Wrap `generator.Save` in a `try/catch` block to capture I/O errors. | + +These variations let you tailor the barcode for specific devices or branding requirements. + +## Conclusion + +You now know how to **create PDF417 barcode** in C# using Aspose.Barcode, configure its appearance, and **save barcode image** as a PNG file. The complete example demonstrates every required step, from project setup to verification, so you can integrate barcode generation into any .NET solution. + +Next, consider exploring related topics such as **how to generate QR codes**, **embedding barcodes in PDF documents**, or **customizing barcode colors**. Each of these builds on the same generator API, allowing you to extend your application’s scanning capabilities with minimal effort. 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 – Compact PDF417 with Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [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/) + +{{< /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/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/og-image.png b/barcode/english/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/og-image.png new file mode 100644 index 0000000000000000000000000000000000000000..7652a4bf3fc5c1e18a3a8490d84b4d83bbcb0e2d GIT binary patch literal 48794 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 O%1XVI%oBh8@jn3jtS%S; literal 0 HcmV?d00001 diff --git a/barcode/english/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md b/barcode/english/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md new file mode 100644 index 000000000..16b089a69 --- /dev/null +++ b/barcode/english/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md @@ -0,0 +1,242 @@ +--- +category: general +date: 2026-08-03 +description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step how + to add Macro PDF417 metadata and save as PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- generate PDF417 barcode C# +- Macro PDF417 barcode +- Aspose.BarCode +- C# barcode generation +- PDF417 metadata +- barcode image PNG +language: en +lastmod: 2026-08-03 +og_description: Generate PDF417 barcode C# with Aspose.BarCode. This tutorial shows + how to embed Macro PDF417 metadata and export the result as a PNG image. +og_image_alt: Screenshot of a generated PDF417 barcode created with C# +og_title: Generate PDF417 barcode C# – step‑by‑step Aspose.BarCode tutorial +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + headline: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + type: TechArticle +- description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + name: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + steps: + - name: Create a Macro PDF417 barcode generator + text: First, instantiate `BarcodeGenerator` with the `EncodeTypes.MacroPdf417` + enum. The constructor also accepts the text you want to encode – in this example + we use a string that contains Unicode characters to demonstrate full‑width support. + - name: Adjust basic barcode appearance + text: Next, define the visual size of the barcode. `XDimension.Pixels` controls + the width of a single module (the smallest black/white square), while `Pdf417.Columns` + influences the overall shape by setting the number of columns. + - name: Populate Macro PDF417 metadata + text: Macro PDF417 allows you to embed file‑level information that many back‑office + systems rely on (e.g., file ID, segment ID, timestamp). The following properties + illustrate the most common fields. + - name: Save the barcode image as PNG + text: Finally, call `Save` to write the barcode to disk. PNG is lossless, making + it ideal for high‑quality scanning. + - name: How to verify the result + text: 1. Open `ExtPDF417Meta.png` in any image viewer. 2. Use a PDF417 scanner + app (e.g., *Zebra Scanner* or *BarCode Reader* on Android/iOS). 3. Confirm that + the decoded payload includes the original text and a JSON‑like block with the + macro fields you set. + - name: Next steps + text: '- Experiment with other barcode formats (e.g., QR, Code128) by changing + `EncodeTypes`. - Explore `Pdf417.ErrorCorrectionLevel` to improve scan reliability + under poor lighting. - Integrate the generated image into a PDF report using + Aspose.PDF for end‑to‑end document automation.' + type: HowTo +tags: +- PDF417 +- C# +- Barcode +title: Generate PDF417 barcode C# – complete guide with Aspose.BarCode +url: /net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Generate PDF417 barcode C# – complete guide + +If you need to **generate PDF417 barcode C#** for a logistics or document‑management system, this tutorial shows you exactly how to do it with Aspose.BarCode. You’ll see how to configure the barcode, embed Macro PDF417 metadata, and save the result as a PNG image in just a few lines of code. + +Generating a PDF417 barcode in C# often means handling extra information such as file identifiers, segment numbers, or timestamps. This guide covers those details, so you don’t have to search through scattered documentation. By the end of the article you’ll have a ready‑to‑run program that produces a compliant Macro PDF417 barcode image. + +## What you’ll need + +- .NET 6.0 or later (the code also works with .NET Framework 4.7+) +- Aspose.BarCode for .NET (v23.9 or newer) – install via NuGet `Install-Package Aspose.BarCode` +- A development environment such as Visual Studio 2022 or Visual Studio Code +- Basic familiarity with C# syntax + +> **Pro tip:** Use the latest Aspose.BarCode version to benefit from bug fixes and support for the newest PDF417 specifications. + +## How to generate PDF417 barcode C# with Aspose.BarCode + +The process consists of four logical steps. Each step is wrapped in a clear code block so you can copy, paste, and run it immediately. + +### Step 1: Create a Macro PDF417 barcode generator + +First, instantiate `BarcodeGenerator` with the `EncodeTypes.MacroPdf417` enum. The constructor also accepts the text you want to encode – in this example we use a string that contains Unicode characters to demonstrate full‑width support. + +```csharp +using System; +using Aspose.BarCode.Generation; + +// Create a Macro PDF417 barcode generator with the desired text +using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) +{ + // Subsequent steps go inside this using block +``` + +*Why this matters*: The `MacroPdf417` type tells Aspose.BarCode to treat the symbol as a macro barcode, which can carry additional file‑level metadata. Without this flag the extra fields you set later would be ignored. + +### Step 2: Adjust basic barcode appearance + +Next, define the visual size of the barcode. `XDimension.Pixels` controls the width of a single module (the smallest black/white square), while `Pdf417.Columns` influences the overall shape by setting the number of columns. + +```csharp + // Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol +``` + +*Why this matters*: A smaller `XDimension` yields a higher‑resolution image, which is useful when the barcode must be scanned from a screen. Changing the column count can help fit the barcode into limited space without sacrificing data capacity. + +### Step 3: Populate Macro PDF417 metadata + +Macro PDF417 allows you to embed file‑level information that many back‑office systems rely on (e.g., file ID, segment ID, timestamp). The following properties illustrate the most common fields. + +```csharp + // Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; +``` + +*Why this matters*: Each field maps directly to a segment of the macro barcode specification. For example, `MacroPdf417FileID` uniquely identifies the logical file, while `MacroPdf417SegmentsCount` tells the scanner how many parts to expect. Supplying accurate metadata ensures downstream systems can reconstruct the original document without error. + +### Step 4: Save the barcode image as PNG + +Finally, call `Save` to write the barcode to disk. PNG is lossless, making it ideal for high‑quality scanning. + +```csharp + // Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); +} +``` + +*Why this matters*: The `BarCodeImageFormat.Png` enum guarantees that the output file contains the exact pixel data you configured. If you need a vector format for scaling, replace `Png` with `Svg` – Aspose.BarCode supports that out of the box. + +#### Expected output + +Running the complete program creates a file named **ExtPDF417Meta.png**. The image shows a dense, multi‑row PDF417 symbol that includes the text “Åspóse.Barcóde©” and the macro metadata you supplied. Scanning the barcode with a PDF417‑compatible reader returns the original text plus a structured data block containing the file ID, segment ID, timestamp, and other fields. + +![Screenshot of generated PDF417 barcode](/images/pdf417-example.png){: .center-image alt="generate PDF417 barcode C# example output"} + +## Full source code (copy‑paste ready) + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace Pdf417MacroDemo +{ + class Program + { + static void Main() + { + // Step 1: Create a Macro PDF417 barcode generator with the desired text + using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) + { + // Step 2: Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol + + // Step 3: Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; + + // Step 4: Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); + } + + Console.WriteLine("Macro PDF417 barcode generated successfully."); + } + } +} +``` + +### How to verify the result + +1. Open `ExtPDF417Meta.png` in any image viewer. +2. Use a PDF417 scanner app (e.g., *Zebra Scanner* or *BarCode Reader* on Android/iOS). +3. Confirm that the decoded payload includes the original text and a JSON‑like block with the macro fields you set. + +## Common questions and edge‑case handling + +| Question | Answer | +|----------|--------| +| **Can I generate a vector image instead of PNG?** | Yes. Replace `BarCodeImageFormat.Png` with `BarCodeImageFormat.Svg`. The rest of the code stays unchanged. | +| **What if my data exceeds the default capacity?** | Increase `Pdf417.Columns` or set `Pdf417.Rows` manually. Larger values allow more codewords per segment. | +| **Is Unicode supported in the encoded text?** | Absolutely. The example uses “Åspóse.Barcóde©”. Aspose.BarCode automatically switches to UTF‑8 encoding when needed. | +| **Do I need to sign a license for Aspose.BarCode?** | For production you should apply a license to avoid the evaluation watermark. Call `License license = new License(); license.SetLicense("Aspose.BarCode.lic");` before creating the generator. | +| **How do I handle errors when saving the file?** | Wrap the `Save` call in a try/catch block and log `IOException` or `BarCodeException` for troubleshooting. | + +## Conclusion + +You now know how to **generate PDF417 barcode C#** using Aspose.BarCode, embed full Macro PDF417 metadata, and export the result as a high‑quality PNG image. The steps—creating the generator, adjusting appearance, populating metadata, and saving the image—form a reusable pattern you can adapt for invoices, shipping labels, or any scenario that requires rich barcode data. + +### Next steps + +- Experiment with other barcode formats (e.g., QR, Code128) by changing `EncodeTypes`. +- Explore `Pdf417.ErrorCorrectionLevel` to improve scan reliability under poor lighting. +- Integrate the generated image into a PDF report using Aspose.PDF for end‑to‑end document automation. + +Feel free to modify the metadata fields to match your business rules, and let the barcode generation become a seamless part of your C# applications. 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 – Compact PDF417 with Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [So erstellen Sie einen Barcode – Kompaktes PDF417 mit Aspose.BarCode](/barcode/german/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [java barcode library – Add barcode to PDF using Aspose](/barcode/english/java/barcode-basics/adding-barcode-to-pdf-document/) + +{{< /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/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/og-image.png b/barcode/english/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/og-image.png new file mode 100644 index 0000000000000000000000000000000000000000..aa68a87f44b2e3ea0f0cfc98e0552947311ed791 GIT binary patch literal 50725 zcmbrl1z1(x*Ds1Fk|Ib70wMy^f;18mA}!r)rMtVfO1DV2v~+h#OLxZ>q`Q0XeJ8%} z|2xmQ-#zC(=ibG7*lWjHbIvj5m}89J_|2gA@{$j*$gogQP##FV6IVh(xmSvUg6fQc z3O@PyYzG?!rE^D0{Edq1?9PIdE1@J6`a#{w-tyia>vNIUzQ6Zy{fOD#+dyVVQM2Eh zzfTtlk+E~B!H~kZ_Ygmj-nX`4{<^#Mw05p(UUx48Hq<^wzp#+BkOB@^FHWXq{oQnZ z@3Lgj7C1zvvOh8ZdntnP&jkj?oqsOwQ2+D#^y$5SF7EmM^ZMx%-ai+3c(;892dd~l zuN%|xzy5yo+kVm&Uiq{v<1qt`QPzBnQjQP(-@6agWK@3JWQ9gY+M6gm{-=q+xkoWp z9)y2?*~~!mzi7_Y*Q4~SY8vr7@W|COxqt6{H%S>|CG($qLw>$U+7sbxztQK*m-ySI zPpmi!{|@NC^;YD6Ib=s?*(*()72Lm%5FzpZr|&2z|9@ojU#(F*iE_rhn{fBn-YAV&_RJ!yuqR)W7Oa4n!^Jm67!+xxDr zB9|HUR^6*OAu>cih;Q$!|H%1^Cd!2HUlD3@zNY?1wHrDA5zar#{yo{{U0P>!-coAm)wVoYfs1<5f&+ z?snz{b87)8j~EJm2s!Pt?nBY{XoXpo#_tKk_&_K63!~y`ts?S&AMWUCM2KRjp8nz`26gtTs@crtuLt0ZPvIrkLez#2 z<8xk{5S`l$EGW2+F~#1qlg1{*=^sbd&Lk(PU3Px0@$OO@orn7>t1GkTN`?eAT0bL? zuaIOjbic>6L2AEck;w6g%=(F0Ab($4{u;t?bY4ZMFNT6YXaXAiC67f+Gwd2S-xl@~ z%bl+OQ)FQ(oG6s}F&Tey@V6Y2h%MG#Yw19%^fGJ1JWk`tjDnUg;nca+^>r_E5ADR; zt9%9|*d*Z6jT2Sz7tm{7TmAy1ii81^yqB)>^1`eEl+%P3yI3VumcYb?wAXxx`c*=+ z7-4A9W31qT%Y+9b>)Wh5&rYkB2_N~FlX(o|RjGzW&{#Z#_cHX*TN-7v?^oOeFl{8*Gs=)>3{6p97DY9CTiTcGUM`fs=}=uO`sgR`-bAXMFyryP-o$o-?f9Zy#*RZSnTwG$ zKF_;Krgi$NMfRnOO5)0|9j?-=fCLuj=KK$ac~`5rXfy@LvxWIctGyo|R+XC0bj`x| zllN!fxd&${M6chDv=*3mKA&K7VVrFq{OBJ}?Qvo0-z+tdMkS@WHhbDXF`-t&IWgp^ zsiCNP{Or|GYj165+Vk91y4=+x1-nuX+?~zm=T;I#x0X1Zl7=@45!QghKQLYU;HO}S zNlBb$3O{Dtl4FRlK*G}*1XI&I(Qc;K!GIrG+L)pmsnCw8S)UlS6&Rk((cSq`s5B&!NJV_-)zz z;mv$9JQ*+JgK6sye#Qr5Hg~E{&6L_8rWfU+^b?S2O{kfIgJyb0cGQso>;?a+l5TnP za>bkZTxWe_tv(CG7e749rCO)!8EDe?HmE>vr3{)fbRVv|G%Hn}zE8YrnO!Il_dg2G zPlFeIFr3i&s_f#b`)BNhyl&W+blS038YA<1y?^FhL>CSpJiyQ8CF%@jZDz!Vs=X{% zx?XxNrrBh?UEU@6F)KZFRao}2DTW!Aei}O{mk^Y4*ni|)HrUIuV*Be)2aW(XjY|2g zC1YSTFsS{0;a`0xx4iNymoItCUKAs@^84Njoqsu_$BO4!V4V#bj_)``@O{I6H*pk^ ztMfRpVwaPLXcRPRFihE+PyW*~(JlI>n*^d;;fRrwWoj2`W#bH9>HyvX0^vjdITQ19 zO3KHKzDAc8qIz53vtW`cyzG(-aw zkIfUs-yF6W7=L(sp1F47y8J4B0&1`9%#oWR{%yh3&1sol4{FAPMB1AdY}rsMk{t_; zO+=961t*xX6i04O#NmzN*?l8<(5z=5rKha)WK2M%wM(}{Jx+E=sD#I7AEoN(!rtYe zhz2O6F%bMN0TFufKzW$`YxR5;GGTjFKP6T9=aMZYz0uaTspB{Sq3RP96f~2tDM4I1 zHBJx!g+@0h^(x)-9o{<2DaNPH;-i=Nz@MAptE|^QJgz#-WxkAt^F-dkTdgmM@kKuC zLaXD$EIk^TAnr#ErAeDJ0YtpPtHO;8uksjn&A{T=byapF zeb*x+tq==CQVl%OXgbdyoQS)k7$0Bip`+N;^C=FG+B~w`Igx{O8*>OW4-81u*`T*i z_Xgr|^9Kl0`E@ye!L|K&75~O;*Eyk| z-uu5vy{AA#T0-^4wnHm%OqOg*TPGNFag*{_Uh$8Ga|7kJl(kXR(f5+PPqG=(n8Ng4 zFkW6I=I`ge(uF51rUyFI%Bn_+8vjB-#dPt$E+AbHIgH~#_3CwYEAh__e29neIw#iy-0iW zaVW&p4m7GtT<|-IDbMn~5fMj~*};QCSoK}vkv+qsCg(~0j;A!foN>gqaf+Ia@($4Q z-fLl*dVae{>-uP6YN?3qFU9O1%L%O(RO75oOtB*IE7w8nfgCw(Zcl8JVW+@?)3y{ZFp-ow)yZM}}4q%!)DJ4Ql;zImXWDcIN9JzX zJc-r!A-AS5c$kp)-6a2N6?%9dxB%)cW+vO{Kq`(Cxf#Lh3duo&`HNZ$IjM84I(|C> z8*B4G-X2Q!xNDqUxztHDo2z7H;rdD3Rswhi}W&HAV!afKyyJz1^6d z79O;*Aldg2v3ZS+eHeWVjTH*n~|h>rs$*zt(=c)@EXGVNF6PKkXXiI8lbdHz{E z2gQ!qz&idzf|8jtD`n$H4Y23HRmh9!DvMe!lnEzsL_Htiw40pPIVrclyyx5^HU9?f zaj*G+kzaCK9B@t``m2eb7;t;6+SgSY(64`mqxQ0l`U!3>2uKuN;W1uE0?ib{bUUbc z4^UA8ts|cOUCs@A9Z8MGC|;Oo=oD}1oT^Xaaj7g*B>WpAkD+N&tA9(aTVSCR=e*62 zek$D21mTiX0Se~GQ}F&1N~jpdr+B=NkH8xd9>4#4g85xwlRu>w?}X{@f}Y81tJ}2b zJH?2%*sl#=0Ry)>Mgn$fNA=ja0@7b-;474`;_4noEBdcL{`^f8nZIu_BkjhTE2R3|GD~4*7sit{QoBRbbjWa^5Ln=-zT8dzx+??_`km6 zKe)jsR^R40MMsWX#AA4Xx1i-VbDjC$X0DhF-BTSW9$)BeXBNPLKvbNQb9(Jh;7;@RIJ{6A#%-vvH8*H9S0Bwf@?y@T*h zrQECLo;1#(OH3r|?d=7QCjak|vAi5TUJ1^Qj+MC)_7c6-^k@{6z@f>mD{srJgOi&t zsFLb7D+*I)A}NcY*3U_q-dV2--iy6vhTHo9e5^8dHt<~1jA|)r!%gZmEd4~8{bUOqZnuI}b$w)r?OZ`1A}<#SrWxC~5Mgm=)v z&?E)Kt3oN*e}AB0U2uM3gV=U=>G;T~_yRLAo;2Vdy8j6#7A9_a>C0T59N71zhm=CZ z^i|_o^!4@p91O1=NSOJ&k2vL@ZB)CvpKH8yIonWdS5;N@TQ@hoJ>nA*+&$dva~pg6 zgrQ5LXSyDb9)0`jf%557=^qXbPK~;oZH6ei7mSS3_-|)tW|`x81Q;$a4-^T4gF_Te zzxRQ3yzwloA!&QOhX8}x?wrbcq51e=grG<&cEGr7hFLT)HZ~_OFX$&KEp7HXtIj<1 zz_dSQT0T-S&FkiKpy_+rD|dIVFL$s14y3%MLgMi5#(PVvLgnlZBkh2}hm^(@UaradAb*vzko`j7ejc`ys91*Cp2R*I$$4b@1&^`?Zt`*-+%t3ExNB$CQ} z56(}Q;5J@f?M=1lyn3Hvoj}8gXR5*l$ zhjWK>ei9eGKC81wL}&Z?=}bK$+<=}gC#=Fe^S%$i*?uM=(J2Q-ba~BUqUeq$s`l~R zAedGKGLDRGOe_p9U?$9u6B6p`N-juj9h^o+M_1tcK9UjU78Z8DP*Coq*EV0lO!}Iy zP`gP*_;YgTauuF@bD@z^R6IOZ5Sp*?NGdP4NALH2NX)h~F;;N>#L+S0&ceVsQ_JOt z!?rUmk54UBNaS0I1$>RCFTVSMrB17)&s&Vwy8lN>tT&x|0uZ%&2`n@?yvHj>T|+}0 zV`Or2bY#TY&i?4^XlJ2sZYtM>3BrlCF>YB{By?$dIGZ-v;~~)=@L;CFV*4b)fsCA7 zU~q44ZpItFy1uY(%frdp)v+j17O-cq6&*z7Rr;<2bz)*7cPP2Vadmd=!UWCF&#B4@ z7@xblJ21W*xaa)`8z%bt^N9~IPDorKDhCx?KShu=#DU?hig!O%<6t~aaVZH63qxG} zQOCy?mw;&^77}Z(AEM>7xW^#3RJ}z-kAjpWv^@L`Ij@H*17GSJz}{kTv9w|eOSrOTV350>%DMYq<5XAAMe9wSXkIDdkB~H zJt!RRDRjMZw^15R7c-!pfvqI4&VgrbaKU2AW_PwZ;Ydu#$Y^!AxpjRI@=c!zSQ$9j zAZtRNCx(4zx}dueQE4rvCGbQ(FDxU@cNjA#=iJF8!(N^(N96b=9ms<}B`t{RH;!0xa&mF3 zkS51Vb5od*GF^C-<6T+V&?08!wY)&f_X7!OMkK0y_!&@eBhrfuS=iW!ijIqdhgaR- zHEX_n!S3h~K`DHCIcoGR=dr{3-iq12v@L;8>&8N#z)u*@Fl?%KR7p}@Qc|)ZudM9H zkJ|608wejs{7A)`HX1`N>ynHN{j}dd4-F(wPxd}qT4v>?YwGAEN5(iEt92~VbdQa` zdM;NQR+HBH0f%xLIzO!lmYalx#8Qo&o0}U5bgtB6-+Pe*C>yxD+q3%izgjHu)s=fa zKmXR2IWu=sr{U!IxQdFJs)|ZhPIh-U{XFzyW40=(%E@V031g1;uJ-=P%yB@(lQeFp zN2~MRUSe6;7-)tj>z*f@qrgm|@VfA|1k%gRfc?8-_qn;as%-o!q=`JkYxsM>v{Qr(dPZgUs+wv z&B;k?aorr>Job~2V96P7cKX6w75h>^JLxBiurO@Vx|kK%#H^MU7(+~qs?q9dc6Rn9 znx8^yhp_w2$;co2&BqDL<2T;TO?Tm5@EcF&{sAY)N~g*yauPVxc#DkDWNrchUI}B0up0$SQK20eb zv`kD)HM`RloBLK7LsHu0+t+1;aS1nHL_zc-`s*hmUARbBVk**0Oze-awu@)Yl_b0N zv{ef{9QRC{8`(p?61N`lAgM(g{s+qL*5PDgA{i7eAtAAP7?lgXu+x3>G5ug(b6ry(MD1*!#C{pWN&9Rx#zNVoKek7!)_5?UaXEYM ze2tagX)U?%Or}1hWAhI>82_Qde7)ECLt%L0;j`2u`eH#(TC(_5h@L!_k?Xw8Fa|q% z4hifRzS#M0jyDdk+iZh+@xs?0Ev?tvCbCJ5=BpfDf`Ywi>Z+FS9l_Ec9N!b&vCO@&qq$16{M zetly#oUmS>294)2A>N0!XjLDjSqWT{OrH%wqUb{5C2Pq|zjx|FbW3Pw8RYREy3_C1wy@})R>w0xSbYzbMd|Yq_lN1zFwF>d}&;Z0ckdh=19*HtD_di55IIPw{oVN1qPkw!Ltl+l1k*ps1J=}U%2D{uBc_``Q z`!#K{_>smZVY27GHw_jAKT)yQnxY@*p0pPDO^;+qXT#A02rpDVVAfkSFebY*-K$|k z$mAOl(6#Oy0(W;#a?z+{_tpDqaq-_rq`@B+Y$|Db?xS7R{FzQSHqL>S5PBBeL=Clo z_O^B=GSweOe5!#c{sGQwlAF}_OY74lyyUmnLIWAjwebp#P>{7C(oWc{+7?aytCsa-B-G@w8|?3|bs_72e#GvbzLt5Z^hSf_SqIM=HtC zntRh1F-mX}?ahZ3KLLnc@2EiNnE&9SkuYoDPmO1K3nkoOn6y%SCFYqErygt^*K5Gu@uX-BVG zu2&C$aPO$^v8w8X6hW6$@-ENtRIY~xwWybun1<`hx$w|RtmH8qm zrW?c@m0sn@QBDi1{KjC_KJ+5_K`tj7+8s_Q#b%+^%6o&J~Us{F64R5u7Sa43@;RW}FBAP>Zy_BTZGaoMIGE)sbdgLQ| z-)g?`R6^QZ*UJkex~?6&LCVHho?L_3>FJ1>Tq^0Zv#b@8iglJXZlC+O6kdOfc^AHc zka+vk9Bh2N(qkWiZ$LN0??#q1cYd<_%C5J+XwD@ru4RI{^_YYK;&~ZX6ty0YIp%$B z@TXHoJ+0*(12bcOQGtb}B{N&eJ6U({i;bY3u|@cDpUv|JuKZ4Sz6ODmPd1e^)q1bU zwl4JUn{(f+M?S&tD`-S5;Nbx$If}3B!!2 z6*Svowm^5GdDXCp@KQ$}U@uH90L$7Ra}1dczYT9D142jwUEw>bdWgiT793KJ-mVcb zSVz}n&#NqC=};VN0}=7a{JiXC)R2&7Mp2OjUqN~KQ2-V6^udmarL~RGKDU1V^Iq$O zS~>-?{pIE7ui;>cucP9{1mOS#u|Q^%_JQV=fIu$gnDJmFtN9kMYBnGIg5At)GjMWN zBv;^#mLnMSS44a0z%GSule%|HthIofwPa`L6M>oj*_qzOU7v`S?;fmzuEU?4fd-Yd ze_(S?tOQrbDHaUQ^lj{=AVVKZEadf%KdxYd)V<~F8y|m;P%Px#WYf7R``MrhBDTW_ zeLoocj}jXUtjF(WQpz$imQ#Ktwb^V;OiVSnT@VtH94k~-m4%0d;VGue#^1t z%7O-kptF5zMud2Y%;Mu0eg!8@cJ9p!@(HOq@DsnO z8pgyr5q3$us#x6SX{VF-mh9&W-f!zA1Q1Rd|%BHFwf0rVL+c$tWw+AQYJwY-=SWQf@ZJvK<#L+=lzY}oJZ1q9E#x)CVzPN6_~K7Zn#Ak*250yh(D$Xs zMY4d&WPKU~r93wekM?Xm7PMpW{si*^;}JGiim&@)D<6W!5UvUS#NspG_u}2A_FDuQ zP*aRm@^z5fWs%R{0y#$^6tvt8kQTf{bzMzOJ`==peGTjstT`Fvy0gE2y}!_O6R;Mh zHUvsFqy!Ow(vRxo)(^FH^^V!7PZ_YWkH39kMnDttFyjW(;!g)T@gbIoDzlK}t2Gu@ zhV-Otx}k?c406dY)t-_uv#?}(l#g%9rf~;xkgeGALXj0sEHx_<(pyuoV!~7eGqoMj z#HR=I)tN1j{cvUaKxK>5ZF146=_b$B*|tuqkc|$GS4`J%+Oz{6XH07NmEU`A@Cxy6 z60I$h!I-IaW71W)^0|Lz!U1#FnXj>Vxe%ugfgY!baQ?E&@;;gwy+OrnX5D+QYBa|~ zbkFx5`r%YP$o)_sM&IKX1gXVBOrkk(GG^)SQgYXa>!+v$pg1aBL3QIfHszK3;2~143X}Rj9TUEY#%k5^ zEH%|7#sVI|1My54ewpb!%PlXLzR`F`x8dG0eKTbPLMge?@#K`}8<^+wmokoVw)JVI zKMK}YS6#mD3cFs!8wLpouwEa9d=x{Ma@-D2dwu_vX*W)Eje5yZS9ls@OS7BA6Wq(9 z=+Tmv!jZ9w)inD*#uuN(B&FhBx(=h%dv76TE3?CR*1C#p@vTnc1DLM=*22J!_?2OH9JIE%DIb^iOh^?gBG3{b0R737g7XIZi`Q%c3waK_&p4zzY9~J8 z*9c#_N|_Wg&Nb&fCEafl%+b`)$oeUlEY$khhDzE^kXoni#)7@OWceH@%yB5Oeg*Rx z*=kf5>eXVM&B*HnW>&`PsxsnK`E$-HtNfYb5#p`3+YomgpeLgP<=+%|h@N%9qrar4 z7GGcsdyB&Plno3Fyu9wNUJK)-j~LI|T^kte2elkz_#IDrwlv0Mu9n73>*k^SQeD~I zcqnxBn&y>^cL5&zVv~5pS_jfRa`Z=J`@MQtVSfJA$}wAmY|%R&?w=sc%*fcUT#e=A z;>yNq^8CfdaEWFl<7b~0;G9R$QCPK+@26n~` zUNIhd*N3-&2_tJha!zz`3(HZWI3|hyS(=f3&Mz7xe%;*|#d`J6nAAc|9w79puPo6cKjFLy9c;qQ{ zmW$0SrT)qkeQ7CGGlcr(>NS_Jj7wboU3(V?BG>Vs$5T1bSyux95lXzae&!n;6Qd|U zH8Qz};q>LADwa}i?%h`0S0_`{>d{e-5n<*`O_AS`yt?P1s1)t*IBRIsW2|5*zo%*x z@Q_HX7Tj5$l_Fq18TCp46dQ>>#S|s!uSDEivU-&Q>KOd_A3Xp-vq>pWOh|~8)elb^ zh;0?z4i1(^CknSsl~EiBcHTfPtJL{V z{faqzCs4TqxldzbMpos?OhrdPM5?c!WS6jvX;KwB+EoaK^c*umW#ytdR`+64jn{fA zt8xZ$i*SU!yR-9PLInwbpPns7F3mXR@{|?@h8I+ElzCD$UwT9ijfjXyGfWP7;a%zH zSGQqw8`8TQ9@jY-52U;bf%bxcvH4DV3Mbi)215w*<#Lve97JU!KcqLGaVa`wf+)-T zG$rksk3L(6TkrGt1HlQ$_U_)<&oisPCQDO<4CK82!qM~KGMm{-WV)vqx1{Nv+`!-< zI}cB$`I(tKsj$}k{uk2aK}J?qZf@>xo2S}^EK9cHR)!9*0=N&u%iyOE9_YuGnJLrf zkDl;daw2AOT53Ayg9f}}x~aDIVGRZs!>x~=Xx@*!694LPzn9go(DG2P$gt8{;IV%8 z@7+}?9w8fGtUFB}gh7?oVfsg>o4V0))SD$2-9MA<@$oA21O1=2?m6co)StZ#;4Bnf&?^Uw{bH4cdU#&>}IlJ-r zo;kjLB%d&%Rz(1HV`AiZ8M}bl_SA@$_R8O$_YG;0Rp^MnUZ~nSw;Y!FmdXUP*s{6W zd=7r*0|i@#M01;*I3kj5@}3sNN5`G$Y#a=MqF3vz%-(5NNeL0L%>3TVm4SPmS?@Je z#NBW~Zbkd7oS<=SG&Bl|N}-n!)J~upiEPkY33~&OGWt$> zROSyJ&1uWnsu&{OFVF1byGIuF#INLWaZ_sY2}e{eYKoSX2)(M^5PUz zNlQokF<$T1y-jgKLLwGROAaL^EzN;yBkdm#7K547F)^}>p|d-3gVjuYx+NJiRVGvm z2JZCq0Yorw+PR65)176BLv}`&wcz|f+rpN?45bF_w3`@{6z4n%&|PTChPL0@#W9}DyzyA>l78NKe0vS zgu`-yM4Q$+L=wdJ!RaMPGH>=9X@z1|F~4cdBtM~Iiy#p9-rvN`Wo~!6ynmi9qj_Vl zHrix5fXUi2|2sSC2~wpR1QV7OuY2E~V_`tDvQmXSK+XjmixB+c?&IRUs{!rkG5S!d zF^2MjKQ=9t1Gzu*%r>LP0FF{r#7wItAtpw%>PQzdvx+S;m&9&$G&=zs8IY6rwnHo% zttf5FrM&)pG;d~UIbZH&;$bz>I8(8q^+B0V;k$>I%y*k1?jHnN+9ji*R-O9nP`DkJ z*wMo?Yk$RaWgBB-#$n0gpQqvW?jR?fhoj#p?+u@nf~e)C^9e?;CWuqVa^?3Lr^rU+ z{Lqe#p@_|Z<=n{{g;K(lDHmBA32P3kpd+Oa%&0?5`z`m{WcjbvL6}Ajv5I3RM?#W> z@BYf7HamvCmbZ>tS2-+cHYLzDVM^G_HU|%+7t&14*Pr)7Z14M&Ehn+LSS~OZD88^> z#LD$7%L>TtUJ3fsDeF66Jdn(OnkEOW^wM*>+07;YHt4%%b!yXmm6lcTeY<3$XC%Fk zQuByRp*bg{ct<}vAF_u&D}vW$<$P6oBPRWZ^#nRwIa>Ng$IUV|D~iZp*Rp06rlo!NeKluhWLorC^*@7J z%t9D0tO~xL@G6I2fNyJilRZHetdb566(HDxu)*iYJH-2)fSa?PX%4ZU^oKzo^LhT* zNV_dXUbZMubu2C(T$ea=`bhSvcEb>siFY!I`;%B+ABGGGkqO$@0ws})OipyVU6yBq zV$Czu_(46C6={G*cXUh_1ayCKt2p1C@n)m*yc(B!7K=35#;vEPej15@U-9!PLTGpp zP1#;GR*3m?c}jto-yskd7CBn(xxvY`sEAmdCR=~&(2KhP;TV;(bKm7nvjICH3~G~| zB;dAufnFAw=5>@_6PH_EO&rxTJ~?S`=bQ*EC^bbpRjBcLuYWT*IQT}Gfsu8w?i$iN zj&pKa0uef&p{L@Xo&yvJ033h5<1J8at=HgAyL$8l*95*#?z{c-6=y^rP;4XNXCJLh{S%3W$Z4C8KO2FDomZ=a@gNE0pY`g+Wnz`k-+IxKSrL zB}X>#V6Mc1Y9WN*{=?AEJMa#jOwbuNn29}zs!%i2wzoGABOW4-jP@KN#ojn8fy`;s zQ42EQ{IlzMqPczNbKUXgy8*h%DH}qM>3vHz`pYsUgI(i9JfW7;Cxa&pZ8q!-3=HrF zkGWIw8r&yBWF+TL*;+o0%@-DB7UdRfZ*9%@%`v_FIW*SZv~Zm7V}mRz#W0}<=s>Pq zLRNbE;W`9LFAQCr?>{^{y7@4I+PkEtO^9Uv+`ja_Ip+w-$onklcZgW~+pvf_hnhY@ zl$r9EJZwF2#whItQ`XE#Yq>d_(wL@#co}muvmD`EglyYD-}!2v&WJD!%otEgB7(MC z>!brW4UK#@*nX!zf8SX}RvUNo4LxU;g6TUdyV$~lg1K@llesC(q8hv7Nf%gx{7e-N zb;tCyDVR=uaV$i_tuW*~r`MKY?^F{f=Xj^W?yoWefVlbPBCFi`YRfY3&Cck6+M0!0 zkw%5N#8ks%<+RFsRn-(Br*9hqn#K_d-tIq)`1DQ>M-n z-1Tjnmg^m8pW(C{=fckv7ybPK-GevlyV>Ln z1F%iG^nse|3cv)iw>8rxfHPD!?k~>I&(Qvzn>KX}dvAlkI%~W&D5PYM`ddCOEk)|q=4{<6@M(d0wL!Jtu!@+-izZ!oPZ|j}f6XBQhON(Sm`3|NJmFBB!y^{nH>w>UR-fW~2{!c*bSnQ|zo0*)A{R0jja^wlP2qPCa{PVpByotXZfk3sUOt6(ZPFTH za^1TR-QZ9)+D^h^X*T%_FjxN> z>NF#pl2UHJtIcp}86Z7;-%btR+ajgJuQET4Xu1*Yl1ui!+Cdv}N&OZD!Fj^(4$?D0 z_ZyX)Diu{#-Fna6KSRyQ><-q~#wq~|2*A5~ygzvD1W$81J$)8C)9f(xGu`0m7&}Wt zLRopNGQmMURcMO#RcR(zY!({!e}BdQ^ENzX9$(08TY9ZORq9emR?+Sd)cfYVjzP9X z;&rguo#w@$kGBF+FdH>bVXsM@dT+M59Qm&?J3Gmd2J}OTO{Forq^Ta~RQFCE-@wx1_3TKXqgI--2f;z%<(AXrRQBS;UZFO}>w{#_m2qxp@k#3+CGs;B-5IUFL z8LDxYgSO7JKs}`oc=Aj8ck>oWcCYxSFh?1FR^k`fj! z*1_@S>e8OEk!>s(AUVRP=b90c6GBGk8A7g(5xVksu89V#s-~z8ygKmC_4X^9P zG#K5yjxOqr7u?gGkB@J|)WX8dEH6JFI2<+Asp!~fV`HOi6GI`HclCh4AgZs_y=l_Y zZVd$joK2hBpN8-EKUNkK`$Dm^TUk{F8U+34s3-@Jv-e(GHb8lbG;hn*$(JEh@am6% zTG!;^J~KB1!m}Uw`OXEXPusDTKt?1cW&k1Y(mJ6by0n*GfD zV(FlPQ~?j-)j|q^bLZr9!?QgB*PV{dbRYCkGQRoFo)G{@N~qGZu?cgrzyU@Ktb=I1 z^&NYZH_)JbuXraXGsRvhF7&DJ_y6mr%I_AUxg58TI!LVG_qmqTr$zt&zEu_L zSu?faKit^*2lxMOzYNJ?#!CHXf2_nq;_|IA)PI@dHF*B9f4QhmMYvovpaUW`U-TXW zR`p)~f9-w!R5R=?7RdJR#?^XmPqBYDS<10TqESQ@g`GCVzg*e`@vi({lcB>-LjO%N zVXr24I3-x;d9ijqKFxZCp$s#;D4Tf$_@-cDyVq)J#gqRJzG>o7@X^f;;G1TdU`o|w zW>5(St=saZm`>TIpn~m&7$_;D|IqMI@v%>iu%%>%MBaWjRcA}xniy;7>`Y8d1a?wT zPypc7(N`RRftuFQ4QcQO)3wE7J)%ZE;?e;|A!r{DpqK+45cq=gm9nx8o5EgnW8)2Q z%=^=)Hlq5Eq)AXvZgpGt{{8!SUhmKiBT$w?9+$Mxl!(xQ>hHwF#Q4Mn2<~=vEYVNs zeerMu2wad$^)MctI`_=&-Ets{EmasUImf#U$m7S42i_t0F0o zZL`sd<|JELU)%cf2ux+L8CQfgM?Q6UnFGYzfH4%QK78N*A%*9~Pir(kR{JJx_(Ba7 zarO$ZBSE9!=igKE^76t+xiyk$b7jdQcD_{OKiLp=IqPRFr2%{nZ9omdeerknpKybV zq1Yb{BqLPxDX-uM;}{36n{F5$BP z3ca8QP61%s-NG`wwi`b{Ne-0d*9Hb3Nux~_azI>#X#*z;HX4V8 zg}HiInVP;=RE&&^L#}LAMCA@GVub*PadeLs&~Qnr-W^0UI03f}5Zh+?XXV1eBsyvR z{QN*H5?o6`K};D`<}()x2z9pae_oVjHa58fjy9O-#3V!}#zrul5MKKeaq`e>92K2QT-Oyn~%mK+_8jgAgM8tt$8 zK{@Xk1Mb%}n|%~v2w=An6B`3^8yLld(^J}Pqs~rRpgO>^j8p_EO5V2|=G@ntj_a;K zs@1yr+r7Q{!NI+N zwsc{F3CP^_?r=5mZQ<4^NUy`lU**Tu#O39&hjb3I{eqm&K|BzGKXrc&P8#?Bz;_ge z0h(4l4EYG^^l>Q?oV(ikc3@H2;Qe>Q1f*bl=ekRuU09>hc5|JIiGe|p^=s0#`AqP> zLK@$YA;+u|$WL_9Z(9qwz^CLmM^-AF`ecJqp*>-|u=r z!KW8|m(!tZTo`(-SuY4`RHe?gB+#(CR{@Ah!qL)FT%VfdT$yD5$+e$<;msM7!b6^*YI8Uh6n^lBUrM3u@fcl+ z4kD&GmC`5?u;neFS}ji9*6hd1fFZaR$`C?4SW)@X#%@XbBOs<()q%2qm)q!@K|629 zyJOgm9KAzx1>L88CNDsCU9c+Pyc_dlBN*6*+wynT-yA62jO@p>p(nBZ!ubv@b@~?6Hvu% zduHvjam|m@)oatj?{520m-Au`@#{;9HcwBdxA?h_25p4JtHP=r(p&AG>WIMOZWwb`EXG8ni|~L3Xll z$#&MRBxZUi6aD<&{fnTA10W5A^`*K}p%H-Vd5V)`PSomCi}%Xfk%Mju_ZOO{csRwo zJFpbaZC!wnzhhwJp-O;F4SFhq3in1D&FI#)Rd1wTD!)B*t35Y$2qY#BzI$<6w4PmdX=XS9a9Hu{0b+yI2 zr=#e@8(jB%t75XV$T>dF$7`z(CB&1~*rirp^DXAfBz|cF+ag|=Z~@vpU|3v|0qQIO z9OrqSYXrlzG_{`0*F=>sFPm5xSbem9d&@-G`c)QHzCd#sGri~VH`16!AkI6x9a%i2 zLx}rh6h)>}J>V0gLm;s2fTZrBJ;!%HJy~pCWdqe025tqgb6~xy;65&f6+Cq@18azo zkkA*Mf885JEa4rVYKU+7w2HbqtchgmqfEo+=0%VIbV3kGB`w3l@8d3w!4$y!)AfFk z-)rqP^>g8tPaNOq^)T>h_#^<=vGM@D``dV38e^NN!sQ3$)$XH}|DT9}l@Ya?9-A1! zFH^R$PCWUpO?S4}1a=ZV-V3?4qy}I~PoG*UfK3}z(9$2eY75~C7=nWHLK=-C#RbEo zqpwR{8p_Md4+;Tae-&1Ah`D2;zx2Uuo!_~wa+}9mQP0A~a>nq(cUUh=x`!V9&CB7j z_Au59Ou}F|2$)_#nnHrZV^q)YQ+x(Qz>Y%$qf|?zH`ruA$fhyL!>QBg8FPJ};4p3z zCZEciN`2I{+wA4TFgE~pI#BVL`A2Chh`kaZz(%L9No`FRTVvKZ>bnxA$<&`M?E7KU zf@td<6?Ls|PF>uiKmw3VEp;~9=fN);1^z+4#b?+K70Zn{i!B-In_v?Gr9fre-iWgG zUO^13#EO09%HO{FyYY8c|e2y1To(LAtwP0O{@+Vi>-I_x=3W z`+d**eD8W^{T7P_!|;o9u5(>`?`t1ct3E~vD}mdm7e3Dn279ZCk#B!g(T_ixp2?TL zPOzqjF@1^HqejL{K$6K}20y-s#ZhE!ZNGiC6AL8Xf*}TP#g9K|#B6gcw_AAz0u|Jg z9QU|^awfr>_*3~?}3CnTDR{j zHR9D)qK=*w0NvGX2Y$P=YxB*>*AsI!cXcz&0>0eJPc1UW+x>gbwC}>b&gGnOqke4? zLNe7)DkBpUD$3g0pHz+*DfUO!?Sw85rq^ubbGK)VdZM8qbZ2Lq(w)%qvzs0qK`r9= zr5Q+QZkRz?e#Q&lZH$#8IQyaYGdf<)khUrdvm zza#-`fSrw_={Np$?$t_jYHA^J0e91P?~=R>;v2*-fw*Ej&gEAO_a#z@OS9JXxYc(A zXo;$;s{wEUpy1S{RRDp+vM<(Mxs}DT-^to70aX0<8S;0gjr>+z-A6`JmkVUvo9!73 zzLPx}5<7YM>bdl^v~JdvB{kie>3&2F?mQcd^GPh5^~4#l4Y%Pvo5X_{)rFB|R-IblikXsIPR~n|Jp2GK?FAAP?&l z9UL6M*~V4uH4AZ?hua4@g5H)bPm}TdIeI3hoSXuPgv8}`zn_ShKPdWBG~C-pI&T$Z zf~<1L?U#az!W-+gHHU_)V-!ph)aR-t0S#|&q-*m61q&!Ky z0Y|@~OKJbwlnlyNcHYEaN(q)D^b9#G%&5Zre61H(Tvv5*wlFFx5ilK|#X~_!mFy~( zQ=c@yuxy5sisyj_*@k=wc+RXF5*bZEcaW7=t-_41*_as)~wCIdQ>I@9iJsbf{(_RC7b$ zK|ziHMe63e)XLPQfgruo5`VIY&Z%i2Bhx0|2)YL#GMT~JQP2QTb@fMfUwIIK*S5UN zTu=EsSuzupJx{iWyEN0yzV9_~Z0xKgr=@iYA-ARn#jOY64-=!GA7gp~z1a3NELWwU z0*|Dxp9Mc2eQLr#1G#OR9=0}1R0m^-MNScqN7)h49RkG6?R4Os{klBobz_q*WkCXe zIlPriyDyTnGXn~FcxflDf017Y^ai0NxTJ!w3dODz1+5Z(TpG(nU2Cxh8_X(T-MC%r zfabX+;M>9f_YR3*V0zBh+RF6!zbz|$(;h&24Dv6K57iSpyk1|g%N;pwLX0fb+Rrvn ze7pMztt6&g{OBp6&Bej!CKI!gw%EmT26r>Rm&7b}Ik8p-u%&olNHk3jYB6Ko9}N{H_?#V!;9zhdRrXCq{=Tsg_?6gt(nU94Fskk-6-9^kLPXpn$@j1s~s~)_i!e}@r z_zorV^GQS~zaPZQ*X1eMvnNkTsWh$La;*t9!~MOL*o?RHMGP-Mg~{Rzi18caY;HGkkqITa zKbn}B5J#p;{b(MBM7^I8qlI53qt-rT?h;M?%r|Ptj06M_4qbju3c(|iQ?L+0$Yvr= zk7kh!5fbMVpXBA`O--vG)A;``;jWhdV6Uk#HxL*fFTo?VyM5aro`!Ufgvd<_1mNha z1n)F?mWFzAxASFRqAYv1c@`meNW`DyJ9d;-n$J0OGe>~<>Ag34M#g)`9;*X(7Hk>5 zC(V}CS<~X!zo|g8oZI&YEz$+-&Y(r1HBxUg^F(Jv)Ks%FS$3rikecr8Q=7K37u2#= zx2xIf2D+B?+`9UN!Y0f?+2M(Q_Z!9D#0CiX?{tFRE`CFf8C&Cv2CxI(M7O+ZS{B%D zc*V0mH@PMJ?9r8*Z2s^YD?fl}%aA|>f^|U4RI!z^#Q9FXfB6Z>Qr?ScrECR;$cT!j zd96O7lp!IFtB?_?uE3P)?s{)^W9HT^Bfp-*RE+q=M_D;JQd0dB&_C84U*_$pv`)4O zmgaZp`Q6Y6C|spZ_y<&?rS=$zD(U)y>F7!Y7LIn7nR2#+KtPEf&ysnLBZu}2y+#wa z=%6WI0%cx{jdaHrpNoHNQ8Dd$L%!MVQb$VQ+iU7Z3Fb{G3%d;_tF?{eBPU&gCj?Sh z57(SR`0SHFl7R>DVHThx7j}FTM%k{AxaIu*2gt;WOG=Vr9nP_jLwgcV-Yk75(5N+iMQ6az$7) z#9hm`!lN$m$On6Y+K74vYs&(DbL09dNdH$Smm1}_;?Nv9Dfy9~g!WV{5lc2Q|f#iE9&BAa~b^b#>QUuADajmZ9Ddgrh4|2Uh&^*siPc({7UIn>*yzWH+TBu1zb6bH^u)piL4 z_kYTP5s*ps{&P{}Vw-=cMYQ}YzYEJ_h`rrw_7XI5^uS6v_XK%(4;R-OYG-3>UkK2K zeS-#2-?{;egqt`qGt=0}h-#tcRW(6IW$ODsp=|8zkF|OxWfdS#%n5Eu}noJEN-3H;I%RcnEjV(QqnlbX%WSj`_;W{`d?5d=O(VV zmX8GA-K0E;ZXj!f2Y7Em-_rTkGnf0-jQbhqM0n{l%s7lKzK0BB5ACW4&=eLhy_%G|o;b5dP@X$O01v`V$G2s0Wd<4i8c+d)*}6XBV|!mKKE-mc)`^dki|E7 zchtfM+dgcxQTtA+l8->*-)OCv0G9{kJ>1YW8XO!yFtI?wdVXAiwQM`c!2IjbDb#&+WeH42qdgQNTI_rI&!EQu^hb?vsImBI5EVm?NCr?PA!(AJ6XZ zkNRfltNZXHG}r3`85tQL_1uo`Q;-`TqRZgpolviUy^RbG{xB}U0)+gvNWrTmjD7jd zX&P~-r*~ly6P7M<8zXE<=IY7+x>;5c-|^I$ub`v4E!@#>rmPwnbFaKrwWk-J7jcBq zutl;FPXh!6fIOvR9sKmSq|yUS8tN)0C@SobJ%Z(h>t^0y;#;Av zu`4E3B&`TCEF#6ziV=zrz_ZZi{j&H}F5}y`l0dtc#qmZND%4@n}vf+7}N+u-=@SMo(g zWqD+mp78Mj1;tWKfuL2yrCO0`o)@lX{n@!MQ_K}>`lO*&uaNQQ1}aQPki=E_;x=Tmm zO`<-Mw9UB$83~hh(0EH{ba^%nq56pjQb|6(7?y_9C3o{vpnxi`C<(J*W#pFy06y@r zNS@pHruFBw@W!W-dcl=G%_#C$UF-SGeRIqg34Uc^UNYXii8gv4SU>Y+_yiN zAFf&L)Vs)l#7*ep5n$gHNfe?Wvn&wSjTS=Agoq)JcZooDoYi7DJvrriFqq6hBr`O_ z&ue{}`Btwkv(jlb{xb9d@!F%G&XcRzSDCvNo7S!5qw;yk zvj~}NWr?zz0WK&O7P+8fVUjUCDapgPWH?k}as29_x!EP?Cvx{W_lwYj)dS|DnKRxy zHwGHn0JREdv2?4e57`O!Es>unJN)>p?uXIhk^~R#P?8%TCSGXcVh|v?vj_6=D>CSYG&Z$xRoa6uC+G&nMXAHPGy|L4p%bZiN= zY)3=O_dvS8V{4s=Qs#c62O4yUCdZat3q8mM8ZWfrLJ1Et0v-tiJ_7XX`}$Oe1V$cF zaxj73v|@nxWJfo?I6ptviYGf(OJ;L$3UWKw=U^9%jJy-3@;=gvhH zR+1yqlxd)Cfbo3qwTJgX2LUW$k?IEy8al2tzfQT~nL{LVys=K5vyohy+tb^v{lZ?m z#<>+B37?qZJ59?tF=&A6Bv(~U*8E%z7CjVIzR+e?ud-N;9~*x{i7GVZ(cEQ!1bd!< z&;D6OJ$z!v^_uVa6RBwx0sI5pFYJba;Y#?Xn&Ym(i;yp$l*oj<=T4Dh0YWM-8x%vs z!|D!azsidt8D#ykxD(-XH!m;BFa3pFk5Wr>KiapiH3i&GN#6Cs#WFzOq@YMmPCfuv zI;$|p;K&QA7kd#g5yL+V1V0VMT1SR$uFiNU+pl&%jw%rcJ1jR3oZEr ztjw&eC;@n95>@+h-8cZDLed+E+-Q_~o}Si>nx(09gM3&R(=U~HHbv9RzvoVM;JnY{ z$#@1P2A88#Z+_0>-$^M8u8kA>gU17VrxLCQheQh*B1Fz~w6q^dxIVm!d2Yk!ywSsB zPs6@kRd<@w-^#B8w6Oa-u}D!G_q~q&dA(PL2CL%L%b>r0m&@rT94=l=$qV8A!!s)h z%vIFOchw3{^{O?s&@*@u1zJQjSw{D~^=NuCGc(QS1g6T2;0ZUI^EGNH9PR^2-*j4w z!hn2t6CMyS(nD~IFKgfD;9L#K^g49a$?+cmUjXTI;6+ZfN*4#gnxlBE_A z`5G6ehXv^ke2{V%HwIz-x8hH}7_8Rz^mL^QmtfkSq7 zT#@rWb_87UZf(V%@i|VfOdhZbSL{yl8J||7P+$EE&FJV%z(9NL)KW>+E~BKZ?0c32 zFt`~PyxU0Pb2Mf`x$<>I24;x=ugUMoyrQCgBu)$-i6EzYPY37+Q&(4g{&Wr4Q7kVn z3;98~?RJ{VHY+NLURL|(`TF?qP_l>tc?Us8FAz_W@)^GW^d$k{0Y9og*x2lMBM=># zkpwjTlJ<1LiWqC)1h@E{^bwIk|B?1&=H^~Ydw?4cctAPhR%K|-Xn?$b6Y~eEJ4Ej& z&+q>6@r;O&lyCn2<>Be++1Zj778VW;(h?>nhDwgk9}IuqNA5aSiAaQ zCYFYhJX}62-iYlrK9B%}mNZdPEE#3d})-oaKSe)6`rHqKiEH!Fsm>}#RR@N4iUazS_7gm}6E<*`5PCNh@661Te+bU2=gnTO@LC4)O zR{>?ggDL}svz{ImpmqsER5djLyceYWDKPYipMveo(Y^;PWi5<1*jb8ZP}j?UkVB)^ zhcs5bjnoG8siM<4`1M^};%{=d297(*cg2ACsP1UzpQ6Gmz+IkDI^#5_M2kvpj zKXAz=XlTFKj)7z{NC>YSJFcs8{V-)fLMDPDiy z_Eve+fG^C(zVMn9i{6b8d;fk0I{+xgoPvVY)ReT;)pL^aElo{_ax%t2W5L&3s5QA$ zFzLpQ#Q$*^98kp&zN=&JF$3sNjB_OEKtn;QkjBN~xeJoa-tXg$8{U6ffR*%@9gI1A zxrsuP?(;b=O7g$|JJC#!^1*4Ha~Ki?Xsv2j9Myk55;!IM0^|y~X%s`}DA>fL(v2?J>KaagGxQ^8Nk98=6mf!~Xf@|Lk&TFa6Z|2h%QntIdD0x|5!;*a~a(J|7zO)6~+Zv|G$)D|Nd>~R7$ah zH|2F@2>$lrKdOoe4Xd~RvlIXS&*@WqoZ`X$cdWccVq-mg`1fjV*qdBC%U{0|V{{#( z1SB@+Oio%?K2S-L{rzbv-~Z?Unb^I_JBPo}%>Va|;0ga9#dtUV@9q2liq!u81Jb)8 zmUl5=|L&)d_TRQ4_-_}VXr?>VFI@3g{dePr=CglgdVh6je?RemdLAG*5WcZiD2$1# z*#KKT@8tv9v>KQaca5`kNmE;25`jf|bo6<(G~bxjY?hUAOU&tUb^`c*G9?2dHa(?P ze-rVM^9^U?Bxa^*An})OUVGji=2|Q4yUo4L-GigOQ)624@}So&uP7_4I{RR>JN9UV z2yb_esi$A$p0SIgf1j_ADm`maQBqQM^@f3r5()?hcHWPVk9(tmD_T}g9(d8QFm!iz zb##flp!VFQ9m3u-Jh5Ki>dYbP2gS!gp{$6Q-y*usXnLg`Z|5FMN`8`wj)8@aiG_}V zo{m9YQkE!|g!760X4~9aa9qVH0THyH@Nj!6=rX7xKLurP4GaRvwCZ9tX7bF9+|3`|`6e zd?J^Vmig>1Ntk(3R#j`_e2Th;`MM8>si|$1hjL^>!2O(WhkF|w&P|Us1>Dfy^x3B1 zXiGPAe@7wu{f?18x%>HA{hGb`7U^wWAwEnoVR2cVcQDmw2UQ%XZz4|ci#y)|_b))` zo0pQ4k&?5zvpxg;9k?BHMa#ml{cDvp@$wt?yIIN?k1cJW3w6(VZ4tkdsGebe0MNOH zxjic6=Va8nVp!OHpZjWRyeIxLT6M15B(d9Z8nbZ?`n?BN4oJD*e=bsR0xrs=R+;17 z+^9l&4P&C!aY=ZGT6^UobDtYA6E16=RV}3bIudAsncDMbF%uI!=XXv9hsO5z@oa4l zC(4!!j!GZfDABtYDeJRmG;nFl$`%#ANVrJ+!CXM!-CZ&?T+BXP!ai(U%pOsoIr?7hQ3-EIs{rq|{o5MYBpI(MA~7iiivo!5ir9i6WV7(75JgSR zwB%&d&!3kjODY1i6XWX}x4x6Ro^>|0{kZ#3LUnqQKv+&b{;+(qZ8iu$xQ#1q(W{1- z6v|aCufZMp(GZewLs;BEw5s|?dP+%-f4r82&BN$ha>_HH_?J+f>_HS?CC>L*k{J?) z@Ahe<#?Q+vpj8nwu<>UsDVhbBW71PXnvQ&fkJrE6)X8`l$FAg@2{=P1+8UhZ( zg*OkS(8Vk2vvc?F=Usjn=Xw#@_!(bVH-)MO#Q=$`nYy>$ZxKeg)G&ocCZGyZl$Aok zk&!0Y;J%KC^d5FTKlPQ74C*W`ET!;FtvlVlm&C;K!c%GQXeTc_{R7ryh1q7UDEVtu z#T;FEO7xqROHkh#WQ3=!;o97hN@~2 z966Q~(f25*sP20jM@VOGPM+Htp!*G;JRy*``-+F9-pj)3i60ynh2~$MT>NR{iBEnt zj?_pDyT%Cwoqu0W|L&+9jsr%;Gpd01nt<B@!nsWNyjA3Oq>Tjmt9mh~GfZ<}qdNuEzjt;!r9 z-5UU*?eK`5lf&hhJ>z(~*{~#|H##FR(fW93GJ;1HfyrUfJUjUPLh<8JNk$rV>kxHv zX693Tl8r_3RIvKI_=Q3#|6sxFlW~HTNW~yi@ zsi_2BEzMto^*~Xv?s$?Wr1J=8ZE=03yJbW}R57o-{FM+3axz4$qSbWCn1J-XVt z;axKr^!D}+pySQfuGsSD4F0NPz(*hZtH$OhQ6Ggn(n@H$B&F17(~KbZKiW7RM>Z_U zdw5HBbv2;NG(Rs4Eem;Z3(!f&@r<_%W#*PHU04Yc#c$50tZv;Q#}`JQo?Ybj*rQda zc&i(eFi7JxjFd=3tZBPLY?$PrSKzgAhW>s&EF9hrcCaEP2+T3zl+)dj`E z8kbXLjtkz-O}DTRH$GGw7$&u~Q>W7b!GbKK!(4@S)|8&_=WwY!TM)RL>x%^-2Cr>} zhwg*wEk+yh|)6MJKsu(y?|8H?{Dt9>#{!O%GcnApFceyys0zZ z_?gw&3Hizs+{?BZzaU;xAmB48S%EnnFC-Wn>+2fpFOVaUzjrJU>fND6>peWXhsXz3 zx~7)8raLR^$6%%a4yV&pl#$Q{9ehWId8a8t*X}_Mq+Wxfur|Eh9~{0hMhWg16&B~x zKJIj>vm@mIXmMS2naFd#Iz;Ko5@PP6!!jPdCRN)Z7!5gH<>i`Xh0 zif)dv{A|o`HQ0`7W&#mldV+Uig4gqixYTU34Lb?%JriTzD$Cig@n>AVt&Y~V4%W7Q zwGK=aXzyCzH^A?7ep>`9tDv9;N|S9ik|x7!xyy9=r5C;H=ZquG1di8sQsh^Oi$703 zh$4bB&nRVEjZG~0;QJW}C|?!k$ZTipZ0EA$gde#1WhjDHXi`62WjaD&gr zTjY<0pW#bJ+jiX7}T>pwbo zpHpax4swnvoB1cEmU&>aYy$5&uzn?B{HUyiZLG<`=}7TOx<0dVlgRXJTQ4!$XMGu% z7>QMvH!@6>yxgt?pa4QN!P@Gjkjwen%BU}o>N67D_Ng)VmI;X!LM7lvFm-eRS}iVoQvNcZF<- zWMJ{9XTdxkZo)Jl<3zE}bnZAnKIKg+NJK@cTVDn4M5%1V{JdN4=wFeqX}a9T&0Tf( z`w{350Syx7i!L%C+aVKhek4p!-vxBjw3?Ju?b79im~g=Khn7;kO30J8Sh0Y^G2Vdd+nzxU*(DUE>i(Da0ccYnNVy?)>3 ztA`;~jx(=b`5uo~lRLRlxt)(ng1H3J>X!FE%HB=tl}x^#Rqrrl2#W~Q;R1Xk-J z_winN^8c!7b~z=m<8vLU?6f4)GTqp?RYxEdcRe1139rYaMYbh)X!5Up(cgZmt4!hx z=WFoGpE;U+By*5r=&$Kh8SMyvO#CXt%+vmf=w?m;e%@JUsq4GwYQw5Mt2&o6OO-1TnX%1)^}|E0?ddX6G3EZQwmu=&rKYGw)H_i# zrIF@oqeUyBgB@)_h;v&^SX|itYJu4)k!3DuF3aud`v{SS3A!|5mY?{Km7hG)bXP0M z3VzP2{}LIHY6M9;g}p;>a*e$yE2ATN%5A>{^4#wkbKXAO#c-ml#|8#rbh|ykkY8t< z#V9?a+(u_-d9h!=2#W%mLUktc%KK<<=Muz2FuxbjyEzd&Vkf)#`Pmy>#*t}dc~+mv z(Kk{!sKwrUkgz)4=6a4@<9>!c_oObfFfp_61sz4aP@GOmo0-Wb*vX9);j-FmH#ii$ zK&;HHZ)C`L`sX#Z0r0Y&o2<4G&?eU9hsFlf@uB_U1U##&b-Zp{pJ67Q9X27$nyJS} zI9f(l`PlK|>MAO1s<}WUnVX9}%P}$1^A$fhD0+y~pnq)EdwOKH!pyAeux0#vQW0P< z*tuvJm^sykZc}GJ1&$wy+36r9bF`Z2aIpqO26Sg+FnA#u)FVNb85#(Fj;{gY;Yzol10YMi$li-&sM=s$&t(l;?MCqGP*n)x0(rAB zshFO}{*D}|Q6LQ-o`JQ>RlqIQVt*$kKpUUpB^A@M|A2aNr}sYIZu=wQSPg_$0O}o9 zOx{RIg%EN@w|2m8M17nEJlSAqkY&+SkXKn82E|JTD!=igqQYXuPoFaL@`5CO(`kvG zpKJCO59vm|q;+r2Oif*y>5jmEbam>nXBG<*q^0_va7*IKna-sZeS`Fj{Z~p#O8jo9 zFZc^Y17b>1FVGS+q8<^(IaBEyD@LYO| zlmcj@=8i}-I`gm*$u6bju*FysY1t9wPA*q|Z5Rw40PuSHn6BAFbmXfqTdqq{H0q-;m z3+YWMTuqPC(sD&v+2!)PYOe6+p{ekTPe(c$jLWycYQ4X+EQVENXT5^Uplf2$e0gtq zZviyQ?|*Y?GWb|7s#dP4Ff}n1Qt>mQu)K`MQy+wd$x5o)^z9ZCAe)?ESebsGOzf+x z^o!7{>&6U}3e=fIC7K-&5&7=cnULCbnIFLFzK~47?bpYTc@|rz?JQxu1T8}AskD2K zEW%LPmL6)Mox1Cr#LmYj+d|e8Unr<7w&TjJ&?1StL9m&j=)?RFB@XtHXq=F3o6!7Z zFtJZQQibL$o8J2npZgDvj&N>$6FKwEFY=D^yBCQc+!P{*`5MCYH+@#N@FL=;A zO{y&UURu*_=ob=;Vlb$})9PKB$5nMm73plW{ei8voD4kd0_^ehnbrR22o^Ct7D`fm z%VaOT`9~}l%Uhp;1-{Q!Jd;-8BSfe7F5_1^YQzt-NiEl=B@uf8S8)tx>Ug9o-CIbw&da>Zuh+r98Ceb@R>}yn($E#RKYNRq@8^69O)PgY zY|Ea z^w~)phJSk9E-Tz;fv@-A+{sg+Wl~GG%Tpb&6G{gnVp1{e2@VbpqAd6P46>uXXc10B z>2+2pLs{!1QXS4P4(L9RxkyR*sJnK{l7VLiwE~k@+Ch=QB_U;#Cyq-~RYLU@_0Rmb z^mGmW{bnZROL^bt%&}*h930ASbso4k#Zb%Oc9e?~Jt4HdV&!BDS$OJJrJI*DkZ55y zdnNw4>(9L2T|DyUOTJ~;(29_IxETea&S7yNXz|v$XYr)uD?>tXG`eBp3$qW&>U+(R=Bj}J%wSG*5`j`e=$iK{zVY++N`(Q&%XO;ZQW&K?Iv1XcF5rCDNWqtJ6g$k z!P=wJtBrMhfb1Fq7|}f}LAM3`-TVgrjqtHpXk2M_5XCy@N3wR=YM;fgO(U+CC zyBCXPu)O{JNqB8ZLR#-{5dfTm!t(Q6H_I3NU{G$cW9^p1e7_WKIvumuWM|7sOV12- zg?H*o3=Yy3aQyzv`hHvxF^HRHl~rLWYQNh8oV}3;IDeFG{zPs+jszROD4aegBxQo= ze?{iQ)EKlH=Evkg#Ryb3>FPg_POwArhQ0dy@OzM5tpe?mUw+}$B^u1-!R$#JuBsC2 z4he&0R?oTe7{S63JdX8=aB+pXAWgJl4{lM+b$#E{v(D+P=)23s8@hV4vU3&Wl`Bfi zbxJ0O9Ny3iH4#l!>te*muP3Ly0^Xz`Q4^RfjrlpbcUEPw-KkR-OToPH{&Hq{5srpp&)d@{hcX zgOpicjf~o8$I<%`r{*PllI3?lMwJ-?5>Lw-li*O2bLdYHc{CIi!$95%01fAhJ8?pG zwE!c|C}=1yzEAN|Eps}IkSpc&-=QAZJkMVZXDNha1{d4*&!UThk!`Xnd*?2B4OggT zQQKq`r=ko4JKJmJPoG|RA~K%;80=_K0LexnY{(gazleM)EQ)*m@%BTyJuccuGMlqR z)SgdcqUGwBt@L%f1hgf69xN-{Vo}_I6+8%t`X2W7XL8f2)fo+q+|j%C3#Z)7!cS{7 z>7fY`)<}hX(P(fw&emLDJ>yi*%CP#9DiE{Z(2nkl{XScVvec^UaCtKW-`fK=&Gq7v zr!LI}L*;%O9n%4kr|b1FD*v6S1pF&*3N#yqXQ#gN(He)&)JM=XKA+Ow{{DxJd^ppr zI@yP|SD~0A11bw#o2YNXSQG_XE2wh}3o(CCdL3-6FA`0NRr)@Zc>N9)BI9$51sKg) zjrMM;efZCvFSUB`UZ!0(Uq=Td+)8Bc_RTP=(qVjC)gX>#M@K6|5?r9kx4vCG6z=Ml zOd}i2&RMbG${1)pSzQ@@fWXrSY$b$?IS}ia2_2&Tqo<30FcVLn*V&4@P{jh_pH1?Q zXAHA6t=K<=`Bo%0L362+x>yAM0mzc7k=?B}YjdOtEKwq7y8wen7@U~T^~6z5w|{d! z|51J-;~Cg#m@0K`2rF$;#oA?qva(pa6HeYtsACeocIRk0Zv3d)KPg`F?%mY+63 z44vsKuE+|s>O&vwr5_&fzZUSjz#k1Ug*?N)Yk=EPD?V3wkUsT{GJ^DE~X6>m^MMMbc!bK>hjx#2rD_8 z0%nuq{pZ+)E6xe2Vv+RZ^-5jXW~-~&%{t6xr<1C`INiQP^W%q&O-T?)0?RFTe_i?b`t*?qfz5yhM%0e>z@u znMcpVw4-VFng+F^xFcQjP>;rYcI*87M-7`S!m&#Gv$jVSu1r1x!VvOk;lYFZv#3-w zx{l8iA0QG$6=b)B)`zWF=i1k78HcD_TM-n5fN>I4;4|HL4$4wi;|bcPPx$dUIYx<{tf?b$!2S1kPg=fN7-E*QWJCC^W}q4q;AS$ z0)J0mPiB6$>B<|hAIGzp$ZC*y-mR@qq8^C4$TN!|iPPAM(*Ssas<}eTr3=(n+i-kr z1PEQS&5VsV*Lb*j_^PU}Y8J`6Y<{-T1Uz}NvI??tHMQxxw~=`TIllh2ifVGXS!vrd z(@?N&5lb)u0Kh%TV+{>cZMeaf4ukN4LQoTeLhPiAz`Ibz{E6ZdDm{617qPi7pLa?c zeS8k$uFQ?y#Ll+uTt2)@s?Y{*toix=`9k*I{4ggtdI7>5FL1WjIFp@C?}pJFIN*V9 zbgM#k=%rAqsoJ(w`@)ZtLHSkYr`g~kBK@(q*-E3gN8BQ_V0>hVll9HP-o_|m#D1aI zZX963)v%+1p|L1#i}ZSr`MAuz-~~ztoL&I$0BorFGwX(_8SH_bCbwNv@354#^yLgl zK{dDuh=}D?Rg+S3h@O%>AA%1wSE_XV1iFGDK&Q5dCeZ4MDgg&usr2pGFzE%tSf75aAFx+a8g>Y+a%l%~7*C~2iwL!3IGoz2B931=xJgxzvdFlSX9_~V;3!=H)M`#I{ z>UtgDpdi|Vc_)6Z@@hQgC_j%lLC|?195zH*o%G-yg&z(Ma(9LYdSGmJH`cfgERH}7 z@$qwVh%X=VR(}~VFFn6G;J>)V(Er zQP?Cnp*wdCb7@(o%hv~@#{vaHqc}AJ?cy@Um6se8}=fnHe$C;%nbZiCui)-W=CwVBrQuMyegP(cxiX-qj@$P%k zy)Kyj5);7KzzTGY1H_kF{@O5rBEb2^l~Z;<8FYp z4HC4}fJPw(`kn?j3n%?Tx)(D;z}DO`J70+y3pte@0qB05@2{I;gtWBGTW@TF$Y2K8 z7;QsqQxdD>>Af0jI z?``j2;SC_#x}t7bY;AG8DZ4ix8WB!NxFiHa{Q>nk>H*Qx>g9R!{f6Iy z@mh7idV7ErYtz*1@X!{-@mf;%km8K>++U>$%J5;U0amcWX=>J0pI0Mdx4^uZF z0`Dpl7pjKuuBTxB6&WBvsxZRw1_T6f37~=kB7+1VGC10z)7011+ZD%>cyb?$ZkJU2 zCDP!;N+=%yi=HJpHR0io($WrwAEv+xAscNi|tssBjBi`)zm=7 zrD)LFy_MUJx4592(n{W;!V7SCcXYhVTNki;jE#;iujtRG(bnay$BrT6*S*-;fvxq}rfz{RhFNE6>Ksw%qy7v8!k)C+uo&4`z#M%zuVc$^%b* z;#a$iv;=aoR0n2P;%e6@TptVX0U_55Mg}GcFZkEmJB@`k=G7R>*wZms1vhUbVmy0e zzce7b7#$PSaE8Kw+1t^VfxrPexj$m5?k~63vJKx%B;JTD^YDvn#!PS%#j0{eAB8B0K{t`35_1 zZror4S_!ZT4}~XK!y2}F16gmNB0GRCXpQ^Buc!`vHiCFTW_m{8X``s{iItP%@B#L` zJAsNyAo&xU2UWLk3{c+vmSpsq+hmIIm2d03b-pI=PyUW%bv`O~TrEy(}%Fq7(#g}{>$iMbn{~H&xiB15F7F#a*I}k%N zvvL;K%BhS%F!m@cvI|5O+(`VEF!co+Tpg}&y?j*PR1WsHT|E0=!|S-7Ee*wX)*x%W zs)U24=zO&kQ3pk8hav2?Vnw0#wGEpq=F8|hX!~3M zdCOlVkPeUmS^lF0GD-WZ1d{ZcD_@6J>#x>d1^Lz(`JRm}Ke)T0qW_{JJKi-uv~aoL zIC-;32(AkLj|^1N_IPc6Y0J>UtRM*pIMc@_CKTi~!(u|>g2E5>&~;5;`AMj57|(sd zpOSxTz2=#}Y`9Ynr~g0t)P*l#)Uy2-F4!`uaxctNKRnHRln81atfScmJwu=JL_s8$ScZ zg4B39#+Mx>h^^n#*K9od&we%s89Ru4_(jTXfBRb_5Kvdcxn807o40a*0WlLWXlG)w z00>2amY^f9%!z+r$qLiCPHP1B+Z!*G*A(tndtpMs1NkN0%a~{Gxtg7wRReP-5Z;-q z8;-NfN~#wW;4oMfB90e;fzoPZ=sxZ`%Q+2LItWu8Xpp7!-q;=qlRmi=w7S{u_OpRxmwbJshTj1ZxZ9Td}hU>C>jh3 z=G?lG=rR_9K=MfUGC7}|gwS3l2D*Ry;iu2~6sU5>FAEp;>NO$cLbObDmd2R{IeESP zE>B2dn;=QKG-|G{Rc5i_26j6XUn&m{Y^(5cT`?}O`nRuHBX+>afw(2C1rqyNWmlQ} zoqr@NfXM>v{GYaolr~8CyprnV#CKehYiCBMxt*1jbk1&^yWi#)$$NUkC)UIt$W$`kt;4;Y3BWF8R7e1JqsVrAuKo`SRZ>N-_$Tl*!A<>~RyjDVd*l^b7b z9hQ|p00|e%+>NV5d@2I@bjp%K)~mrw7agwrHzVWnt9L@yftqA~^dHqlSw2u*>?)!{ z#AF|GfkpHzBDQ2tL^*)0ilt<{;L;ynUF5w^H0Ro17nqCM0G(;lPqEvw6Wo;*7!8 z?orr4lR<)G5QE`~ukO-5>+Zo>e)3#R&Bw=Q*}&lYoihme4E*SYzw%vSOmNREA5rKp zD<=S40&oZyrH7YfT_`I@1jV2g*)aAFI{C1`1Bucd(oGU0x1(+C|O0>+O9NIi{d|f%*OP6qESr za}K*`ko#yhxT0Zlx1bW7>U4>aIW57PV5*Wdb@ugCI&9l6l+aMp-z2|!0T4VKX=!0` z6A1~qCa`s)@+lXj2Y{L~7T!uPcl{zpd6=!IB<bz0B2{u>` z1r~{OQ6+^xp;ohxfj$ZxTzCa=PL!ImGEHHvN75idlzg2Sg@jdPM^~5S)s^MBi8pxE zR9JM0OD*?G%DAp<3^oIukBGc)gD}+Ec3E?lBvylLrlC8=z)+`i8-wahnz-or<&@!I z4^yt7)_LCV_W+&*2N74mpMjgxTvxJMubkG43rpjHT67kRoRM(4v9qp7W#2Kzyo0qFvRu5cIqM`cC*2do*t&N)hRw+ za-kzDd;Q3_z>Gvv-l*?*Z=+LaaG+xX97429f8t34$lD}JEi4>Or79?4=C%BCAxB>+ zr`7rfTes`Zd?(GRXCMC~QIWTM@Q*}ARBSfbl8bm_le}%_81KG~4N_rzATu}f|LN^J zpqgB}bUilUpn#%qlx{;rKtOtlfDJ*4Gyx&U0!R%#v=Bv#fPnN8ARe;E|1MCbH%rdAFF%9OG_n${A&S(X5e!vEd^C{znuLY)H|B9-d|+U=(NiWz5FQ$V=4yC1MqQf~V< z&pypNrKU(aS{T4EeL(}&8{(;>V_-E2nzTN-`h?!n%1T%FjjU`nkd6^p@ zwgaSR?85;d@2mEHLJSeZOSouq@8$!hJBGOjJYKCwZ$xE)Xk>n%eY@oFkR}>YpovCI zpFX`nPzdFe>uGJ;Z4aymh(=FO&uDDea%Hh~CN9X_-0tU5YFfqPAarKB`~v0WYl8jC z;hetRrw@^8e?EpV1vt4)*u~?9*wI1R*^iiEAiDZMX3vw)^6N+;Yll!?=<3AQ>Qen^ z!evH5RA8Su5X@>MN^ZG7tNXM!4^)1Hi5ejRzS`Q_&Zfbaz1xOh1HZnZ{`4cVj>`K$ zN$F)LiDyJc`kZpI0>TSy{KVW(=0F70wO|;$^w-pYrf-EMB;%LAxizLcyUXdv*`kI)RmYbeuYh^VK)a9T|v9+tXq--zb z=6z7cDOU5|aEM^tZ|X4YJ>|y_jjYCVUM#g{w=;*NxnIG0MAT0uLJ(f#(_wl8{Xm=Q zQJ9`w0?yZpat1N+-pe3KpQd!L1myVE&>;`dgH}?FKkr#l^Ydh7J@h5Zyx${0arB=P z>maU^7*oc?H@lyLbk}5fq80=*t%-|_7DcvX0;%5&zvjfD`Nv`qw*(*oI9*Jg`IvWF zN=iRFftvR`*CjR_{9S7CigCGkk_iJJP&EUPB{rg@T5ebZM(FIyAW_ruA3~D$$DW(y znp0{(uL+#${epE+A%8}33s=3xW2#ogOBh(12>>MrK$Yyrl~ofPVm!ks_G%KPw-Fo?3S=tG|6ZmdmH#HAd}pgG zS&^d77R=%(GB0U%OoWy<3-LDWuoebuZ=%#}rgzTz!o_$-2pPyLfu65cL{Ml7uW<-( zhVY0Sf$-PPF5@guL?Mv#;MiQ>4DaYXVkTxlG(F0e_M(`v`=bs0UehIT0EU#ww${Zu z#z7ZbUeC-$CERDf0M?A_ZYYlB6?NTKpexc8=Kk8uMbFGmLz2p+y5uS@uCN0FOs`pW zfT5du*WLLukfiKl({8+zY15XSHg?-G`B!POy4UV3hy>N7Iz7fJ0Z~KH`b-ci-uE*Z zWAOIf@q5iZASb92`1A11d3;MX>qQNEfW<{c#b>ZXi(B(d-!|l4w*+=oFduT7;Py$n zvt=^}sfvOeazIc6YD}%fir7nYa+xTM6V=(;ng)}9ts}IT$_!-ztef<%GPfo)pn&4a zfu!fTyIr{96b%GmjNkHIdyk%6p@mTFM!Zh=xC_Yubx_slXn+^9jWPNJfEqw2S^=l) zWJDNTt*epKjw(Qub%>f34ub{j#OA#?zw`h!3Al;n67Jw#9e_1u7+CN8`R?@%je)@) zpDfQR?&XC2MVGMs{eAw5F6 z6#6LBWK`wHI+LYueGfW3tOB&pd4QkQZP&QWiU?xzrRmSZKY5Z>`7$sSjdIdV(qN){gDfrJTvyvwW zl`o8caN~k^mgm%HYKmK4;%{95!~xI@tl_2`83m5e^UA=|)ANB<0&oQo@q<&2Gs&c~ z4ahd_4L0RBt+<#7(JhnSC!B(fF)P`6yIH?H&1G{cH zmcZ@+9Nr7bap*lDM*}@zRv8*`7|e?kS6@?-Z?)gPJs@$Ho^Oxv44$%i<(~?e&YuE6 z0dwE@CgGnuCN^Q8{X+bZBPMf`HKSAB)gGq(@_jp8Tv!scl3)N!O7XX!)39P^+CeHNc=ZS{UkV_seez@gzTygTiRXjCh3;dgK%H{OM+Xm{ zbfDgwMMp=wv%2h@sX%t`goKmCNF5P}m_Q8Jd?O(oEWp%m(l&R~S^Cr~cIT8iO21n-+bapx749FO`!||1!0wp}@7z>%uavnWY5WzcdW-g`aST8gBy5*_ za8OXe{PLCYvdH~j&Pjy~RyRA)+V_zvQ7$72GzrMb$p+yOh$nGlJn80C=beVMui14+ zsX+yTCaQpy(M+HS^Iek_`?NQ1U_9-@4^)a6i6t#>XoK}VovyqrKHr-HM?=^B!wZ*I znyy2G6QKZvIcUER%&JTY58NLcl*}xpD6!)RyJ zbx<(m8^1`h!V)lZpyc$1C@YZ2-7kNxr`L$Or5ob-9&JD!stnD97Z^IRrzFvUlCe&T zj(7giVKOH*?@_wc5V1;jS@Fod4`6UNR^SCXLCsNd2_W3{5QoW5%eAqzRiRha@M=1O z0aZJIoFG;R*fFk3W@hNMw(R;d;B4}Bh|F{nX#zM9A6%J45(DLAz80pumwUViha7=; ziBjcnrOq7pB<}e*VR6{^{<>{4tT&D@M!u8tsUv1JSv2 zTQ8IDyRBh}z0a~(FG;`g_4hZoRNXx2YaXo)`m=C&yavI*CowRfX(Tnv;9^_vju&Iw zJQk0=@=V_y@!X=rq(R7q>~uiY*Vem;92=eQk9qZgIP7+iexvc!1OHOox-H5-l#_!6 z7u%r^!ue97;>^oqXrM=o@mM2P`eue1V^M|L=hl`Cnrc9EfqoT5mmth%<+c%Ho zMSnK*<2rwWY*x#K$+RzDv`qC|kKPFh&AF?n)C2`(SEjqXRI1IYygs#pD&Z=RkH}8& z0A8{3FMx>w8-Cud81%;NhP{he+{oC$Mkw3p`equ4SV%DgsnL}t`{U1M!8k@=JJTiY z+jqKIcf3MG1$21TiAdM*^$dGq{Ae%0g<~mZ3eQU=bwSNY7kc_~`1jH$Dux$ByYbK? zR3;0^4VpBQ`3_ZDV8$_&f%_PX~!j;fF~V4a0P+cqKP@+c1{3Q z17tZRm0#v41tgY2B7%MWy~G{n>C?U-CKfYThD(!%VJB{m72U#12BZ0H=a(DBYY-=* zqM{#timzDOLkq;ZgG`R9>}Ps3or{0VtCUo2kjFTzeSy7(LjEz_|4GbT9He^`&l?V=6nkiAKKPWa^1!LhZ#DS3PMAN*FrNq74ByWr z-K646@o~3qiCIehX!x|Z*=~&W*wWBmL0JZT^*_59|4xwR3#8k zN5W1n=u@8j4um*%?JExSAnvAx?}ghvo4aS_;&PEMtsMGp(Q}q49AFCrz89{L6*xgZ z5Z8p0RH*A@;2}j(LFwxsCgy}tY^Bbd>LEZe;3&-EeLB}=Md$d%!Bac6_Z`B*8pG^>hk z5mZ!S`E3PO59fk{9F>1?I=qm<-BUMkw!uvqyz1K)nz6Tw2UH<7$)o+h)h%j2%CpI*<`}$jq%l4>VP?JcvT4&9n6Lr-8Wn zs_d^Dpj$~&Ird^dm8n3=9M6QhSQ@7XRN zD>;V|dqU3_+nMC(LP$x^6Mwm^4g&RZ+UG$2;_~H$@tPz5GdvxCi>_;O%J7ow7gQNA z4xZ4O_N<#CGaaoUUY?t)WiT{Z=5p=m-5tTJN%d2pp|SUgfS8yIu@~4G8X}*;#0Pey zMZ^^bdPfH#-(aA6tNNSgma2srF=YlK6G|$NGOqC_BpClb@eAX&n^v6}o1Ji&>rRW_ zds6Mx%^vsx1@t|1E#J{;1q?Els2U5bjMS3jWK*;nNWBAe93aOpqY@tBFbVPDgIdsn ztn@tC+u5E}3y^r%a+Ngpg|qcya3e4kqGFPzg-(Eno>%0^{dRL=rwb~!v{qwMHwvI3 zZg4D>RLEsfZ)Z|HJ30G`uqY24Il#*TU2Y3_pLuxz=MRA5D1decWQ?N&3BJHK{@nHJ z-zUkK26n+>b_Oo%4%eOGkpTsPDMOFt;2>fVktlZh<>KP3&=H8}MsK zzGdf<0ZUsMtk^4c2P6wT2WEeN0ccp(#>)a7SY0WSC&tCDpD|uJ`W3YlJ@vV#CKLY>sv&?)AEsY^#8q*++sLN8I z%MZCSyWCmxbZcXrD~oRYbHG1@2oQIFpjSg`eMD-}&%HXM`X3J<+ME?Wx1q}%f?lU@ zL&Vo0_aqJ1=2J=VX7$93w6q3MYxWr$kI)+fKoVdhdZz8qf!)*E`j|(; zJEHb|IP4zJIE!?h+0tNX8=P=ICFwM+Shungkk9hyAD-Ub++H@bu>y)Pz)_;8%Yfq! z037#{?C)Kj>IGR@^SgRC$!G3>cm@cG-u?xM_88|#K))nKCd~~Lm!}j478M0;SV;ET zil+l&0eiG>0&)&baPp-t&VWJ+0{Q6;_`slw>t8uaazAZD2ffB%lUg9!%wuT1gl8TnWg`YxK?l@^XA*OrjYHW z6AyvHWi$b#R>e|bgxZ;$Y=YuDG)ncf>f?8x@2CvFY-2ffLFpUgB_C<4#%z2Zm*Q@r zzHtuTHEY1gI!StY{6yXfew8;ZpKBfst3FnaSO^P_75vO{ocP!a3*8Iz>{6U?f;mF= z;GKkAqsmt!5hLOjQBfCo`gnFJCw9r}lv7I@H;mj3N9y;eq&%v|y40V4j=6GOHZ!|^ zL-MAu@Mz`h=9s#t=-Y`{dkO|&=V`LV6O_8!lRp-u7#0F4LT^^d_#o#@kvr*gYO&6X z{gqG0TtNw3%cZ3hE%lyGF3`;{QNro)Qx@TYaHBjKe_KfC=xtNKH`@E2)jBbai7;^0 z#Olw^IrYw#$g&JRb`!Rnrdy2pJ?QRqeWQw7Ouo$AZTuD zp@Z^fihOz9_=J6$Z&}g=<=s^xwBQ-nv19K%+OM~PcCc%kyg-@mQS2)^?U zv?2O;mwQLLh)l7=C{U5(+fWIuwGut8ZpPm({hkA+DvRfp!S5eF{ZIb(FE914|NDdb zpt%x;1uXtV0)^AP^!MB&CglKCW`fQ+_#p()e*8jQ#{>O9u zuU}wQF#k}SZ-DlM&HsgAm2kj{aNo zJIN^g-+G*X{oelaQ%-k>flvkk+NwkRZ=dQ5cUEnzHvZGUeuIB`zoA?M<8kA*OaC^Z z|9S^Cr&Tn^5TqwRMtptte;E4ys}2KUzyFW6%70;BP1-jM%pg#Q>&UIK`3I(oJKIjI zBBW52T5P5GL|cnxS=W!=-d-W&GGW6ia-IMI=S2OmGMHC@l%o_=k6OYC_U-l$ps?Dt zSSj-Q$AYhh#j8BfO?;&0<>9aHcCTK&a+~ZvcNLN-vl8sOn3J9DANq&PR_aI(YpzM< z9Z^0$GNx;jU&OE~*MCpFWJ%mS*<Hh@@$qAv5<6vn-(l$S9?LuQ zJ_Voth>02O<|{~VXlO9+DAN3+n~*J75O>&V{edp|%Z&h_RkbBDYI-B44QOwvcamNI z=7p+xWPx-4vB{4V&yY)=J#ehpVa_Alhb;7a(r{ed5o_nSa0}U4m(LLq#61)&DA2)Y zGv$(;#~VAlPSKK|nP)C})xGm(;ym^v_R*2N*{~1xt3ZG#p{~LKPfL z2x{`kL8AEl>bOF+g+ym|?ziXV-t}}knG<_I zR0tT7629zO(QMztGaOQ`x`c5B)ZNa}8qd9;=p0k;xl-(e_d?TCzW~Gf5Y+E5QZx3- zdoZuQzJQ=jSeQSxz#d;i-!m6WYN=W)&~Bjrh2^=IYPYH!%BcwIW;9B zS{m710jndFH?`=%Ub{ITwJ{udI!Ss8SBUV~YwffH3~BMJxopcmi*d-()E*>GeS*59pV8s+TL$Gmrz{x>UqS2%r+kK+2T)RJ*jl_!ewOV zB80pI>tS7(pT`i%tUX7jZ_Ge@Q*&3LMS0ilUko$NiLQe(bT8V@Vlne$6PUZiB6tBe z5_>?qL*;ZcmE+QIn(B-vp{fRnRqPR;FSSe>%Gjx#X_DXm_1b{Em}xdQ=Q11trnh<> z#sJgn-@CesTDgS^_mLT zJz7J#M&Ya76rZgom*qity?=|-M|`Y z!Dy^%tx<{5Ep9N^kVEn3js@hXW!3;%0G9FIIbi(dckj0Tk_Lmiv6Y>jory-gZ0R+d zy7$M)pZgA^({(&YlX9hmQ=(Tu%UId74_`P>x$9&i_kW~4^5Oj$7UsD~srJ}eHN`96 z_{3A~xwlTBZe*+ABPuE?=m=B;^o$3Wy^WDkz3Lv`y>%m;kxf{(|EOxyU}$_l$9nJ5 zb0Z^<#xQRq@X_XX_igv&t}zuiQ}G@Q70-9)o|iZ1ed6M@Y;0E3JPDlk2HmXl}uE{D{-)uc{w4CZ^RMDvTI?s7Pe%H+g~coRa{ zzgjHy*T9szC_J@$hY@~GR&fesjA}94TJ`oXn+R4Ov{qTpo0-D_#(DLLGBd&@m9r5M zU4Ot^V(QMqYPauat|N>~IyIlDnp8UXl$7%aD2u+XJzV?BHD>BHUHfZ0%kom*mYmr_ z*%Qk+ZVnEE7bOUMw%L}2ridV3Z!6hcqQ!C|-2$k+Svju7M#roUm${7aZ|Mt>(z3IQ z{41?0s}k62;XF|9qAwQI`8*=1ruZZ%SYOzr;?Lb}d^Kc?byrDHzYU@Kv~5wVJI7L^ zEp0Xmgkfxre~%STEPmDEGl~&>)+aU!UmCfaY4*%dg&eI#d z)>{nS8eF@4_c8E@3KwVM)!5n@e7+cN4RTd;#rAx2&||TAUQA52ghgLilb=^q+WC(9 zT=@FojRt~D<>rU1zM*`Ry(SKwGTSk3?uZFV7@BYhX2ut7a|`)U=kgY@JW& zPKTG9o>;HgTL0D1)7S5<)+x7__{$VDg*1g9!DOA6@G}*xXwRv+jUS*jBu4@DApF)+ zUim~NRmL}1(U6FmI9lrOd+4$z@x?HB_khbY+4E<^ML~lH%58By7JB7BdW(uy@~Kbv z#`)ivm$$UrZH*!)67P7cJ74x%_lwoM{6sYo9*-brdKnGaS%#a zc$k3&&9X;bmItaQCi&4GyYI$a?^}5S%W7d>UU`J}EXb|ijm0t%Z1%l+RPezc*fuu8 zh`A$9$?mRQkhUD^!lS~%!rGU|?p1dx02Vj8?}~_Mp_00~`iI%57kru0MdM=NE-SkAm@()%HR6jSok4g`r&cnT>okoofZSHXoUCaq&*VhN#V z=0%|B-LZfR_ch-wDFl6Uk#QTisJ0_237yHi->S)m4nvo6F0V|r>6(3 z2Ol=~sN^kMLS-bxj?x0S4;HZN3_gEu#RyH1JDI}(-T=T4QMR_&zpJ%3{pFPW6+1Hi zsYRmV6)^7z5*e5~`He}W7xS^nU_xXV#Hj48X_BX3*2~?JPr2)e)2EfbuSU8vE_gqG zR#N=ZBQ?K}2MZ>bt7$z9kK?o#6ex#=0!KC#QCmP4R; zLD4){ZpX4!<;M0yLqHDoO}N{xWt%B!4dlA7tRv{mBsNqa?5wER&t1iFBTmnkiaf7&TpHDD%O0DUjq(TiTOUJ0#=g7GH5X^t zO;pLy`)q&8#e|yVD4I}GxJRbHauI4Mbxk`tDk)mk8u)slcF{ryv=_N&`k?s9lOWL5 zoWyiFIVOAnqesb}Ykn^BX`qb7KeXdfH5oJGv3G``47&J;ch#_PQ?|uDyO10T%k2&O z`@e1%)KHp|C(b)Mjibce8>cG^G`-i+<BCGb~N=igVik=bsuPzrx`27{#p%#Z0f#obI|Sy;92irZr)SK zmwXVsTa1RHqwzNctDllIYHHz)(c#v^{$~~3>naL+oFrNwW2ZeQJPtSM77*K%(Tj|d z1<*40qoT)`&-n0)i>FqV%I|Nal5AA=@=t{qQfo<+%VoP-Iip!Bq+dT;3TnCID?nH2 zjxN*R_bUf?@6gs%?%3-I>c?O<2ocR+*F|06H@Mc+Y_MlB^^Op~*vzV_sDqO5m;c*G zXm@HA^>!(z_m39hD4fAh*;@a0{AQ=MT)A!5ut{yHeZ5?PV)5&-n0;SgaEk55BSt~> zz1zu9qi4EXr!fi#OV=6A3ByLu3#+~0hL%%@5`?3@%Ixgc#Ccn$D$o}Up;dyg)_d?^ zB!BwpioPa_*y=AKXqB&St8akv3+Qm$E1g5P3y$f%0M@y2`apc#TY}yPvwJE)x9~&0 zFji#kDgFl5YIA8uO7^QF1C|r;KTcNBm;4lG*)q0R^1xBV4MqI)A*Fd<*ormzrswB%9!V~)<10&FRQ6uRN}CO+iySq{nB z1I?~un6)ywYPgWJ=j^2^&>2_&*h^=E{vCi^Ir6Co6EN)7C=^#g4RR%nbIF{Qu$gIk z$~9Wf2!RdX0q=BiWpH;X!Li=|tS8dtv8G(VP@pNXPgDMdi9}H`YOpc_Rc;f%J&E+# zTb9|hX7>&F#3fFosCo_#&+#|#bK1LsvlXE4-AjMeJj&6}%YRuIU^K8% zNH2Js+%6G9C(pBgv%ieV)1mt~w*Zz@k8TcCkmFOV1qUgVwB3E;N32e2ZiW)eZR5LA z9)E&H>O~K>s&-@wwP!Mv`sZwDV_smWjcU9h`PdHHEiPB?@}$0`qM`kq&rxB11!#^#yUN_+fDh*oQT0+#?B=@ShQmB==0 zWU8vl&8Spj*!R?lF*IpszRI|(UhooGoG|ap;T_f=E(DN_%U08(0NiG*_fAa@ zcojuCdncBYsx4W~I1dl7Jh-89GrD(4hcM22jGC3Fi9g5LUGy8 z%5+}Q@6K?^DRZ~2E6<|$Q=T{&G=pJe<_3nwhs*699F~?Wd*Z)4%;eUE*) zz>>QP$^xp`>4YZ3iyQ}*J=fhQi_}Dzd?uR>yrgdEGK+|xerFV<`Iz44O9c>XDnAK= zpHyO@j;K+Bf?fN~(LOd>w2(9((9m$YG`8cD8>F zy~ZalQ2CPOBrt)b++2NVe$}?k=cpnFeD+3s08smbIut2dZ)XoC=ugotg}nj(!HT|6 zaA2Tq-1yC6RacbjDSjr7gDKAf5fkZ!4G;nH_o~yI72vpSQGrW4=-BGJzprgUkP+V+l6v8}z*YWP0)sifeijuTF&%-lR;h;a{ z)A{;glFJs9vH=*Rhp@FIIPO`6x8eTg0OJkLlKUZIVx15e&YiXCfqy&6jWUjo`fBBP zkj~oIds))5cOURjAJ;kNKg*NR%~!kVm}NJ|k<`>jVRkJoEiy74z&aj;(-8uFBLS3R z6nPqY1~ZA-grfHc9$vbXXH-@(H;-a+iwu(mXBv}>2vc(k_aWeB@S9!Lh=600e>^kP zyL3{?X0>)=1f+g`;C-yt6=Y`}6cW;A*OMVx3=_byoK!;Xp6WTFk`gz#CQGOE-K@`F z*2b!S`=Js`d;F%|lz%BW^yhLdQ=>Z=C5Cq9M*dV(z$g5g7nI(>O!nP@ctt7=P_Lr#(kHh_aS#mM9*zW7d7V} z_9@53#Yq!$`}Q)TVBXY1{^W6s1gI%|2ac`DB(*vI(b*|gy8Ur-Gl~LIaL%3lc_Na#aiA^Y8_ z;*hn6MZ3ntA0NVAxc#i0n(eM|7_=>?xKjgHT;oT6BM7j&?$t!@+O_mAg`1ZM)>89m z|LWzvm?6ad12Bc_@(xW)S39K<4Hl5Eo|I4?D?NUN{a<^v2>1P%mCa2DEOo8Gn>q#^ z_vyc3QSMONhtmb6Fz^PmW3F-g^!*Mf4M*5=YYvx9ZNW z)LCqwQqn4UJ(eFa9p!I{Co$2iy}O~IQEIM_>4|3$&vQmD#Ui9Prrw$Bm3gDP-1eqD|EFOgRvPXs=`IN8K^q2oaCzh8>pR5k~<$6;b>e2{9>w-g}lS? zuMUo(JZKH(?ZPgxs3)XIRPOR1sTumgYMc^>q4yPYCl z`XVP|7lPbPdY^Q(=_iA>ATDQ@;DxSM!mvWQ9_5`*=kvSp`A}OFJT{g;JuO43)hd3- zVXoIN2eQ`UL^Uz3`ctD?L&4E#_N@HQ>H&IJEFmU5dMM@37N3!+ihXxZ!}lB1iA$Mh z!<>1Z>FREig9}z69jRdoml%A3LF;U@E_PljN?<3gI*B~A>txFVfN0&5e+>ycq`RTu zIB|k`?La#l<5lMuiz5+`y71U7s{HP3SOKOgM(&TA>(y{VvOT2%d9)RyodqG z#_gjZG#c>NXKUoaiUrzBT0lU+17u!*rM={V8S6?}5TkI_Heh(pBkE><VNX@%i)Ts-?o=*-k>gLhqrjseYAXi%*QL9JllCn(^-o>d0zi^n2S; zxMiO=3^E%XeX%c7U2zdH%lsA$m(ZB&FWYDye1Dn80sqs4(vRz#X2`6weZ^pc)_Y*+ zDaM6%X)?_h2L6t|t}Z8hx_j|GN-7U3?KzsvU}XRxWq#V*1riL?O-L)4E%`M@ZF&a~ zZ~n{J;9ys;jX^cwj=W9iD+2V(qIS6H8^y4zf-DqjFvXk-hCe1M3QWza%of}27yX-k zB$h-uyKNYfx{#A!yF0P~l{fpPs^IBt9fL1%h-?D2QaB{-fN$CPT2uZAIJ5>s@0+^{ zs;7>aGfcdf8u3+Z*RC}n<&i(J6vV^_W`)ZN9fvy{8jzL5aEoL~*Y*+cT5avEAV=-R z-$`T0ouzOA7;;`;JfP${pxwe07ksAbHDneNwQD?ge%Xy)yCGR-uQSyYf>KPzZU9Pi zd?ERFm&b2Geq~!sfgANGYj2#YwSDjv9CC>=*25o*3#y1g?@!R(Rky9M?8}gv@F49W z$<_o@g=IGSdcIi_dpPwMPR!_(6^@c`j<^WQ&F9YdD z?Cztz7#}~gM%QC#vH6-)7uLBC4GSg9eh=%aE^`?JM*-i_}H5$P8k?AY99oH>i1LkKcgq>%lHx>C%zpr9{A3*vTkz{HMCf?!`)uTgPBc80= zh6(LRDAxcC9y<>oKps5`EQahmIWz-X?? zh~_i^7TVlpMPCF>?oV?y@h}HepoT5b;_5vsaT<%M(^F#y2#fp$%Y@l&uU}*Ikm#`N z;gw0pH9R%ac#|}*Ttk;hpn^fD87-paJXnxxC&#+>x`g9cd z`rA)%f;JPXA8?(l6REZxE3=TWPNl{2jwYkD!O#Dbko!B2G=I~FD%qfegjSd(ABe89 j&?1)qKQ6;V)ZcV(h+4|%D>#6MJEr}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# how to save barcode – complete C# guide + +If you need to **how to save barcode** in a .NET application, this tutorial shows you the exact steps. You’ll generate a MicroPDF417 barcode, tweak its dimensions, choose the column count, and finally write the image to disk as a PNG file. + +Creating and persisting barcodes doesn’t require a heavyweight library—just the `BarcodeGenerator` class from the Aspose.BarCode for .NET suite. In the sections below we walk through each configuration option, explain why it matters, and give you a ready‑to‑run code sample. + +## Prerequisites + +- .NET 6.0 or later (the API works with .NET Core and .NET Framework) +- Aspose.BarCode for .NET (NuGet package `Aspose.BarCode`) +- A folder you have write permission to (used in the **how to save barcode** step) + +## Step 1: Create a MicroPDF417 barcode generator + +The first task in any **how to save barcode** workflow is to instantiate a `BarcodeGenerator` with the desired symbology and data. MicroPDF417 is a compact version of the PDF417 matrix barcode, ideal for small labels. + +```csharp +using Aspose.BarCode.Generation; + +// Create a MicroPDF417 barcode with sample text that includes Unicode characters. +BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, // Symbology + "Åspóse.Barcóde©"); // Data to encode +``` + +**Why this matters:** +`EncodeTypes.MicroPdf417` tells the library to use the MicroPDF417 algorithm, which automatically handles error correction and data encoding. Providing Unicode text demonstrates that the generator correctly processes non‑ASCII characters. + +## Step 2: Adjust the X‑dimension (module size) + +The X‑dimension defines the width of a single barcode module (pixel). A smaller value yields a tighter barcode, while a larger value makes it easier to scan. + +```csharp +// Set each module to 2 pixels wide. +barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +**Why this matters:** +Setting `barcode XDimension` ensures the barcode fits the target label size. If you skip this step, the default size may be too large for mobile screens or small printouts. + +## Step 3: Choose the number of columns for the PDF417 matrix + +MicroPDF417 supports 1–4 columns. More columns produce a squarer barcode; fewer columns stretch it vertically. + +```csharp +// Use the maximum of 4 columns for a compact, square shape. +barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; +``` + +**Why this matters:** +Adjusting **PDF417 columns** lets you balance readability against space constraints. In many scanning scenarios, a 4‑column layout offers the best compromise. + +## Step 4: Save the generated barcode as a PNG image + +Now that the barcode is configured, you can finally answer “**how to save barcode**” by writing it to a file. PNG preserves loss‑less quality, which is essential for sharp scanning. + +```csharp +// Define the output path (ensure the directory exists). +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + +// Export the barcode to PNG. +barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + +Console.WriteLine($"Barcode saved to: {outputPath}"); +``` + +**Why this matters:** +`barcode image format` determines the visual fidelity of the saved file. PNG is preferred for most UI and printing workflows because it retains crisp edges without compression artifacts. + +## Full, runnable example + +Putting everything together gives you a self‑contained program you can copy, paste, and run. + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // 1️⃣ Create the barcode generator. + BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, + "Åspóse.Barcóde©"); + + // 2️⃣ Adjust module size. + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; + + // 3️⃣ Set column count (1‑4 allowed). + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; + + // 4️⃣ Define output location. + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + + // 5️⃣ Save as PNG. + barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"✅ Barcode saved to: {outputPath}"); + } +} +``` + +**Expected output** + +Running the program creates `MicroPdf417.png` on your desktop. Opening the file shows a clear MicroPDF417 barcode that encodes the string `Åspóse.Barcóde©`. Scanning it with any standard barcode scanner returns the original text. + +## Common questions and edge cases + +| Question | Answer | +|----------|--------| +| *Can I use JPEG instead of PNG?* | Yes. Replace `BarCodeImageFormat.Png` with `BarCodeImageFormat.Jpeg`. JPEG is smaller but introduces compression artifacts that may affect scanning. | +| *What if my data exceeds MicroPDF417 capacity?* | MicroPDF417 can store up to 1 KB of data. For larger payloads switch to full `EncodeTypes.Pdf417`. | +| *How do I change the barcode color?* | Use `barcodeGenerator.Parameters.Barcode.BarColor` and `BackColor` to set foreground/background colors before calling `Save`. | +| *Is the X‑dimension limited to integer pixels?* | The property accepts a `float`. Values like `1.5f` are allowed, but most printers work best with whole‑pixel sizes. | + +## Pro tips for reliable **how to save barcode** implementations + +- **Validate the output folder** with `Directory.Exists` before calling `Save` to avoid `IOException`. +- **Dispose the generator** (`barcodeGenerator.Dispose()`) when you generate many barcodes in a loop to free native resources. +- **Test with real scanners** after saving; visual inspection isn’t enough for production deployments. +- **Keep the library up‑to‑date**—newer Aspose.BarCode releases add symbology improvements and bug fixes. + +## Conclusion + +You now know **how to save barcode** images in C# using the Aspose.BarCode library. By creating a MicroPDF417 barcode, configuring the **barcode XDimension**, selecting the appropriate **PDF417 columns**, and exporting to a **barcode image format** like PNG, you have a complete, production‑ready solution. + +Next, explore related topics such as **C# barcode generation for QR codes**, **batch barcode creation**, or **embedding barcodes in PDF reports**. Each of these builds on the same principles demonstrated here, letting you expand your imaging toolkit with confidence. + + +## 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 Save PNG using DataMatrix C40 with Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-c40/) +- [How to Set Border for ITF-14 Barcode Customization](/barcode/english/net/itf-14-barcode-customization/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) + +{{< /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/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/og-image.png b/barcode/english/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/og-image.png new file mode 100644 index 0000000000000000000000000000000000000000..533cf3a964085a8bbe0764ba1515db5cf229c8ab GIT binary patch literal 51309 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 |NX(1 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 +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Read PDF417 barcode in C# – barcode reader example + +If you need to read PDF417 barcode data from an image, this guide shows you how to do it with the **BarCodeReader** class in C#. You’ll learn a barcode reader example that also handles macro PDF417 and can read multiple barcodes in a single image. + +Working with barcodes often means dealing with different image sources, varying lighting conditions, and sometimes composite data such as macro PDF417 segments. This tutorial covers everything you need to decode a PDF417 barcode, extract its extended fields, and process several barcodes from the same picture. By the end you will have a runnable console program that reads barcodes from an image file and prints detailed information to the console. + +## What you’ll need + +Before you start, make sure you have: + +* .NET 6.0 SDK or later installed +* A recent version of the **Aspose.BarCode for .NET** NuGet package (or any compatible library that provides `BarCodeReader` and `DecodeType.MacroPdf417`) +* An image file that contains a PDF417 or macro PDF417 barcode (the sample uses `ExtPDF417Meta.png`) +* A code editor or IDE such as Visual Studio 2022 + +No additional services or external APIs are required. + +## Setting up the project for barcode reading + +1. **Create a new console project** + + ```bash + dotnet new console -n Pdf417ReaderDemo + cd Pdf417ReaderDemo + ``` + +2. **Add the barcode library** + + ```bash + dotnet add package Aspose.BarCode --version 23.12 + ``` + +3. **Copy the barcode image** + + Place `ExtPDF417Meta.png` (or any image that contains a PDF417 barcode) into the project folder. + For this tutorial we assume the file resides at `YOUR_DIRECTORY/ExtPDF417Meta.png`. + +The project is now ready to compile and run the barcode reader example. + +## How to read PDF417 barcode with BarCodeReader + +The core of the solution is a `using` block that creates a `BarCodeReader` instance, specifies `DecodeType.MacroPdf417`, and iterates over every detected barcode. The following code is a complete, self‑contained program that you can paste into `Program.cs`. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.BarCodeRecognition; + +class Program +{ + static void Main() + { + // Path to the image that contains one or more PDF417 barcodes + const string imagePath = "YOUR_DIRECTORY/ExtPDF417Meta.png"; + + // Step 1: Create a BarCodeReader for a macro PDF417 image + using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.MacroPdf417)) + { + // Step 2: Read all barcodes from the image + foreach (BarCodeResult result in reader.ReadBarCodes()) + { + // Step 3: Output basic barcode information + Console.WriteLine($"CodeType: {result.CodeTypeName}"); + Console.WriteLine($"CodeText: {result.CodeText}"); + + // Step 4: Output macro PDF417 specific fields + Console.WriteLine($"Pdf417MacroFileID: {result.Extended.Pdf417.MacroPdf417FileID}"); + Console.WriteLine($"Pdf417MacroSegmentID: {result.Extended.Pdf417.MacroPdf417SegmentID}"); + Console.WriteLine($"Pdf417MacroSegmentsCount: {result.Extended.Pdf417.MacroPdf417SegmentsCount}"); + Console.WriteLine($"Pdf417MacroFileName: {result.Extended.Pdf417.MacroPdf417FileName}"); + Console.WriteLine($"Pdf417MacroChecksum: {result.Extended.Pdf417.MacroPdf417Checksum}"); + Console.WriteLine($"Pdf417MacroFileSize: {result.Extended.Pdf417.MacroPdf417FileSize}"); + Console.WriteLine($"Pdf417MacroTimeStamp: {result.Extended.Pdf417.MacroPdf417TimeStamp}"); + Console.WriteLine($"Pdf417MacroAddressee: {result.Extended.Pdf417.MacroPdf417Addressee}"); + Console.WriteLine($"Pdf417MacroSender: {result.Extended.Pdf417.MacroPdf417Sender}"); + Console.WriteLine($"MacroPdf417Terminator: {result.Extended.Pdf417.MacroPdf417Terminator}"); + Console.WriteLine(new string('-', 40)); + } + + // Pro tip: If no barcodes are found, ReadBarCodes() returns an empty collection. + // You can check reader.HasBarcodes for a quick boolean test. + if (!reader.HasBarcodes) + { + Console.WriteLine("No barcodes detected in the provided image."); + } + } + } +} +``` + +**Why this works**: + +* `DecodeType.MacroPdf417` tells the reader to look for the macro extension of PDF417, which carries additional metadata such as file ID, segment count, and timestamps. +* The `using` statement guarantees that unmanaged resources (file handles, native decoding buffers) are released promptly. +* The `foreach` loop automatically processes **all** barcodes that the image contains, satisfying the *read multiple barcodes* requirement. + +When you run the program (`dotnet run`), you should see output similar to the following: + +``` +CodeType: MacroPdf417 +CodeText: https://example.com/document.pdf +Pdf417MacroFileID: 12345 +Pdf417MacroSegmentID: 1 +Pdf417MacroSegmentsCount: 3 +Pdf417MacroFileName: document.pdf +Pdf417MacroChecksum: 0x1A2B +Pdf417MacroFileSize: 204800 +Pdf417MacroTimeStamp: 2024-07-15T10:25:00Z +Pdf417MacroAddressee: John Doe +Pdf417MacroSender: Acme Corp +MacroPdf417Terminator: True +---------------------------------------- +``` + +If the image contains more than one PDF417 barcode, the loop prints a separate block for each barcode, thereby demonstrating how to **read multiple barcodes** from a single picture. + +## Reading multiple barcodes from an image + +The same `BarCodeReader` instance can decode several barcode types at once. To broaden the scope from only macro PDF417 to any PDF417 (or even QR, Code128, etc.), adjust the `DecodeType` flag: + +```csharp +using (BarCodeReader reader = new BarCodeReader(imagePath, + DecodeType.Pdf417 | DecodeType.MacroPdf417 | DecodeType.QR | DecodeType.Code128)) +{ + // The rest of the code stays unchanged. +} +``` + +*`DecodeType`* is a bitmask, so you can combine any number of supported formats. This flexibility makes the snippet a **barcode reader example** that works for a wide variety of use cases, such as scanning product labels, tickets, or ID cards. + +## Accessing macro PDF417 fields safely + +Macro PDF417 adds a rich set of extended properties. However, not every barcode includes every field. Accessing a missing property can throw a `NullReferenceException`. The safest approach is to verify each property before printing: + +```csharp +var macro = result.Extended?.Pdf417; +if (macro != null) +{ + Console.WriteLine($"Pdf417MacroFileID: {macro.MacroPdf417FileID ?? "N/A"}"); + // Repeat for other fields... +} +``` + +*Why this matters*: In real‑world deployments you may receive plain PDF417 barcodes that lack macro data. The defensive check ensures your application continues to run without crashing. + +## Common pitfalls and best practices + +| Issue | Why it happens | Recommended fix | +|-------|----------------|-----------------| +| Image path is incorrect | `BarCodeReader` throws a file‑not‑found exception before any decoding occurs | Use `Path.Combine` and validate the file exists with `File.Exists` | +| Low‑resolution image | The decoder cannot locate barcode edges, resulting in zero detections | Provide a minimum resolution of 300 dpi for reliable results | +| Barcode rotated > 45° | Many libraries assume upright orientation | Enable `reader.RecognitionOptions.RotateImage = true` if the + + +## 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 Read DataMatrix Barcodes with Aspose.BarCode for .NET](/barcode/english/net/datamatrix-barcode-reading/) +- [Read DataMatrix barcode C# – Generate DataMatrix Mode (Auto)](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-auto/) +- [Read Barcode from Image – Mastering Barcode Region Extraction in Java with Aspose.BarCode](/barcode/english/java/advanced-settings-and-optimization/extracting-barcode-region-information/) + +{{< /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/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/og-image.png b/barcode/english/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/og-image.png new file mode 100644 index 0000000000000000000000000000000000000000..02d868fd7e67ac520c6979dc29f85a5e38b1c471 GIT binary patch literal 48283 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

q*Q!pHswH?04g&u&UAHFs~EXtUy`5i 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 QJs!QHtg1{I}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/french/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md b/barcode/french/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..de58a0e6a --- /dev/null +++ b/barcode/french/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-08-03 +description: Créez rapidement un code‑barres PDF417 en C#. Apprenez comment générer + un code‑barres PDF417 et comment enregistrer l’image du code‑barres au format PNG + avec Aspose.Barcode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create pdf417 barcode +- how to generate pdf417 barcode +- how to save barcode image +language: fr +lastmod: 2026-08-03 +og_description: Créez un code‑barres PDF417 en C# avec Aspose.Barcode. Suivez ce guide + pour générer un code‑barres PDF417 et apprendre à enregistrer l’image du code‑barres + efficacement. +og_image_alt: Screenshot of a generated compact PDF417 barcode saved as PNG +og_title: Créer un code-barres PDF417 en C# – tutoriel complet de codage +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + headline: Create PDF417 barcode in C# – step‑by‑step guide + type: TechArticle +- description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + name: Create PDF417 barcode in C# – step‑by‑step guide + steps: + - name: Why this matters + text: '* **EncodeTypes.Pdf417** tells the library to use the PDF417 standard, + which supports large data payloads and error correction. * Providing Unicode + characters proves the generator handles non‑ASCII input without extra configuration.' + - name: Practical tip + text: If you need a taller barcode for limited horizontal space, increase `Columns`. + Setting `Truncate` to `true` reduces the overall height by removing quiet zones, + which is ideal for mobile screens. + - name: Expected result + text: Running the program creates `CompactPdf417.png` in the project folder. Opening + the file shows a compact PDF417 barcode that encodes the string *Åspóse.Barcóde©*. + The image can be embedded in HTML, PDF reports, or printed on labels. + - name: Verifying the output + text: 'After the program finishes, you can verify the file exists with a quick + command:' + type: HowTo +tags: +- barcode +- C# +- PDF417 +- image generation +title: Créer un code‑barres PDF417 en C# – guide étape par étape +url: /fr/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Créer un code-barres PDF417 en C# – guide étape par étape + +Si vous devez **créer un code-barres PDF417** dans une application .NET, ce guide vous montre exactement comment générer un code-barres PDF417 et comment enregistrer l'image du code-barres. Vous obtiendrez un fichier PNG qui peut être utilisé dans des rapports, des tickets ou des applications de numérisation mobile. + +Le tutoriel couvre tout, de la configuration du projet au fichier PNG final. Aucune documentation externe n'est requise ; il suffit de suivre les étapes et d'exécuter le code. + +## Ce dont vous avez besoin + +* .NET 6.0 SDK ou version ultérieure (le code fonctionne également avec .NET Framework 4.7+) +* Visual Studio 2022 ou tout IDE supportant C# +* Accès à Internet pour installer le package NuGet **Aspose.Barcode for .NET** + +Ces prérequis garantissent que le code se compile sans configuration supplémentaire. + +## Créer un code-barres PDF417 – configuration du projet + +1. Ouvrez une invite de commande et créez un nouveau projet console : + + ```bash + dotnet new console -n Pdf417Demo + cd Pdf417Demo + ``` + +2. Ajoutez la bibliothèque Aspose.Barcode : + + ```bash + dotnet add package Aspose.Barcode + ``` + +3. Ouvrez le fichier `Program.cs` généré. Les instructions `using` en haut vous donnent accès aux classes de code-barres : + + ```csharp + using System; + using Aspose.Barcode.Generation; + using Aspose.Barcode; + ``` + +Le projet est maintenant prêt à **créer un code-barres PDF417**. + +## Comment générer un code-barres PDF417 avec Aspose.Barcode + +Le cœur de la création du code-barres se trouve dans la classe `BarcodeGenerator`. Vous spécifiez la symbologie (`EncodeTypes.Pdf417`) et les données que vous souhaitez encoder. + +```csharp +// Step 1: Initialise the generator with PDF417 symbology and sample text. +// The text includes Unicode characters to demonstrate full‑range support. +BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Pdf417, "Åspóse.Barcóde©"); +``` + +### Pourquoi c'est important + +* **EncodeTypes.Pdf417** indique à la bibliothèque d'utiliser la norme PDF417, qui prend en charge de grandes charges de données et la correction d'erreurs. +* Fournir des caractères Unicode prouve que le générateur gère les entrées non‑ASCII sans configuration supplémentaire. + +## Comment configurer l'apparence du code-barres + +Vous pouvez contrôler la taille de chaque module, le nombre de colonnes, et si le code-barres utilise le mode compact (truncaté). Ces paramètres affectent à la fois la lisibilité et la taille du fichier. + +```csharp +// Step 2: Set the module (X) dimension – each barcode element will be 2 pixels wide. +generator.Parameters.Barcode.XDimension.Pixels = 2; + +// Step 3: Configure PDF417‑specific options. +generator.Parameters.Barcode.Pdf417.Columns = 3; // Number of columns (affects height) +generator.Parameters.Barcode.Pdf417.Truncate = true; // Enable compact mode +``` + +### Astuce pratique + +Si vous avez besoin d'un code-barres plus haut pour un espace horizontal limité, augmentez `Columns`. Mettre `Truncate` à `true` réduit la hauteur globale en supprimant les zones silencieuses, ce qui est idéal pour les écrans mobiles. + +## Comment enregistrer l'image du code-barres au format PNG + +Après avoir configuré le générateur, appelez `Save` avec un chemin de fichier et le format d'image souhaité. La méthode écrit l'image directement sur le disque. + +```csharp +// Step 4: Save the generated barcode as a PNG image. +string outputPath = @"./CompactPdf417.png"; +generator.Save(outputPath, BarCodeImageFormat.Png); +Console.WriteLine($"Barcode saved to {outputPath}"); +``` + +### Résultat attendu + +L'exécution du programme crée `CompactPdf417.png` dans le dossier du projet. L'ouverture du fichier montre un code-barres PDF417 compact qui encode la chaîne *Åspóse.Barcóde©*. L'image peut être intégrée dans du HTML, des rapports PDF, ou imprimée sur des étiquettes. + +## Code source complet + +Ci-dessous se trouve le programme complet et exécutable. Copiez-le dans `Program.cs` et exécutez `dotnet run`. + +```csharp +using System; +using Aspose.Barcode.Generation; +using Aspose.Barcode; + +namespace Pdf417Demo +{ + class Program + { + static void Main() + { + // Initialise the generator with PDF417 symbology and sample text. + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.Pdf417, + "Åspóse.Barcóde©"); + + // Set the module width to 2 pixels. + generator.Parameters.Barcode.XDimension.Pixels = 2; + + // Configure PDF417‑specific options. + generator.Parameters.Barcode.Pdf417.Columns = 3; + generator.Parameters.Barcode.Pdf417.Truncate = true; + + // Define the output file path. + string outputPath = @"./CompactPdf417.png"; + + // Save the barcode as a PNG image. + generator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"Barcode saved to {outputPath}"); + } + } +} +``` + +### Vérification de la sortie + +Après la fin du programme, vous pouvez vérifier que le fichier existe avec une commande rapide : + +```bash +dotnet run && ls -l CompactPdf417.png +``` + +Si le fichier apparaît, le processus de **création d'un code-barres PDF417** a réussi. + +## Variations courantes et cas limites + +| Situation | Ajustement | +|-----------|------------| +| **Chaîne de données plus longue** | Augmentez `Columns` ou définissez `Rows` pour accueillir plus de codewords. | +| **Format d'image différent** | Remplacez `BarCodeImageFormat.Png` par `Jpeg`, `Bmp` ou `Gif`. | +| **Résolution plus élevée** | Définissez `generator.Parameters.ImageResolution` avant `Save`. | +| **Couleur de fond** | Utilisez `generator.Parameters.Barcode.ImageBackgroundColor = Color.White;` | +| **Gestion des exceptions** | Enveloppez `generator.Save` dans un bloc `try/catch` pour capturer les erreurs d'E/S. | + +## Conclusion + +Vous savez maintenant comment **créer un code-barres PDF417** en C# avec Aspose.Barcode, configurer son apparence, et **enregistrer l'image du code-barres** au format PNG. L'exemple complet montre chaque étape requise, de la configuration du projet à la vérification, afin que vous puissiez intégrer la génération de code-barres dans toute solution .NET. + +Ensuite, envisagez d'explorer des sujets connexes tels que **comment générer des QR codes**, **intégrer des codes-barres dans des documents PDF**, ou **personnaliser les couleurs des codes-barres**. Chacun de ces sujets s'appuie sur la même API de générateur, vous permettant d'étendre les capacités de numérisation de votre application avec un effort minimal. 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 et fonctionnels avec des explications étape par étape pour vous aider à maîtriser des fonctionnalités supplémentaires de l'API et explorer des approches d'implémentation alternatives dans vos propres projets. + +- [Comment créer un code-barres – PDF417 compact avec Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [Comment générer des codes-barres DataMatrix (ECC 200) avec Aspose.BarCode pour .NET](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-ecc-200-configuration/) +- [Comment générer un code-barres Aztec avec un ratio d'aspect personnalisé en utilisant Aspose.BarCode pour .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) + +{{< /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/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md b/barcode/french/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md new file mode 100644 index 000000000..cfedbbd91 --- /dev/null +++ b/barcode/french/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md @@ -0,0 +1,241 @@ +--- +category: general +date: 2026-08-03 +description: Générez un code‑barres PDF417 en C# avec Aspose.BarCode. Apprenez étape + par étape comment ajouter des métadonnées Macro PDF417 et enregistrer en PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- generate PDF417 barcode C# +- Macro PDF417 barcode +- Aspose.BarCode +- C# barcode generation +- PDF417 metadata +- barcode image PNG +language: fr +lastmod: 2026-08-03 +og_description: Générez un code‑barres PDF417 en C# avec Aspose.BarCode. Ce tutoriel + montre comment intégrer les métadonnées Macro PDF417 et exporter le résultat sous + forme d’image PNG. +og_image_alt: Screenshot of a generated PDF417 barcode created with C# +og_title: Générer un code‑barres PDF417 C# – tutoriel pas à pas Aspose.BarCode +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + headline: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + type: TechArticle +- description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + name: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + steps: + - name: Create a Macro PDF417 barcode generator + text: First, instantiate `BarcodeGenerator` with the `EncodeTypes.MacroPdf417` + enum. The constructor also accepts the text you want to encode – in this example + we use a string that contains Unicode characters to demonstrate full‑width support. + - name: Adjust basic barcode appearance + text: Next, define the visual size of the barcode. `XDimension.Pixels` controls + the width of a single module (the smallest black/white square), while `Pdf417.Columns` + influences the overall shape by setting the number of columns. + - name: Populate Macro PDF417 metadata + text: Macro PDF417 allows you to embed file‑level information that many back‑office + systems rely on (e.g., file ID, segment ID, timestamp). The following properties + illustrate the most common fields. + - name: Save the barcode image as PNG + text: Finally, call `Save` to write the barcode to disk. PNG is lossless, making + it ideal for high‑quality scanning. + - name: How to verify the result + text: 1. Open `ExtPDF417Meta.png` in any image viewer. 2. Use a PDF417 scanner + app (e.g., *Zebra Scanner* or *BarCode Reader* on Android/iOS). 3. Confirm that + the decoded payload includes the original text and a JSON‑like block with the + macro fields you set. + - name: Next steps + text: '- Experiment with other barcode formats (e.g., QR, Code128) by changing + `EncodeTypes`. - Explore `Pdf417.ErrorCorrectionLevel` to improve scan reliability + under poor lighting. - Integrate the generated image into a PDF report using + Aspose.PDF for end‑to‑end document automation.' + type: HowTo +tags: +- PDF417 +- C# +- Barcode +title: Générer un code‑barres PDF417 C# – guide complet avec Aspose.BarCode +url: /fr/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Générer un code‑barres PDF417 C# – guide complet + +Si vous devez **générer un code‑barres PDF417 C#** pour un système logistique ou de gestion de documents, ce tutoriel vous montre exactement comment le faire avec Aspose.BarCode. Vous verrez comment configurer le code‑barres, intégrer les métadonnées Macro PDF417, et enregistrer le résultat sous forme d’image PNG en quelques lignes de code. + +Générer un code‑barres PDF417 en C# implique souvent de gérer des informations supplémentaires telles que les identifiants de fichier, les numéros de segment ou les horodatages. Ce guide couvre ces détails, afin que vous n'ayez pas à chercher dans une documentation dispersée. À la fin de l'article, vous disposerez d'un programme prêt à l'emploi qui produit une image de code‑barres Macro PDF417 conforme. + +## Ce dont vous avez besoin + +- .NET 6.0 ou ultérieur (le code fonctionne également avec .NET Framework 4.7+) +- Aspose.BarCode pour .NET (v23.9 ou plus récent) – installer via NuGet `Install-Package Aspose.BarCode` +- Un environnement de développement tel que Visual Studio 2022 ou Visual Studio Code +- Familiarité de base avec la syntaxe C# + +> **Astuce :** Utilisez la dernière version d’Aspose.BarCode pour profiter des corrections de bugs et du support des dernières spécifications PDF417. + +## Comment générer un code‑barres PDF417 C# avec Aspose.BarCode + +Le processus se compose de quatre étapes logiques. Chaque étape est encapsulée dans un bloc de code clair afin que vous puissiez copier, coller et l’exécuter immédiatement. + +### Étape 1 : Créer un générateur de code‑barres Macro PDF417 + +Tout d'abord, instanciez `BarcodeGenerator` avec l'énumération `EncodeTypes.MacroPdf417`. Le constructeur accepte également le texte que vous souhaitez encoder – dans cet exemple nous utilisons une chaîne contenant des caractères Unicode pour démontrer la prise en charge des largeurs complètes. + +```csharp +using System; +using Aspose.BarCode.Generation; + +// Create a Macro PDF417 barcode generator with the desired text +using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) +{ + // Subsequent steps go inside this using block +``` + +*Pourquoi c’est important* : Le type `MacroPdf417` indique à Aspose.BarCode de traiter le symbole comme un code‑barres macro, qui peut contenir des métadonnées supplémentaires au niveau du fichier. Sans ce drapeau, les champs supplémentaires que vous définissez plus tard seraient ignorés. + +### Étape 2 : Ajuster l’apparence de base du code‑barres + +Ensuite, définissez la taille visuelle du code‑barres. `XDimension.Pixels` contrôle la largeur d’un seul module (le plus petit carré noir/blanc), tandis que `Pdf417.Columns` influence la forme globale en définissant le nombre de colonnes. + +```csharp + // Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol +``` + +*Pourquoi c’est important* : Un `XDimension` plus petit produit une image à plus haute résolution, ce qui est utile lorsque le code‑barres doit être scanné depuis un écran. Modifier le nombre de colonnes peut aider à adapter le code‑barres à un espace limité sans sacrifier la capacité de données. + +### Étape 3 : Remplir les métadonnées Macro PDF417 + +Macro PDF417 vous permet d’intégrer des informations au niveau du fichier dont de nombreux systèmes back‑office dépendent (par ex., ID de fichier, ID de segment, horodatage). Les propriétés suivantes illustrent les champs les plus courants. + +```csharp + // Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; +``` + +*Pourquoi c’est important* : Chaque champ correspond directement à un segment de la spécification du code‑barres macro. Par exemple, `MacroPdf417FileID` identifie de façon unique le fichier logique, tandis que `MacroPdf417SegmentsCount` indique au lecteur combien de parties attendre. Fournir des métadonnées précises garantit que les systèmes en aval peuvent reconstruire le document original sans erreur. + +### Étape 4 : Enregistrer l’image du code‑barres au format PNG + +Enfin, appelez `Save` pour écrire le code‑barres sur le disque. PNG est sans perte, ce qui le rend idéal pour une numérisation de haute qualité. + +```csharp + // Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); +} +``` + +*Pourquoi c’est important* : L’énumération `BarCodeImageFormat.Png` garantit que le fichier de sortie contient exactement les données de pixels que vous avez configurées. Si vous avez besoin d’un format vectoriel pour le redimensionnement, remplacez `Png` par `Svg` – Aspose.BarCode le prend en charge nativement. + +#### Résultat attendu + +L’exécution du programme complet crée un fichier nommé **ExtPDF417Meta.png**. L’image montre un symbole PDF417 dense et multi‑lignes qui inclut le texte « Åspóse.Barcóde© » ainsi que les métadonnées macro que vous avez fournies. Scanner le code‑barres avec un lecteur compatible PDF417 renvoie le texte original plus un bloc de données structuré contenant l’ID du fichier, l’ID du segment, l’horodatage et d’autres champs. + +![Capture d’écran du code‑barres PDF417 généré](/images/pdf417-example.png){: .center-image alt="exemple de sortie de génération de code‑barres PDF417 C#"} + +## Code source complet (prêt à copier‑coller) + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace Pdf417MacroDemo +{ + class Program + { + static void Main() + { + // Step 1: Create a Macro PDF417 barcode generator with the desired text + using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) + { + // Step 2: Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol + + // Step 3: Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; + + // Step 4: Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); + } + + Console.WriteLine("Macro PDF417 barcode generated successfully."); + } + } +} +``` + +### Comment vérifier le résultat + +1. Ouvrez `ExtPDF417Meta.png` dans n’importe quel visualiseur d’images. +2. Utilisez une application de scanner PDF417 (par ex., *Zebra Scanner* ou *BarCode Reader* sur Android/iOS). +3. Confirmez que la charge décodée comprend le texte original et un bloc de type JSON contenant les champs macro que vous avez définis. + +## Questions fréquentes et gestion des cas limites + +| Question | Réponse | +|----------|--------| +| **Puis‑je générer une image vectorielle au lieu de PNG ?** | Oui. Remplacez `BarCodeImageFormat.Png` par `BarCodeImageFormat.Svg`. Le reste du code reste inchangé. | +| **Que faire si mes données dépassent la capacité par défaut ?** | Augmentez `Pdf417.Columns` ou définissez `Pdf417.Rows` manuellement. Des valeurs plus grandes permettent plus de codewords par segment. | +| **Le texte encodé prend‑t‑il en charge Unicode ?** | Absolument. L’exemple utilise « Åspóse.Barcóde© ». Aspose.BarCode passe automatiquement à l’encodage UTF‑8 lorsque nécessaire. | +| **Dois‑je obtenir une licence pour Aspose.BarCode ?** | En production, vous devez appliquer une licence pour éviter le filigrane d’évaluation. Appelez `License license = new License(); license.SetLicense("Aspose.BarCode.lic");` avant de créer le générateur. | +| **Comment gérer les erreurs lors de l’enregistrement du fichier ?** | Enveloppez l’appel `Save` dans un bloc try/catch et consignez `IOException` ou `BarCodeException` pour le dépannage. | + +## Conclusion + +Vous savez maintenant comment **générer un code‑barres PDF417 C#** en utilisant Aspose.BarCode, intégrer des métadonnées complètes Macro PDF417, et exporter le résultat sous forme d’image PNG de haute qualité. Les étapes — création du générateur, ajustement de l’apparence, remplissage des métadonnées et enregistrement de l’image — constituent un modèle réutilisable que vous pouvez adapter pour les factures, les étiquettes d’expédition ou tout scénario nécessitant des données de code‑barres riches. + +### Prochaines étapes + +- Expérimentez d’autres formats de code‑barres (par ex., QR, Code128) en modifiant `EncodeTypes`. +- Explorez `Pdf417.ErrorCorrectionLevel` pour améliorer la fiabilité du scan sous un éclairage faible. +- Intégrez l’image générée dans un rapport PDF en utilisant Aspose.PDF pour une automatisation de documents de bout en bout. + +N’hésitez pas à modifier les champs de métadonnées pour qu’ils correspondent à vos règles métier, et laissez la génération de code‑barres devenir une partie fluide de vos applications C#. 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 é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. + +- [Comment créer un code‑barres – PDF417 compact avec Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [Comment créer un code‑barres – PDF417 compact avec Aspose.BarCode (allemand)](/barcode/german/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [Bibliothèque de code‑barres Java – Ajouter un code‑barres à un PDF avec Aspose](/barcode/english/java/barcode-basics/adding-barcode-to-pdf-document/) + +{{< /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/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md b/barcode/french/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md new file mode 100644 index 000000000..830cce3d9 --- /dev/null +++ b/barcode/french/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md @@ -0,0 +1,190 @@ +--- +category: general +date: 2026-08-03 +description: Comment enregistrer rapidement un code-barres avec C#. Apprenez la génération + de code-barres MicroPDF417, définissez les dimensions, choisissez les colonnes et + exportez en PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to save barcode +- MicroPDF417 barcode +- C# barcode generation +- barcode XDimension +- PDF417 columns +- barcode image format +language: fr +lastmod: 2026-08-03 +og_description: Comment enregistrer un code-barres en C# avec un exemple complet. + Générer un code-barres MicroPDF417, ajuster la taille, définir les colonnes et exporter + en PNG. +og_image_alt: Screenshot showing a MicroPDF417 barcode saved as a PNG file +og_title: comment enregistrer un code‑barres – tutoriel C# étape par étape +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: how to save barcode quickly using C#. Learn MicroPDF417 barcode generation, + set dimensions, choose columns, and export to PNG. + headline: how to save barcode as an image – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- imaging +title: Comment enregistrer un code‑barres en tant qu’image – guide complet C# +url: /fr/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# comment enregistrer un code-barres – guide complet C# + +Si vous avez besoin de **comment enregistrer un code-barres** dans une application .NET, ce tutoriel vous montre les étapes exactes. Vous générerez un code‑barres MicroPDF417, ajusterez ses dimensions, choisirez le nombre de colonnes, puis écrirez enfin l’image sur le disque au format PNG. + +Créer et persister des codes‑barres ne nécessite pas de bibliothèque lourde — seulement la classe `BarcodeGenerator` de la suite Aspose.BarCode for .NET. Dans les sections ci‑dessous, nous parcourons chaque option de configuration, expliquons pourquoi elle est importante et vous fournissons un exemple de code prêt à l’emploi. + +## Prérequis + +- .NET 6.0 ou version ultérieure (l’API fonctionne avec .NET Core et .NET Framework) +- Aspose.BarCode for .NET (package NuGet `Aspose.BarCode`) +- Un dossier dans lequel vous avez les droits d’écriture (utilisé à l’étape **comment enregistrer un code-barres**) + +## Étape 1 : Créer un générateur de code‑barres MicroPDF417 + +La première tâche dans tout flux **comment enregistrer un code-barres** consiste à instancier un `BarcodeGenerator` avec la symbologie et les données souhaitées. MicroPDF417 est une version compacte du code‑barres matriciel PDF417, idéale pour les petites étiquettes. + +```csharp +using Aspose.BarCode.Generation; + +// Create a MicroPDF417 barcode with sample text that includes Unicode characters. +BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, // Symbology + "Åspóse.Barcóde©"); // Data to encode +``` + +**Pourquoi c’est important :** +`EncodeTypes.MicroPdf417` indique à la bibliothèque d’utiliser l’algorithme MicroPDF417, qui gère automatiquement la correction d’erreurs et l’encodage des données. Fournir du texte Unicode montre que le générateur traite correctement les caractères non‑ASCII. + +## Étape 2 : Ajuster la dimension X (taille du module) + +La dimension X définit la largeur d’un seul module du code‑barres (pixel). Une valeur plus petite donne un code‑barres plus compact, tandis qu’une valeur plus grande le rend plus facile à scanner. + +```csharp +// Set each module to 2 pixels wide. +barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +**Pourquoi c’est important :** +Définir `barcode XDimension` garantit que le code‑barres s’adapte à la taille de l’étiquette cible. Si vous sautez cette étape, la taille par défaut peut être trop grande pour les écrans mobiles ou les petites impressions. + +## Étape 3 : Choisir le nombre de colonnes pour la matrice PDF417 + +MicroPDF417 prend en charge 1 à 4 colonnes. Plus de colonnes produisent un code‑barres plus carré ; moins de colonnes l’étirent verticalement. + +```csharp +// Use the maximum of 4 columns for a compact, square shape. +barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; +``` + +**Pourquoi c’est important :** +Ajuster les **colonnes PDF417** vous permet d’équilibrer lisibilité et contraintes d’espace. Dans de nombreux scénarios de numérisation, une disposition à 4 colonnes offre le meilleur compromis. + +## Étape 4 : Enregistrer le code‑barres généré en tant qu’image PNG + +Maintenant que le code‑barres est configuré, vous pouvez enfin répondre à la question « **comment enregistrer un code-barres** » en l’écrivant dans un fichier. Le PNG conserve une qualité sans perte, ce qui est essentiel pour une numérisation nette. + +```csharp +// Define the output path (ensure the directory exists). +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + +// Export the barcode to PNG. +barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + +Console.WriteLine($"Barcode saved to: {outputPath}"); +``` + +**Pourquoi c’est important :** +`barcode image format` détermine la fidélité visuelle du fichier enregistré. Le PNG est privilégié pour la plupart des flux UI et d’impression car il conserve des bords nets sans artefacts de compression. + +## Exemple complet, exécutable + +Assembler le tout vous donne un programme autonome que vous pouvez copier, coller et exécuter. + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // 1️⃣ Create the barcode generator. + BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, + "Åspóse.Barcóde©"); + + // 2️⃣ Adjust module size. + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; + + // 3️⃣ Set column count (1‑4 allowed). + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; + + // 4️⃣ Define output location. + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + + // 5️⃣ Save as PNG. + barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"✅ Barcode saved to: {outputPath}"); + } +} +``` + +**Résultat attendu** + +L’exécution du programme crée `MicroPdf417.png` sur votre bureau. L’ouverture du fichier montre un code‑barres MicroPDF417 clair qui encode la chaîne `Åspóse.Barcóde©`. Le scanner le lit et renvoie le texte original. + +## Questions fréquentes et cas particuliers + +| Question | Réponse | +|----------|--------| +| *Puis‑je utiliser JPEG au lieu de PNG ?* | Oui. Remplacez `BarCodeImageFormat.Png` par `BarCodeImageFormat.Jpeg`. JPEG est plus léger mais introduit des artefacts de compression pouvant affecter la lecture. | +| *Que faire si mes données dépassent la capacité du MicroPDF417 ?* | MicroPDF417 peut stocker jusqu’à 1 KB de données. Pour des charges plus importantes, passez à `EncodeTypes.Pdf417`. | +| *Comment changer la couleur du code‑barres ?* | Utilisez `barcodeGenerator.Parameters.Barcode.BarColor` et `BackColor` pour définir les couleurs avant d’appeler `Save`. | +| *La dimension X est‑elle limitée à des pixels entiers ?* | La propriété accepte un `float`. Des valeurs comme `1.5f` sont autorisées, mais la plupart des imprimantes fonctionnent mieux avec des tailles entières. | + +## Astuces pro pour des implémentations fiables de **comment enregistrer un code-barres** + +- **Validez le dossier de sortie** avec `Directory.Exists` avant d’appeler `Save` afin d’éviter les `IOException`. +- **Libérez le générateur** (`barcodeGenerator.Dispose()`) lorsque vous générez de nombreux codes‑barres dans une boucle pour libérer les ressources natives. +- **Testez avec de vrais scanners** après l’enregistrement ; l’inspection visuelle ne suffit pas pour les déploiements en production. +- **Maintenez la bibliothèque à jour** — les nouvelles versions d’Aspose.BarCode ajoutent des améliorations de symbologie et des correctifs de bugs. + +## Conclusion + +Vous savez maintenant **comment enregistrer un code-barres** en C# avec la bibliothèque Aspose.BarCode. En créant un code‑barres MicroPDF417, en configurant la **barcode XDimension**, en sélectionnant le nombre approprié de **colonnes PDF417**, et en l’exportant vers un **barcode image format** tel que PNG, vous disposez d’une solution complète prête pour la production. + +Ensuite, explorez des sujets connexes comme **génération de codes‑barres QR en C#**, **création de lots de codes‑barres**, ou **intégration de codes‑barres dans des rapports PDF**. Chacun de ces thèmes s’appuie sur les mêmes principes démontrés ici, vous permettant d’élargir votre boîte à outils d’imagerie en toute confiance. + + +## Que devriez‑vous apprendre ensuite ? + + +Les tutoriels suivants couvrent des sujets étroitement liés qui s’appuient sur les techniques présentées dans ce guide. Chaque ressource inclut des exemples de code complets avec des explications pas à pas pour vous aider à maîtriser des fonctionnalités supplémentaires de l’API et à explorer des approches d’implémentation alternatives dans vos propres projets. + +- [How to Save PNG using DataMatrix C40 with Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-c40/) +- [How to Set Border for ITF-14 Barcode Customization](/barcode/english/net/itf-14-barcode-customization/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) + +{{< /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/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md b/barcode/french/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md new file mode 100644 index 000000000..dc3b7b931 --- /dev/null +++ b/barcode/french/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md @@ -0,0 +1,217 @@ +--- +category: general +date: 2026-08-03 +description: Lire le code‑barres PDF417 à partir d’une image en utilisant C# BarCodeReader + – un exemple complet de lecteur de code‑barres qui montre également comment lire + plusieurs codes‑barres. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- read PDF417 barcode +- barcode reader example +- read multiple barcodes +- read barcodes image +language: fr +lastmod: 2026-08-03 +og_description: Lire rapidement le code‑barres PDF417 avec un exemple de BarCodeReader + en C#. Suivez ce guide étape par étape pour décoder le macro PDF417 et lire plusieurs + codes‑barres à partir d’une image. +og_image_alt: Console output of a read PDF417 barcode example in C# +og_title: Lire le code‑barres PDF417 en C# – exemple complet de lecteur de code‑barres +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + headline: Read PDF417 barcode in C# – barcode reader example + type: TechArticle +- description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + name: Read PDF417 barcode in C# – barcode reader example + steps: + - name: '**Create a new console project**' + text: '**Create a new console project**' + - name: '**Add the barcode library**' + text: '**Add the barcode library**' + - name: '**Copy the barcode image**' + text: '**Copy the barcode image**' + type: HowTo +tags: +- barcode +- PDF417 +- C# +- .NET +title: Lire le code‑barres PDF417 en C# – exemple de lecteur de code‑barres +url: /fr/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Lire un code‑barres PDF417 en C# – exemple de lecteur de code‑barres + +Si vous devez lire les données d’un code‑barres PDF417 à partir d’une image, ce guide vous montre comment le faire avec la classe **BarCodeReader** en C#. Vous apprendrez un exemple de lecteur de code‑barres qui gère également le macro PDF417 et peut lire plusieurs code‑barres dans une même image. + +Travailler avec les code‑barres implique souvent de gérer différentes sources d’images, des conditions d’éclairage variables, et parfois des données composites comme les segments macro PDF417. Ce tutoriel couvre tout ce dont vous avez besoin pour décoder un code‑barres PDF417, extraire ses champs étendus, et traiter plusieurs code‑barres à partir de la même image. À la fin, vous disposerez d’un programme console exécutable qui lit les code‑barres d’un fichier image et affiche des informations détaillées dans la console. + +## Ce dont vous avez besoin + +Avant de commencer, assurez‑vous d’avoir : + +* le SDK .NET 6.0 ou une version ultérieure installé +* une version récente du package NuGet **Aspose.BarCode for .NET** (ou toute bibliothèque compatible qui fournit `BarCodeReader` et `DecodeType.MacroPdf417`) +* un fichier image contenant un code‑barres PDF417 ou macro PDF417 (l’exemple utilise `ExtPDF417Meta.png`) +* un éditeur de code ou un IDE tel que Visual Studio 2022 + +Aucun service supplémentaire ou API externe n’est requis. + +## Configuration du projet pour la lecture de code‑barres + +1. **Créer un nouveau projet console** + + ```bash + dotnet new console -n Pdf417ReaderDemo + cd Pdf417ReaderDemo + ``` + +2. **Ajouter la bibliothèque de code‑barres** + + ```bash + dotnet add package Aspose.BarCode --version 23.12 + ``` + +3. **Copier l’image du code‑barres** + + Placez `ExtPDF417Meta.png` (ou toute image contenant un code‑barres PDF417) dans le dossier du projet. + Pour ce tutoriel, nous supposons que le fichier se trouve à `YOUR_DIRECTORY/ExtPDF417Meta.png`. + +Le projet est maintenant prêt à être compilé et à exécuter l’exemple de lecteur de code‑barres. + +## Comment lire un code‑barres PDF417 avec BarCodeReader + +Le cœur de la solution est un bloc `using` qui crée une instance de `BarCodeReader`, spécifie `DecodeType.MacroPdf417`, et itère sur chaque code‑barres détecté. Le code suivant est un programme complet, autonome, que vous pouvez coller dans `Program.cs`. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.BarCodeRecognition; + +class Program +{ + static void Main() + { + // Path to the image that contains one or more PDF417 barcodes + const string imagePath = "YOUR_DIRECTORY/ExtPDF417Meta.png"; + + // Step 1: Create a BarCodeReader for a macro PDF417 image + using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.MacroPdf417)) + { + // Step 2: Read all barcodes from the image + foreach (BarCodeResult result in reader.ReadBarCodes()) + { + // Step 3: Output basic barcode information + Console.WriteLine($"CodeType: {result.CodeTypeName}"); + Console.WriteLine($"CodeText: {result.CodeText}"); + + // Step 4: Output macro PDF417 specific fields + Console.WriteLine($"Pdf417MacroFileID: {result.Extended.Pdf417.MacroPdf417FileID}"); + Console.WriteLine($"Pdf417MacroSegmentID: {result.Extended.Pdf417.MacroPdf417SegmentID}"); + Console.WriteLine($"Pdf417MacroSegmentsCount: {result.Extended.Pdf417.MacroPdf417SegmentsCount}"); + Console.WriteLine($"Pdf417MacroFileName: {result.Extended.Pdf417.MacroPdf417FileName}"); + Console.WriteLine($"Pdf417MacroChecksum: {result.Extended.Pdf417.MacroPdf417Checksum}"); + Console.WriteLine($"Pdf417MacroFileSize: {result.Extended.Pdf417.MacroPdf417FileSize}"); + Console.WriteLine($"Pdf417MacroTimeStamp: {result.Extended.Pdf417.MacroPdf417TimeStamp}"); + Console.WriteLine($"Pdf417MacroAddressee: {result.Extended.Pdf417.MacroPdf417Addressee}"); + Console.WriteLine($"Pdf417MacroSender: {result.Extended.Pdf417.MacroPdf417Sender}"); + Console.WriteLine($"MacroPdf417Terminator: {result.Extended.Pdf417.MacroPdf417Terminator}"); + Console.WriteLine(new string('-', 40)); + } + + // Pro tip: If no barcodes are found, ReadBarCodes() returns an empty collection. + // You can check reader.HasBarcodes for a quick boolean test. + if (!reader.HasBarcodes) + { + Console.WriteLine("No barcodes detected in the provided image."); + } + } + } +} +``` + +**Pourquoi cela fonctionne** : + +* `DecodeType.MacroPdf417` indique au lecteur de rechercher l’extension macro du PDF417, qui transporte des métadonnées supplémentaires telles que l’ID du fichier, le nombre de segments et les horodatages. +* L’instruction `using` garantit que les ressources non gérées (descripteurs de fichiers, tampons natifs de décodage) sont libérées rapidement. +* La boucle `foreach` traite automatiquement **tous** les code‑barres présents dans l’image, répondant ainsi à l’exigence de *lecture de plusieurs code‑barres*. + +Lorsque vous exécutez le programme (`dotnet run`), vous devriez voir une sortie similaire à celle‑ci : + +``` +CodeType: MacroPdf417 +CodeText: https://example.com/document.pdf +Pdf417MacroFileID: 12345 +Pdf417MacroSegmentID: 1 +Pdf417MacroSegmentsCount: 3 +Pdf417MacroFileName: document.pdf +Pdf417MacroChecksum: 0x1A2B +Pdf417MacroFileSize: 204800 +Pdf417MacroTimeStamp: 2024-07-15T10:25:00Z +Pdf417MacroAddressee: John Doe +Pdf417MacroSender: Acme Corp +MacroPdf417Terminator: True +---------------------------------------- +``` + +Si l’image contient plus d’un code‑barres PDF417, la boucle imprime un bloc séparé pour chaque code‑barres, démontrant ainsi comment **lire plusieurs code‑barres** à partir d’une seule image. + +## Lecture de plusieurs code‑barres à partir d’une image + +La même instance de `BarCodeReader` peut décoder plusieurs types de code‑barres en même temps. Pour élargir le champ d’application du macro PDF417 à tout PDF417 (ou même QR, Code128, etc.), ajustez le drapeau `DecodeType` : + +```csharp +using (BarCodeReader reader = new BarCodeReader(imagePath, + DecodeType.Pdf417 | DecodeType.MacroPdf417 | DecodeType.QR | DecodeType.Code128)) +{ + // The rest of the code stays unchanged. +} +``` + +*`DecodeType`* est un masque de bits, vous pouvez donc combiner n’importe quel nombre de formats pris en charge. Cette flexibilité fait du fragment un **exemple de lecteur de code‑barres** qui fonctionne pour une grande variété de cas d’utilisation, tels que le scan d’étiquettes produit, de billets ou de cartes d’identité. + +## Accéder aux champs macro PDF417 en toute sécurité + +Le macro PDF417 ajoute un ensemble riche de propriétés étendues. Cependant, tous les code‑barres ne contiennent pas chaque champ. Accéder à une propriété manquante peut déclencher une `NullReferenceException`. L’approche la plus sûre consiste à vérifier chaque propriété avant de l’afficher : + +```csharp +var macro = result.Extended?.Pdf417; +if (macro != null) +{ + Console.WriteLine($"Pdf417MacroFileID: {macro.MacroPdf417FileID ?? "N/A"}"); + // Repeat for other fields... +} +``` + +*Pourquoi c’est important* : Dans les déploiements réels, vous pouvez recevoir des code‑barres PDF417 simples qui ne possèdent pas de données macro. La vérification défensive garantit que votre application continue de fonctionner sans plantage. + +## Pièges courants et bonnes pratiques + +| Problème | Pourquoi cela se produit | Solution recommandée | +|----------|--------------------------|----------------------| +| Le chemin de l’image est incorrect | `BarCodeReader` lève une exception fichier introuvable avant tout décodage | Utilisez `Path.Combine` et validez l’existence du fichier avec `File.Exists` | +| Image à basse résolution | Le décodeur ne peut pas localiser les bords du code‑barres, entraînant aucune détection | Fournissez une résolution minimale de 300 dpi pour des résultats fiables | +| Code‑barres tourné de > 45° | De nombreuses bibliothèques supposent une orientation verticale | Activez `reader.RecognitionOptions.RotateImage = true` si le | + +## 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 comprend des exemples de code complets 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 propres projets. + +- [Comment lire les codes‑barres DataMatrix avec Aspose.BarCode for .NET](/barcode/english/net/datamatrix-barcode-reading/) +- [Lire un code‑barres DataMatrix C# – Générer le mode DataMatrix (Auto)](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-auto/) +- [Lire un code‑barres depuis une image – Maîtriser l’extraction de région de code‑barres en Java avec Aspose.BarCode](/barcode/english/java/advanced-settings-and-optimization/extracting-barcode-region-information/) + +{{< /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/net/compact-pdf417-encoding/_index.md b/barcode/german/net/compact-pdf417-encoding/_index.md index 201fcffef..95d383b81 100644 --- a/barcode/german/net/compact-pdf417-encoding/_index.md +++ b/barcode/german/net/compact-pdf417-encoding/_index.md @@ -57,7 +57,7 @@ Jetzt, wo die Theorie klar ist, erzeugen wir einen Barcode. Die folgenden Schrit 4. **Aussehen anpassen** – Farben, Ränder ändern oder bei Bedarf eine Beschriftung hinzufügen. 5. **Bild speichern** – Export nach PNG, JPEG oder einem anderen unterstützten Format. -> **Pro‑Tipp:** Verwenden Sie dieselbe `BarcodeGenerator`‑Instanz, wenn Sie in einer Schleife mehrere Barcodes erzeugen, um die Leistung zu steigern. +> **Pro‑Tip:** Verwenden Sie dieselbe `BarcodeGenerator`‑Instanz, wenn Sie in einer Schleife mehrere Barcodes erzeugen, um die Leistung zu steigern. ## PDF417 Barcode‑Beispiel @@ -85,6 +85,18 @@ Nachfolgend eine knappe Beschreibung eines typischen Barcode‑Erstellungsszenar ### [Creating Compact PDF417 Barcodes](./compact-pdf417-basic-configuration/) Erfahren Sie, wie Sie Compact PDF417 Barcodes mit Aspose.BarCode für .NET erzeugen. Umfassender Leitfaden mit Schritt‑für‑Schritt‑Anweisungen und Code‑Beispielen. +### [PDF417-Barcode in C# erstellen – Schritt‑für‑Schritt‑Anleitung](./create-pdf417-barcode-in-c-step-by-step-guide/) +Erfahren Sie, wie Sie einen PDF417‑Barcode in C# Schritt für Schritt erstellen. + +### [PDF417-Barcode in C# generieren – vollständiger Leitfaden mit Aspose.BarCode](./generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/) +Erfahren Sie, wie Sie einen PDF417‑Barcode in C# vollständig erstellen, inklusive Code‑Beispielen und Best Practices. + +### [Wie man Barcode als Bild speichert – vollständiger C#‑Leitfaden](./how-to-save-barcode-as-an-image-complete-c-guide/) +Erfahren Sie, wie Sie Barcodes in C# als Bilddatei speichern, inkl. Code‑Beispielen und Optionen für Formate. + +### [PDF417-Barcode in C# lesen – Barcode‑Reader‑Beispiel](./read-pdf417-barcode-in-c-barcode-reader-example/) +Erfahren Sie, wie Sie PDF417‑Barcodes in C# auslesen können, inklusive Beispielcode für den Barcode‑Reader. + ## Häufig gestellte Fragen **F: Wie viel Daten kann ich maximal in einem Compact PDF417 Barcode speichern?** @@ -113,4 +125,4 @@ A: Nein, es werden keine externen Schriftarten benötigt; die Bibliothek überni {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/german/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md b/barcode/german/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..862a800c7 --- /dev/null +++ b/barcode/german/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-08-03 +description: Erstellen Sie schnell einen PDF417‑Barcode in C#. Erfahren Sie, wie Sie + einen PDF417‑Barcode generieren und das Barcode‑Bild als PNG mit Aspose.Barcode + speichern. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create pdf417 barcode +- how to generate pdf417 barcode +- how to save barcode image +language: de +lastmod: 2026-08-03 +og_description: Erstellen Sie PDF417‑Barcodes in C# mit Aspose.Barcode. Folgen Sie + dieser Anleitung, um PDF417‑Barcodes zu generieren und zu erfahren, wie Sie das + Barcode‑Bild effizient speichern. +og_image_alt: Screenshot of a generated compact PDF417 barcode saved as PNG +og_title: PDF417-Barcode in C# erstellen – vollständiges Programmier‑Tutorial +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + headline: Create PDF417 barcode in C# – step‑by‑step guide + type: TechArticle +- description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + name: Create PDF417 barcode in C# – step‑by‑step guide + steps: + - name: Why this matters + text: '* **EncodeTypes.Pdf417** tells the library to use the PDF417 standard, + which supports large data payloads and error correction. * Providing Unicode + characters proves the generator handles non‑ASCII input without extra configuration.' + - name: Practical tip + text: If you need a taller barcode for limited horizontal space, increase `Columns`. + Setting `Truncate` to `true` reduces the overall height by removing quiet zones, + which is ideal for mobile screens. + - name: Expected result + text: Running the program creates `CompactPdf417.png` in the project folder. Opening + the file shows a compact PDF417 barcode that encodes the string *Åspóse.Barcóde©*. + The image can be embedded in HTML, PDF reports, or printed on labels. + - name: Verifying the output + text: 'After the program finishes, you can verify the file exists with a quick + command:' + type: HowTo +tags: +- barcode +- C# +- PDF417 +- image generation +title: PDF417-Barcode in C# erstellen – Schritt‑für‑Schritt‑Anleitung +url: /de/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PDF417-Barcode in C# erstellen – Schritt‑für‑Schritt‑Anleitung + +Wenn Sie in einer .NET-Anwendung **einen PDF417-Barcode erstellen** müssen, zeigt Ihnen diese Anleitung genau, wie Sie einen PDF417-Barcode generieren und das Barcode‑Bild speichern. Am Ende erhalten Sie eine PNG‑Datei, die in Berichten, Tickets oder mobilen Scan‑Apps verwendet werden kann. + +Das Tutorial deckt alles ab, von der Projekteinrichtung bis zur finalen PNG‑Datei. Es ist keine externe Dokumentation erforderlich; folgen Sie einfach den Schritten und führen Sie den Code aus. + +## Was Sie benötigen + +* .NET 6.0 SDK oder neuer (der Code funktioniert auch mit .NET Framework 4.7+) +* Visual Studio 2022 oder jede IDE, die C# unterstützt +* Internetzugang, um das **Aspose.Barcode for .NET** NuGet‑Paket zu installieren + +Diese Voraussetzungen stellen sicher, dass der Code ohne zusätzliche Konfiguration kompiliert. + +## PDF417-Barcode erstellen – Projekteinrichtung + +1. Öffnen Sie ein Befehlsfenster und erstellen Sie ein neues Konsolenprojekt: + + ```bash + dotnet new console -n Pdf417Demo + cd Pdf417Demo + ``` + +2. Fügen Sie die Aspose.Barcode‑Bibliothek hinzu: + + ```bash + dotnet add package Aspose.Barcode + ``` + +3. Öffnen Sie die erzeugte Datei `Program.cs`. Die `using`‑Anweisungen oben geben Ihnen Zugriff auf die Barcode‑Klassen: + + ```csharp + using System; + using Aspose.Barcode.Generation; + using Aspose.Barcode; + ``` + +Das Projekt ist nun bereit, **einen PDF417-Barcode zu erstellen**. + +## So generieren Sie einen PDF417-Barcode mit Aspose.Barcode + +Der Kern der Barcode‑Erstellung befindet sich in der Klasse `BarcodeGenerator`. Sie geben die Symbologie (`EncodeTypes.Pdf417`) und die zu kodierenden Daten an. + +```csharp +// Step 1: Initialise the generator with PDF417 symbology and sample text. +// The text includes Unicode characters to demonstrate full‑range support. +BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Pdf417, "Åspóse.Barcóde©"); +``` + +### Warum das wichtig ist + +* **EncodeTypes.Pdf417** weist die Bibliothek an, den PDF417‑Standard zu verwenden, der große Datenmengen und Fehlerkorrektur unterstützt. +* Das Bereitstellen von Unicode‑Zeichen zeigt, dass der Generator nicht‑ASCII‑Eingaben ohne zusätzliche Konfiguration verarbeitet. + +## So konfigurieren Sie das Aussehen des Barcodes + +Sie können die Größe jedes Moduls, die Anzahl der Spalten und ob der Barcode den kompakten (abgeschnittenen) Modus verwendet, steuern. Diese Einstellungen beeinflussen sowohl die Lesbarkeit als auch die Dateigröße. + +```csharp +// Step 2: Set the module (X) dimension – each barcode element will be 2 pixels wide. +generator.Parameters.Barcode.XDimension.Pixels = 2; + +// Step 3: Configure PDF417‑specific options. +generator.Parameters.Barcode.Pdf417.Columns = 3; // Number of columns (affects height) +generator.Parameters.Barcode.Pdf417.Truncate = true; // Enable compact mode +``` + +### Praktischer Hinweis + +Wenn Sie für begrenzten horizontalen Raum einen höheren Barcode benötigen, erhöhen Sie `Columns`. Das Setzen von `Truncate` auf `true` reduziert die Gesamthöhe, indem stille Zonen entfernt werden – ideal für mobile Bildschirme. + +## So speichern Sie das Barcode‑Bild als PNG + +Nachdem Sie den Generator konfiguriert haben, rufen Sie `Save` mit einem Dateipfad und dem gewünschten Bildformat auf. Die Methode schreibt das Bild direkt auf die Festplatte. + +```csharp +// Step 4: Save the generated barcode as a PNG image. +string outputPath = @"./CompactPdf417.png"; +generator.Save(outputPath, BarCodeImageFormat.Png); +Console.WriteLine($"Barcode saved to {outputPath}"); +``` + +### Erwartetes Ergebnis + +Das Ausführen des Programms erzeugt `CompactPdf417.png` im Projektordner. Beim Öffnen der Datei wird ein kompakter PDF417‑Barcode angezeigt, der den String *Åspóse.Barcóde©* kodiert. Das Bild kann in HTML, PDF‑Berichten eingebettet oder auf Etiketten gedruckt werden. + +## Vollständiger Quellcode + +Unten finden Sie das vollständige, ausführbare Programm. Kopieren Sie es in `Program.cs` und führen Sie `dotnet run` aus. + +```csharp +using System; +using Aspose.Barcode.Generation; +using Aspose.Barcode; + +namespace Pdf417Demo +{ + class Program + { + static void Main() + { + // Initialise the generator with PDF417 symbology and sample text. + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.Pdf417, + "Åspóse.Barcóde©"); + + // Set the module width to 2 pixels. + generator.Parameters.Barcode.XDimension.Pixels = 2; + + // Configure PDF417‑specific options. + generator.Parameters.Barcode.Pdf417.Columns = 3; + generator.Parameters.Barcode.Pdf417.Truncate = true; + + // Define the output file path. + string outputPath = @"./CompactPdf417.png"; + + // Save the barcode as a PNG image. + generator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"Barcode saved to {outputPath}"); + } + } +} +``` + +### Überprüfung der Ausgabe + +Nachdem das Programm beendet ist, können Sie mit einem kurzen Befehl prüfen, ob die Datei existiert: + +```bash +dotnet run && ls -l CompactPdf417.png +``` + +Wenn die Datei erscheint, war der Vorgang zum **Erstellen eines PDF417‑Barcodes** erfolgreich. + +## Häufige Variationen und Sonderfälle + +| Situation | Anpassung | +|-----------|------------| +| **Longer data string** | Increase `Columns` or set `Rows` to accommodate more codewords. | +| **Different image format** | Replace `BarCodeImageFormat.Png` with `Jpeg`, `Bmp`, or `Gif`. | +| **Higher resolution** | Set `generator.Parameters.ImageResolution` before `Save`. | +| **Background color** | Use `generator.Parameters.Barcode.ImageBackgroundColor = Color.White;` | +| **Exception handling** | Wrap `generator.Save` in a `try/catch` block to capture I/O errors. | + +## Fazit + +Sie wissen jetzt, wie Sie mit Aspose.Barcode in C# **einen PDF417‑Barcode erstellen**, sein Aussehen konfigurieren und **das Barcode‑Bild** als PNG‑Datei speichern. Das vollständige Beispiel demonstriert jeden notwendigen Schritt, von der Projekteinrichtung bis zur Verifizierung, sodass Sie die Barcode‑Erstellung in jede .NET‑Lösung integrieren können. + +Als Nächstes sollten Sie verwandte Themen erkunden, wie **wie man QR‑Codes generiert**, **Barcodes in PDF‑Dokumente einbettet** oder **Barcode‑Farben anpasst**. All dies baut auf derselben Generator‑API auf und ermöglicht es Ihnen, die Scan‑Fähigkeiten Ihrer Anwendung mit minimalem Aufwand zu erweitern. 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, zusätzliche API‑Funktionen zu beherrschen und alternative Implementierungsansätze in Ihren eigenen Projekten zu erkunden. + +- [Wie man Barcode erstellt – Kompakter PDF417 mit Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [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 generiert](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) + +{{< /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/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md b/barcode/german/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md new file mode 100644 index 000000000..ad83b2fe3 --- /dev/null +++ b/barcode/german/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md @@ -0,0 +1,240 @@ +--- +category: general +date: 2026-08-03 +description: PDF417‑Barcode in C# mit Aspose.BarCode generieren. Erfahren Sie Schritt + für Schritt, wie Sie Macro‑PDF417‑Metadaten hinzufügen und als PNG speichern. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- generate PDF417 barcode C# +- Macro PDF417 barcode +- Aspose.BarCode +- C# barcode generation +- PDF417 metadata +- barcode image PNG +language: de +lastmod: 2026-08-03 +og_description: PDF417-Barcode in C# mit Aspose.BarCode generieren. Dieses Tutorial + zeigt, wie man Macro‑PDF417‑Metadaten einbettet und das Ergebnis als PNG‑Bild exportiert. +og_image_alt: Screenshot of a generated PDF417 barcode created with C# +og_title: PDF417-Barcode in C# generieren – Schritt‑für‑Schritt Aspose.BarCode‑Tutorial +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + headline: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + type: TechArticle +- description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + name: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + steps: + - name: Create a Macro PDF417 barcode generator + text: First, instantiate `BarcodeGenerator` with the `EncodeTypes.MacroPdf417` + enum. The constructor also accepts the text you want to encode – in this example + we use a string that contains Unicode characters to demonstrate full‑width support. + - name: Adjust basic barcode appearance + text: Next, define the visual size of the barcode. `XDimension.Pixels` controls + the width of a single module (the smallest black/white square), while `Pdf417.Columns` + influences the overall shape by setting the number of columns. + - name: Populate Macro PDF417 metadata + text: Macro PDF417 allows you to embed file‑level information that many back‑office + systems rely on (e.g., file ID, segment ID, timestamp). The following properties + illustrate the most common fields. + - name: Save the barcode image as PNG + text: Finally, call `Save` to write the barcode to disk. PNG is lossless, making + it ideal for high‑quality scanning. + - name: How to verify the result + text: 1. Open `ExtPDF417Meta.png` in any image viewer. 2. Use a PDF417 scanner + app (e.g., *Zebra Scanner* or *BarCode Reader* on Android/iOS). 3. Confirm that + the decoded payload includes the original text and a JSON‑like block with the + macro fields you set. + - name: Next steps + text: '- Experiment with other barcode formats (e.g., QR, Code128) by changing + `EncodeTypes`. - Explore `Pdf417.ErrorCorrectionLevel` to improve scan reliability + under poor lighting. - Integrate the generated image into a PDF report using + Aspose.PDF for end‑to‑end document automation.' + type: HowTo +tags: +- PDF417 +- C# +- Barcode +title: PDF417-Barcode in C# generieren – vollständige Anleitung mit Aspose.BarCode +url: /de/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PDF417-Barcode in C# generieren – vollständige Anleitung + +Wenn Sie **PDF417-Barcode C# generieren** müssen für ein Logistik‑ oder Dokumenten‑Management‑System, zeigt Ihnen dieses Tutorial genau, wie Sie dies mit Aspose.BarCode erledigen. Sie sehen, wie Sie den Barcode konfigurieren, Macro‑PDF417‑Metadaten einbetten und das Ergebnis mit nur wenigen Codezeilen als PNG‑Bild speichern. + +Das Generieren eines PDF417‑Barcodes in C# bedeutet häufig, zusätzliche Informationen wie Dateikennungen, Segmentnummern oder Zeitstempel zu verarbeiten. Dieser Leitfaden behandelt diese Details, sodass Sie nicht durch verstreute Dokumentation suchen müssen. Am Ende des Artikels haben Sie ein sofort ausführbares Programm, das ein konformes Macro‑PDF417‑Barcode‑Bild erzeugt. + +## Was Sie benötigen + +- .NET 6.0 oder höher (der Code funktioniert auch mit .NET Framework 4.7+) +- Aspose.BarCode für .NET (v23.9 oder neuer) – Installation über NuGet `Install-Package Aspose.BarCode` +- Eine Entwicklungsumgebung wie Visual Studio 2022 oder Visual Studio Code +- Grundlegende Kenntnisse der C#‑Syntax + +> **Profi‑Tipp:** Verwenden Sie die neueste Aspose.BarCode‑Version, um von Fehlerbehebungen und Unterstützung der neuesten PDF417‑Spezifikationen zu profitieren. + +## Wie Sie PDF417-Barcode C# mit Aspose.BarCode generieren + +Der Prozess besteht aus vier logischen Schritten. Jeder Schritt ist in einem klaren Codeblock gekapselt, sodass Sie ihn sofort kopieren, einfügen und ausführen können. + +### Schritt 1: Erstellen eines Macro‑PDF417‑Barcode‑Generators + +Zuerst instanziieren Sie `BarcodeGenerator` mit dem Enum `EncodeTypes.MacroPdf417`. Der Konstruktor akzeptiert zudem den Text, den Sie codieren möchten – in diesem Beispiel verwenden wir einen String, der Unicode‑Zeichen enthält, um die Unterstützung von Vollbreite zu demonstrieren. + +```csharp +using System; +using Aspose.BarCode.Generation; + +// Create a Macro PDF417 barcode generator with the desired text +using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) +{ + // Subsequent steps go inside this using block +``` + +*Warum das wichtig ist*: Der Typ `MacroPdf417` weist Aspose.BarCode an, das Symbol als Makro‑Barcode zu behandeln, der zusätzliche Dateimetadaten tragen kann. Ohne dieses Flag würden die später gesetzten Felder ignoriert werden. + +### Schritt 2: Grundlegendes Aussehen des Barcodes anpassen + +Als Nächstes definieren Sie die visuelle Größe des Barcodes. `XDimension.Pixels` steuert die Breite eines einzelnen Moduls (das kleinste Schwarz‑/Weiß‑Quadrat), während `Pdf417.Columns` die Gesamtform beeinflusst, indem die Anzahl der Spalten festgelegt wird. + +```csharp + // Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol +``` + +*Warum das wichtig ist*: Eine kleinere `XDimension` erzeugt ein hochauflösendes Bild, was nützlich ist, wenn der Barcode von einem Bildschirm gescannt werden muss. Das Ändern der Spaltenanzahl kann helfen, den Barcode in begrenztem Raum unter Beibehaltung der Datenkapazität zu platzieren. + +### Schritt 3: Macro‑PDF417‑Metadaten befüllen + +Macro PDF417 ermöglicht das Einbetten von dateibezogenen Informationen, auf die viele Back‑Office‑Systeme angewiesen sind (z. B. Datei‑ID, Segment‑ID, Zeitstempel). Die folgenden Eigenschaften illustrieren die gebräuchlichsten Felder. + +```csharp + // Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; +``` + +*Warum das wichtig ist*: Jedes Feld entspricht direkt einem Segment der Macro‑Barcode‑Spezifikation. Zum Beispiel identifiziert `MacroPdf417FileID` die logische Datei eindeutig, während `MacroPdf417SegmentsCount` dem Scanner mitteilt, wie viele Teile zu erwarten sind. Das Bereitstellen genauer Metadaten stellt sicher, dass nachgelagerte Systeme das Originaldokument fehlerfrei rekonstruieren können. + +### Schritt 4: Barcode‑Bild als PNG speichern + +Abschließend rufen Sie `Save` auf, um den Barcode auf die Festplatte zu schreiben. PNG ist verlustfrei und damit ideal für hochqualitatives Scannen. + +```csharp + // Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); +} +``` + +*Warum das wichtig ist*: Das Enum `BarCodeImageFormat.Png` garantiert, dass die Ausgabedatei exakt die von Ihnen konfigurierten Pixeldaten enthält. Wenn Sie ein Vektorformat zum Skalieren benötigen, ersetzen Sie `Png` durch `Svg` – Aspose.BarCode unterstützt das out of the box. + +#### Erwartete Ausgabe + +Das Ausführen des vollständigen Programms erzeugt eine Datei namens **ExtPDF417Meta.png**. Das Bild zeigt ein dichtes, mehrreihiges PDF417‑Symbol, das den Text „Åspóse.Barcóde©“ und die von Ihnen bereitgestellten Makro‑Metadaten enthält. Das Scannen des Barcodes mit einem PDF417‑kompatiblen Leser liefert den Originaltext plus einen strukturierten Datenblock mit Datei‑ID, Segment‑ID, Zeitstempel und weiteren Feldern. + +![Screenshot des erzeugten PDF417‑Barcodes](/images/pdf417-example.png){: .center-image alt="Beispielausgabe für die Erzeugung eines PDF417‑Barcodes in C#"} + +## Vollständiger Quellcode (zum Kopieren und Einfügen bereit) + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace Pdf417MacroDemo +{ + class Program + { + static void Main() + { + // Step 1: Create a Macro PDF417 barcode generator with the desired text + using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) + { + // Step 2: Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol + + // Step 3: Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; + + // Step 4: Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); + } + + Console.WriteLine("Macro PDF417 barcode generated successfully."); + } + } +} +``` + +### So überprüfen Sie das Ergebnis + +1. Öffnen Sie `ExtPDF417Meta.png` in einem beliebigen Bildbetrachter. +2. Verwenden Sie eine PDF417‑Scanner‑App (z. B. *Zebra Scanner* oder *BarCode Reader* auf Android/iOS). +3. Stellen Sie sicher, dass die dekodierte Nutzlast den Originaltext und einen JSON‑ähnlichen Block mit den von Ihnen gesetzten Makro‑Feldern enthält. + +## Häufige Fragen und Sonderfall‑Behandlung + +| Frage | Antwort | +|----------|--------| +| **Kann ich ein Vektorbild anstelle von PNG erzeugen?** | Ja. Ersetzen Sie `BarCodeImageFormat.Png` durch `BarCodeImageFormat.Svg`. Der Rest des Codes bleibt unverändert. | +| **Was, wenn meine Daten die Standardkapazität überschreiten?** | Erhöhen Sie `Pdf417.Columns` oder setzen Sie `Pdf417.Rows` manuell. Größere Werte ermöglichen mehr Codewörter pro Segment. | +| **Wird Unicode im codierten Text unterstützt?** | Ja. Das Beispiel verwendet „Åspóse.Barcóde©“. Aspose.BarCode wechselt bei Bedarf automatisch zur UTF‑8‑Kodierung. | +| **Muss ich eine Lizenz für Aspose.BarCode aktivieren?** | Für den Produktionseinsatz sollten Sie eine Lizenz anwenden, um das Evaluations‑Wasserzeichen zu vermeiden. Rufen Sie `License license = new License(); license.SetLicense("Aspose.BarCode.lic");` auf, bevor Sie den Generator erstellen. | +| **Wie gehe ich mit Fehlern beim Speichern der Datei um?** | Umwickeln Sie den Aufruf von `Save` mit einem try/catch‑Block und protokollieren Sie `IOException` oder `BarCodeException` zur Fehlersuche. | + +## Fazit + +Sie wissen jetzt, wie Sie **PDF417-Barcode C#** mit Aspose.BarCode generieren, vollständige Macro‑PDF417‑Metadaten einbetten und das Ergebnis als hochwertiges PNG‑Bild exportieren. Die Schritte – Generator erstellen, Aussehen anpassen, Metadaten befüllen und Bild speichern – bilden ein wiederverwendbares Muster, das Sie für Rechnungen, Versandetiketten oder jede Situation, die umfangreiche Barcode‑Daten erfordert, anpassen können. + +### Nächste Schritte + +- Experimentieren Sie mit anderen Barcode‑Formaten (z. B. QR, Code128), indem Sie `EncodeTypes` ändern. +- Untersuchen Sie `Pdf417.ErrorCorrectionLevel`, um die Scan‑Zuverlässigkeit bei schlechten Lichtverhältnissen zu verbessern. +- Integrieren Sie das erzeugte Bild in einen PDF‑Report mithilfe von Aspose.PDF für eine End‑zu‑End‑Dokumenten‑Automatisierung. + +Passen Sie die Metadatenfelder an Ihre Geschäftsregeln an, und lassen Sie die Barcode‑Erstellung zu einem nahtlosen Teil Ihrer C#‑Anwendungen werden. 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 einen Barcode erstellt – Kompaktes PDF417 mit Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [So erstellen Sie einen Barcode – Kompaktes PDF417 mit Aspose.BarCode](/barcode/german/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [Java Barcode Bibliothek – Barcode zu PDF hinzufügen mit Aspose](/barcode/english/java/barcode-basics/adding-barcode-to-pdf-document/) + +{{< /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/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md b/barcode/german/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md new file mode 100644 index 000000000..f1da4ee22 --- /dev/null +++ b/barcode/german/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md @@ -0,0 +1,187 @@ +--- +category: general +date: 2026-08-03 +description: Wie man Barcodes schnell mit C# speichert. Lernen Sie die MicroPDF417-Barcode-Generierung, + legen Sie die Abmessungen fest, wählen Sie Spalten und exportieren Sie als PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to save barcode +- MicroPDF417 barcode +- C# barcode generation +- barcode XDimension +- PDF417 columns +- barcode image format +language: de +lastmod: 2026-08-03 +og_description: Wie man einen Barcode in C# speichert, mit einem vollständigen Beispiel. + Generieren Sie einen MicroPDF417-Barcode, passen Sie die Größe an, setzen Sie die + Spalten und exportieren Sie ihn als PNG. +og_image_alt: Screenshot showing a MicroPDF417 barcode saved as a PNG file +og_title: Wie man einen Barcode speichert – Schritt‑für‑Schritt C#‑Tutorial +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: how to save barcode quickly using C#. Learn MicroPDF417 barcode generation, + set dimensions, choose columns, and export to PNG. + headline: how to save barcode as an image – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- imaging +title: Wie man einen Barcode als Bild speichert – vollständige C#‑Anleitung +url: /de/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Wie man Barcodes speichert – vollständiger C#-Leitfaden + +Wenn Sie **how to save barcode** in einer .NET-Anwendung benötigen, zeigt Ihnen dieses Tutorial die genauen Schritte. Sie erzeugen einen MicroPDF417-Barcode, passen seine Abmessungen an, wählen die Spaltenanzahl und schreiben das Bild schließlich als PNG-Datei auf die Festplatte. + +Das Erstellen und Persistieren von Barcodes erfordert keine umfangreiche Bibliothek – nur die `BarcodeGenerator`‑Klasse aus dem Aspose.BarCode für .NET‑Suite. In den nachfolgenden Abschnitten gehen wir jede Konfigurationsoption durch, erklären, warum sie wichtig ist, und geben Ihnen ein sofort ausführbares Code‑Beispiel. + +## Voraussetzungen + +- .NET 6.0 oder höher (die API funktioniert mit .NET Core und .NET Framework) +- Aspose.BarCode für .NET (NuGet‑Paket `Aspose.BarCode`) +- Ein Ordner, für den Sie Schreibrechte haben (verwendet im Schritt **how to save barcode**) + +## Schritt 1: Einen MicroPDF417‑Barcode‑Generator erstellen + +Die erste Aufgabe in jedem **how to save barcode**‑Workflow besteht darin, einen `BarcodeGenerator` mit der gewünschten Symbolik und den Daten zu instanziieren. MicroPDF417 ist eine kompakte Version des PDF417-Matrix‑Barcodes, ideal für kleine Etiketten. + +```csharp +using Aspose.BarCode.Generation; + +// Create a MicroPDF417 barcode with sample text that includes Unicode characters. +BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, // Symbology + "Åspóse.Barcóde©"); // Data to encode +``` + +**Warum das wichtig ist:** +`EncodeTypes.MicroPdf417` weist die Bibliothek an, den MicroPDF417‑Algorithmus zu verwenden, der automatisch Fehlerkorrektur und Datenkodierung übernimmt. Das Bereitstellen von Unicode‑Text zeigt, dass der Generator nicht‑ASCII‑Zeichen korrekt verarbeitet. + +## Schritt 2: Die X‑Dimension (Modulgröße) anpassen + +Die X‑Dimension definiert die Breite eines einzelnen Barcode‑Moduls (Pixel). Ein kleinerer Wert erzeugt einen dichteren Barcode, während ein größerer Wert das Scannen erleichtert. + +```csharp +// Set each module to 2 pixels wide. +barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +**Warum das wichtig ist:** +Das Setzen von `barcode XDimension` stellt sicher, dass der Barcode in die Ziel‑Etikettengröße passt. Wenn Sie diesen Schritt überspringen, kann die Standardgröße für mobile Bildschirme oder kleine Ausdrucke zu groß sein. + +## Schritt 3: Die Anzahl der Spalten für die PDF417‑Matrix wählen + +MicroPDF417 unterstützt 1–4 Spalten. Mehr Spalten erzeugen einen quadratischeren Barcode; weniger Spalten strecken ihn vertikal. + +```csharp +// Use the maximum of 4 columns for a compact, square shape. +barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; +``` + +**Warum das wichtig ist:** +Das Anpassen der **PDF417‑Spalten** ermöglicht es, Lesbarkeit und Platzbeschränkungen auszubalancieren. In vielen Scan‑Szenarien bietet ein 4‑Spalten‑Layout den besten Kompromiss. + +## Schritt 4: Den erzeugten Barcode als PNG‑Bild speichern + +Jetzt, da der Barcode konfiguriert ist, können Sie endlich die Frage “**how to save barcode**” beantworten, indem Sie ihn in eine Datei schreiben. PNG bewahrt verlustfreie Qualität, was für ein scharfes Scannen entscheidend ist. + +```csharp +// Define the output path (ensure the directory exists). +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + +// Export the barcode to PNG. +barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + +Console.WriteLine($"Barcode saved to: {outputPath}"); +``` + +**Warum das wichtig ist:** +`barcode image format` bestimmt die visuelle Treue der gespeicherten Datei. PNG wird für die meisten UI‑ und Druck‑Workflows bevorzugt, weil es scharfe Kanten ohne Kompressionsartefakte beibehält. + +## Vollständiges, ausführbares Beispiel + +Wenn Sie alles zusammenfügen, erhalten Sie ein eigenständiges Programm, das Sie kopieren, einfügen und ausführen können. + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // 1️⃣ Create the barcode generator. + BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, + "Åspóse.Barcóde©"); + + // 2️⃣ Adjust module size. + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; + + // 3️⃣ Set column count (1‑4 allowed). + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; + + // 4️⃣ Define output location. + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + + // 5️⃣ Save as PNG. + barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"✅ Barcode saved to: {outputPath}"); + } +} +``` + +**Erwartete Ausgabe** + +Das Ausführen des Programms erzeugt `MicroPdf417.png` auf Ihrem Desktop. Das Öffnen der Datei zeigt einen klaren MicroPDF417‑Barcode, der die Zeichenkette `Åspóse.Barcóde©` kodiert. Das Scannen mit einem beliebigen Standard‑Barcode‑Scanner liefert den ursprünglichen Text zurück. + +## Häufige Fragen und Randfälle + +| Frage | Antwort | +|----------|--------| +| *Kann ich JPEG anstelle von PNG verwenden?* | Ja. Ersetzen Sie `BarCodeImageFormat.Png` durch `BarCodeImageFormat.Jpeg`. JPEG ist kleiner, führt jedoch zu Kompressionsartefakten, die das Scannen beeinträchtigen können. | +| *Was, wenn meine Daten die Kapazität von MicroPDF417 überschreiten?* | MicroPDF417 kann bis zu 1 KB Daten speichern. Für größere Payloads wechseln Sie zu vollem `EncodeTypes.Pdf417`. | +| *Wie ändere ich die Barcode‑Farbe?* | Verwenden Sie `barcodeGenerator.Parameters.Barcode.BarColor` und `BackColor`, um Vorder‑ und Hintergrundfarben vor dem Aufruf von `Save` festzulegen. | +| *Ist die X‑Dimension auf ganze Pixel beschränkt?* | Die Eigenschaft akzeptiert einen `float`. Werte wie `1.5f` sind erlaubt, aber die meisten Drucker arbeiten am besten mit Ganzpixel‑Größen. | + +## Profi‑Tipps für zuverlässige **how to save barcode**‑Implementierungen + +- **Validieren Sie den Ausgabepfad** mit `Directory.Exists`, bevor Sie `Save` aufrufen, um `IOException` zu vermeiden. +- **Entsorgen Sie den Generator** (`barcodeGenerator.Dispose()`), wenn Sie viele Barcodes in einer Schleife erzeugen, um native Ressourcen freizugeben. +- **Testen Sie mit echten Scannern** nach dem Speichern; eine visuelle Inspektion reicht für Produktionsumgebungen nicht aus. +- **Halten Sie die Bibliothek aktuell** — neuere Aspose.BarCode‑Versionen fügen Symbol‑Verbesserungen und Fehlerbehebungen hinzu. + +## Fazit + +Sie wissen jetzt, wie man **how to save barcode**‑Bilder in C# mit der Aspose.BarCode‑Bibliothek erstellt. Durch das Erzeugen eines MicroPDF417‑Barcodes, das Konfigurieren der **barcode XDimension**, das Auswählen der passenden **PDF417‑Spalten** und das Exportieren in ein **barcode image format** wie PNG haben Sie eine vollständige, produktionsreife Lösung. + +Als Nächstes erkunden Sie verwandte Themen wie **C# barcode generation for QR codes**, **batch barcode creation** oder **embedding barcodes in PDF reports**. Jeder dieser Punkte baut auf den hier gezeigten Prinzipien auf und ermöglicht es Ihnen, Ihr Imaging‑Toolkit selbstbewusst zu erweitern. + +## 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, zusätzliche API‑Funktionen zu meistern und alternative Implementierungsansätze in Ihren eigenen Projekten zu erkunden. + +- [Wie man PNG mit DataMatrix C40 unter Verwendung von Aspose.BarCode speichert](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-c40/) +- [Wie man einen Rand für ITF-14‑Barcode‑Anpassungen festlegt](/barcode/english/net/itf-14-barcode-customization/) +- [Wie man einen Aztec‑Barcode mit benutzerdefiniertem Seitenverhältnis unter Verwendung von Aspose.BarCode für .NET erzeugt](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) + +{{< /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/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md b/barcode/german/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md new file mode 100644 index 000000000..7ea70d771 --- /dev/null +++ b/barcode/german/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md @@ -0,0 +1,216 @@ +--- +category: general +date: 2026-08-03 +description: PDF417-Barcode aus einem Bild mit C# BarCodeReader lesen – ein vollständiges + Barcode‑Leser‑Beispiel, das auch zeigt, wie man mehrere Barcodes liest. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- read PDF417 barcode +- barcode reader example +- read multiple barcodes +- read barcodes image +language: de +lastmod: 2026-08-03 +og_description: Lesen Sie PDF417‑Barcodes schnell mit einem C# BarCodeReader‑Beispiel. + Folgen Sie dieser Schritt‑für‑Schritt‑Anleitung, um Macro‑PDF417 zu decodieren und + mehrere Barcodes aus einem Bild zu lesen. +og_image_alt: Console output of a read PDF417 barcode example in C# +og_title: PDF417-Barcode in C# auslesen – vollständiges Beispiel für einen Barcode‑Leser +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + headline: Read PDF417 barcode in C# – barcode reader example + type: TechArticle +- description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + name: Read PDF417 barcode in C# – barcode reader example + steps: + - name: '**Create a new console project**' + text: '**Create a new console project**' + - name: '**Add the barcode library**' + text: '**Add the barcode library**' + - name: '**Copy the barcode image**' + text: '**Copy the barcode image**' + type: HowTo +tags: +- barcode +- PDF417 +- C# +- .NET +title: PDF417-Barcode in C# lesen – Beispiel für Barcode-Leser +url: /de/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PDF417-Barcode in C# lesen – Barcode‑Leser‑Beispiel + +Wenn Sie PDF417-Barcode‑Daten aus einem Bild lesen müssen, zeigt Ihnen diese Anleitung, wie Sie dies mit der **BarCodeReader**‑Klasse in C# tun können. Sie lernen ein Barcode‑Leser‑Beispiel, das auch Macro PDF417 verarbeitet und mehrere Barcodes in einem einzigen Bild lesen kann. + +Die Arbeit mit Barcodes bedeutet oft, dass man mit unterschiedlichen Bildquellen, variierenden Lichtbedingungen und manchmal zusammengesetzten Daten wie Macro‑PDF417‑Segmenten umgehen muss. Dieses Tutorial deckt alles ab, was Sie benötigen, um einen PDF417‑Barcode zu dekodieren, seine erweiterten Felder zu extrahieren und mehrere Barcodes aus demselben Bild zu verarbeiten. Am Ende haben Sie ein ausführbares Konsolenprogramm, das Barcodes aus einer Bilddatei liest und detaillierte Informationen in der Konsole ausgibt. + +## Was Sie benötigen + +Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben: + +* .NET 6.0 SDK oder neuer installiert +* Eine aktuelle Version des **Aspose.BarCode for .NET** NuGet‑Pakets (oder einer kompatiblen Bibliothek, die `BarCodeReader` und `DecodeType.MacroPdf417` bereitstellt) +* Eine Bilddatei, die einen PDF417‑ oder Macro‑PDF417‑Barcode enthält (im Beispiel wird `ExtPDF417Meta.png` verwendet) +* Einen Code‑Editor oder eine IDE wie Visual Studio 2022 + +Keine zusätzlichen Dienste oder externen APIs sind erforderlich. + +## Einrichtung des Projekts zum Barcode‑Lesen + +1. **Erstellen Sie ein neues Konsolenprojekt** + + ```bash + dotnet new console -n Pdf417ReaderDemo + cd Pdf417ReaderDemo + ``` + +2. **Fügen Sie die Barcode‑Bibliothek hinzu** + + ```bash + dotnet add package Aspose.BarCode --version 23.12 + ``` + +3. **Kopieren Sie das Barcode‑Bild** + + Platzieren Sie `ExtPDF417Meta.png` (oder ein beliebiges Bild, das einen PDF417‑Barcode enthält) im Projektordner. + Für dieses Tutorial gehen wir davon aus, dass sich die Datei unter `YOUR_DIRECTORY/ExtPDF417Meta.png` befindet. + +Das Projekt ist nun bereit, das Barcode‑Leser‑Beispiel zu kompilieren und auszuführen. + +## Wie man PDF417-Barcode mit BarCodeReader liest + +Der Kern der Lösung ist ein `using`‑Block, der eine `BarCodeReader`‑Instanz erstellt, `DecodeType.MacroPdf417` angibt und über jeden erkannten Barcode iteriert. Der folgende Code ist ein vollständiges, eigenständiges Programm, das Sie in `Program.cs` einfügen können. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.BarCodeRecognition; + +class Program +{ + static void Main() + { + // Path to the image that contains one or more PDF417 barcodes + const string imagePath = "YOUR_DIRECTORY/ExtPDF417Meta.png"; + + // Step 1: Create a BarCodeReader for a macro PDF417 image + using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.MacroPdf417)) + { + // Step 2: Read all barcodes from the image + foreach (BarCodeResult result in reader.ReadBarCodes()) + { + // Step 3: Output basic barcode information + Console.WriteLine($"CodeType: {result.CodeTypeName}"); + Console.WriteLine($"CodeText: {result.CodeText}"); + + // Step 4: Output macro PDF417 specific fields + Console.WriteLine($"Pdf417MacroFileID: {result.Extended.Pdf417.MacroPdf417FileID}"); + Console.WriteLine($"Pdf417MacroSegmentID: {result.Extended.Pdf417.MacroPdf417SegmentID}"); + Console.WriteLine($"Pdf417MacroSegmentsCount: {result.Extended.Pdf417.MacroPdf417SegmentsCount}"); + Console.WriteLine($"Pdf417MacroFileName: {result.Extended.Pdf417.MacroPdf417FileName}"); + Console.WriteLine($"Pdf417MacroChecksum: {result.Extended.Pdf417.MacroPdf417Checksum}"); + Console.WriteLine($"Pdf417MacroFileSize: {result.Extended.Pdf417.MacroPdf417FileSize}"); + Console.WriteLine($"Pdf417MacroTimeStamp: {result.Extended.Pdf417.MacroPdf417TimeStamp}"); + Console.WriteLine($"Pdf417MacroAddressee: {result.Extended.Pdf417.MacroPdf417Addressee}"); + Console.WriteLine($"Pdf417MacroSender: {result.Extended.Pdf417.MacroPdf417Sender}"); + Console.WriteLine($"MacroPdf417Terminator: {result.Extended.Pdf417.MacroPdf417Terminator}"); + Console.WriteLine(new string('-', 40)); + } + + // Pro tip: If no barcodes are found, ReadBarCodes() returns an empty collection. + // You can check reader.HasBarcodes for a quick boolean test. + if (!reader.HasBarcodes) + { + Console.WriteLine("No barcodes detected in the provided image."); + } + } + } +} +``` + +**Warum das funktioniert**: + +* `DecodeType.MacroPdf417` weist den Leser an, nach der Macro‑Erweiterung von PDF417 zu suchen, die zusätzliche Metadaten wie Datei‑ID, Segment‑Anzahl und Zeitstempel enthält. +* Die `using`‑Anweisung stellt sicher, dass nicht verwaltete Ressourcen (Dateihandles, native Dekodier‑Puffer) sofort freigegeben werden. +* Die `foreach`‑Schleife verarbeitet automatisch **alle** Barcodes, die das Bild enthält, und erfüllt damit die Anforderung *mehrere Barcodes lesen*. + +Wenn Sie das Programm ausführen (`dotnet run`), sollten Sie eine Ausgabe ähnlich der folgenden sehen: + +``` +CodeType: MacroPdf417 +CodeText: https://example.com/document.pdf +Pdf417MacroFileID: 12345 +Pdf417MacroSegmentID: 1 +Pdf417MacroSegmentsCount: 3 +Pdf417MacroFileName: document.pdf +Pdf417MacroChecksum: 0x1A2B +Pdf417MacroFileSize: 204800 +Pdf417MacroTimeStamp: 2024-07-15T10:25:00Z +Pdf417MacroAddressee: John Doe +Pdf417MacroSender: Acme Corp +MacroPdf417Terminator: True +---------------------------------------- +``` + +Enthält das Bild mehr als einen PDF417‑Barcode, gibt die Schleife für jeden Barcode einen separaten Block aus und demonstriert damit, wie man **mehrere Barcodes** aus einem einzigen Bild **liest**. + +## Lesen mehrerer Barcodes aus einem Bild + +Die gleiche `BarCodeReader`‑Instanz kann mehrere Barcode‑Typen gleichzeitig dekodieren. Um den Anwendungsbereich von nur Macro‑PDF417 auf beliebige PDF417 (oder sogar QR, Code128 usw.) zu erweitern, passen Sie das `DecodeType`‑Flag an: + +```csharp +using (BarCodeReader reader = new BarCodeReader(imagePath, + DecodeType.Pdf417 | DecodeType.MacroPdf417 | DecodeType.QR | DecodeType.Code128)) +{ + // The rest of the code stays unchanged. +} +``` + +*`DecodeType`* ist eine Bitmaske, sodass Sie beliebig viele unterstützte Formate kombinieren können. Diese Flexibilität macht das Snippet zu einem **Barcode‑Leser‑Beispiel**, das für eine Vielzahl von Anwendungsfällen funktioniert, z. B. beim Scannen von Produktetiketten, Tickets oder Ausweisen. + +## Sicherer Zugriff auf Macro PDF417‑Felder + +Macro PDF417 fügt eine umfangreiche Menge erweiterter Eigenschaften hinzu. Nicht jeder Barcode enthält jedoch jedes Feld. Der Zugriff auf ein fehlendes Property kann eine `NullReferenceException` auslösen. Der sicherste Ansatz besteht darin, jedes Property vor dem Ausgeben zu überprüfen: + +```csharp +var macro = result.Extended?.Pdf417; +if (macro != null) +{ + Console.WriteLine($"Pdf417MacroFileID: {macro.MacroPdf417FileID ?? "N/A"}"); + // Repeat for other fields... +} +``` + +*Warum das wichtig ist*: In realen Einsätzen erhalten Sie möglicherweise reine PDF417‑Barcodes ohne Macro‑Daten. Die defensive Prüfung stellt sicher, dass Ihre Anwendung weiterläuft, ohne abzustürzen. + +## Häufige Fallstricke und bewährte Vorgehensweisen + +| Problem | Warum es passiert | Empfohlene Lösung | +|---------|-------------------|-------------------| +| Bildpfad ist falsch | `BarCodeReader` wirft eine Datei‑nicht‑gefunden‑Ausnahme, bevor irgendeine Dekodierung stattfindet | Verwenden Sie `Path.Combine` und prüfen Sie mit `File.Exists`, ob die Datei existiert | +| Bild mit niedriger Auflösung | Der Decoder kann die Barcode‑Kanten nicht finden, was zu keinen Erkennungen führt | Stellen Sie eine Mindestauflösung von 300 dpi für zuverlässige Ergebnisse bereit | +| Barcode um > 45° gedreht | Viele Bibliotheken gehen von einer aufrechten Ausrichtung aus | Aktivieren Sie `reader.RecognitionOptions.RotateImage = true`, falls das | + +## 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, zusätzliche API‑Funktionen zu meistern und alternative Implementierungsansätze in Ihren eigenen Projekten zu erkunden. + +- [Wie man DataMatrix‑Barcodes mit Aspose.BarCode für .NET liest](/barcode/english/net/datamatrix-barcode-reading/) +- [DataMatrix‑Barcode in C# lesen – DataMatrix‑Modus (Auto) generieren](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-auto/) +- [Barcode aus Bild lesen – Barcode‑Regionsextraktion in Java mit Aspose.BarCode meistern](/barcode/english/java/advanced-settings-and-optimization/extracting-barcode-region-information/) + +{{< /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/net/compact-pdf417-encoding/_index.md b/barcode/greek/net/compact-pdf417-encoding/_index.md index 06b8d9294..2e42322df 100644 --- a/barcode/greek/net/compact-pdf417-encoding/_index.md +++ b/barcode/greek/net/compact-pdf417-encoding/_index.md @@ -46,7 +46,7 @@ weight: 29 - **Λειτουργία Συμπαγούς:** Αφαιρεί περιττές προσθήκες, δημιουργώντας έναν μικρότερο κώδικα χωρίς να θυσιάζει την αναγνωσιμότητα. ### Επιλογές Διόρθωσης Σφαλμάτων PDF417 -Το Aspose.BarCode σας επιτρέπει να ορίσετε την ιδιότητα `Pdf417ErrorCorrectionLevel` (0‑8). Τα υψηλότερα επίπεδα αυξάνουν τον πλεονασμό, κάτι χρήσιμο σε σκληρά περιβάλλοντα όπως η βιομηχανική σάρωση. Επιλέξτε επίπεδο βάσει της ανοχή σας στον κίνδυνο και των περιορισμών χώρου. +Το Aspose.BarCode σας επιτρέπει να ορίσετε την ιδιότητα `Pdf417ErrorCorrectionLevel` (0‑8). Τα υψηλότερα επίπεδα αυξάνουν τον πλεονασμό, κάτι χρήσιμο σε σκληρά περιβάλλοντα όπως η βιομηχανική σάρωση. Επιλέξτε επίπεδο βάσει της ανοχής σας στον κίνδυνο και των περιορισμών χώρου. ## Δημιουργία Συμπαγών PDF417 Κωδικών με το Aspose.BarCode for .NET @@ -85,6 +85,14 @@ weight: 29 ## Συμμετοχικά Σεμινάρια Συμπαγούς PDF417 ### [Δημιουργία Συμπαγών PDF417 Κωδικών](./compact-pdf417-basic-configuration/) Μάθετε πώς να δημιουργείτε Συμπαγείς PDF417 κωδικούς χρησιμοποιώντας το Aspose.BarCode for .NET. Αναλυτικός οδηγός με βήμα‑βήμα οδηγίες και παραδείγματα κώδικα. +### [Δημιουργία κώδικα PDF417 σε C# – οδηγός βήμα‑βήμα](./create-pdf417-barcode-in-c-step-by-step-guide/) +Μάθετε πώς να δημιουργήσετε κώδικα PDF417 σε C# με αναλυτικές οδηγίες βήμα‑βήμα. +### [Δημιουργία PDF417 barcode C# – πλήρης οδηγός με Aspose.BarCode](./generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/) +Μάθετε πώς να δημιουργήσετε barcode PDF417 σε C# χρησιμοποιώντας το Aspose.BarCode, βήμα‑βήμα με παραδείγματα. +### [πώς να αποθηκεύσετε κωδικό barcode ως εικόνα – πλήρης οδηγός C#](./how-to-save-barcode-as-an-image-complete-c-guide/) +Μάθετε πώς να αποθηκεύσετε barcode ως εικόνα σε C# χρησιμοποιώντας το Aspose.BarCode, βήμα‑βήμα με παραδείγματα. +### [Ανάγνωση κώδικα PDF417 σε C# – παράδειγμα αναγνώστη barcode](./read-pdf417-barcode-in-c-barcode-reader-example/) +Μάθετε πώς να διαβάζετε κώδικες PDF417 σε C# χρησιμοποιώντας το Aspose.BarCode Reader. ## Συχνές Ερωτήσεις @@ -114,4 +122,4 @@ weight: 29 {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/greek/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md b/barcode/greek/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..3f0eb565f --- /dev/null +++ b/barcode/greek/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md @@ -0,0 +1,227 @@ +--- +category: general +date: 2026-08-03 +description: Δημιουργήστε γρήγορα γραμμωτό κώδικα PDF417 σε C#. Μάθετε πώς να δημιουργήσετε + γραμμωτό κώδικα PDF417 και πώς να αποθηκεύσετε την εικόνα του κώδικα ως PNG με το + Aspose.Barcode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create pdf417 barcode +- how to generate pdf417 barcode +- how to save barcode image +language: el +lastmod: 2026-08-03 +og_description: Δημιουργήστε γραμμωτό κώδικα PDF417 σε C# με το Aspose.Barcode. Ακολουθήστε + αυτόν τον οδηγό για να δημιουργήσετε γραμμωτό κώδικα PDF417 και να μάθετε πώς να + αποθηκεύετε την εικόνα του κώδικα αποδοτικά. +og_image_alt: Screenshot of a generated compact PDF417 barcode saved as PNG +og_title: Δημιουργία κώδικα PDF417 σε C# – πλήρες σεμινάριο προγραμματισμού +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + headline: Create PDF417 barcode in C# – step‑by‑step guide + type: TechArticle +- description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + name: Create PDF417 barcode in C# – step‑by‑step guide + steps: + - name: Why this matters + text: '* **EncodeTypes.Pdf417** tells the library to use the PDF417 standard, + which supports large data payloads and error correction. * Providing Unicode + characters proves the generator handles non‑ASCII input without extra configuration.' + - name: Practical tip + text: If you need a taller barcode for limited horizontal space, increase `Columns`. + Setting `Truncate` to `true` reduces the overall height by removing quiet zones, + which is ideal for mobile screens. + - name: Expected result + text: Running the program creates `CompactPdf417.png` in the project folder. Opening + the file shows a compact PDF417 barcode that encodes the string *Åspóse.Barcóde©*. + The image can be embedded in HTML, PDF reports, or printed on labels. + - name: Verifying the output + text: 'After the program finishes, you can verify the file exists with a quick + command:' + type: HowTo +tags: +- barcode +- C# +- PDF417 +- image generation +title: Δημιουργία γραμμωτού κώδικα PDF417 σε C# – οδηγός βήμα προς βήμα +url: /el/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Δημιουργία PDF417 barcode σε C# – βήμα‑βήμα οδηγός + +Αν χρειάζεστε **να δημιουργήσετε PDF417 barcode** σε μια εφαρμογή .NET, αυτός ο οδηγός σας δείχνει ακριβώς πώς να δημιουργήσετε PDF417 barcode και πώς να αποθηκεύσετε την εικόνα του barcode. Θα καταλήξετε με ένα αρχείο PNG που μπορεί να χρησιμοποιηθεί σε αναφορές, εισιτήρια ή εφαρμογές σάρωσης για κινητά. + +Το tutorial καλύπτει τα πάντα, από τη ρύθμιση του έργου μέχρι το τελικό αρχείο PNG. Δεν απαιτείται εξωτερική τεκμηρίωση· ακολουθήστε τα βήματα και εκτελέστε τον κώδικα. + +## Τι θα χρειαστείτε + +Πριν ξεκινήσετε, βεβαιωθείτε ότι έχετε: + +* .NET 6.0 SDK ή νεότερο (ο κώδικας λειτουργεί επίσης με .NET Framework 4.7+) +* Visual Studio 2022 ή οποιοδήποτε IDE που υποστηρίζει C# +* Πρόσβαση στο Internet για την εγκατάσταση του πακέτου NuGet **Aspose.Barcode for .NET** + +Αυτές οι προαπαιτούμενες εξασφαλίζουν ότι ο κώδικας θα μεταγλωττιστεί χωρίς πρόσθετη ρύθμιση. + +## Δημιουργία PDF417 barcode – ρύθμιση έργου + +1. Ανοίξτε μια γραμμή εντολών και δημιουργήστε ένα νέο κονσολικό έργο: + + ```bash + dotnet new console -n Pdf417Demo + cd Pdf417Demo + ``` + +2. Προσθέστε τη βιβλιοθήκη Aspose.Barcode: + + ```bash + dotnet add package Aspose.Barcode + ``` + +3. Ανοίξτε το παραγόμενο αρχείο `Program.cs`. Οι δηλώσεις `using` στην κορυφή σας δίνουν πρόσβαση στις κλάσεις barcode: + + ```csharp + using System; + using Aspose.Barcode.Generation; + using Aspose.Barcode; + ``` + +Το έργο είναι τώρα έτοιμο να **δημιουργήσει PDF417 barcode**. + +## Πώς να δημιουργήσετε PDF417 barcode με Aspose.Barcode + +Ο πυρήνας της δημιουργίας του barcode βρίσκεται στην κλάση `BarcodeGenerator`. Καθορίζετε τη συμβολική (symbology) (`EncodeTypes.Pdf417`) και τα δεδομένα που θέλετε να κωδικοποιήσετε. + +```csharp +// Step 1: Initialise the generator with PDF417 symbology and sample text. +// The text includes Unicode characters to demonstrate full‑range support. +BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Pdf417, "Åspóse.Barcóde©"); +``` + +### Γιατί είναι σημαντικό + +* **EncodeTypes.Pdf417** ενημερώνει τη βιβλιοθήκη να χρησιμοποιήσει το πρότυπο PDF417, το οποίο υποστηρίζει μεγάλα δεδομένα και διόρθωση σφαλμάτων. +* Η παροχή χαρακτήρων Unicode αποδεικνύει ότι ο δημιουργός διαχειρίζεται είσοδο μη‑ASCII χωρίς πρόσθετη ρύθμιση. + +## Πώς να ρυθμίσετε την εμφάνιση του barcode + +Μπορείτε να ελέγξετε το μέγεθος κάθε μονάδας, τον αριθμό των στηλών και αν το barcode χρησιμοποιεί συμπαγή (truncated) λειτουργία. Αυτές οι ρυθμίσεις επηρεάζουν τόσο την αναγνωσιμότητα όσο και το μέγεθος του αρχείου. + +```csharp +// Step 2: Set the module (X) dimension – each barcode element will be 2 pixels wide. +generator.Parameters.Barcode.XDimension.Pixels = 2; + +// Step 3: Configure PDF417‑specific options. +generator.Parameters.Barcode.Pdf417.Columns = 3; // Number of columns (affects height) +generator.Parameters.Barcode.Pdf417.Truncate = true; // Enable compact mode +``` + +### Πρακτική συμβουλή + +Αν χρειάζεστε ένα ψηλότερο barcode για περιορισμένο οριζόντιο χώρο, αυξήστε το `Columns`. Ορίζοντας το `Truncate` σε `true` μειώνει το συνολικό ύψος αφαιρώντας τις ήσυχες ζώνες, κάτι που είναι ιδανικό για οθόνες κινητών. + +## Πώς να αποθηκεύσετε την εικόνα του barcode ως PNG + +Αφού ρυθμίσετε τον δημιουργό, καλέστε `Save` με διαδρομή αρχείου και την επιθυμητή μορφή εικόνας. Η μέθοδος γράφει την εικόνα απευθείας στο δίσκο. + +```csharp +// Step 4: Save the generated barcode as a PNG image. +string outputPath = @"./CompactPdf417.png"; +generator.Save(outputPath, BarCodeImageFormat.Png); +Console.WriteLine($"Barcode saved to {outputPath}"); +``` + +### Αναμενόμενο αποτέλεσμα + +Η εκτέλεση του προγράμματος δημιουργεί το `CompactPdf417.png` στον φάκελο του έργου. Ανοίγοντας το αρχείο εμφανίζεται ένα συμπαγές PDF417 barcode που κωδικοποιεί τη συμβολοσειρά *Åspóse.Barcóde©*. Η εικόνα μπορεί να ενσωματωθεί σε HTML, αναφορές PDF ή να εκτυπωθεί σε ετικέτες. + +## Πλήρης κώδικας πηγής + +Παρακάτω βρίσκεται το πλήρες, εκτελέσιμο πρόγραμμα. Αντιγράψτε το στο `Program.cs` και εκτελέστε `dotnet run`. + +```csharp +using System; +using Aspose.Barcode.Generation; +using Aspose.Barcode; + +namespace Pdf417Demo +{ + class Program + { + static void Main() + { + // Initialise the generator with PDF417 symbology and sample text. + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.Pdf417, + "Åspóse.Barcóde©"); + + // Set the module width to 2 pixels. + generator.Parameters.Barcode.XDimension.Pixels = 2; + + // Configure PDF417‑specific options. + generator.Parameters.Barcode.Pdf417.Columns = 3; + generator.Parameters.Barcode.Pdf417.Truncate = true; + + // Define the output file path. + string outputPath = @"./CompactPdf417.png"; + + // Save the barcode as a PNG image. + generator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"Barcode saved to {outputPath}"); + } + } +} +``` + +### Επαλήθευση του αποτελέσματος + +Μετά το τέλος του προγράμματος, μπορείτε να επαληθεύσετε ότι το αρχείο υπάρχει με μια γρήγορη εντολή: + +```bash +dotnet run && ls -l CompactPdf417.png +``` + +Αν το αρχείο εμφανιστεί, η διαδικασία **δημιουργίας PDF417 barcode** ολοκληρώθηκε με επιτυχία. + +## Συνηθισμένες παραλλαγές και ειδικές περιπτώσεις + +| Κατάσταση | Προσαρμογή | +|-----------|------------| +| **Μακρύτερη συμβολοσειρά δεδομένων** | Αυξήστε το `Columns` ή ορίστε `Rows` για να φιλοξενήσετε περισσότερες codewords. | +| **Διαφορετική μορφή εικόνας** | Αντικαταστήστε το `BarCodeImageFormat.Png` με `Jpeg`, `Bmp` ή `Gif`. | +| **Υψηλότερη ανάλυση** | Ορίστε `generator.Parameters.ImageResolution` πριν το `Save`. | +| **Χρώμα φόντου** | Χρησιμοποιήστε `generator.Parameters.Barcode.ImageBackgroundColor = Color.White;` | +| **Διαχείριση εξαιρέσεων** | Τυλίξτε το `generator.Save` σε μπλοκ `try/catch` για να συλλάβετε σφάλματα I/O. | + +Αυτές οι παραλλαγές σας επιτρέπουν να προσαρμόσετε το barcode για συγκεκριμένες συσκευές ή απαιτήσεις branding. + +## Συμπέρασμα + +Τώρα γνωρίζετε πώς να **δημιουργήσετε PDF417 barcode** σε C# χρησιμοποιώντας το Aspose.Barcode, να ρυθμίσετε την εμφάνισή του και να **αποθηκεύσετε την εικόνα του barcode** ως αρχείο PNG. Το πλήρες παράδειγμα δείχνει κάθε απαιτούμενο βήμα, από τη ρύθμιση του έργου μέχρι την επαλήθευση, ώστε να ενσωματώσετε τη δημιουργία barcode σε οποιαδήποτε λύση .NET. + +Στη συνέχεια, εξετάστε σχετικές θεματικές όπως **πώς να δημιουργήσετε QR codes**, **ενσωμάτωση barcode σε έγγραφα PDF**, ή **προσαρμογή χρωμάτων barcode**. Κάθε μία από αυτές βασίζεται στο ίδιο API του δημιουργού, επιτρέποντάς σας να επεκτείνετε τις δυνατότητες σάρωσης της εφαρμογής σας με ελάχιστη προσπάθεια. Καλό κώδικα! + +## Τι πρέπει να μάθετε στη συνέχεια; + +Τα παρακάτω tutorials καλύπτουν στενά συναφή θέματα που βασίζονται στις τεχνικές που παρουσιάζονται σε αυτόν τον οδηγό. Κάθε πόρος περιλαμβάνει πλήρη λειτουργικά παραδείγματα κώδικα με βήμα‑βήμα εξηγήσεις για να σας βοηθήσουν να κυριαρχήσετε πρόσθετες δυνατότητες του API και να εξερευνήσετε εναλλακτικές προσεγγίσεις υλοποίησης στα δικά σας έργα. + +- [Πώς να δημιουργήσετε Barcode – Compact PDF417 με Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [Πώς να δημιουργήσετε DataMatrix Barcodes (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/) + +{{< /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/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md b/barcode/greek/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md new file mode 100644 index 000000000..44f28de5a --- /dev/null +++ b/barcode/greek/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md @@ -0,0 +1,242 @@ +--- +category: general +date: 2026-08-03 +description: Δημιουργήστε γραμμωτό κώδικα PDF417 σε C# χρησιμοποιώντας το Aspose.BarCode. + Μάθετε βήμα‑βήμα πώς να προσθέσετε μεταδεδομένα Macro PDF417 και να το αποθηκεύσετε + ως PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- generate PDF417 barcode C# +- Macro PDF417 barcode +- Aspose.BarCode +- C# barcode generation +- PDF417 metadata +- barcode image PNG +language: el +lastmod: 2026-08-03 +og_description: Δημιουργήστε γραμμωτό κώδικα PDF417 C# με το Aspose.BarCode. Αυτό + το σεμινάριο δείχνει πώς να ενσωματώσετε μεταδεδομένα Macro PDF417 και να εξάγετε + το αποτέλεσμα ως εικόνα PNG. +og_image_alt: Screenshot of a generated PDF417 barcode created with C# +og_title: Δημιουργία κώδικα PDF417 C# – βήμα‑βήμα οδηγός Aspose.BarCode +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + headline: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + type: TechArticle +- description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + name: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + steps: + - name: Create a Macro PDF417 barcode generator + text: First, instantiate `BarcodeGenerator` with the `EncodeTypes.MacroPdf417` + enum. The constructor also accepts the text you want to encode – in this example + we use a string that contains Unicode characters to demonstrate full‑width support. + - name: Adjust basic barcode appearance + text: Next, define the visual size of the barcode. `XDimension.Pixels` controls + the width of a single module (the smallest black/white square), while `Pdf417.Columns` + influences the overall shape by setting the number of columns. + - name: Populate Macro PDF417 metadata + text: Macro PDF417 allows you to embed file‑level information that many back‑office + systems rely on (e.g., file ID, segment ID, timestamp). The following properties + illustrate the most common fields. + - name: Save the barcode image as PNG + text: Finally, call `Save` to write the barcode to disk. PNG is lossless, making + it ideal for high‑quality scanning. + - name: How to verify the result + text: 1. Open `ExtPDF417Meta.png` in any image viewer. 2. Use a PDF417 scanner + app (e.g., *Zebra Scanner* or *BarCode Reader* on Android/iOS). 3. Confirm that + the decoded payload includes the original text and a JSON‑like block with the + macro fields you set. + - name: Next steps + text: '- Experiment with other barcode formats (e.g., QR, Code128) by changing + `EncodeTypes`. - Explore `Pdf417.ErrorCorrectionLevel` to improve scan reliability + under poor lighting. - Integrate the generated image into a PDF report using + Aspose.PDF for end‑to‑end document automation.' + type: HowTo +tags: +- PDF417 +- C# +- Barcode +title: Δημιουργία barcode PDF417 C# – πλήρης οδηγός με Aspose.BarCode +url: /el/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Δημιουργία barcode PDF417 C# – πλήρης οδηγός + +Αν χρειάζεστε **να δημιουργήσετε barcode PDF417 C#** για σύστημα logistics ή διαχείρισης εγγράφων, αυτό το tutorial σας δείχνει ακριβώς πώς να το κάνετε με το Aspose.BarCode. Θα δείτε πώς να ρυθμίσετε το barcode, να ενσωματώσετε μεταδεδομένα Macro PDF417 και να αποθηκεύσετε το αποτέλεσμα ως εικόνα PNG σε λίγες μόνο γραμμές κώδικα. + +Η δημιουργία ενός barcode PDF417 σε C# συχνά σημαίνει διαχείριση πρόσθετων πληροφοριών όπως αναγνωριστικά αρχείων, αριθμοί τμημάτων ή χρονικές σφραγίδες. Αυτός ο οδηγός καλύπτει αυτές τις λεπτομέρειες, ώστε να μην χρειάζεται να ψάχνετε σε διάσπαρτη τεκμηρίωση. Στο τέλος του άρθρου θα έχετε ένα έτοιμο προς εκτέλεση πρόγραμμα που παράγει μια συμβατή εικόνα barcode Macro PDF417. + +## Τι θα χρειαστείτε + +- .NET 6.0 ή νεότερο (ο κώδικας λειτουργεί επίσης με .NET Framework 4.7+) +- Aspose.BarCode for .NET (v23.9 ή νεότερο) – εγκατάσταση μέσω NuGet `Install-Package Aspose.BarCode` +- Περιβάλλον ανάπτυξης όπως Visual Studio 2022 ή Visual Studio Code +- Βασική εξοικείωση με τη σύνταξη C# + +> **Συμβουλή:** Χρησιμοποιήστε την πιο πρόσφατη έκδοση του Aspose.BarCode για να επωφεληθείτε από διορθώσεις σφαλμάτων και υποστήριξη των πιο νέων προδιαγραφών PDF417. + +## Πώς να δημιουργήσετε barcode PDF417 C# με Aspose.BarCode + +Η διαδικασία αποτελείται από τέσσερα λογικά βήματα. Κάθε βήμα είναι ενσωματωμένο σε ένα σαφές μπλοκ κώδικα ώστε να μπορείτε να το αντιγράψετε, επικολλήσετε και εκτελέσετε αμέσως. + +### Βήμα 1: Δημιουργία γεννήτριας barcode Macro PDF417 + +Αρχικά, δημιουργήστε ένα αντικείμενο `BarcodeGenerator` με την παράμετρο `EncodeTypes.MacroPdf417`. Ο κατασκευαστής δέχεται επίσης το κείμενο που θέλετε να κωδικοποιήσετε – σε αυτό το παράδειγμα χρησιμοποιούμε μια συμβολοσειρά που περιέχει χαρακτήρες Unicode για να δείξουμε υποστήριξη πλήρους πλάτους. + +```csharp +using System; +using Aspose.BarCode.Generation; + +// Create a Macro PDF417 barcode generator with the desired text +using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) +{ + // Subsequent steps go inside this using block +``` + +*Γιατί είναι σημαντικό*: Ο τύπος `MacroPdf417` ενημερώνει το Aspose.BarCode να αντιμετωπίζει το σύμβολο ως macro barcode, το οποίο μπορεί να μεταφέρει πρόσθετα μεταδεδομένα επιπέδου αρχείου. Χωρίς αυτή τη σημαία τα επιπλέον πεδία που θα ορίσετε αργότερα θα αγνοηθούν. + +### Βήμα 2: Προσαρμογή βασικής εμφάνισης barcode + +Στη συνέχεια, ορίστε το οπτικό μέγεθος του barcode. Το `XDimension.Pixels` ελέγχει το πλάτος μιας μονάδας (το μικρότερο μαύρο/λευκό τετράγωνο), ενώ το `Pdf417.Columns` επηρεάζει το συνολικό σχήμα ορίζοντας τον αριθμό των στηλών. + +```csharp + // Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol +``` + +*Γιατί είναι σημαντικό*: Μικρότερο `XDimension` παράγει εικόνα υψηλότερης ανάλυσης, χρήσιμη όταν το barcode πρέπει να σαρωθεί από οθόνη. Η αλλαγή του αριθμού στηλών μπορεί να βοηθήσει στην προσαρμογή του barcode σε περιορισμένο χώρο χωρίς να μειωθεί η χωρητικότητα των δεδομένων. + +### Βήμα 3: Συμπλήρωση μεταδεδομένων Macro PDF417 + +Το Macro PDF417 επιτρέπει την ενσωμάτωση πληροφοριών επιπέδου αρχείου που πολλά συστήματα back‑office βασίζονται (π.χ., file ID, segment ID, timestamp). Οι παρακάτω ιδιότητες δείχνουν τα πιο συνηθισμένα πεδία. + +```csharp + // Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; +``` + +*Γιατί είναι σημαντικό*: Κάθε πεδίο αντιστοιχεί άμεσα σε ένα τμήμα της προδιαγραφής του macro barcode. Για παράδειγμα, το `MacroPdf417FileID` αναγνωρίζει μοναδικά το λογικό αρχείο, ενώ το `MacroPdf417SegmentsCount` ενημερώνει τον σαρωτή πόσα τμήματα να περιμένει. Η παροχή ακριβών μεταδεδομένων εξασφαλίζει ότι τα downstream συστήματα μπορούν να ανακατασκευάσουν το αρχικό έγγραφο χωρίς σφάλματα. + +### Βήμα 4: Αποθήκευση της εικόνας barcode ως PNG + +Τέλος, καλέστε το `Save` για να γράψετε το barcode στο δίσκο. Το PNG είναι lossless, καθιστώντας το ιδανικό για σάρωση υψηλής ποιότητας. + +```csharp + // Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); +} +``` + +*Γιατί είναι σημαντικό*: Η παράμετρος `BarCodeImageFormat.Png` εγγυάται ότι το αρχείο εξόδου περιέχει τα ακριβή δεδομένα pixel που διαμορφώσατε. Αν χρειάζεστε μορφή vector για κλιμάκωση, αντικαταστήστε το `Png` με `Svg` – το Aspose.BarCode το υποστηρίζει από την αρχή. + +#### Αναμενόμενο αποτέλεσμα + +Η εκτέλεση του πλήρους προγράμματος δημιουργεί ένα αρχείο με όνομα **ExtPDF417Meta.png**. Η εικόνα εμφανίζει ένα πυκνό, πολυγραμμικό σύμβολο PDF417 που περιλαμβάνει το κείμενο “Åspóse.Barcóde©” και τα macro μεταδεδομένα που παρείχατε. Η σάρωση του barcode με αναγνώστη συμβατό με PDF417 επιστρέφει το αρχικό κείμενο συν ένα δομημένο μπλοκ δεδομένων που περιέχει το file ID, segment ID, timestamp και άλλα πεδία. + +![Στιγμιότυπο του παραγόμενου barcode PDF417](/images/pdf417-example.png){: .center-image alt="παραγωγή barcode PDF417 C# παράδειγμα εξόδου"} + +## Πλήρης κώδικας πηγής (έτοιμος για αντιγραφή‑επικόλληση) + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace Pdf417MacroDemo +{ + class Program + { + static void Main() + { + // Step 1: Create a Macro PDF417 barcode generator with the desired text + using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) + { + // Step 2: Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol + + // Step 3: Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; + + // Step 4: Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); + } + + Console.WriteLine("Macro PDF417 barcode generated successfully."); + } + } +} +``` + +### Πώς να επαληθεύσετε το αποτέλεσμα + +1. Ανοίξτε το `ExtPDF417Meta.png` σε οποιονδήποτε προβολέα εικόνων. +2. Χρησιμοποιήστε μια εφαρμογή σάρωσης PDF417 (π.χ., *Zebra Scanner* ή *BarCode Reader* σε Android/iOS). +3. Επιβεβαιώστε ότι το αποκωδικοποιημένο payload περιλαμβάνει το αρχικό κείμενο και ένα μπλοκ τύπου JSON με τα macro πεδία που ορίσατε. + +## Συχνές ερωτήσεις και διαχείριση ειδικών περιπτώσεων + +| Ερώτηση | Απάντηση | +|----------|--------| +| **Μπορώ να δημιουργήσω εικόνα vector αντί για PNG;** | Ναι. Αντικαταστήστε το `BarCodeImageFormat.Png` με `BarCodeImageFormat.Svg`. Το υπόλοιπο του κώδικα παραμένει αμετάβλητο. | +| **Τι γίνεται αν τα δεδομένα μου υπερβαίνουν την προεπιλεγμένη χωρητικότητα;** | Αυξήστε το `Pdf417.Columns` ή ορίστε το `Pdf417.Rows` χειροκίνητα. Μεγαλύτερες τιμές επιτρέπουν περισσότερους κώδικες ανά τμήμα. | +| **Υποστηρίζεται το Unicode στο κωδικοποιημένο κείμενο;** | Απόλυτα. Το παράδειγμα χρησιμοποιεί “Åspóse.Barcóde©”. Το Aspose.BarCode αλλάζει αυτόματα σε κωδικοποίηση UTF‑8 όταν χρειάζεται. | +| **Πρέπει να υπογράψω άδεια για το Aspose.BarCode;** | Για παραγωγή θα πρέπει να εφαρμόσετε άδεια ώστε να αποφύγετε το υδατογράφημα αξιολόγησης. Καλέστε `License license = new License(); license.SetLicense("Aspose.BarCode.lic");` πριν δημιουργήσετε τη γεννήτρια. | +| **Πώς να διαχειριστώ σφάλματα κατά την αποθήκευση του αρχείου;** | Τυλίξτε την κλήση `Save` σε μπλοκ try/catch και καταγράψτε `IOException` ή `BarCodeException` για εντοπισμό προβλημάτων. | + +## Συμπέρασμα + +Τώρα ξέρετε πώς να **δημιουργήσετε barcode PDF417 C#** χρησιμοποιώντας το Aspose.BarCode, να ενσωματώσετε πλήρη μεταδεδομένα Macro PDF417 και να εξάγετε το αποτέλεσμα ως εικόνα PNG υψηλής ποιότητας. Τα βήματα—δημιουργία της γεννήτριας, προσαρμογή εμφάνισης, συμπλήρωση μεταδεδομένων και αποθήκευση της εικόνας—αποτελούν ένα επαναχρησιμοποιήσιμο μοτίβο που μπορείτε να προσαρμόσετε για τιμολόγια, ετικέτες αποστολής ή οποιοδήποτε σενάριο που απαιτεί πλούσια δεδομένα barcode. + +### Επόμενα βήματα + +- Πειραματιστείτε με άλλες μορφές barcode (π.χ., QR, Code128) αλλάζοντας το `EncodeTypes`. +- Εξερευνήστε το `Pdf417.ErrorCorrectionLevel` για να βελτιώσετε την αξιοπιστία σάρωσης σε χαμηλό φωτισμό. +- Ενσωματώστε την παραγόμενη εικόνα σε αναφορά PDF χρησιμοποιώντας το Aspose.PDF για αυτοματοποίηση εγγράφων end‑to‑end. + +Μη διστάσετε να τροποποιήσετε τα πεδία μεταδεδομένων ώστε να ταιριάζουν με τους επιχειρηματικούς σας κανόνες, και αφήστε τη δημιουργία barcode να γίνει μια απρόσκοπτη μέρος των εφαρμογών C# σας. Καλή προγραμματιστική! + +## Τι πρέπει να μάθετε στη συνέχεια; + +Τα παρακάτω tutorials καλύπτουν στενά σχετιζόμενα θέματα που βασίζονται στις τεχνικές που παρουσιάστηκαν σε αυτόν τον οδηγό. Κάθε πόρος περιλαμβάνει πλήρη παραδείγματα κώδικα με βήμα‑βήμα εξηγήσεις για να σας βοηθήσει να κυριαρχήσετε πρόσθετες δυνατότητες API και να εξερευνήσετε εναλλακτικές προσεγγίσεις υλοποίησης στα δικά σας έργα. + +- [Πώς να δημιουργήσετε Barcode – Compact PDF417 με Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [Πώς να δημιουργήσετε Barcode – Compact PDF417 με Aspose.BarCode](/barcode/german/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [Βιβλιοθήκη barcode Java – Προσθήκη barcode σε PDF χρησιμοποιώντας Aspose](/barcode/english/java/barcode-basics/adding-barcode-to-pdf-document/) + +{{< /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/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md b/barcode/greek/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md new file mode 100644 index 000000000..fd227dfce --- /dev/null +++ b/barcode/greek/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md @@ -0,0 +1,186 @@ +--- +category: general +date: 2026-08-03 +description: Πώς να αποθηκεύσετε γρήγορα ένα barcode χρησιμοποιώντας C#. Μάθετε τη + δημιουργία barcode MicroPDF417, ορίστε τις διαστάσεις, επιλέξτε στήλες και εξάγετε + σε PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to save barcode +- MicroPDF417 barcode +- C# barcode generation +- barcode XDimension +- PDF417 columns +- barcode image format +language: el +lastmod: 2026-08-03 +og_description: πώς να αποθηκεύσετε barcode σε C# με πλήρες παράδειγμα. Δημιουργήστε + ένα barcode MicroPDF417, προσαρμόστε το μέγεθος, ορίστε στήλες και εξαγάγετε σε + PNG. +og_image_alt: Screenshot showing a MicroPDF417 barcode saved as a PNG file +og_title: πώς να αποθηκεύσετε γραμμωτό κώδικα – βήμα‑βήμα οδηγός C# +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: how to save barcode quickly using C#. Learn MicroPDF417 barcode generation, + set dimensions, choose columns, and export to PNG. + headline: how to save barcode as an image – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- imaging +title: πώς να αποθηκεύσετε το barcode ως εικόνα – πλήρης οδηγός C# +url: /el/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# πώς να αποθηκεύσετε barcode – πλήρης οδηγός C# + +Αν χρειάζεστε **πώς να αποθηκεύσετε barcode** σε μια εφαρμογή .NET, αυτό το tutorial σας δείχνει τα ακριβή βήματα. Θα δημιουργήσετε ένα barcode MicroPDF417, θα προσαρμόσετε τις διαστάσεις του, θα επιλέξετε τον αριθμό στηλών και τελικά θα γράψετε την εικόνα στο δίσκο ως αρχείο PNG. + +Η δημιουργία και η αποθήκευση barcode δεν απαιτεί μια βαριά βιβλιοθήκη — απλώς την κλάση `BarcodeGenerator` από το σύνολο Aspose.BarCode for .NET. Στις παρακάτω ενότητες περπατάμε μέσα από κάθε επιλογή ρύθμισης, εξηγούμε γιατί είναι σημαντική και σας παρέχουμε ένα έτοιμο‑για‑εκτέλεση δείγμα κώδικα. + +## Προαπαιτούμενα + +- .NET 6.0 ή νεότερο (το API λειτουργεί με .NET Core και .NET Framework) +- Aspose.BarCode for .NET (πακέτο NuGet `Aspose.BarCode`) +- Ένας φάκελος στον οποίο έχετε δικαίωμα εγγραφής (χρησιμοποιείται στο βήμα **πώς να αποθηκεύσετε barcode**) + +## Βήμα 1: Δημιουργία γεννήτριας barcode MicroPDF417 + +Η πρώτη εργασία σε οποιαδήποτε ροή εργασίας **πώς να αποθηκεύσετε barcode** είναι η δημιουργία ενός αντικειμένου `BarcodeGenerator` με την επιθυμητή συμβολική και τα δεδομένα. Το MicroPDF417 είναι μια συμπαγής έκδοση του matrix barcode PDF417, ιδανική για μικρές ετικέτες. + +```csharp +using Aspose.BarCode.Generation; + +// Create a MicroPDF417 barcode with sample text that includes Unicode characters. +BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, // Symbology + "Åspóse.Barcóde©"); // Data to encode +``` + +**Γιατί αυτό είναι σημαντικό:** +`EncodeTypes.MicroPdf417` λέει στη βιβλιοθήκη να χρησιμοποιήσει τον αλγόριθμο MicroPDF417, ο οποίος διαχειρίζεται αυτόματα τη διόρθωση σφαλμάτων και την κωδικοποίηση δεδομένων. Η παροχή κειμένου Unicode δείχνει ότι η γεννήτρια επεξεργάζεται σωστά χαρακτήρες που δεν είναι ASCII. + +## Βήμα 2: Προσαρμογή της διάστασης X (μέγεθος μονάδας) + +Η διάσταση X ορίζει το πλάτος ενός μόνο μονάδας barcode (pixel). Μια μικρότερη τιμή παράγει ένα πιο πυκνό barcode, ενώ μια μεγαλύτερη τιμή το κάνει πιο εύκολο στην σάρωση. + +```csharp +// Set each module to 2 pixels wide. +barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +**Γιατί αυτό είναι σημαντικό:** +Ο ορισμός του `barcode XDimension` εξασφαλίζει ότι το barcode ταιριάζει στο μέγεθος της ετικέτας-στόχου. Αν παραλείψετε αυτό το βήμα, το προεπιλεγμένο μέγεθος μπορεί να είναι πολύ μεγάλο για κινητές οθόνες ή μικρές εκτυπώσεις. + +## Βήμα 3: Επιλογή του αριθμού στηλών για το matrix PDF417 + +Το MicroPDF417 υποστηρίζει 1–4 στήλες. Περισσότερες στήλες παράγουν ένα πιο τετράγωνο barcode· λιγότερες στήλες το τεντώνουν κάθετα. + +```csharp +// Use the maximum of 4 columns for a compact, square shape. +barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; +``` + +**Γιατί αυτό είναι σημαντικό:** +Η προσαρμογή των **στηλών PDF417** σας επιτρέπει να ισορροπήσετε την αναγνωσιμότητα με τους περιορισμούς χώρου. Σε πολλές περιπτώσεις σάρωσης, μια διάταξη 4 στηλών προσφέρει την καλύτερη ισορροπία. + +## Βήμα 4: Αποθήκευση του παραγόμενου barcode ως εικόνα PNG + +Τώρα που το barcode έχει ρυθμιστεί, μπορείτε τελικά να απαντήσετε στο “**πώς να αποθηκεύσετε barcode**” γράφοντάς το σε αρχείο. Το PNG διατηρεί την ποιότητα χωρίς απώλειες, κάτι που είναι απαραίτητο για καθαρή σάρωση. + +```csharp +// Define the output path (ensure the directory exists). +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + +// Export the barcode to PNG. +barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + +Console.WriteLine($"Barcode saved to: {outputPath}"); +``` + +**Γιατί αυτό είναι σημαντικό:** +`barcode image format` καθορίζει την οπτική πιστότητα του αποθηκευμένου αρχείου. Το PNG προτιμάται για τις περισσότερες διεπαφές χρήστη και διαδικασίες εκτύπωσης επειδή διατηρεί καθαρά άκρα χωρίς τεχνητά συμπιεστικά εφέ. + +## Πλήρες, εκτελέσιμο παράδειγμα + +Συνδυάζοντας όλα μαζί, έχετε ένα αυτόνομο πρόγραμμα που μπορείτε να αντιγράψετε, επικολλήσετε και να εκτελέσετε. + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // 1️⃣ Create the barcode generator. + BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, + "Åspóse.Barcóde©"); + + // 2️⃣ Adjust module size. + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; + + // 3️⃣ Set column count (1‑4 allowed). + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; + + // 4️⃣ Define output location. + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + + // 5️⃣ Save as PNG. + barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"✅ Barcode saved to: {outputPath}"); + } +} +``` + +**Αναμενόμενο αποτέλεσμα** + +Η εκτέλεση του προγράμματος δημιουργεί το `MicroPdf417.png` στην επιφάνεια εργασίας σας. Ανοίγοντας το αρχείο εμφανίζεται ένα καθαρό barcode MicroPDF417 που κωδικοποιεί τη συμβολοσειρά `Åspóse.Barcóde©`. Η σάρωση του με οποιονδήποτε τυπικό scanner barcode επιστρέφει το αρχικό κείμενο. + +## Συχνές ερωτήσεις και ειδικές περιπτώσεις + +| Ερώτηση | Απάντηση | +|----------|--------| +| *Μπορώ να χρησιμοποιήσω JPEG αντί για PNG;* | Ναι. Αντικαταστήστε το `BarCodeImageFormat.Png` με το `BarCodeImageFormat.Jpeg`. Το JPEG είναι μικρότερο αλλά εισάγει συμπιεστικά εφέ που μπορεί να επηρεάσουν τη σάρωση. | +| *Τι γίνεται αν τα δεδομένα μου υπερβαίνουν τη χωρητικότητα του MicroPDF417;* | Το MicroPDF417 μπορεί να αποθηκεύσει έως 1 KB δεδομένων. Για μεγαλύτερα payloads μεταβείτε στο πλήρες `EncodeTypes.Pdf417`. | +| *Πώς αλλάζω το χρώμα του barcode;* | Χρησιμοποιήστε το `barcodeGenerator.Parameters.Barcode.BarColor` και `BackColor` για να ορίσετε τα χρώματα προσκηνίου/υπόβαθρου πριν καλέσετε το `Save`. | +| *Είναι η διάσταση X περιορισμένη σε ακέραια pixel;* | Η ιδιότητα δέχεται `float`. Τιμές όπως `1.5f` επιτρέπονται, αλλά οι περισσότερες εκτυπωτές λειτουργούν καλύτερα με πλήρη pixel. | + +## Επαγγελματικές συμβουλές για αξιόπιστες υλοποιήσεις **πώς να αποθηκεύσετε barcode** + +- **Επικυρώστε το φάκελο εξόδου** με `Directory.Exists` πριν καλέσετε το `Save` για να αποφύγετε το `IOException`. +- **Αποδεσμεύστε τη γεννήτρια** (`barcodeGenerator.Dispose()`) όταν δημιουργείτε πολλά barcode σε βρόχο για να ελευθερώσετε τους εγγενείς πόρους. +- **Δοκιμάστε με πραγματικούς scanners** μετά την αποθήκευση· η οπτική επιθεώρηση δεν αρκεί για παραγωγικές εγκαταστάσεις. +- **Διατηρήστε τη βιβλιοθήκη ενημερωμένη** — οι νεότερες εκδόσεις του Aspose.BarCode προσθέτουν βελτιώσεις στη συμβολική και διορθώσεις σφαλμάτων. + +## Συμπέρασμα + +Τώρα γνωρίζετε **πώς να αποθηκεύσετε barcode** εικόνες σε C# χρησιμοποιώντας τη βιβλιοθήκη Aspose.BarCode. Δημιουργώντας ένα barcode MicroPDF417, ρυθμίζοντας το **barcode XDimension**, επιλέγοντας τις κατάλληλες **στήλες PDF417** και εξάγοντας σε **μορφή εικόνας barcode** όπως PNG, έχετε μια πλήρη, έτοιμη για παραγωγή λύση. + +Στη συνέχεια, εξερευνήστε συναφή θέματα όπως **δημιουργία barcode C# για QR codes**, **δημιουργία barcode σε παρτίδες**, ή **ενσωμάτωση barcode σε PDF αναφορές**. Κάθε ένα από αυτά βασίζεται στις ίδιες αρχές που παρουσιάστηκαν εδώ, επιτρέποντάς σας να επεκτείνετε το εργαλείο απεικόνισης με σιγουριά. + +## Τι Θα Μάθετε Στη Σειρά; + +- [Πώς να αποθηκεύσετε PNG χρησιμοποιώντας DataMatrix C40 με Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-c40/) +- [Πώς να ορίσετε περιθώριο για προσαρμογή barcode ITF-14](/barcode/english/net/itf-14-barcode-customization/) +- [Πώς να δημιουργήσετε barcode Aztec με προσαρμοσμένη αναλογία διαστάσεων χρησιμοποιώντας Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) + +{{< /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/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md b/barcode/greek/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md new file mode 100644 index 000000000..53835eecc --- /dev/null +++ b/barcode/greek/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md @@ -0,0 +1,218 @@ +--- +category: general +date: 2026-08-03 +description: Διαβάστε το barcode PDF417 από μια εικόνα χρησιμοποιώντας C# BarCodeReader + – ένα πλήρες παράδειγμα αναγνώστη barcode που επίσης δείχνει πώς να διαβάζετε πολλαπλά + barcodes. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- read PDF417 barcode +- barcode reader example +- read multiple barcodes +- read barcodes image +language: el +lastmod: 2026-08-03 +og_description: Διαβάστε γρήγορα τον κωδικό PDF417 με ένα παράδειγμα C# BarCodeReader. + Ακολουθήστε αυτόν τον βήμα‑βήμα οδηγό για να αποκωδικοποιήσετε το macro PDF417 και + να διαβάσετε πολλαπλούς κωδικούς από μια εικόνα. +og_image_alt: Console output of a read PDF417 barcode example in C# +og_title: Ανάγνωση γραμμωτού κώδικα PDF417 σε C# – πλήρες παράδειγμα αναγνώστη γραμμωτού + κώδικα +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + headline: Read PDF417 barcode in C# – barcode reader example + type: TechArticle +- description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + name: Read PDF417 barcode in C# – barcode reader example + steps: + - name: '**Create a new console project**' + text: '**Create a new console project**' + - name: '**Add the barcode library**' + text: '**Add the barcode library**' + - name: '**Copy the barcode image**' + text: '**Copy the barcode image**' + type: HowTo +tags: +- barcode +- PDF417 +- C# +- .NET +title: Ανάγνωση κωδικού PDF417 σε C# – παράδειγμα αναγνώστη barcode +url: /el/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Ανάγνωση barcode PDF417 σε C# – παράδειγμα αναγνώστη barcode + +Αν χρειάζεστε να διαβάσετε δεδομένα barcode PDF417 από μια εικόνα, αυτός ο οδηγός σας δείχνει πώς να το κάνετε με την κλάση **BarCodeReader** σε C#. Θα μάθετε ένα παράδειγμα αναγνώστη barcode που επίσης χειρίζεται macro PDF417 και μπορεί να διαβάσει πολλαπλά barcode σε μία εικόνα. + +Η εργασία με barcode συχνά σημαίνει αντιμετώπιση διαφορετικών πηγών εικόνας, μεταβαλλόμενων συνθηκών φωτισμού και μερικές φορές σύνθετων δεδομένων όπως τμήματα macro PDF417. Αυτό το tutorial καλύπτει όλα όσα χρειάζεστε για να αποκωδικοποιήσετε ένα barcode PDF417, να εξάγετε τα εκτεταμένα πεδία του και να επεξεργαστείτε πολλά barcode από την ίδια εικόνα. Στο τέλος θα έχετε ένα εκτελέσιμο πρόγραμμα console που διαβάζει barcode από αρχείο εικόνας και εκτυπώνει λεπτομερείς πληροφορίες στην κονσόλα. + +## Τι θα χρειαστείτε + +Πριν ξεκινήσετε, βεβαιωθείτε ότι έχετε: + +* .NET 6.0 SDK ή νεότερο εγκατεστημένο +* Μια πρόσφατη έκδοση του **Aspose.BarCode for .NET** πακέτου NuGet (ή οποιαδήποτε συμβατή βιβλιοθήκη που παρέχει `BarCodeReader` και `DecodeType.MacroPdf417`) +* Ένα αρχείο εικόνας που περιέχει barcode PDF417 ή macro PDF417 (το παράδειγμα χρησιμοποιεί το `ExtPDF417Meta.png`) +* Έναν επεξεργαστή κώδικα ή IDE όπως το Visual Studio 2022 + +Δεν απαιτούνται πρόσθετες υπηρεσίες ή εξωτερικά APIs. + +## Ρύθμιση του έργου για ανάγνωση barcode + +1. **Δημιουργήστε ένα νέο έργο console** + + ```bash + dotnet new console -n Pdf417ReaderDemo + cd Pdf417ReaderDemo + ``` + +2. **Προσθέστε τη βιβλιοθήκη barcode** + + ```bash + dotnet add package Aspose.BarCode --version 23.12 + ``` + +3. **Αντιγράψτε την εικόνα barcode** + + Τοποθετήστε το `ExtPDF417Meta.png` (ή οποιαδήποτε εικόνα που περιέχει barcode PDF417) στον φάκελο του έργου. + Για αυτό το tutorial υποθέτουμε ότι το αρχείο βρίσκεται στο `YOUR_DIRECTORY/ExtPDF417Meta.png`. + +Το έργο είναι τώρα έτοιμο να μεταγλωττιστεί και να εκτελέσει το παράδειγμα αναγνώστη barcode. + +## Πώς να διαβάσετε barcode PDF417 με BarCodeReader + +Ο πυρήνας της λύσης είναι ένα μπλοκ `using` που δημιουργεί ένα στιγμιότυπο `BarCodeReader`, ορίζει `DecodeType.MacroPdf417` και επαναλαμβάνει κάθε εντοπισμένο barcode. Ο παρακάτω κώδικας είναι ένα πλήρες, αυτόνομο πρόγραμμα που μπορείτε να επικολλήσετε στο `Program.cs`. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.BarCodeRecognition; + +class Program +{ + static void Main() + { + // Path to the image that contains one or more PDF417 barcodes + const string imagePath = "YOUR_DIRECTORY/ExtPDF417Meta.png"; + + // Step 1: Create a BarCodeReader for a macro PDF417 image + using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.MacroPdf417)) + { + // Step 2: Read all barcodes from the image + foreach (BarCodeResult result in reader.ReadBarCodes()) + { + // Step 3: Output basic barcode information + Console.WriteLine($"CodeType: {result.CodeTypeName}"); + Console.WriteLine($"CodeText: {result.CodeText}"); + + // Step 4: Output macro PDF417 specific fields + Console.WriteLine($"Pdf417MacroFileID: {result.Extended.Pdf417.MacroPdf417FileID}"); + Console.WriteLine($"Pdf417MacroSegmentID: {result.Extended.Pdf417.MacroPdf417SegmentID}"); + Console.WriteLine($"Pdf417MacroSegmentsCount: {result.Extended.Pdf417.MacroPdf417SegmentsCount}"); + Console.WriteLine($"Pdf417MacroFileName: {result.Extended.Pdf417.MacroPdf417FileName}"); + Console.WriteLine($"Pdf417MacroChecksum: {result.Extended.Pdf417.MacroPdf417Checksum}"); + Console.WriteLine($"Pdf417MacroFileSize: {result.Extended.Pdf417.MacroPdf417FileSize}"); + Console.WriteLine($"Pdf417MacroTimeStamp: {result.Extended.Pdf417.MacroPdf417TimeStamp}"); + Console.WriteLine($"Pdf417MacroAddressee: {result.Extended.Pdf417.MacroPdf417Addressee}"); + Console.WriteLine($"Pdf417MacroSender: {result.Extended.Pdf417.MacroPdf417Sender}"); + Console.WriteLine($"MacroPdf417Terminator: {result.Extended.Pdf417.MacroPdf417Terminator}"); + Console.WriteLine(new string('-', 40)); + } + + // Pro tip: If no barcodes are found, ReadBarCodes() returns an empty collection. + // You can check reader.HasBarcodes for a quick boolean test. + if (!reader.HasBarcodes) + { + Console.WriteLine("No barcodes detected in the provided image."); + } + } + } +} +``` + +**Γιατί αυτό λειτουργεί**: + +* `DecodeType.MacroPdf417` λέει στον αναγνώστη να ψάξει για την επέκταση macro του PDF417, η οποία μεταφέρει πρόσθετα μεταδεδομένα όπως ID αρχείου, αριθμό τμημάτων και χρονικές σφραγίδες. +* Η δήλωση `using` εγγυάται ότι οι μη διαχειριζόμενοι πόροι (χειριστές αρχείων, φυσικοί buffers αποκωδικοποίησης) απελευθερώνονται άμεσα. +* Ο βρόχος `foreach` επεξεργάζεται αυτόματα **όλα** τα barcode που περιέχει η εικόνα, ικανοποιώντας την απαίτηση *ανάγνωσης πολλαπλών barcode*. + +Όταν εκτελέσετε το πρόγραμμα (`dotnet run`), θα πρέπει να δείτε έξοδο παρόμοια με την παρακάτω: + +``` +CodeType: MacroPdf417 +CodeText: https://example.com/document.pdf +Pdf417MacroFileID: 12345 +Pdf417MacroSegmentID: 1 +Pdf417MacroSegmentsCount: 3 +Pdf417MacroFileName: document.pdf +Pdf417MacroChecksum: 0x1A2B +Pdf417MacroFileSize: 204800 +Pdf417MacroTimeStamp: 2024-07-15T10:25:00Z +Pdf417MacroAddressee: John Doe +Pdf417MacroSender: Acme Corp +MacroPdf417Terminator: True +---------------------------------------- +``` + +Αν η εικόνα περιέχει περισσότερα από ένα barcode PDF417, ο βρόχος εκτυπώνει ξεχωριστό τμήμα για κάθε barcode, δείχνοντας έτσι πώς να **διαβάσετε πολλαπλά barcode** από μία εικόνα. + +## Ανάγνωση πολλαπλών barcode από μια εικόνα + +Το ίδιο στιγμιότυπο `BarCodeReader` μπορεί να αποκωδικοποιήσει πολλαπλούς τύπους barcode ταυτόχρονα. Για να επεκτείνετε το εύρος από μόνο macro PDF417 σε οποιοδήποτε PDF417 (ή ακόμη QR, Code128, κ.λπ.), προσαρμόστε τη σημαία `DecodeType`: + +```csharp +using (BarCodeReader reader = new BarCodeReader(imagePath, + DecodeType.Pdf417 | DecodeType.MacroPdf417 | DecodeType.QR | DecodeType.Code128)) +{ + // The rest of the code stays unchanged. +} +``` + +*`DecodeType`* είναι bitmask, έτσι μπορείτε να συνδυάσετε όποιον αριθμό υποστηριζόμενων μορφών θέλετε. Αυτή η ευελιξία κάνει το απόσπασμα ένα **παράδειγμα αναγνώστη barcode** που λειτουργεί για μια ευρεία ποικιλία περιπτώσεων χρήσης, όπως σάρωση ετικετών προϊόντων, εισιτηρίων ή ταυτοτήτων. + +## Πρόσβαση στα πεδία macro PDF417 με ασφάλεια + +Macro PDF417 προσθέτει ένα πλούσιο σύνολο εκτεταμένων ιδιοτήτων. Ωστόσο, δεν περιλαμβάνει κάθε barcode όλα τα πεδία. Η πρόσβαση σε μια ελλιπή ιδιότητα μπορεί να προκαλέσει `NullReferenceException`. Η πιο ασφαλής προσέγγιση είναι να ελέγχετε κάθε ιδιότητα πριν την εκτυπώσετε: + +```csharp +var macro = result.Extended?.Pdf417; +if (macro != null) +{ + Console.WriteLine($"Pdf417MacroFileID: {macro.MacroPdf417FileID ?? "N/A"}"); + // Repeat for other fields... +} +``` + +*Γιατί αυτό είναι σημαντικό*: Σε πραγματικές εφαρμογές μπορεί να λάβετε απλά barcode PDF417 που δεν έχουν δεδομένα macro. Ο έλεγχος άμυνας διασφαλίζει ότι η εφαρμογή σας συνεχίζει να λειτουργεί χωρίς να καταρρεύσει. + +## Συνηθισμένα προβλήματα και βέλτιστες πρακτικές + +| Πρόβλημα | Γιατί συμβαίνει | Συνιστώμενη διόρθωση | +|----------|----------------|----------------------| +| Η διαδρομή της εικόνας είναι λανθασμένη | `BarCodeReader` πετάει εξαίρεση αρχείου‑δεν‑βρέθηκε πριν ξεκινήσει η αποκωδικοποίηση | Χρησιμοποιήστε `Path.Combine` και επαληθεύστε ότι το αρχείο υπάρχει με `File.Exists` | +| Εικόνα χαμηλής ανάλυσης | Ο αποκωδικοποιητής δεν μπορεί να εντοπίσει τις άκρες του barcode, με αποτέλεσμα μηδενικές ανιχνεύσεις | Παρέχετε ελάχιστη ανάλυση 300 dpi για αξιόπιστα αποτελέσματα | +| Barcode περιστραμμένο > 45° | Πολλές βιβλιοθήκες υποθέτουν κάθετη προσανατολισμό | Ενεργοποιήστε `reader.RecognitionOptions.RotateImage = true` αν το | + +## Τι πρέπει να μάθετε στη συνέχεια; + +Τα παρακάτω tutorials καλύπτουν στενά συναφή θέματα που βασίζονται στις τεχνικές που παρουσιάστηκαν σε αυτόν τον οδηγό. Κάθε πόρος περιλαμβάνει πλήρη λειτουργικό κώδικα με βήμα‑βήμα εξηγήσεις για να σας βοηθήσει να κυριαρχήσετε πρόσθετες δυνατότητες API και να εξερευνήσετε εναλλακτικές προσεγγίσεις υλοποίησης στα δικά σας έργα. + +- [Πώς να διαβάσετε barcode DataMatrix με Aspose.BarCode for .NET](/barcode/english/net/datamatrix-barcode-reading/) +- [Ανάγνωση barcode DataMatrix C# – Δημιουργία DataMatrix Mode (Auto)](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-auto/) +- [Ανάγνωση barcode από εικόνα – Κατακτώντας την εξαγωγή περιοχής barcode σε Java με Aspose.BarCode](/barcode/english/java/advanced-settings-and-optimization/extracting-barcode-region-information/) + +{{< /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/net/compact-pdf417-encoding/_index.md b/barcode/hindi/net/compact-pdf417-encoding/_index.md index 7df391155..056a8ca0f 100644 --- a/barcode/hindi/net/compact-pdf417-encoding/_index.md +++ b/barcode/hindi/net/compact-pdf417-encoding/_index.md @@ -86,6 +86,16 @@ Aspose.BarCode आपको `Pdf417ErrorCorrectionLevel` प्रॉपर् Aspose.BarCode for .NET का उपयोग करके Compact PDF417 बारकोड कैसे जनरेट करें सीखें। चरण‑दर‑चरण निर्देशों और कोड उदाहरणों के साथ व्यापक गाइड। +### [C# में PDF417 बारकोड बनाएं – चरण‑दर‑चरण गाइड](./create-pdf417-barcode-in-c-step-by-step-guide/) + +### [PDF417 बारकोड C# में जनरेट करें – Aspose.BarCode के साथ पूर्ण गाइड](./generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/) + +### [बारकोड को इमेज के रूप में सहेजें – पूर्ण C# गाइड](./how-to-save-barcode-as-an-image-complete-c-guide/) + +### [C# में PDF417 बारकोड पढ़ें – बारकोड रीडर उदाहरण](./read-pdf417-barcode-in-c-barcode-reader-example/) + +Aspose.BarCode for .NET का उपयोग करके C# में PDF417 बारकोड पढ़ने का उदाहरण। + ## अक्सर पूछे जाने वाले प्रश्न **Q: Compact PDF417 बारकोड में मैं अधिकतम कितना डेटा स्टोर कर सकता हूँ?** @@ -114,4 +124,4 @@ A: कोई बाहरी फ़ॉन्ट आवश्यक नहीं {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/hindi/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md b/barcode/hindi/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..285cac38c --- /dev/null +++ b/barcode/hindi/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md @@ -0,0 +1,226 @@ +--- +category: general +date: 2026-08-03 +description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create pdf417 barcode +- how to generate pdf417 barcode +- how to save barcode image +language: hi +lastmod: 2026-08-03 +og_description: Aspose.Barcode के साथ C# में PDF417 बारकोड बनाएं। इस गाइड का पालन + करके PDF417 बारकोड जेनरेट करें और बारकोड इमेज को कुशलतापूर्वक सहेजें। +og_image_alt: Screenshot of a generated compact PDF417 barcode saved as PNG +og_title: C# में PDF417 बारकोड बनाएं – पूर्ण कोडिंग ट्यूटोरियल +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + headline: Create PDF417 barcode in C# – step‑by‑step guide + type: TechArticle +- description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + name: Create PDF417 barcode in C# – step‑by‑step guide + steps: + - name: Why this matters + text: '* **EncodeTypes.Pdf417** tells the library to use the PDF417 standard, + which supports large data payloads and error correction. * Providing Unicode + characters proves the generator handles non‑ASCII input without extra configuration.' + - name: Practical tip + text: If you need a taller barcode for limited horizontal space, increase `Columns`. + Setting `Truncate` to `true` reduces the overall height by removing quiet zones, + which is ideal for mobile screens. + - name: Expected result + text: Running the program creates `CompactPdf417.png` in the project folder. Opening + the file shows a compact PDF417 barcode that encodes the string *Åspóse.Barcóde©*. + The image can be embedded in HTML, PDF reports, or printed on labels. + - name: Verifying the output + text: 'After the program finishes, you can verify the file exists with a quick + command:' + type: HowTo +tags: +- barcode +- C# +- PDF417 +- image generation +title: C# में PDF417 बारकोड बनाएं – चरण‑दर‑चरण गाइड +url: /hi/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# में PDF417 बारकोड बनाएं – चरण‑दर‑चरण गाइड + +यदि आपको .NET एप्लिकेशन में **PDF417 बारकोड बनाना** है, तो यह गाइड आपको दिखाएगा कि PDF417 बारकोड कैसे जेनरेट करें और बारकोड इमेज को कैसे सेव करें। अंत में आपके पास एक PNG फ़ाइल होगी जिसे रिपोर्ट, टिकट या मोबाइल स्कैनिंग ऐप्स में उपयोग किया जा सकता है। + +यह ट्यूटोरियल प्रोजेक्ट सेटअप से लेकर अंतिम PNG फ़ाइल तक सब कुछ कवर करता है। किसी बाहरी दस्तावेज़ की आवश्यकता नहीं है; बस चरणों का पालन करें और कोड चलाएँ। + +## आपको क्या चाहिए + +शुरू करने से पहले सुनिश्चित करें कि आपके पास निम्नलिखित हों: + +* .NET 6.0 SDK या बाद का संस्करण (कोड .NET Framework 4.7+ के साथ भी काम करता है) +* Visual Studio 2022 या कोई भी IDE जो C# को सपोर्ट करता हो +* **Aspose.Barcode for .NET** NuGet पैकेज को इंस्टॉल करने के लिए इंटरनेट कनेक्शन + +इन प्री‑रिक्विज़िट्स से कोड बिना अतिरिक्त कॉन्फ़िगरेशन के कंपाइल हो जाएगा। + +## PDF417 बारकोड बनाना – प्रोजेक्ट सेटअप + +1. कमांड प्रॉम्प्ट खोलें और एक नया कंसोल प्रोजेक्ट बनाएं: + + ```bash + dotnet new console -n Pdf417Demo + cd Pdf417Demo + ``` + +2. Aspose.Barcode लाइब्रेरी जोड़ें: + + ```bash + dotnet add package Aspose.Barcode + ``` + +3. जेनरेट हुई `Program.cs` फ़ाइल खोलें। फ़ाइल के ऊपर की `using` स्टेटमेंट्स आपको बारकोड क्लासेज़ तक पहुंच देती हैं: + + ```csharp + using System; + using Aspose.Barcode.Generation; + using Aspose.Barcode; + ``` + +अब प्रोजेक्ट **PDF417 बारकोड बनाने** के लिए तैयार है। + +## Aspose.Barcode के साथ PDF417 बारकोड जेनरेट करना + +बारकोड निर्माण का मुख्य हिस्सा `BarcodeGenerator` क्लास में रहता है। आप सिम्बोलॉजी (`EncodeTypes.Pdf417`) और वह डेटा जो आप एन्कोड करना चाहते हैं, निर्दिष्ट करते हैं। + +```csharp +// Step 1: Initialise the generator with PDF417 symbology and sample text. +// The text includes Unicode characters to demonstrate full‑range support. +BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Pdf417, "Åspóse.Barcóde©"); +``` + +### क्यों महत्वपूर्ण है + +* **EncodeTypes.Pdf417** लाइब्रेरी को PDF417 मानक उपयोग करने के लिए बताता है, जो बड़े डेटा पेलोड और एरर करेक्शन को सपोर्ट करता है। +* यूनिकोड कैरेक्टर्स प्रदान करने से यह साबित होता है कि जेनरेटर अतिरिक्त कॉन्फ़िगरेशन के बिना नॉन‑ASCII इनपुट को संभाल सकता है। + +## बारकोड की उपस्थिति कॉन्फ़िगर करना + +आप प्रत्येक मॉड्यूल का आकार, कॉलम की संख्या, और क्या बारकोड कॉम्पैक्ट (ट्रंकेटेड) मोड में है, नियंत्रित कर सकते हैं। ये सेटिंग्स पढ़ने की आसानी और फ़ाइल आकार दोनों को प्रभावित करती हैं। + +```csharp +// Step 2: Set the module (X) dimension – each barcode element will be 2 pixels wide. +generator.Parameters.Barcode.XDimension.Pixels = 2; + +// Step 3: Configure PDF417‑specific options. +generator.Parameters.Barcode.Pdf417.Columns = 3; // Number of columns (affects height) +generator.Parameters.Barcode.Pdf417.Truncate = true; // Enable compact mode +``` + +### व्यावहारिक टिप + +यदि आपके पास क्षैतिज जगह सीमित है और आपको ऊँचा बारकोड चाहिए, तो `Columns` बढ़ाएँ। `Truncate` को `true` सेट करने से क्वाइट ज़ोन हटाकर कुल ऊँचाई घट जाती है, जो मोबाइल स्क्रीन के लिए आदर्श है। + +## बारकोड इमेज को PNG के रूप में सेव करना + +जेनरेटर को कॉन्फ़िगर करने के बाद, `Save` को फ़ाइल पाथ और इच्छित इमेज फ़ॉर्मेट के साथ कॉल करें। यह मेथड इमेज को सीधे डिस्क पर लिख देता है। + +```csharp +// Step 4: Save the generated barcode as a PNG image. +string outputPath = @"./CompactPdf417.png"; +generator.Save(outputPath, BarCodeImageFormat.Png); +Console.WriteLine($"Barcode saved to {outputPath}"); +``` + +### अपेक्षित परिणाम + +प्रोग्राम चलाने पर प्रोजेक्ट फ़ोल्डर में `CompactPdf417.png` बनता है। फ़ाइल खोलने पर एक कॉम्पैक्ट PDF417 बारकोड दिखेगा जो स्ट्रिंग *Åspóse.Barcóde©* को एन्कोड करता है। इस इमेज को HTML, PDF रिपोर्ट में एम्बेड किया जा सकता है या लेबल पर प्रिंट किया जा सकता है। + +## पूर्ण स्रोत कोड + +नीचे पूरा, रन करने योग्य प्रोग्राम दिया गया है। इसे `Program.cs` में कॉपी करें और `dotnet run` चलाएँ। + +```csharp +using System; +using Aspose.Barcode.Generation; +using Aspose.Barcode; + +namespace Pdf417Demo +{ + class Program + { + static void Main() + { + // Initialise the generator with PDF417 symbology and sample text. + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.Pdf417, + "Åspóse.Barcóde©"); + + // Set the module width to 2 pixels. + generator.Parameters.Barcode.XDimension.Pixels = 2; + + // Configure PDF417‑specific options. + generator.Parameters.Barcode.Pdf417.Columns = 3; + generator.Parameters.Barcode.Pdf417.Truncate = true; + + // Define the output file path. + string outputPath = @"./CompactPdf417.png"; + + // Save the barcode as a PNG image. + generator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"Barcode saved to {outputPath}"); + } + } +} +``` + +### आउटपुट की जाँच + +प्रोग्राम समाप्त होने के बाद आप एक त्वरित कमांड से फ़ाइल की मौजूदगी जांच सकते हैं: + +```bash +dotnet run && ls -l CompactPdf417.png +``` + +यदि फ़ाइल दिखाई देती है, तो **PDF417 बारकोड बनाना** सफल रहा। + +## सामान्य वैरिएशन और एज केस + +| स्थिति | समायोजन | +|-----------|------------| +| **लंबी डेटा स्ट्रिंग** | अधिक कोडवर्ड्स को समायोजित करने के लिए `Columns` बढ़ाएँ या `Rows` सेट करें। | +| **विभिन्न इमेज फ़ॉर्मेट** | `BarCodeImageFormat.Png` को `Jpeg`, `Bmp` या `Gif` से बदलें। | +| **उच्च रेज़ोल्यूशन** | `Save` से पहले `generator.Parameters.ImageResolution` सेट करें। | +| **बैकग्राउंड रंग** | `generator.Parameters.Barcode.ImageBackgroundColor = Color.White;` उपयोग करें। | +| **एक्सेप्शन हैंडलिंग** | I/O त्रुटियों को पकड़ने के लिए `generator.Save` को `try/catch` ब्लॉक में रखें। | + +इन वैरिएशन्स से आप बारकोड को विशिष्ट डिवाइस या ब्रांडिंग आवश्यकताओं के अनुसार कस्टमाइज़ कर सकते हैं। + +## निष्कर्ष + +अब आप Aspose.Barcode का उपयोग करके C# में **PDF417 बारकोड बनाना**, उसकी उपस्थिति कॉन्फ़िगर करना, और **बारकोड इमेज को PNG फ़ाइल के रूप में सेव करना** जानते हैं। पूरा उदाहरण प्रोजेक्ट सेटअप से लेकर वेरिफिकेशन तक हर आवश्यक चरण दिखाता है, जिससे आप किसी भी .NET समाधान में बारकोड जेनरेशन को आसानी से इंटीग्रेट कर सकते हैं। + +अगले चरण में आप **QR कोड जेनरेट करना**, **PDF दस्तावेज़ों में बारकोड एम्बेड करना**, या **बारकोड रंग कस्टमाइज़ करना** जैसे विषयों को एक्सप्लोर कर सकते हैं। ये सभी समान जेनरेटर API पर आधारित हैं, जिससे आप न्यूनतम प्रयास में अपनी एप्लिकेशन की स्कैनिंग क्षमताओं को विस्तारित कर सकते हैं। कोडिंग का आनंद लें! + + +## आगे आप क्या सीखें? + +निम्नलिखित ट्यूटोरियल्स उन विषयों को कवर करते हैं जो इस गाइड में दिखाए गए तकनीकों पर आधारित हैं। प्रत्येक संसाधन में पूर्ण कार्यशील कोड उदाहरण और चरण‑दर‑चरण व्याख्याएँ शामिल हैं, जिससे आप अतिरिक्त API फीचर्स में महारत हासिल कर सकें और अपने प्रोजेक्ट्स में वैकल्पिक इम्प्लीमेंटेशन एप्रोच को आज़मा सकें। + +- [How to Create Barcode – Compact PDF417 with Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [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/) + +{{< /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/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md b/barcode/hindi/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md new file mode 100644 index 000000000..0f764b265 --- /dev/null +++ b/barcode/hindi/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md @@ -0,0 +1,241 @@ +--- +category: general +date: 2026-08-03 +description: Aspose.BarCode का उपयोग करके C# में PDF417 बारकोड बनाएं। चरण‑दर‑चरण सीखें + कि कैसे मैक्रो PDF417 मेटाडेटा जोड़ें और PNG के रूप में सहेजें। +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- generate PDF417 barcode C# +- Macro PDF417 barcode +- Aspose.BarCode +- C# barcode generation +- PDF417 metadata +- barcode image PNG +language: hi +lastmod: 2026-08-03 +og_description: Aspose.BarCode के साथ C# में PDF417 बारकोड जेनरेट करें। यह ट्यूटोरियल + दिखाता है कि कैसे मैक्रो PDF417 मेटाडेटा एम्बेड करें और परिणाम को PNG इमेज के रूप + में निर्यात करें। +og_image_alt: Screenshot of a generated PDF417 barcode created with C# +og_title: PDF417 बारकोड C# में जनरेट करें – चरण-दर-चरण Aspose.BarCode ट्यूटोरियल +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + headline: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + type: TechArticle +- description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + name: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + steps: + - name: Create a Macro PDF417 barcode generator + text: First, instantiate `BarcodeGenerator` with the `EncodeTypes.MacroPdf417` + enum. The constructor also accepts the text you want to encode – in this example + we use a string that contains Unicode characters to demonstrate full‑width support. + - name: Adjust basic barcode appearance + text: Next, define the visual size of the barcode. `XDimension.Pixels` controls + the width of a single module (the smallest black/white square), while `Pdf417.Columns` + influences the overall shape by setting the number of columns. + - name: Populate Macro PDF417 metadata + text: Macro PDF417 allows you to embed file‑level information that many back‑office + systems rely on (e.g., file ID, segment ID, timestamp). The following properties + illustrate the most common fields. + - name: Save the barcode image as PNG + text: Finally, call `Save` to write the barcode to disk. PNG is lossless, making + it ideal for high‑quality scanning. + - name: How to verify the result + text: 1. Open `ExtPDF417Meta.png` in any image viewer. 2. Use a PDF417 scanner + app (e.g., *Zebra Scanner* or *BarCode Reader* on Android/iOS). 3. Confirm that + the decoded payload includes the original text and a JSON‑like block with the + macro fields you set. + - name: Next steps + text: '- Experiment with other barcode formats (e.g., QR, Code128) by changing + `EncodeTypes`. - Explore `Pdf417.ErrorCorrectionLevel` to improve scan reliability + under poor lighting. - Integrate the generated image into a PDF report using + Aspose.PDF for end‑to‑end document automation.' + type: HowTo +tags: +- PDF417 +- C# +- Barcode +title: C# में PDF417 बारकोड जनरेट करें – Aspose.BarCode के साथ पूर्ण गाइड +url: /hi/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Generate PDF417 barcode C# – complete guide + +यदि आपको लॉजिस्टिक्स या दस्तावेज़‑प्रबंधन प्रणाली के लिए **generate PDF417 barcode C#** की आवश्यकता है, तो यह ट्यूटोरियल Aspose.BarCode के साथ इसे कैसे किया जाए, दिखाता है। आप देखेंगे कि बारकोड को कैसे कॉन्फ़िगर करें, Macro PDF417 मेटाडेटा को एम्बेड करें, और कुछ ही पंक्तियों के कोड में परिणाम को PNG इमेज के रूप में सहेजें। + +C# में PDF417 बारकोड बनाना अक्सर फ़ाइल पहचानकर्ता, सेगमेंट नंबर, या टाइमस्टैम्प जैसी अतिरिक्त जानकारी को संभालना शामिल करता है। यह गाइड उन विवरणों को कवर करता है, ताकि आपको बिखरे हुए दस्तावेज़ों में खोज न करनी पड़े। लेख के अंत में आपके पास एक तैयार‑चलाने‑योग्य प्रोग्राम होगा जो एक अनुपालन‑युक्त Macro PDF417 बारकोड इमेज उत्पन्न करता है। + +## What you’ll need + +- .NET 6.0 या बाद का संस्करण (कोड .NET Framework 4.7+ के साथ भी काम करता है) +- Aspose.BarCode for .NET (v23.9 या नया) – NuGet `Install-Package Aspose.BarCode` के माध्यम से इंस्टॉल करें +- Visual Studio 2022 या Visual Studio Code जैसा विकास वातावरण +- C# सिंटैक्स की बुनियादी समझ + +> **Pro tip:** नवीनतम Aspose.BarCode संस्करण का उपयोग करें ताकि बग फिक्स और नवीनतम PDF417 विशिष्टताओं का समर्थन मिल सके। + +## How to generate PDF417 barcode C# with Aspose.BarCode + +यह प्रक्रिया चार तार्किक चरणों में विभाजित है। प्रत्येक चरण को स्पष्ट कोड ब्लॉक में लपेटा गया है ताकि आप तुरंत कॉपी‑पेस्ट करके चला सकें। + +### Step 1: Create a Macro PDF417 barcode generator + +सबसे पहले, `BarcodeGenerator` को `EncodeTypes.MacroPdf417` एनेम के साथ इंस्टैंशिएट करें। कंस्ट्रक्टर वह टेक्स्ट भी लेता है जिसे आप एन्कोड करना चाहते हैं – इस उदाहरण में हम यूनिकोड कैरेक्टर वाली स्ट्रिंग का उपयोग करते हैं ताकि फुल‑वाइड सपोर्ट दिखाया जा सके। + +```csharp +using System; +using Aspose.BarCode.Generation; + +// Create a Macro PDF417 barcode generator with the desired text +using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) +{ + // Subsequent steps go inside this using block +``` + +*Why this matters*: `MacroPdf417` प्रकार Aspose.BarCode को बताता है कि प्रतीक को एक मैक्रो बारकोड के रूप में माना जाए, जो अतिरिक्त फ़ाइल‑स्तर मेटाडेटा ले जा सकता है। इस फ़्लैग के बिना बाद में सेट किए गए अतिरिक्त फ़ील्ड्स को नजरअंदाज कर दिया जाएगा। + +### Step 2: Adjust basic barcode appearance + +अब, बारकोड का दृश्य आकार निर्धारित करें। `XDimension.Pixels` एकल मॉड्यूल (सबसे छोटा काला/सफ़ेद वर्ग) की चौड़ाई नियंत्रित करता है, जबकि `Pdf417.Columns` कॉलमों की संख्या सेट करके समग्र आकार को प्रभावित करता है। + +```csharp + // Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol +``` + +*Why this matters*: छोटा `XDimension` उच्च‑रिज़ॉल्यूशन इमेज देता है, जो स्क्रीन से स्कैन करने पर उपयोगी होता है। कॉलम काउंट बदलने से आप सीमित जगह में बारकोड फिट कर सकते हैं बिना डेटा क्षमता घटाए। + +### Step 3: Populate Macro PDF417 metadata + +Macro PDF417 आपको फ़ाइल‑स्तर की जानकारी एम्बेड करने की अनुमति देता है, जिस पर कई बैक‑ऑफ़िस सिस्टम निर्भर करते हैं (जैसे फ़ाइल ID, सेगमेंट ID, टाइमस्टैम्प)। नीचे दिए गए प्रॉपर्टीज़ सबसे आम फ़ील्ड्स को दर्शाते हैं। + +```csharp + // Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; +``` + +*Why this matters*: प्रत्येक फ़ील्ड सीधे मैक्रो बारकोड स्पेसिफिकेशन के एक सेगमेंट से मैप होती है। उदाहरण के लिए, `MacroPdf417FileID` लॉजिकल फ़ाइल को विशिष्ट रूप से पहचानता है, जबकि `MacroPdf417SegmentsCount` स्कैनर को बताता है कि कितने भागों की अपेक्षा करनी है। सटीक मेटाडेटा प्रदान करने से डाउनस्ट्रीम सिस्टम मूल दस्तावेज़ को बिना त्रुटि के पुनः बनाते हैं। + +### Step 4: Save the barcode image as PNG + +अंत में, `Save` को कॉल करके बारकोड को डिस्क पर लिखें। PNG लॉसलेस है, इसलिए उच्च‑गुणवत्ता स्कैनिंग के लिए आदर्श है। + +```csharp + // Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); +} +``` + +*Why this matters*: `BarCodeImageFormat.Png` एनेम यह गारंटी देता है कि आउटपुट फ़ाइल में वही पिक्सेल डेटा होगा जो आपने कॉन्फ़िगर किया है। यदि आपको स्केलिंग के लिए वेक्टर फ़ॉर्मेट चाहिए, तो `Png` को `Svg` से बदलें – Aspose.BarCode इसे बॉक्स से बाहर सपोर्ट करता है। + +#### Expected output + +पूरा प्रोग्राम चलाने पर **ExtPDF417Meta.png** नाम की फ़ाइल बनती है। इमेज में एक घना, मल्टी‑रो PDF417 प्रतीक दिखता है जिसमें टेक्स्ट “Åspóse.Barcóde©” और आप द्वारा प्रदान किया गया मैक्रो मेटाडेटा सम्मिलित होता है। PDF417‑संगत रीडर से बारकोड स्कैन करने पर मूल टेक्स्ट के साथ एक संरचित डेटा ब्लॉक मिलता है जिसमें फ़ाइल ID, सेगमेंट ID, टाइमस्टैम्प और अन्य फ़ील्ड्स होते हैं। + +![जनरेटेड PDF417 बारकोड का स्क्रीनशॉट](/images/pdf417-example.png){: .center-image alt="generate PDF417 barcode C# example output"} + +## Full source code (copy‑paste ready) + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace Pdf417MacroDemo +{ + class Program + { + static void Main() + { + // Step 1: Create a Macro PDF417 barcode generator with the desired text + using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) + { + // Step 2: Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol + + // Step 3: Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; + + // Step 4: Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); + } + + Console.WriteLine("Macro PDF417 barcode generated successfully."); + } + } +} +``` + +### How to verify the result + +1. `ExtPDF417Meta.png` को किसी भी इमेज व्यूअर में खोलें। +2. PDF417 स्कैनर ऐप (जैसे *Zebra Scanner* या *BarCode Reader* Android/iOS पर) का उपयोग करें। +3. पुष्टि करें कि डिकोडेड पेलोड में मूल टेक्स्ट और वह JSON‑जैसा ब्लॉक शामिल है जिसमें आपने सेट किए हुए मैक्रो फ़ील्ड्स हों। + +## Common questions and edge‑case handling + +| Question | Answer | +|----------|--------| +| **Can I generate a vector image instead of PNG?** | हाँ। `BarCodeImageFormat.Png` को `BarCodeImageFormat.Svg` से बदलें। बाकी कोड अपरिवर्तित रहता है। | +| **What if my data exceeds the default capacity?** | `Pdf417.Columns` बढ़ाएँ या `Pdf417.Rows` को मैन्युअली सेट करें। बड़े मान अधिक कोडवर्ड्स प्रति सेगमेंट की अनुमति देते हैं। | +| **Is Unicode supported in the encoded text?** | बिल्कुल। उदाहरण में “Åspóse.Barcóde©” उपयोग किया गया है। Aspose.BarCode आवश्यकतानुसार UTF‑8 एन्कोडिंग पर स्विच करता है। | +| **Do I need to sign a license for Aspose.BarCode?** | प्रोडक्शन में मूल्यांकन वॉटरमार्क से बचने के लिए लाइसेंस लागू करना चाहिए। जनरेटर बनाने से पहले `License license = new License(); license.SetLicense("Aspose.BarCode.lic");` कॉल करें। | +| **How do I handle errors when saving the file?** | `Save` कॉल को try/catch ब्लॉक में रखें और ट्रबलशूटिंग के लिए `IOException` या `BarCodeException` को लॉग करें। | + +## Conclusion + +अब आप Aspose.BarCode का उपयोग करके **generate PDF417 barcode C#** करना, पूर्ण Macro PDF417 मेटाडेटा एम्बेड करना, और परिणाम को उच्च‑गुणवत्ता PNG इमेज के रूप में एक्सपोर्ट करना जानते हैं। चरण—जनरेटर बनाना, दिखावट समायोजित करना, मेटाडेटा भरना, और इमेज सहेजना—एक पुन: उपयोग योग्य पैटर्न बनाते हैं जिसे आप इनवॉइस, शिपिंग लेबल या किसी भी ऐसे परिदृश्य में अनुकूलित कर सकते हैं जहाँ समृद्ध बारकोड डेटा की आवश्यकता हो। + +### Next steps + +- `EncodeTypes` बदलकर अन्य बारकोड फ़ॉर्मेट (जैसे QR, Code128) के साथ प्रयोग करें। +- खराब रोशनी में स्कैन विश्वसनीयता बढ़ाने के लिए `Pdf417.ErrorCorrectionLevel` को एक्सप्लोर करें। +- Aspose.PDF के साथ जनरेटेड इमेज को PDF रिपोर्ट में इंटीग्रेट करके एंड‑टू‑एंड डॉक्यूमेंट ऑटोमेशन बनाएं। + +मेटाडेटा फ़ील्ड्स को अपने बिज़नेस नियमों के अनुसार संशोधित करने में संकोच न करें, और बारकोड जेनरेशन को अपने C# एप्लिकेशन का सहज हिस्सा बनाएं। Happy coding! + +## What Should You Learn Next? + +नीचे दिए गए ट्यूटोरियल्स उन विषयों को कवर करते हैं जो इस गाइड में दिखाए गए तकनीकों पर आधारित हैं। प्रत्येक संसाधन में पूर्ण कार्यशील कोड उदाहरण और चरण‑दर‑चरण व्याख्याएँ शामिल हैं, जिससे आप अतिरिक्त API फीचर्स में महारत हासिल कर सकें और अपने प्रोजेक्ट्स में वैकल्पिक इम्प्लीमेंटेशन एप्रोच को एक्सप्लोर कर सकें। + +- [How to Create Barcode – Compact PDF417 with Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [So erstellen Sie einen Barcode – Kompaktes PDF417 mit Aspose.BarCode](/barcode/german/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [java barcode library – Add barcode to PDF using Aspose](/barcode/english/java/barcode-basics/adding-barcode-to-pdf-document/) + +{{< /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/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md b/barcode/hindi/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md new file mode 100644 index 000000000..a48f6ec82 --- /dev/null +++ b/barcode/hindi/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md @@ -0,0 +1,186 @@ +--- +category: general +date: 2026-08-03 +description: C# का उपयोग करके बारकोड को जल्दी कैसे सहेजें। माइक्रोPDF417 बारकोड जनरेशन + सीखें, आयाम सेट करें, कॉलम चुनें, और PNG में निर्यात करें। +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to save barcode +- MicroPDF417 barcode +- C# barcode generation +- barcode XDimension +- PDF417 columns +- barcode image format +language: hi +lastmod: 2026-08-03 +og_description: C# में बारकोड को कैसे सहेजें, पूर्ण उदाहरण के साथ। माइक्रोPDF417 बारकोड + जनरेट करें, आकार समायोजित करें, कॉलम सेट करें, और PNG में निर्यात करें। +og_image_alt: Screenshot showing a MicroPDF417 barcode saved as a PNG file +og_title: बारकोड कैसे सहेजें – चरण‑दर‑चरण C# ट्यूटोरियल +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: how to save barcode quickly using C#. Learn MicroPDF417 barcode generation, + set dimensions, choose columns, and export to PNG. + headline: how to save barcode as an image – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- imaging +title: बारकोड को इमेज के रूप में कैसे सहेजें – पूर्ण C# गाइड +url: /hi/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# बारकोड को कैसे सहेजें – पूर्ण C# गाइड + +यदि आपको **बारकोड को कैसे सहेजें** .NET एप्लिकेशन में चाहिए, तो यह ट्यूटोरियल आपको सटीक चरण दिखाता है। आप एक MicroPDF417 बारकोड बनाएँगे, उसके आकार को समायोजित करेंगे, कॉलम संख्या चुनेंगे, और अंत में इमेज को PNG फ़ाइल के रूप में डिस्क पर लिखेंगे। + +बारकोड बनाना और सहेजना भारी लाइब्रेरी की आवश्यकता नहीं रखता—सिर्फ Aspose.BarCode for .NET सूट की `BarcodeGenerator` क्लास पर्याप्त है। नीचे के सेक्शनों में हम प्रत्येक कॉन्फ़िगरेशन विकल्प को समझाते हैं, यह बताते हैं कि यह क्यों महत्वपूर्ण है, और एक तैयार‑चलाने‑योग्य कोड नमूना देते हैं। + +## पूर्वापेक्षाएँ + +- .NET 6.0 या बाद का संस्करण (API .NET Core और .NET Framework दोनों के साथ काम करता है) +- Aspose.BarCode for .NET (NuGet पैकेज `Aspose.BarCode`) +- एक फ़ोल्डर जहाँ आपके पास लिखने की अनुमति हो (**बारकोड को कैसे सहेजें** चरण में उपयोग किया जाएगा) + +## चरण 1: MicroPDF417 बारकोड जेनरेटर बनाएं + +किसी भी **बारकोड को कैसे सहेजें** वर्कफ़्लो में पहला काम है `BarcodeGenerator` को इच्छित सिम्बोलॉजी और डेटा के साथ इंस्टैंसिएट करना। MicroPDF417 PDF417 मैट्रिक्स बारकोड का कॉम्पैक्ट संस्करण है, जो छोटे लेबल्स के लिए आदर्श है। + +```csharp +using Aspose.BarCode.Generation; + +// Create a MicroPDF417 barcode with sample text that includes Unicode characters. +BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, // Symbology + "Åspóse.Barcóde©"); // Data to encode +``` + +**यह क्यों महत्वपूर्ण है:** +`EncodeTypes.MicroPdf417` लाइब्रेरी को MicroPDF417 एल्गोरिद्म उपयोग करने को बताता है, जो स्वचालित रूप से एरर करेक्शन और डेटा एन्कोडिंग संभालता है। यूनिकोड टेक्स्ट प्रदान करने से यह दिखता है कि जेनरेटर गैर‑ASCII अक्षरों को सही ढंग से प्रोसेस करता है। + +## चरण 2: X‑डायमेंशन (मॉड्यूल आकार) समायोजित करें + +X‑डायमेंशन एकल बारकोड मॉड्यूल (पिक्सेल) की चौड़ाई निर्धारित करता है। छोटा मान बारकोड को अधिक सघन बनाता है, जबकि बड़ा मान स्कैनिंग को आसान बनाता है। + +```csharp +// Set each module to 2 pixels wide. +barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +**यह क्यों महत्वपूर्ण है:** +`barcode XDimension` सेट करने से बारकोड लक्ष्य लेबल आकार में फिट हो जाता है। यदि आप इस चरण को छोड़ देते हैं, तो डिफ़ॉल्ट आकार मोबाइल स्क्रीन या छोटे प्रिंटआउट्स के लिए बहुत बड़ा हो सकता है। + +## चरण 3: PDF417 मैट्रिक्स के लिए कॉलम संख्या चुनें + +MicroPDF417 1–4 कॉलम का समर्थन करता है। अधिक कॉलम बारकोड को अधिक वर्गाकार बनाते हैं; कम कॉलम इसे लंबवत खींचते हैं। + +```csharp +// Use the maximum of 4 columns for a compact, square shape. +barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; +``` + +**यह क्यों महत्वपूर्ण है:** +**PDF417 कॉलम** को समायोजित करने से आप पठनीयता और स्थान सीमाओं के बीच संतुलन बना सकते हैं। कई स्कैनिंग परिदृश्यों में, 4‑कॉलम लेआउट सबसे अच्छा समझौता प्रदान करता है। + +## चरण 4: जेनरेटेड बारकोड को PNG इमेज के रूप में सहेजें + +अब बारकोड कॉन्फ़िगर हो गया है, आप अंततः “**बारकोड को कैसे सहेजें**” का उत्तर फ़ाइल में लिखकर दे सकते हैं। PNG लॉस‑लेस क्वालिटी बनाए रखता है, जो तेज़ स्कैनिंग के लिए आवश्यक है। + +```csharp +// Define the output path (ensure the directory exists). +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + +// Export the barcode to PNG. +barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + +Console.WriteLine($"Barcode saved to: {outputPath}"); +``` + +**यह क्यों महत्वपूर्ण है:** +`barcode image format` सहेजी गई फ़ाइल की दृश्य गुणवत्ता निर्धारित करता है। PNG अधिकांश UI और प्रिंटिंग वर्कफ़्लो के लिए पसंदीदा है क्योंकि यह बिना कम्प्रेशन आर्टिफैक्ट्स के तेज़ किनारे रखता है। + +## पूर्ण, चलाने योग्य उदाहरण + +सब कुछ मिलाकर आपको एक स्व-निहित प्रोग्राम मिलता है जिसे आप कॉपी, पेस्ट और रन कर सकते हैं। + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // 1️⃣ Create the barcode generator. + BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, + "Åspóse.Barcóde©"); + + // 2️⃣ Adjust module size. + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; + + // 3️⃣ Set column count (1‑4 allowed). + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; + + // 4️⃣ Define output location. + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + + // 5️⃣ Save as PNG. + barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"✅ Barcode saved to: {outputPath}"); + } +} +``` + +**अपेक्षित आउटपुट** + +प्रोग्राम चलाने पर आपके डेस्कटॉप पर `MicroPdf417.png` बनता है। फ़ाइल खोलने पर एक स्पष्ट MicroPDF417 बारकोड दिखता है जो स्ट्रिंग `Åspóse.Barcóde©` को एन्कोड करता है। इसे किसी भी मानक बारकोड स्कैनर से स्कैन करने पर मूल टेक्स्ट वापस मिलता है। + +## सामान्य प्रश्न और किनारे के मामलों + +| प्रश्न | उत्तर | +|----------|--------| +| *क्या मैं PNG के बजाय JPEG उपयोग कर सकता हूँ?* | हाँ। `BarCodeImageFormat.Png` को `BarCodeImageFormat.Jpeg` से बदल दें। JPEG छोटा होता है लेकिन कम्प्रेशन आर्टिफैक्ट्स जोड़ता है जो स्कैनिंग को प्रभावित कर सकते हैं। | +| *यदि मेरा डेटा MicroPDF417 क्षमता से अधिक हो तो?* | MicroPDF417 अधिकतम 1 KB डेटा स्टोर कर सकता है। बड़े पेलोड के लिए पूर्ण `EncodeTypes.Pdf417` पर स्विच करें। | +| *बारकोड का रंग कैसे बदलूँ?* | `barcodeGenerator.Parameters.Barcode.BarColor` और `BackColor` का उपयोग करके फोरग्राउंड/बैकग्राउंड रंग सेट करें, फिर `Save` कॉल करें। | +| *क्या X‑डायमेंशन केवल पूर्णांक पिक्सेल तक सीमित है?* | यह प्रॉपर्टी `float` स्वीकार करती है। `1.5f` जैसे मान मान्य हैं, लेकिन अधिकांश प्रिंटर पूरे‑पिक्सेल आकार के साथ बेहतर काम करते हैं। | + +## विश्वसनीय **बारकोड को कैसे सहेजें** कार्यान्वयन के लिए प्रो टिप्स + +- `Directory.Exists` के साथ **आउटपुट फ़ोल्डर** को वैलिडेट करें, ताकि `Save` कॉल करने पर `IOException` न आए। +- जब आप लूप में कई बारकोड जेनरेट करते हैं, तो **जेनरेटर को डिस्पोज़** (`barcodeGenerator.Dispose()`) करें ताकि नेटिव रिसोर्सेज़ मुक्त हों। +- सहेजने के बाद **वास्तविक स्कैनरों** से टेस्ट करें; केवल विज़ुअल निरीक्षण प्रोडक्शन डिप्लॉयमेंट के लिए पर्याप्त नहीं है। +- **लाइब्रेरी को अपडेट रखें**—नए Aspose.BarCode रिलीज़ सिम्बोलॉजी सुधार और बग फिक्स जोड़ते हैं। + +## निष्कर्ष + +आप अब **बारकोड को कैसे सहेजें** C# में Aspose.BarCode लाइब्रेरी का उपयोग करके जानते हैं। MicroPDF417 बारकोड बनाकर, **बारकोड XDimension** कॉन्फ़िगर करके, उपयुक्त **PDF417 कॉलम** चुनकर, और PNG जैसे **बारकोड इमेज फ़ॉर्मेट** में एक्सपोर्ट करके, आपके पास एक पूर्ण, प्रोडक्शन‑रेडी समाधान है। + +अब, संबंधित विषयों जैसे **C# बारकोड जेनरेशन फॉर QR कोड**, **बैच बारकोड निर्माण**, या **PDF रिपोर्ट में बारकोड एम्बेड करना** का अन्वेषण करें। ये सभी यहाँ दिखाए गए सिद्धांतों पर आधारित हैं, जिससे आप आत्मविश्वास के साथ अपने इमेजिंग टूलकिट को विस्तारित कर सकते हैं। + +## अगला आप क्या सीखें? + +निम्नलिखित ट्यूटोरियल्स उन विषयों को कवर करते हैं जो इस गाइड में दिखाए गए तकनीकों पर आधारित हैं। प्रत्येक संसाधन में पूर्ण कार्यशील कोड उदाहरण और चरण‑दर‑चरण व्याख्याएँ शामिल हैं, जिससे आप अतिरिक्त API फीचर्स में महारत हासिल कर सकें और अपने प्रोजेक्ट्स में वैकल्पिक इम्प्लीमेंटेशन अप्रोचेज़ का पता लगा सकें। + +- [How to Save PNG using DataMatrix C40 with Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-c40/) +- [How to Set Border for ITF-14 Barcode Customization](/barcode/english/net/itf-14-barcode-customization/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) + +{{< /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/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md b/barcode/hindi/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md new file mode 100644 index 000000000..53555f126 --- /dev/null +++ b/barcode/hindi/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md @@ -0,0 +1,214 @@ +--- +category: general +date: 2026-08-03 +description: C# BarCodeReader का उपयोग करके छवि से PDF417 बारकोड पढ़ें – एक पूर्ण + बारकोड रीडर उदाहरण जो कई बारकोड पढ़ने का तरीका भी दिखाता है। +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- read PDF417 barcode +- barcode reader example +- read multiple barcodes +- read barcodes image +language: hi +lastmod: 2026-08-03 +og_description: C# BarCodeReader उदाहरण के साथ PDF417 बारकोड को जल्दी पढ़ें। मैक्रो + PDF417 को डिकोड करने और एक छवि से कई बारकोड पढ़ने के लिए इस चरण‑दर‑चरण गाइड का पालन + करें। +og_image_alt: Console output of a read PDF417 barcode example in C# +og_title: C# में PDF417 बारकोड पढ़ें – पूर्ण बारकोड रीडर उदाहरण +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + headline: Read PDF417 barcode in C# – barcode reader example + type: TechArticle +- description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + name: Read PDF417 barcode in C# – barcode reader example + steps: + - name: '**Create a new console project**' + text: '**Create a new console project**' + - name: '**Add the barcode library**' + text: '**Add the barcode library**' + - name: '**Copy the barcode image**' + text: '**Copy the barcode image**' + type: HowTo +tags: +- barcode +- PDF417 +- C# +- .NET +title: C# में PDF417 बारकोड पढ़ें – बारकोड रीडर उदाहरण +url: /hi/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# में PDF417 बारकोड पढ़ें – बारकोड रीडर उदाहरण + +यदि आपको किसी छवि से PDF417 बारकोड डेटा पढ़ना है, तो यह गाइड आपको C# में **BarCodeReader** क्लास का उपयोग करके यह करने का तरीका दिखाता है। आप एक बारकोड रीडर उदाहरण सीखेंगे जो मैक्रो PDF417 को भी संभालता है और एक ही छवि में कई बारकोड पढ़ सकता है। + +बारकोड के साथ काम करना अक्सर विभिन्न इमेज स्रोतों, बदलते प्रकाश स्थितियों, और कभी‑कभी मैक्रो PDF417 सेगमेंट जैसे सम्मिलित डेटा से निपटना शामिल करता है। यह ट्यूटोरियल आपको PDF417 बारकोड को डिकोड करने, उसके विस्तारित फ़ील्ड्स निकालने, और एक ही तस्वीर से कई बारकोड प्रोसेस करने के लिए आवश्यक सब कुछ कवर करता है। अंत तक आपके पास एक चलाने योग्य कंसोल प्रोग्राम होगा जो इमेज फ़ाइल से बारकोड पढ़ता है और कंसोल में विस्तृत जानकारी प्रिंट करता है। + +## आपको क्या चाहिए + +* .NET 6.0 SDK या बाद का संस्करण स्थापित हो +* **Aspose.BarCode for .NET** NuGet पैकेज का नवीनतम संस्करण (या कोई भी संगत लाइब्रेरी जो `BarCodeReader` और `DecodeType.MacroPdf417` प्रदान करती है) +* एक इमेज फ़ाइल जिसमें PDF417 या मैक्रो PDF417 बारकोड हो (उदाहरण में `ExtPDF417Meta.png` उपयोग किया गया है) +* Visual Studio 2022 जैसे कोड एडिटर या IDE + +कोई अतिरिक्त सेवाएँ या बाहरी API आवश्यक नहीं हैं। + +## बारकोड पढ़ने के लिए प्रोजेक्ट सेटअप करना + +1. **एक नया कंसोल प्रोजेक्ट बनाएं** + + ```bash + dotnet new console -n Pdf417ReaderDemo + cd Pdf417ReaderDemo + ``` + +2. **बारकोड लाइब्रेरी जोड़ें** + + ```bash + dotnet add package Aspose.BarCode --version 23.12 + ``` + +3. **बारकोड इमेज कॉपी करें** + + `ExtPDF417Meta.png` (या कोई भी इमेज जिसमें PDF417 बारकोड हो) को प्रोजेक्ट फ़ोल्डर में रखें। + इस ट्यूटोरियल के लिए हम मानते हैं कि फ़ाइल `YOUR_DIRECTORY/ExtPDF417Meta.png` पर स्थित है। + +प्रोजेक्ट अब बारकोड रीडर उदाहरण को कंपाइल और चलाने के लिए तैयार है। + +## BarCodeReader के साथ PDF417 बारकोड कैसे पढ़ें + +समाधान का मूल भाग एक `using` ब्लॉक है जो `BarCodeReader` इंस्टेंस बनाता है, `DecodeType.MacroPdf417` निर्दिष्ट करता है, और प्रत्येक पहचाने गए बारकोड पर इटररेट करता है। नीचे दिया गया कोड एक पूर्ण, स्व-निहित प्रोग्राम है जिसे आप `Program.cs` में पेस्ट कर सकते हैं। + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.BarCodeRecognition; + +class Program +{ + static void Main() + { + // Path to the image that contains one or more PDF417 barcodes + const string imagePath = "YOUR_DIRECTORY/ExtPDF417Meta.png"; + + // Step 1: Create a BarCodeReader for a macro PDF417 image + using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.MacroPdf417)) + { + // Step 2: Read all barcodes from the image + foreach (BarCodeResult result in reader.ReadBarCodes()) + { + // Step 3: Output basic barcode information + Console.WriteLine($"CodeType: {result.CodeTypeName}"); + Console.WriteLine($"CodeText: {result.CodeText}"); + + // Step 4: Output macro PDF417 specific fields + Console.WriteLine($"Pdf417MacroFileID: {result.Extended.Pdf417.MacroPdf417FileID}"); + Console.WriteLine($"Pdf417MacroSegmentID: {result.Extended.Pdf417.MacroPdf417SegmentID}"); + Console.WriteLine($"Pdf417MacroSegmentsCount: {result.Extended.Pdf417.MacroPdf417SegmentsCount}"); + Console.WriteLine($"Pdf417MacroFileName: {result.Extended.Pdf417.MacroPdf417FileName}"); + Console.WriteLine($"Pdf417MacroChecksum: {result.Extended.Pdf417.MacroPdf417Checksum}"); + Console.WriteLine($"Pdf417MacroFileSize: {result.Extended.Pdf417.MacroPdf417FileSize}"); + Console.WriteLine($"Pdf417MacroTimeStamp: {result.Extended.Pdf417.MacroPdf417TimeStamp}"); + Console.WriteLine($"Pdf417MacroAddressee: {result.Extended.Pdf417.MacroPdf417Addressee}"); + Console.WriteLine($"Pdf417MacroSender: {result.Extended.Pdf417.MacroPdf417Sender}"); + Console.WriteLine($"MacroPdf417Terminator: {result.Extended.Pdf417.MacroPdf417Terminator}"); + Console.WriteLine(new string('-', 40)); + } + + // Pro tip: If no barcodes are found, ReadBarCodes() returns an empty collection. + // You can check reader.HasBarcodes for a quick boolean test. + if (!reader.HasBarcodes) + { + Console.WriteLine("No barcodes detected in the provided image."); + } + } + } +} +``` + +**यह क्यों काम करता है**: + +* `DecodeType.MacroPdf417` रीडर को PDF417 के मैक्रो एक्सटेंशन की तलाश करने के लिए बताता है, जो फ़ाइल आईडी, सेगमेंट काउंट, और टाइमस्टैम्प जैसे अतिरिक्त मेटाडेटा ले जाता है। +* `using` स्टेटमेंट यह सुनिश्चित करता है कि अनमैनेज्ड रिसोर्सेज (फ़ाइल हैंडल, नेटिव डिकोडिंग बफ़र्स) तुरंत रिलीज़ हो जाएँ। +* `foreach` लूप स्वचालित रूप से छवि में मौजूद **सभी** बारकोड प्रोसेस करता है, जिससे *कई बारकोड पढ़ने* की आवश्यकता पूरी होती है। + +जब आप प्रोग्राम चलाते हैं (`dotnet run`), तो आपको नीचे दिखाए गए समान आउटपुट दिखना चाहिए: + +``` +CodeType: MacroPdf417 +CodeText: https://example.com/document.pdf +Pdf417MacroFileID: 12345 +Pdf417MacroSegmentID: 1 +Pdf417MacroSegmentsCount: 3 +Pdf417MacroFileName: document.pdf +Pdf417MacroChecksum: 0x1A2B +Pdf417MacroFileSize: 204800 +Pdf417MacroTimeStamp: 2024-07-15T10:25:00Z +Pdf417MacroAddressee: John Doe +Pdf417MacroSender: Acme Corp +MacroPdf417Terminator: True +---------------------------------------- +``` + +यदि छवि में एक से अधिक PDF417 बारकोड हैं, तो लूप प्रत्येक बारकोड के लिए एक अलग ब्लॉक प्रिंट करता है, जिससे एक ही चित्र से **कई बारकोड पढ़ने** का प्रदर्शन होता है। + +## छवि से कई बारकोड पढ़ना + +एक ही `BarCodeReader` इंस्टेंस कई बारकोड प्रकारों को एक साथ डिकोड कर सकता है। केवल मैक्रो PDF417 से लेकर किसी भी PDF417 (या यहाँ तक कि QR, Code128, आदि) तक दायरा बढ़ाने के लिए `DecodeType` फ़्लैग को समायोजित करें: + +```csharp +using (BarCodeReader reader = new BarCodeReader(imagePath, + DecodeType.Pdf417 | DecodeType.MacroPdf417 | DecodeType.QR | DecodeType.Code128)) +{ + // The rest of the code stays unchanged. +} +``` + +`DecodeType` एक बिटमास्क है, इसलिए आप समर्थित फ़ॉर्मैट्स की कोई भी संख्या संयोजित कर सकते हैं। यह लचीलापन इस स्निपेट को एक **बारकोड रीडर उदाहरण** बनाता है जो उत्पाद लेबल, टिकट, या आईडी कार्ड जैसे विभिन्न उपयोग मामलों में काम करता है। + +## मैक्रो PDF417 फ़ील्ड्स को सुरक्षित रूप से एक्सेस करना + +मैक्रो PDF417 कई विस्तारित प्रॉपर्टीज़ जोड़ता है। हालांकि, हर बारकोड में सभी फ़ील्ड नहीं होते। किसी गायब प्रॉपर्टी को एक्सेस करने से `NullReferenceException` फेंका जा सकता है। सबसे सुरक्षित तरीका है कि प्रिंट करने से पहले प्रत्येक प्रॉपर्टी की जाँच कर लें: + +```csharp +var macro = result.Extended?.Pdf417; +if (macro != null) +{ + Console.WriteLine($"Pdf417MacroFileID: {macro.MacroPdf417FileID ?? "N/A"}"); + // Repeat for other fields... +} +``` + +*यह क्यों महत्वपूर्ण है*: वास्तविक परिनियोजन में आपको साधारण PDF417 बारकोड मिल सकते हैं जिनमें मैक्रो डेटा नहीं होता। यह डिफेन्सिव चेक सुनिश्चित करता है कि आपका एप्लिकेशन बिना क्रैश हुए चलता रहे। + +## सामान्य समस्याएँ और सर्वोत्तम प्रथाएँ + +| समस्या | क्यों होता है | सुझावित समाधान | +|-------|----------------|-----------------| +| इमेज पाथ गलत है | `BarCodeReader` डिकोडिंग शुरू होने से पहले फ़ाइल‑नॉट‑फ़ाउंड एक्सेप्शन फेंकता है | `Path.Combine` का उपयोग करें और `File.Exists` से फ़ाइल की मौजूदगी सत्यापित करें | +| कम रिज़ॉल्यूशन वाली इमेज | डिकोडर बारकोड किनारों को नहीं ढूँढ पाता, जिससे शून्य डिटेक्शन होते हैं | विश्वसनीय परिणामों के लिए न्यूनतम 300 dpi रिज़ॉल्यूशन प्रदान करें | +| बारकोड 45° से अधिक घुमा हुआ | कई लाइब्रेरीज़ मानती हैं कि बारकोड सीधा है | यदि ऐसा है तो `reader.RecognitionOptions.RotateImage = true` सक्षम करें | + +## अब आप आगे क्या सीखें? + +निम्नलिखित ट्यूटोरियल्स उन विषयों को कवर करते हैं जो इस गाइड में दिखाए गए तकनीकों पर आधारित हैं। प्रत्येक संसाधन में पूर्ण कार्यशील कोड उदाहरण और चरण‑दर‑चरण व्याख्याएँ शामिल हैं, जो आपको अतिरिक्त API फीचर्स में महारत हासिल करने और अपने प्रोजेक्ट्स में वैकल्पिक कार्यान्वयन दृष्टिकोणों का अन्वेषण करने में मदद करेंगे। + +- [Aspose.BarCode for .NET के साथ DataMatrix बारकोड कैसे पढ़ें](/barcode/english/net/datamatrix-barcode-reading/) +- [DataMatrix बारकोड C# – ऑटो मोड (Auto) में DataMatrix जेनरेट करना](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-auto/) +- [इमेज से बारकोड पढ़ें – Java में Aspose.BarCode के साथ बारकोड रीजन एक्सट्रैक्शन में महारत हासिल करना](/barcode/english/java/advanced-settings-and-optimization/extracting-barcode-region-information/) + +{{< /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/net/compact-pdf417-encoding/_index.md b/barcode/hongkong/net/compact-pdf417-encoding/_index.md index 9254eb3ec..cd49e9ed7 100644 --- a/barcode/hongkong/net/compact-pdf417-encoding/_index.md +++ b/barcode/hongkong/net/compact-pdf417-encoding/_index.md @@ -83,6 +83,14 @@ Aspose.BarCode 讓你設定 `Pdf417ErrorCorrectionLevel` 屬性 (0‑8)。較高 ## 緊湊式 PDF417 編碼教學 ### [建立緊湊式 PDF417 條碼](./compact-pdf417-basic-configuration/) 了解如何使用 Aspose.BarCode for .NET 產生緊湊式 PDF417 條碼。完整指南包含一步一步說明與程式碼範例。 +### [在 C# 中建立 PDF417 條碼 – 步驟指南](./create-pdf417-barcode-in-c-step-by-step-guide/) +一步一步說明如何在 C# 中使用 Aspose.BarCode 產生 PDF417 條碼。 +### [產生 PDF417 條碼 C# – 完整指南與 Aspose.BarCode](./generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/) +完整步驟說明如何在 C# 中使用 Aspose.BarCode 產生 PDF417 條碼。 +### [如何將條碼儲存為影像 – 完整 C# 指南](./how-to-save-barcode-as-an-image-complete-c-guide/) +說明如何使用 Aspose.BarCode for .NET 在 C# 中將條碼保存為 PNG、JPEG 等影像格式的完整步驟。 +### [在 C# 中讀取 PDF417 條碼 – 條碼讀取範例](./read-pdf417-barcode-in-c-barcode-reader-example/) +示範如何使用 Aspose.BarCode for .NET 在 C# 中讀取 PDF417 條碼的完整範例。 ## 常見問題 @@ -112,4 +120,4 @@ A: 不需要外部字型;函式庫會在內部處理所有渲染。 {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/hongkong/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md b/barcode/hongkong/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..41d26aed7 --- /dev/null +++ b/barcode/hongkong/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-08-03 +description: 快速在 C# 中建立 PDF417 條碼。了解如何產生 PDF417 條碼以及如何使用 Aspose.Barcode 將條碼圖像儲存為 PNG。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create pdf417 barcode +- how to generate pdf417 barcode +- how to save barcode image +language: zh-hant +lastmod: 2026-08-03 +og_description: 使用 C# 及 Aspose.Barcode 建立 PDF417 條碼。請參考本指南了解如何產生 PDF417 條碼以及如何有效儲存條碼影像。 +og_image_alt: Screenshot of a generated compact PDF417 barcode saved as PNG +og_title: 在 C# 中建立 PDF417 條碼 – 完整程式教學 +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + headline: Create PDF417 barcode in C# – step‑by‑step guide + type: TechArticle +- description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + name: Create PDF417 barcode in C# – step‑by‑step guide + steps: + - name: Why this matters + text: '* **EncodeTypes.Pdf417** tells the library to use the PDF417 standard, + which supports large data payloads and error correction. * Providing Unicode + characters proves the generator handles non‑ASCII input without extra configuration.' + - name: Practical tip + text: If you need a taller barcode for limited horizontal space, increase `Columns`. + Setting `Truncate` to `true` reduces the overall height by removing quiet zones, + which is ideal for mobile screens. + - name: Expected result + text: Running the program creates `CompactPdf417.png` in the project folder. Opening + the file shows a compact PDF417 barcode that encodes the string *Åspóse.Barcóde©*. + The image can be embedded in HTML, PDF reports, or printed on labels. + - name: Verifying the output + text: 'After the program finishes, you can verify the file exists with a quick + command:' + type: HowTo +tags: +- barcode +- C# +- PDF417 +- image generation +title: 在 C# 中建立 PDF417 條碼 – 步驟指南 +url: /zh-hant/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 在 C# 中建立 PDF417 條碼 – 步驟指南 + +如果您需要在 .NET 應用程式中 **建立 PDF417 條碼**,本指南會精確說明如何產生 PDF417 條碼以及如何儲存條碼影像。最終您會得到一個可用於報告、票證或行動掃描應用程式的 PNG 檔案。 + +本教學涵蓋從專案設定到最終 PNG 檔案的全部步驟。無需參考外部文件,只要依照步驟執行程式碼即可。 + +## 您需要的條件 + +在開始之前,請確保您具備以下環境: + +* .NET 6.0 SDK 或更新版本(此程式碼亦可在 .NET Framework 4.7+ 上執行) +* Visual Studio 2022 或任何支援 C# 的 IDE +* 具備網際網路連線以安裝 **Aspose.Barcode for .NET** NuGet 套件 + +這些前置條件可確保程式碼在不需額外設定的情況下成功編譯。 + +## 建立 PDF417 條碼 – 專案設定 + +1. 開啟命令提示字元並建立新的主控台專案: + + ```bash + dotnet new console -n Pdf417Demo + cd Pdf417Demo + ``` + +2. 加入 Aspose.Barcode 函式庫: + + ```bash + dotnet add package Aspose.Barcode + ``` + +3. 開啟產生的 `Program.cs` 檔案。檔案頂部的 `using` 陳述式讓您可以使用條碼相關類別: + + ```csharp + using System; + using Aspose.Barcode.Generation; + using Aspose.Barcode; + ``` + +專案現在已準備好 **建立 PDF417 條碼**。 + +## 使用 Aspose.Barcode 產生 PDF417 條碼 + +條碼產生的核心在 `BarcodeGenerator` 類別。您需要指定條碼類型(`EncodeTypes.Pdf417`)以及要編碼的資料。 + +```csharp +// Step 1: Initialise the generator with PDF417 symbology and sample text. +// The text includes Unicode characters to demonstrate full‑range support. +BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Pdf417, "Åspóse.Barcóde©"); +``` + +### 為何這很重要 + +* **EncodeTypes.Pdf417** 告訴函式庫使用 PDF417 標準,該標準支援大量資料負載與錯誤更正。 +* 提供 Unicode 字元可證明產生器在未額外設定的情況下能處理非 ASCII 輸入。 + +## 設定條碼外觀 + +您可以控制每個模組的大小、欄位數量,以及條碼是否使用緊湊(截斷)模式。這些設定會同時影響可讀性與檔案大小。 + +```csharp +// Step 2: Set the module (X) dimension – each barcode element will be 2 pixels wide. +generator.Parameters.Barcode.XDimension.Pixels = 2; + +// Step 3: Configure PDF417‑specific options. +generator.Parameters.Barcode.Pdf417.Columns = 3; // Number of columns (affects height) +generator.Parameters.Barcode.Pdf417.Truncate = true; // Enable compact mode +``` + +### 實用技巧 + +如果水平空間受限需要較高的條碼,請增加 `Columns`。將 `Truncate` 設為 `true` 會透過移除安靜區(quiet zones)降低整體高度,非常適合行動裝置螢幕。 + +## 將條碼影像儲存為 PNG + +完成產生器設定後,呼叫 `Save` 並傳入檔案路徑與目標影像格式。此方法會直接將影像寫入磁碟。 + +```csharp +// Step 4: Save the generated barcode as a PNG image. +string outputPath = @"./CompactPdf417.png"; +generator.Save(outputPath, BarCodeImageFormat.Png); +Console.WriteLine($"Barcode saved to {outputPath}"); +``` + +### 預期結果 + +執行程式後會在專案資料夾產生 `CompactPdf417.png`。開啟該檔案會看到一個緊湊的 PDF417 條碼,編碼的字串為 *Åspóse.Barcóde©*。此影像可嵌入 HTML、PDF 報告,或列印於標籤上。 + +## 完整原始碼 + +以下是完整且可執行的程式。將內容複製到 `Program.cs` 後執行 `dotnet run`。 + +```csharp +using System; +using Aspose.Barcode.Generation; +using Aspose.Barcode; + +namespace Pdf417Demo +{ + class Program + { + static void Main() + { + // Initialise the generator with PDF417 symbology and sample text. + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.Pdf417, + "Åspóse.Barcóde©"); + + // Set the module width to 2 pixels. + generator.Parameters.Barcode.XDimension.Pixels = 2; + + // Configure PDF417‑specific options. + generator.Parameters.Barcode.Pdf417.Columns = 3; + generator.Parameters.Barcode.Pdf417.Truncate = true; + + // Define the output file path. + string outputPath = @"./CompactPdf417.png"; + + // Save the barcode as a PNG image. + generator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"Barcode saved to {outputPath}"); + } + } +} +``` + +### 驗證輸出 + +程式結束後,您可以使用以下指令快速確認檔案是否存在: + +```bash +dotnet run && ls -l CompactPdf417.png +``` + +如果檔案出現,表示 **建立 PDF417 條碼** 的流程已成功完成。 + +## 常見變化與邊緣案例 + +| 情況 | 調整方式 | +|-----------|------------| +| **Longer data string** | 增加 `Columns` 或設定 `Rows` 以容納更多程式碼字。 | +| **Different image format** | 將 `BarCodeImageFormat.Png` 替換為 `Jpeg`、`Bmp` 或 `Gif`。 | +| **Higher resolution** | 在 `Save` 之前設定 `generator.Parameters.ImageResolution`。 | +| **Background color** | 使用 `generator.Parameters.Barcode.ImageBackgroundColor = Color.White;`。 | +| **Exception handling** | 將 `generator.Save` 包裹於 `try/catch` 區塊以捕捉 I/O 錯誤。 | + +這些變化讓您能依需求為特定裝置或品牌需求客製化條碼。 + +## 結論 + +您現在已了解如何在 C# 中使用 Aspose.Barcode **建立 PDF417 條碼**、設定其外觀,並 **將條碼影像儲存為 PNG**。完整範例示範了從專案設定到驗證的每一步,讓您能將條碼產生整合至任何 .NET 解決方案。 + +接下來,您可以探索相關主題,例如 **如何產生 QR Code**、**在 PDF 文件中嵌入條碼**,或 **自訂條碼顏色**。這些主題皆基於相同的產生器 API,讓您以最小的努力擴充應用程式的掃描功能。祝開發順利! + +## 接下來您應該學習什麼? + +以下教學涵蓋與本指南技術緊密相關的主題,每個資源皆提供完整可執行的程式碼範例與逐步說明,協助您掌握更多 API 功能,並在自己的專案中探索替代實作方式。 + +- [如何使用 Aspose.BarCode 建立條碼 – 緊湊 PDF417](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [如何使用 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/) + +{{< /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/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md b/barcode/hongkong/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md new file mode 100644 index 000000000..bc8689e1e --- /dev/null +++ b/barcode/hongkong/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md @@ -0,0 +1,240 @@ +--- +category: general +date: 2026-08-03 +description: 使用 Aspose.BarCode 於 C# 產生 PDF417 條碼。一步一步學習如何加入 Macro PDF417 中繼資料並儲存為 + PNG。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- generate PDF417 barcode C# +- Macro PDF417 barcode +- Aspose.BarCode +- C# barcode generation +- PDF417 metadata +- barcode image PNG +language: zh-hant +lastmod: 2026-08-03 +og_description: 使用 Aspose.BarCode 於 C# 產生 PDF417 條碼。本教學說明如何嵌入 Macro PDF417 元資料,並將結果匯出為 + PNG 圖像。 +og_image_alt: Screenshot of a generated PDF417 barcode created with C# +og_title: 產生 PDF417 條碼 C# – 逐步 Aspose.BarCode 教學 +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + headline: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + type: TechArticle +- description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + name: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + steps: + - name: Create a Macro PDF417 barcode generator + text: First, instantiate `BarcodeGenerator` with the `EncodeTypes.MacroPdf417` + enum. The constructor also accepts the text you want to encode – in this example + we use a string that contains Unicode characters to demonstrate full‑width support. + - name: Adjust basic barcode appearance + text: Next, define the visual size of the barcode. `XDimension.Pixels` controls + the width of a single module (the smallest black/white square), while `Pdf417.Columns` + influences the overall shape by setting the number of columns. + - name: Populate Macro PDF417 metadata + text: Macro PDF417 allows you to embed file‑level information that many back‑office + systems rely on (e.g., file ID, segment ID, timestamp). The following properties + illustrate the most common fields. + - name: Save the barcode image as PNG + text: Finally, call `Save` to write the barcode to disk. PNG is lossless, making + it ideal for high‑quality scanning. + - name: How to verify the result + text: 1. Open `ExtPDF417Meta.png` in any image viewer. 2. Use a PDF417 scanner + app (e.g., *Zebra Scanner* or *BarCode Reader* on Android/iOS). 3. Confirm that + the decoded payload includes the original text and a JSON‑like block with the + macro fields you set. + - name: Next steps + text: '- Experiment with other barcode formats (e.g., QR, Code128) by changing + `EncodeTypes`. - Explore `Pdf417.ErrorCorrectionLevel` to improve scan reliability + under poor lighting. - Integrate the generated image into a PDF report using + Aspose.PDF for end‑to‑end document automation.' + type: HowTo +tags: +- PDF417 +- C# +- Barcode +title: 在 C# 中產生 PDF417 條碼 – 使用 Aspose.BarCode 的完整指南 +url: /zh-hant/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 產生 PDF417 條碼 C# – 完整指南 + +如果您需要為物流或文件管理系統 **generate PDF417 barcode C#**,本教學將向您展示如何使用 Aspose.BarCode 完成。您將看到如何設定條碼、嵌入 Macro PDF417 中繼資料,並僅用幾行程式碼將結果儲存為 PNG 圖片。 + +在 C# 中產生 PDF417 條碼通常需要處理額外資訊,如檔案識別碼、段落編號或時間戳記。本指南涵蓋這些細節,讓您不必在零散的文件中搜尋。文章結束時,您將擁有一個可直接執行的程式,產生符合規範的 Macro PDF417 條碼圖像。 + +## 您需要的條件 + +- .NET 6.0 或更新版本(此程式碼亦可在 .NET Framework 4.7+ 上執行) +- Aspose.BarCode for .NET (v23.9 或更新) – 透過 NuGet 安裝 `Install-Package Aspose.BarCode` +- 開發環境,例如 Visual Studio 2022 或 Visual Studio Code +- 基本熟悉 C# 語法 + +> **專業提示:** 使用最新的 Aspose.BarCode 版本,以獲得錯誤修正與最新 PDF417 規格的支援。 + +## 如何使用 Aspose.BarCode 產生 PDF417 條碼 C# + +此流程包含四個邏輯步驟。每個步驟都以清晰的程式碼區塊包裹,讓您可以直接複製、貼上並執行。 + +### 步驟 1:建立 Macro PDF417 條碼產生器 + +首先,使用 `EncodeTypes.MacroPdf417` 列舉實例化 `BarcodeGenerator`。建構函式同時接受您想要編碼的文字——在此範例中,我們使用包含 Unicode 字元的字串,以示範全形支援。 + +```csharp +using System; +using Aspose.BarCode.Generation; + +// Create a Macro PDF417 barcode generator with the desired text +using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) +{ + // Subsequent steps go inside this using block +``` + +*此設定的重要性*:`MacroPdf417` 類型告訴 Aspose.BarCode 將此符號視為 macro 條碼,能攜帶額外的檔案層級中繼資料。若未設定此旗標,之後設定的額外欄位將會被忽略。 + +### 步驟 2:調整條碼基本外觀 + +接著,定義條碼的視覺尺寸。`XDimension.Pixels` 控制單一模組(最小的黑白方格)的寬度,而 `Pdf417.Columns` 透過設定欄數影響整體形狀。 + +```csharp + // Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol +``` + +*此設定的重要性*:較小的 `XDimension` 會產生較高解析度的圖像,適用於需要從螢幕掃描條碼的情況。調整欄數可在不犧牲資料容量的前提下,使條碼更易於適配有限空間。 + +### 步驟 3:填入 Macro PDF417 中繼資料 + +Macro PDF417 允許您嵌入許多後端系統依賴的檔案層級資訊(例如檔案 ID、段落 ID、時間戳記)。以下屬性示範最常見的欄位。 + +```csharp + // Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; +``` + +*此設定的重要性*:每個欄位直接對應至 macro 條碼規範的某段。例如,`MacroPdf417FileID` 唯一標識邏輯檔案,而 `MacroPdf417SegmentsCount` 告訴掃描器預期的段數。提供正確的中繼資料可確保下游系統無誤地重建原始文件。 + +### 步驟 4:將條碼圖像儲存為 PNG + +最後,呼叫 `Save` 將條碼寫入磁碟。PNG 為無損格式,適合高品質掃描。 + +```csharp + // Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); +} +``` + +*此設定的重要性*:`BarCodeImageFormat.Png` 列舉確保輸出檔案包含您設定的精確像素資料。若需可縮放的向量格式,只需將 `Png` 改為 `Svg` —— Aspose.BarCode 內建支援。 + +#### 預期輸出 + +執行完整程式會產生名為 **ExtPDF417Meta.png** 的檔案。圖像顯示一個密集的多列 PDF417 符號,內含文字 “Åspóse.Barcóde©” 以及您提供的 macro 中繼資料。使用相容 PDF417 的讀取器掃描條碼,可取得原始文字以及包含檔案 ID、段落 ID、時間戳記等欄位的結構化資料區塊。 + +![產生的 PDF417 條碼截圖](/images/pdf417-example.png){: .center-image alt="產生 PDF417 條碼 C# 範例輸出"} + +## 完整原始碼(可直接複製貼上) + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace Pdf417MacroDemo +{ + class Program + { + static void Main() + { + // Step 1: Create a Macro PDF417 barcode generator with the desired text + using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) + { + // Step 2: Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol + + // Step 3: Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; + + // Step 4: Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); + } + + Console.WriteLine("Macro PDF417 barcode generated successfully."); + } + } +} +``` + +### 如何驗證結果 + +1. 在任何圖像檢視器中開啟 `ExtPDF417Meta.png`。 +2. 使用 PDF417 掃描應用程式(例如 Android/iOS 上的 *Zebra Scanner* 或 *BarCode Reader*)。 +3. 確認解碼後的資料包含原始文字以及您設定的 macro 欄位的 JSON 類似區塊。 + +## 常見問題與邊緣情況處理 + +| Question | Answer | +|----------|--------| +| **我可以產生向量圖像而非 PNG 嗎?** | 可以。將 `BarCodeImageFormat.Png` 替換為 `BarCodeImageFormat.Svg`。其餘程式碼保持不變。 | +| **如果我的資料超過預設容量怎麼辦?** | 增加 `Pdf417.Columns` 或手動設定 `Pdf417.Rows`。較大的數值可在每個段落中容納更多碼字。 | +| **編碼文字是否支援 Unicode?** | 當然支援。範例使用 “Åspóse.Barcóde©”。Aspose.BarCode 會在需要時自動切換為 UTF‑8 編碼。 | +| **我需要為 Aspose.BarCode 申請授權嗎?** | 在正式環境中應申請授權以避免評估水印。於建立產生器前呼叫 `License license = new License(); license.SetLicense("Aspose.BarCode.lic");`。 | +| **儲存檔案時如何處理錯誤?** | 將 `Save` 呼叫包在 try/catch 區塊中,並記錄 `IOException` 或 `BarCodeException` 以便除錯。 | + +## 結論 + +您現在已了解如何使用 Aspose.BarCode **generate PDF417 barcode C#**,嵌入完整的 Macro PDF417 中繼資料,並將結果匯出為高品質 PNG 圖像。這些步驟——建立產生器、調整外觀、填入中繼資料以及儲存圖像——構成可重複使用的模式,您可將其套用於發票、運送標籤或任何需要豐富條碼資料的情境。 + +### 後續步驟 + +- 嘗試透過變更 `EncodeTypes` 來實驗其他條碼格式(例如 QR、Code128)。 +- 探索 `Pdf417.ErrorCorrectionLevel` 以提升在光線不足情況下的掃描可靠性。 +- 使用 Aspose.PDF 將產生的圖像整合至 PDF 報告,實現端對端文件自動化。 + +歡迎依照您的業務規則調整中繼資料欄位,讓條碼產生成為 C# 應用程式中無縫的一環。祝開發愉快! + +## 接下來該學什麼? + +以下教學涵蓋與本指南技術密切相關的主題。每個資源皆提供完整可執行的程式碼範例與逐步說明,協助您精通更多 API 功能,並在專案中探索其他實作方式。 + +- [如何建立條碼 – 使用 Aspose.BarCode 的緊湊 PDF417](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [如何建立條碼 – 使用 Aspose.BarCode 的緊湊 PDF417(德文)](/barcode/german/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [Java 條碼函式庫 – 使用 Aspose 將條碼加入 PDF](/barcode/english/java/barcode-basics/adding-barcode-to-pdf-document/) + +{{< /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/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md b/barcode/hongkong/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md new file mode 100644 index 000000000..1b2169db4 --- /dev/null +++ b/barcode/hongkong/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md @@ -0,0 +1,184 @@ +--- +category: general +date: 2026-08-03 +description: 如何使用 C# 快速儲存條碼。學習 MicroPDF417 條碼產生、設定尺寸、選擇欄位,並匯出為 PNG。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to save barcode +- MicroPDF417 barcode +- C# barcode generation +- barcode XDimension +- PDF417 columns +- barcode image format +language: zh-hant +lastmod: 2026-08-03 +og_description: 如何在 C# 中儲存條碼(完整範例)。產生 MicroPDF417 條碼、調整尺寸、設定欄位,並匯出為 PNG。 +og_image_alt: Screenshot showing a MicroPDF417 barcode saved as a PNG file +og_title: 如何儲存條碼 – 一步一步 C# 教學 +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: how to save barcode quickly using C#. Learn MicroPDF417 barcode generation, + set dimensions, choose columns, and export to PNG. + headline: how to save barcode as an image – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- imaging +title: 如何將條碼儲存為圖片 – 完整 C# 指南 +url: /zh-hant/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何儲存條碼 – 完整 C# 指南 + +如果您需要在 .NET 應用程式中 **how to save barcode**,本教學將向您展示具體步驟。您將產生 MicroPDF417 條碼,調整其尺寸,選擇欄位數,最後將圖像寫入磁碟為 PNG 檔案。 + +建立與保存條碼不需要大型函式庫——只需使用 Aspose.BarCode for .NET 套件中的 `BarcodeGenerator` 類別。以下各節將逐一說明每個設定選項、為何重要,並提供可直接執行的程式碼範例。 + +## 前置條件 + +- .NET 6.0 或更新版本(API 可在 .NET Core 與 .NET Framework 上運作) +- Aspose.BarCode for .NET(NuGet 套件 `Aspose.BarCode`) +- 您具有寫入權限的資料夾(用於 **how to save barcode** 步驟) + +## 步驟 1:建立 MicroPDF417 條碼產生器 + +在任何 **how to save barcode** 工作流程中的第一步是以所需的符號與資料實例化 `BarcodeGenerator`。MicroPDF417 是 PDF417 矩陣條碼的緊湊版,非常適合小尺寸標籤。 + +```csharp +using Aspose.BarCode.Generation; + +// Create a MicroPDF417 barcode with sample text that includes Unicode characters. +BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, // Symbology + "Åspóse.Barcóde©"); // Data to encode +``` + +**為何這很重要:** +`EncodeTypes.MicroPdf417` 告訴函式庫使用 MicroPDF417 演算法,會自動處理錯誤更正與資料編碼。提供 Unicode 文字可示範產生器正確處理非 ASCII 字元。 + +## 步驟 2:調整 X‑dimension(模組大小) + +X‑dimension 定義單一條碼模組(像素)的寬度。較小的值會產生更緊密的條碼,較大的值則使掃描更容易。 + +```csharp +// Set each module to 2 pixels wide. +barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +**為何這很重要:** +設定 `barcode XDimension` 可確保條碼符合目標標籤尺寸。若省略此步驟,預設大小可能對手機螢幕或小幅列印而言過大。 + +## 步驟 3:選擇 PDF417 矩陣的欄位數 + +MicroPDF417 支援 1–4 欄。欄位較多會產生較方形的條碼;欄位較少則會垂直拉長。 + +```csharp +// Use the maximum of 4 columns for a compact, square shape. +barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; +``` + +**為何這很重要:** +調整 **PDF417 columns** 可在可讀性與空間限制之間取得平衡。在許多掃描情境下,4 欄佈局提供最佳折衷。 + +## 步驟 4:將產生的條碼儲存為 PNG 圖像 + +現在條碼已完成設定,您終於可以透過寫入檔案來回答 “**how to save barcode**”。PNG 保留無損品質,對於清晰掃描至關重要。 + +```csharp +// Define the output path (ensure the directory exists). +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + +// Export the barcode to PNG. +barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + +Console.WriteLine($"Barcode saved to: {outputPath}"); +``` + +**為何這很重要:** +`barcode image format` 決定已儲存檔案的視覺忠實度。PNG 因保留清晰邊緣且不產生壓縮雜訊,通常是 UI 與列印工作流程的首選。 + +## 完整、可執行範例 + +將所有步驟整合起來,即可得到一個可自行複製、貼上並執行的完整程式。 + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // 1️⃣ Create the barcode generator. + BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, + "Åspóse.Barcóde©"); + + // 2️⃣ Adjust module size. + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; + + // 3️⃣ Set column count (1‑4 allowed). + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; + + // 4️⃣ Define output location. + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + + // 5️⃣ Save as PNG. + barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"✅ Barcode saved to: {outputPath}"); + } +} +``` + +**預期輸出** + +執行程式後會在桌面產生 `MicroPdf417.png`。開啟檔案可見清晰的 MicroPDF417 條碼,編碼的字串為 `Åspóse.Barcóde©`。使用任何標準條碼掃描器掃描後會回傳原始文字。 + +## 常見問題與邊緣情況 + +| Question | Answer | +|----------|--------| +| *我可以使用 JPEG 取代 PNG 嗎?* | 可以。將 `BarCodeImageFormat.Png` 替換為 `BarCodeImageFormat.Jpeg`。JPEG 檔案較小,但會產生壓縮雜訊,可能影響掃描。 | +| *如果我的資料超過 MicroPDF417 容量怎麼辦?* | MicroPDF417 最多可儲存 1 KB 資料。若資料量較大,請改用完整的 `EncodeTypes.Pdf417`。 | +| *我要如何變更條碼顏色?* | 在呼叫 `Save` 前,使用 `barcodeGenerator.Parameters.Barcode.BarColor` 與 `BackColor` 設定前景與背景顏色。 | +| *X‑dimension 是否只能使用整數像素?* | 此屬性接受 `float`。如 `1.5f` 之類的值是允許的,但大多數印表機在整數像素尺寸下表現最佳。 | + +## 專業技巧:可靠的 **how to save barcode** 實作 + +- **驗證輸出資料夾**:在呼叫 `Save` 前使用 `Directory.Exists`,以避免 `IOException`。 +- **釋放產生器**:在迴圈中大量產生條碼時,呼叫 `barcodeGenerator.Dispose()` 以釋放原生資源。 +- **使用實體掃描器測試**:儲存後必須以實際掃描器測試,僅靠目視檢查不足以應付正式上線。 +- **保持函式庫為最新**:較新版的 Aspose.BarCode 會加入符號改進與錯誤修正。 + +## 結論 + +您現在已掌握使用 Aspose.BarCode 函式庫在 C# 中 **how to save barcode** 圖像的方式。透過建立 MicroPDF417 條碼、設定 **barcode XDimension**、選擇適當的 **PDF417 columns**,並以 PNG 等 **barcode image format** 匯出,即可得到完整、可投入生產的解決方案。 + +接下來,您可以探索相關主題,例如 **C# 條碼產生 QR code**、**批次條碼建立**,或 **在 PDF 報告中嵌入條碼**。這些皆基於本指南所示的相同原理,讓您自信地擴充影像工具箱。 + +## 接下來該學什麼? + +以下教學涵蓋與本指南密切相關的主題,建立在此處示範的技巧之上。每個資源皆提供完整可運作的程式碼範例與逐步說明,協助您精通其他 API 功能,並在專案中探索替代實作方式。 + +- [如何使用 DataMatrix C40 以 PNG 儲存(Aspose.BarCode)](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-c40/) +- [如何為 ITF-14 條碼自訂設定邊框](/barcode/english/net/itf-14-barcode-customization/) +- [如何使用 Aspose.BarCode for .NET 產生自訂長寬比的 Aztec 條碼](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) + +{{< /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/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md b/barcode/hongkong/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md new file mode 100644 index 000000000..2a08df072 --- /dev/null +++ b/barcode/hongkong/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md @@ -0,0 +1,211 @@ +--- +category: general +date: 2026-08-03 +description: 使用 C# BarCodeReader 從圖像讀取 PDF417 條碼 – 完整的條碼閱讀器範例,同時示範如何讀取多個條碼。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- read PDF417 barcode +- barcode reader example +- read multiple barcodes +- read barcodes image +language: zh-hant +lastmod: 2026-08-03 +og_description: 使用 C# BarCodeReader 範例快速讀取 PDF417 條碼。跟隨此一步一步的指南解碼宏 PDF417,並從圖像中讀取多個條碼。 +og_image_alt: Console output of a read PDF417 barcode example in C# +og_title: 在 C# 中讀取 PDF417 條碼 – 完整的條碼閱讀器範例 +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + headline: Read PDF417 barcode in C# – barcode reader example + type: TechArticle +- description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + name: Read PDF417 barcode in C# – barcode reader example + steps: + - name: '**Create a new console project**' + text: '**Create a new console project**' + - name: '**Add the barcode library**' + text: '**Add the barcode library**' + - name: '**Copy the barcode image**' + text: '**Copy the barcode image**' + type: HowTo +tags: +- barcode +- PDF417 +- C# +- .NET +title: 在 C# 中讀取 PDF417 條碼 – 條碼讀取範例 +url: /zh-hant/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 在 C# 中讀取 PDF417 條碼 – 條碼閱讀器範例 + +如果您需要從圖像中讀取 PDF417 條碼資料,本指南將示範如何使用 C# 中的 **BarCodeReader** 類別來完成。您將學習一個條碼閱讀器範例,該範例同時支援 macro PDF417,且能在單張圖像中讀取多個條碼。 + +處理條碼時常常需要面對不同的圖像來源、變化的光線條件,有時還會遇到如 macro PDF417 這類的複合資料段。本教學涵蓋了解碼 PDF417 條碼、擷取其擴充欄位,以及從同一張圖片處理多個條碼所需的全部步驟。完成後,您將擁有一個可執行的主控台程式,能從圖像檔讀取條碼並將詳細資訊輸出至主控台。 + +## 您需要的條件 + +* .NET 6.0 SDK 或更新版本已安裝 +* 最近版本的 **Aspose.BarCode for .NET** NuGet 套件(或任何提供 `BarCodeReader` 與 `DecodeType.MacroPdf417` 的相容函式庫) +* 包含 PDF417 或 macro PDF417 條碼的圖像檔(範例使用 `ExtPDF417Meta.png`) +* 如 Visual Studio 2022 等程式碼編輯器或 IDE + +不需要額外的服務或外部 API。 + +## 設定條碼讀取專案 + +1. **建立新的主控台專案** + + ```bash + dotnet new console -n Pdf417ReaderDemo + cd Pdf417ReaderDemo + ``` + +2. **加入條碼函式庫** + + ```bash + dotnet add package Aspose.BarCode --version 23.12 + ``` + +3. **複製條碼圖像** + + 將 `ExtPDF417Meta.png`(或任何包含 PDF417 條碼的圖像)放入專案資料夾。 + 本教學假設該檔案位於 `YOUR_DIRECTORY/ExtPDF417Meta.png`。 + +專案現在已可編譯並執行條碼閱讀器範例。 + +## 使用 BarCodeReader 讀取 PDF417 條碼 + +解決方案的核心是一個 `using` 區塊,用於建立 `BarCodeReader` 實例、指定 `DecodeType.MacroPdf417`,並遍歷所有偵測到的條碼。以下程式碼是一個完整、獨立的程式,您可以直接貼到 `Program.cs` 中。 + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.BarCodeRecognition; + +class Program +{ + static void Main() + { + // Path to the image that contains one or more PDF417 barcodes + const string imagePath = "YOUR_DIRECTORY/ExtPDF417Meta.png"; + + // Step 1: Create a BarCodeReader for a macro PDF417 image + using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.MacroPdf417)) + { + // Step 2: Read all barcodes from the image + foreach (BarCodeResult result in reader.ReadBarCodes()) + { + // Step 3: Output basic barcode information + Console.WriteLine($"CodeType: {result.CodeTypeName}"); + Console.WriteLine($"CodeText: {result.CodeText}"); + + // Step 4: Output macro PDF417 specific fields + Console.WriteLine($"Pdf417MacroFileID: {result.Extended.Pdf417.MacroPdf417FileID}"); + Console.WriteLine($"Pdf417MacroSegmentID: {result.Extended.Pdf417.MacroPdf417SegmentID}"); + Console.WriteLine($"Pdf417MacroSegmentsCount: {result.Extended.Pdf417.MacroPdf417SegmentsCount}"); + Console.WriteLine($"Pdf417MacroFileName: {result.Extended.Pdf417.MacroPdf417FileName}"); + Console.WriteLine($"Pdf417MacroChecksum: {result.Extended.Pdf417.MacroPdf417Checksum}"); + Console.WriteLine($"Pdf417MacroFileSize: {result.Extended.Pdf417.MacroPdf417FileSize}"); + Console.WriteLine($"Pdf417MacroTimeStamp: {result.Extended.Pdf417.MacroPdf417TimeStamp}"); + Console.WriteLine($"Pdf417MacroAddressee: {result.Extended.Pdf417.MacroPdf417Addressee}"); + Console.WriteLine($"Pdf417MacroSender: {result.Extended.Pdf417.MacroPdf417Sender}"); + Console.WriteLine($"MacroPdf417Terminator: {result.Extended.Pdf417.MacroPdf417Terminator}"); + Console.WriteLine(new string('-', 40)); + } + + // Pro tip: If no barcodes are found, ReadBarCodes() returns an empty collection. + // You can check reader.HasBarcodes for a quick boolean test. + if (!reader.HasBarcodes) + { + Console.WriteLine("No barcodes detected in the provided image."); + } + } + } +} +``` + +**為什麼這樣可行**: + +* `DecodeType.MacroPdf417` 告訴閱讀器尋找 PDF417 的 macro 擴充,該擴充包含檔案 ID、段落數量、時間戳記等額外中繼資料。 +* `using` 陳述式確保非受管理資源(檔案句柄、原生解碼緩衝)能即時釋放。 +* `foreach` 迴圈會自動處理圖像中 **所有** 條碼,滿足 *讀取多條碼* 的需求。 + +執行程式 (`dotnet run`) 後,您應該會看到類似以下的輸出: + +``` +CodeType: MacroPdf417 +CodeText: https://example.com/document.pdf +Pdf417MacroFileID: 12345 +Pdf417MacroSegmentID: 1 +Pdf417MacroSegmentsCount: 3 +Pdf417MacroFileName: document.pdf +Pdf417MacroChecksum: 0x1A2B +Pdf417MacroFileSize: 204800 +Pdf417MacroTimeStamp: 2024-07-15T10:25:00Z +Pdf417MacroAddressee: John Doe +Pdf417MacroSender: Acme Corp +MacroPdf417Terminator: True +---------------------------------------- +``` + +如果圖像包含多於一個 PDF417 條碼,迴圈會為每個條碼印出獨立的區塊,從而示範如何從單張圖片 **讀取多條碼**。 + +## 從圖像中讀取多條碼 + +相同的 `BarCodeReader` 實例可一次解碼多種條碼類型。若要將範圍從僅 macro PDF417 擴展至任何 PDF417(甚至 QR、Code128 等),請調整 `DecodeType` 旗標: + +```csharp +using (BarCodeReader reader = new BarCodeReader(imagePath, + DecodeType.Pdf417 | DecodeType.MacroPdf417 | DecodeType.QR | DecodeType.Code128)) +{ + // The rest of the code stays unchanged. +} +``` + +`*DecodeType*` 為位元遮罩,可結合任意數量的支援格式。此彈性使得此程式碼片段成為一個 **條碼閱讀器範例**,可應用於掃描商品標籤、票券或身分證等多種情境。 + +## 安全存取 macro PDF417 欄位 + +Macro PDF417 會加入豐富的擴充屬性。然而,並非所有條碼都包含所有欄位。存取不存在的屬性會拋出 `NullReferenceException`。最安全的做法是在列印前先驗證每個屬性是否為 null: + +```csharp +var macro = result.Extended?.Pdf417; +if (macro != null) +{ + Console.WriteLine($"Pdf417MacroFileID: {macro.MacroPdf417FileID ?? "N/A"}"); + // Repeat for other fields... +} +``` + +*為什麼這很重要*:在實務部署中,您可能會收到缺少 macro 資料的普通 PDF417 條碼。防禦性檢查可確保應用程式不會因例外而當機。 + +## 常見陷阱與最佳實踐 + +| 問題 | 發生原因 | 建議解決方式 | +|-------|----------------|-----------------| +| 圖像路徑不正確 | `BarCodeReader` 會在任何解碼之前拋出檔案未找到例外 | 使用 `Path.Combine` 並以 `File.Exists` 驗證檔案是否存在 | +| 低解析度圖像 | 解碼器無法定位條碼邊緣,導致偵測為零 | 提供至少 300 dpi 的解析度以確保可靠的結果 | +| 條碼旋轉超過 45° | 許多函式庫假設條碼為直立方向 | 若條碼旋轉,請啟用 `reader.RecognitionOptions.RotateImage = true` if the | + +## 接下來您應該學習什麼? + +以下教學涵蓋與本指南緊密相關的主題,並在此基礎上進一步說明。每個資源皆提供完整可執行的程式碼範例與逐步說明,協助您精通更多 API 功能,並在自己的專案中探索替代實作方式。 + +- [如何使用 Aspose.BarCode for .NET 讀取 DataMatrix 條碼](/barcode/english/net/datamatrix-barcode-reading/) +- [讀取 DataMatrix 條碼 C# – 產生 DataMatrix 模式(自動)](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-auto/) +- [從圖像讀取條碼 – 精通 Java 中使用 Aspose.BarCode 的條碼區域擷取](/barcode/english/java/advanced-settings-and-optimization/extracting-barcode-region-information/) + +{{< /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/net/compact-pdf417-encoding/_index.md b/barcode/hungarian/net/compact-pdf417-encoding/_index.md index 17598f023..daa4a94c1 100644 --- a/barcode/hungarian/net/compact-pdf417-encoding/_index.md +++ b/barcode/hungarian/net/compact-pdf417-encoding/_index.md @@ -83,6 +83,14 @@ Az alapok mellett itt van néhány gyakorlati tipp a munkafolyamat egyszerűsít ## Compact PDF417 kódolási útmutatók ### [Compact PDF417 vonalkódok létrehozása](./compact-pdf417-basic-configuration/) Ismerje meg, hogyan generáljon Compact PDF417 vonalkódokat az Aspose.BarCode for .NET használatával. Átfogó útmutató lépésről‑lépésre utasításokkal és kódrészletekkel. +### [PDF417 vonalkód létrehozása C#‑ban – lépésről‑lépésre útmutató](./create-pdf417-barcode-in-c-step-by-step-guide/) +Ismerje meg, hogyan hozhat létre PDF417 vonalkódot C#‑ban az Aspose.BarCode segítségével, részletes lépésekkel. +### [PDF417 vonalkód generálása C#‑ban – teljes útmutató az Aspose.BarCode használatával](./generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/) +Ismerje meg, hogyan hozhat létre PDF417 vonalkódot C#‑ban az Aspose.BarCode segítségével, részletes lépésekkel. +### [Hogyan mentse a vonalkódot képként – teljes C# útmutató](./how-to-save-barcode-as-an-image-complete-c-guide/) +Ismerje meg, hogyan menthet vonalkódot képként C#‑ban az Aspose.BarCode használatával, részletes lépésekkel. +### [PDF417 vonalkód olvasása C#‑ban – vonalkódolvasó példa](./read-pdf417-barcode-in-c-barcode-reader-example/) +Ismerje meg, hogyan olvashat PDF417 vonalkódot C#‑ban az Aspose.BarCode segítségével. ## Gyakran Ismételt Kérdések @@ -95,10 +103,10 @@ A: A PDF417 Reed‑Solomon kódokat használ, lehetővé téve egy 0‑tól (nin **Q: Generálhatok-e Compact PDF417 vonalkódot egy .NET Core konzolalkalmazásban?** A: Igen. Az Aspose.BarCode for .NET teljes mértékben támogatja a .NET Core 3.1-et és az azt követő verziókat. -**Q: Lehet-e testreszabni a vonalkód előtér és háttér színeit?** +**Q: Lehet‑e testreszabni a vonalkód előtér és háttér színeit?** A: Teljes mértékben. Használja a `ForeColor` és `BackColor` tulajdonságokat a generátoron, hogy megfeleljenek az UI témájának. -**Q: Szükséges-e további betűtípusokat vagy erőforrásokat telepíteni?** +**Q: Szükséges‑e további betűtípusokat vagy erőforrásokat telepíteni?** A: Nem szükséges külső betűtípus; a könyvtár minden megjelenítést belsőleg kezel. --- @@ -112,4 +120,4 @@ A: Nem szükséges külső betűtípus; a könyvtár minden megjelenítést bels {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/hungarian/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md b/barcode/hungarian/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..7be6d2678 --- /dev/null +++ b/barcode/hungarian/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-08-03 +description: PDF417 vonalkód létrehozása C#-ban gyorsan. Tanulja meg, hogyan generáljon + PDF417 vonalkódot, és hogyan mentse el a vonalkód képet PNG formátumban az Aspose.Barcode + segítségével. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create pdf417 barcode +- how to generate pdf417 barcode +- how to save barcode image +language: hu +lastmod: 2026-08-03 +og_description: PDF417 vonalkód létrehozása C#-ban az Aspose.Barcode segítségével. + Kövesse ezt az útmutatót a PDF417 vonalkód generálásához és a vonalkód kép hatékony + mentéséhez. +og_image_alt: Screenshot of a generated compact PDF417 barcode saved as PNG +og_title: PDF417 vonalkód létrehozása C#-ban – teljes kódolási útmutató +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + headline: Create PDF417 barcode in C# – step‑by‑step guide + type: TechArticle +- description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + name: Create PDF417 barcode in C# – step‑by‑step guide + steps: + - name: Why this matters + text: '* **EncodeTypes.Pdf417** tells the library to use the PDF417 standard, + which supports large data payloads and error correction. * Providing Unicode + characters proves the generator handles non‑ASCII input without extra configuration.' + - name: Practical tip + text: If you need a taller barcode for limited horizontal space, increase `Columns`. + Setting `Truncate` to `true` reduces the overall height by removing quiet zones, + which is ideal for mobile screens. + - name: Expected result + text: Running the program creates `CompactPdf417.png` in the project folder. Opening + the file shows a compact PDF417 barcode that encodes the string *Åspóse.Barcóde©*. + The image can be embedded in HTML, PDF reports, or printed on labels. + - name: Verifying the output + text: 'After the program finishes, you can verify the file exists with a quick + command:' + type: HowTo +tags: +- barcode +- C# +- PDF417 +- image generation +title: PDF417 vonalkód létrehozása C#‑ban – lépésről‑lépésre útmutató +url: /hu/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PDF417 vonalkód létrehozása C#‑ban – lépésről‑lépésre útmutató + +Ha **PDF417 vonalkódot** kell létrehoznia egy .NET alkalmazásban, ez az útmutató pontosan megmutatja, hogyan generáljon PDF417 vonalkódot, és hogyan mentse el a vonalkód képét. Egy PNG fájlt kap, amely felhasználható jelentésekben, jegyekben vagy mobil szkennelő alkalmazásokban. + +Az oktatóanyag mindent lefed a projekt beállításától a végső PNG fájlig. Nem szükséges külső dokumentáció; csak kövesse a lépéseket és futtassa a kódot. + +## Amire szüksége lesz + +* .NET 6.0 SDK vagy újabb (a kód .NET Framework 4.7+‑vel is működik) +* Visual Studio 2022 vagy bármely IDE, amely támogatja a C#‑t +* Internetkapcsolat a **Aspose.Barcode for .NET** NuGet csomag telepítéséhez + +Ezek az előfeltételek biztosítják, hogy a kód további konfiguráció nélkül forduljon le. + +## PDF417 vonalkód létrehozása – projekt beállítása + +1. Nyisson meg egy parancssort, és hozzon létre egy új konzolos projektet: + + ```bash + dotnet new console -n Pdf417Demo + cd Pdf417Demo + ``` + +2. Adja hozzá az Aspose.Barcode könyvtárat: + + ```bash + dotnet add package Aspose.Barcode + ``` + +3. Nyissa meg a generált `Program.cs` fájlt. A tetején lévő `using` utasítások hozzáférést biztosítanak a vonalkód osztályokhoz: + + ```csharp + using System; + using Aspose.Barcode.Generation; + using Aspose.Barcode; + ``` + +A projekt most már készen áll **PDF417 vonalkód létrehozására**. + +## PDF417 vonalkód generálása az Aspose.Barcode segítségével + +A vonalkód létrehozásának központja a `BarcodeGenerator` osztályban található. Megadja a szimbólumot (`EncodeTypes.Pdf417`) és a kódolni kívánt adatot. + +```csharp +// Step 1: Initialise the generator with PDF417 symbology and sample text. +// The text includes Unicode characters to demonstrate full‑range support. +BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Pdf417, "Åspóse.Barcóde©"); +``` + +### Miért fontos ez + +* **EncodeTypes.Pdf417** azt mondja a könyvtárnak, hogy a PDF417 szabványt használja, amely nagy adatmennyiségeket és hibajavítást támogat. +* Unicode karakterek megadása bizonyítja, hogy a generátor a nem‑ASCII bemenetet extra konfiguráció nélkül kezeli. + +## A vonalkód megjelenésének beállítása + +Minden modul méretét, az oszlopok számát és azt szabályozhatja, hogy a vonalkód kompakt (levágott) módot használ-e. Ezek a beállítások befolyásolják az olvashatóságot és a fájlméretet. + +```csharp +// Step 2: Set the module (X) dimension – each barcode element will be 2 pixels wide. +generator.Parameters.Barcode.XDimension.Pixels = 2; + +// Step 3: Configure PDF417‑specific options. +generator.Parameters.Barcode.Pdf417.Columns = 3; // Number of columns (affects height) +generator.Parameters.Barcode.Pdf417.Truncate = true; // Enable compact mode +``` + +### Gyakorlati tipp + +Ha korlátozott vízszintes hely miatt magasabb vonalkódra van szüksége, növelje a `Columns` értékét. A `Truncate` `true`‑ra állítása csökkenti a teljes magasságot a csendes zónák eltávolításával, ami ideális mobil képernyők számára. + +## A vonalkód kép mentése PNG‑ként + +A generátor beállítása után hívja meg a `Save` metódust egy fájlúttal és a kívánt képaránnyal. A metódus közvetlenül a lemezre írja a képet. + +```csharp +// Step 4: Save the generated barcode as a PNG image. +string outputPath = @"./CompactPdf417.png"; +generator.Save(outputPath, BarCodeImageFormat.Png); +Console.WriteLine($"Barcode saved to {outputPath}"); +``` + +### Várt eredmény + +A program futtatása létrehozza a `CompactPdf417.png` fájlt a projekt mappájában. A fájl megnyitása egy kompakt PDF417 vonalkódot mutat, amely a *Åspóse.Barcóde©* karakterláncot kódolja. A képet be lehet ágyazni HTML‑be, PDF‑jelentésekbe, vagy nyomtatni címkékre. + +## Teljes forráskód + +Alább megtalálható a teljes, futtatható program. Másolja be a `Program.cs` fájlba, és hajtsa végre a `dotnet run` parancsot. + +```csharp +using System; +using Aspose.Barcode.Generation; +using Aspose.Barcode; + +namespace Pdf417Demo +{ + class Program + { + static void Main() + { + // Initialise the generator with PDF417 symbology and sample text. + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.Pdf417, + "Åspóse.Barcóde©"); + + // Set the module width to 2 pixels. + generator.Parameters.Barcode.XDimension.Pixels = 2; + + // Configure PDF417‑specific options. + generator.Parameters.Barcode.Pdf417.Columns = 3; + generator.Parameters.Barcode.Pdf417.Truncate = true; + + // Define the output file path. + string outputPath = @"./CompactPdf417.png"; + + // Save the barcode as a PNG image. + generator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"Barcode saved to {outputPath}"); + } + } +} +``` + +### A kimenet ellenőrzése + +A program befejezése után egy gyors paranccsal ellenőrizheti, hogy a fájl létezik-e: + +```bash +dotnet run && ls -l CompactPdf417.png +``` + +Ha a fájl megjelenik, a **PDF417 vonalkód létrehozása** folyamat sikeres volt. + +## Gyakori variációk és szélhelyzetek + +| Szituáció | Módosítás | +|-----------|------------| +| **Hosszabb adatkarakterlánc** | Növelje a `Columns` értékét vagy állítsa be a `Rows`‑t, hogy több kódszót tartalmazzon. | +| **Eltérő képformátum** | Cserélje a `BarCodeImageFormat.Png`‑t `Jpeg`‑re, `Bmp`‑re vagy `Gif`‑re. | +| **Magasabb felbontás** | Állítsa be a `generator.Parameters.ImageResolution`‑t a `Save` előtt. | +| **Háttérszín** | Használja a `generator.Parameters.Barcode.ImageBackgroundColor = Color.White;` kódot. | +| **Kivételkezelés** | Csomagolja a `generator.Save`‑t egy `try/catch` blokkba az I/O hibák elkapásához. | + +## Következtetés + +Most már tudja, hogyan **hozzon létre PDF417 vonalkódot** C#‑ban az Aspose.Barcode segítségével, hogyan állítsa be a megjelenését, és hogyan **mentse el a vonalkód képet** PNG fájlként. A teljes példa bemutatja a szükséges lépéseket a projekt beállításától az ellenőrzésig, így a vonalkód generálását bármely .NET megoldásba be tudja integrálni. + +Ezután érdemes megvizsgálni a kapcsolódó témákat, például **hogyan generáljunk QR kódokat**, **vonalkódok beágyazása PDF dokumentumokba**, vagy **a vonalkód színeinek testreszabása**. Mindegyik azonos generátor API‑ra épül, lehetővé téve, hogy minimális erőfeszítéssel bővítse alkalmazása szkennelési képességeit. Jó programozást! + +## Mit érdemes következőként megtanulni? + +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 tartalmaz teljes, működő kódrészleteket 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 hozzunk létre vonalkódot – Kompakt PDF417 az Aspose.BarCode használatával](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [Hogyan generáljunk DataMatrix vonalkódokat (ECC 200) az Aspose.BarCode for .NET használatával](/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/) + +{{< /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/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md b/barcode/hungarian/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md new file mode 100644 index 000000000..ac4fd8d8e --- /dev/null +++ b/barcode/hungarian/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md @@ -0,0 +1,242 @@ +--- +category: general +date: 2026-08-03 +description: PDF417 vonalkód generálása C#-ban az Aspose.BarCode használatával. Tanulja + meg lépésről lépésre, hogyan adjon hozzá Macro PDF417 metaadatokat, és mentse PNG + formátumban. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- generate PDF417 barcode C# +- Macro PDF417 barcode +- Aspose.BarCode +- C# barcode generation +- PDF417 metadata +- barcode image PNG +language: hu +lastmod: 2026-08-03 +og_description: PDF417 vonalkód generálása C#-ban az Aspose.BarCode segítségével. + Ez az útmutató bemutatja, hogyan ágyazhat be Macro PDF417 metaadatokat, és exportálhatja + az eredményt PNG képként. +og_image_alt: Screenshot of a generated PDF417 barcode created with C# +og_title: PDF417 vonalkód generálása C# – lépésről lépésre Aspose.BarCode útmutató +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + headline: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + type: TechArticle +- description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + name: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + steps: + - name: Create a Macro PDF417 barcode generator + text: First, instantiate `BarcodeGenerator` with the `EncodeTypes.MacroPdf417` + enum. The constructor also accepts the text you want to encode – in this example + we use a string that contains Unicode characters to demonstrate full‑width support. + - name: Adjust basic barcode appearance + text: Next, define the visual size of the barcode. `XDimension.Pixels` controls + the width of a single module (the smallest black/white square), while `Pdf417.Columns` + influences the overall shape by setting the number of columns. + - name: Populate Macro PDF417 metadata + text: Macro PDF417 allows you to embed file‑level information that many back‑office + systems rely on (e.g., file ID, segment ID, timestamp). The following properties + illustrate the most common fields. + - name: Save the barcode image as PNG + text: Finally, call `Save` to write the barcode to disk. PNG is lossless, making + it ideal for high‑quality scanning. + - name: How to verify the result + text: 1. Open `ExtPDF417Meta.png` in any image viewer. 2. Use a PDF417 scanner + app (e.g., *Zebra Scanner* or *BarCode Reader* on Android/iOS). 3. Confirm that + the decoded payload includes the original text and a JSON‑like block with the + macro fields you set. + - name: Next steps + text: '- Experiment with other barcode formats (e.g., QR, Code128) by changing + `EncodeTypes`. - Explore `Pdf417.ErrorCorrectionLevel` to improve scan reliability + under poor lighting. - Integrate the generated image into a PDF report using + Aspose.PDF for end‑to‑end document automation.' + type: HowTo +tags: +- PDF417 +- C# +- Barcode +title: PDF417 vonalkód generálása C#-ban – teljes útmutató az Aspose.BarCode segítségével +url: /hu/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PDF417 vonalkód generálása C#‑ban – teljes útmutató + +Ha **PDF417 vonalkód C#‑ban** generálására van szüksége logisztikai vagy dokumentumkezelő rendszerhez, ez a bemutató pontosan megmutatja, hogyan teheti meg az Aspose.BarCode segítségével. Megmutatjuk, hogyan konfigurálja a vonalkódot, hogyan ágyaz be Macro PDF417 metaadatokat, és hogyan menti az eredményt PNG képként néhány sor kóddal. + +PDF417 vonalkód generálása C#‑ban gyakran magában foglal további információk kezelését, például fájlazonosítókat, szegmensszámokat vagy időbélyegeket. Ez az útmutató ezeket a részleteket lefedi, így nem kell szétszórt dokumentációban keresgélnie. A cikk végére egy kész, futtatható programot kap, amely megfelelõ Macro PDF417 vonalkód képet állít elő. + +## Amire szüksége lesz + +- .NET 6.0 vagy újabb (a kód .NET Framework 4.7+‑tel is működik) +- Aspose.BarCode for .NET (v23.9 vagy újabb) – telepítés NuGet‑en: `Install-Package Aspose.BarCode` +- Fejlesztői környezet, például Visual Studio 2022 vagy Visual Studio Code +- Alapvető C# szintaxis ismeret + +> **Pro tipp:** Használja az Aspose.BarCode legújabb verzióját a hibajavítások és a legújabb PDF417 specifikációk támogatása érdekében. + +## PDF417 vonalkód generálása C#‑ban az Aspose.BarCode‑dal + +A folyamat négy logikai lépésből áll. Minden lépés egyértelmű kódrészletbe van ágyazva, így azonnal másolható, beilleszthető és futtatható. + +### 1. lépés: Macro PDF417 vonalkód generátor létrehozása + +Először példányosítsa a `BarcodeGenerator`‑t a `EncodeTypes.MacroPdf417` enum-mal. A konstruktor a kódolandó szöveget is elfogadja – ebben a példában egy Unicode karaktereket tartalmazó stringet használunk a teljes szélesség támogatásának bemutatására. + +```csharp +using System; +using Aspose.BarCode.Generation; + +// Create a Macro PDF417 barcode generator with the desired text +using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) +{ + // Subsequent steps go inside this using block +``` + +*Miért fontos*: A `MacroPdf417` típus azt mondja az Aspose.BarCode‑nak, hogy a szimbólumot makró vonalkódként kezelje, amely további fájlszintű metaadatokat képes hordozni. Enélkül a később beállított extra mezők figyelmen kívül maradnak. + +### 2. lépés: Alapvető vonalkód megjelenés beállítása + +Ezután határozza meg a vonalkód vizuális méretét. Az `XDimension.Pixels` szabályozza egyetlen modul (a legkisebb fekete/fehér négyzet) szélességét, míg a `Pdf417.Columns` a teljes alakot befolyásolja az oszlopok számának beállításával. + +```csharp + // Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol +``` + +*Miért fontos*: A kisebb `XDimension` nagyobb felbontású képet eredményez, ami akkor hasznos, ha a vonalkódot képernyőről kell beolvasni. Az oszlopszám módosítása segíthet a vonalkódot korlátozott helyre illeszteni anélkül, hogy csökkenne az adatkapacitás. + +### 3. lépés: Macro PDF417 metaadatok feltöltése + +A Macro PDF417 lehetővé teszi fájlszintű információk beágyazását, amelyre számos háttérrendszer támaszkodik (pl. fájl‑ID, szegmens‑ID, időbélyeg). Az alábbi tulajdonságok a leggyakoribb mezőket szemléltetik. + +```csharp + // Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; +``` + +*Miért fontos*: Minden mező közvetlenül a makró vonalkód specifikáció egy szegmensére térképeződik. Például a `MacroPdf417FileID` egyedileg azonosítja a logikai fájlt, míg a `MacroPdf417SegmentsCount` megmondja a leolvasónak, hány részt várjon. A pontos metaadatok biztosítják, hogy az utólagos rendszerek hibamentesen rekonstruálhassák az eredeti dokumentumot. + +### 4. lépés: Vonalkód mentése PNG‑képként + +Végül hívja meg a `Save` metódust a vonalkód lemezre írásához. A PNG veszteségmentes, így ideális a magas minőségű beolvasáshoz. + +```csharp + // Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); +} +``` + +*Miért fontos*: A `BarCodeImageFormat.Png` enum garantálja, hogy a kimeneti fájl pontosan azt a pixeladatot tartalmazza, amit beállított. Ha vektoros formátumra van szüksége a méretezéshez, cserélje a `Png`‑t `Svg`‑re – az Aspose.BarCode ezt natívan támogatja. + +#### Várható kimenet + +A teljes program futtatása után egy **ExtPDF417Meta.png** nevű fájl jön létre. A kép egy sűrű, több soros PDF417 szimbólumot mutat, amely tartalmazza a „Åspóse.Barcóde©” szöveget és a megadott makró metaadatokat. A vonalkód PDF417‑kompatibilis olvasóval történő beolvasása visszaadja az eredeti szöveget, valamint egy strukturált adatblokkot, amely a fájl‑ID‑t, szegmens‑ID‑t, időbélyeget és egyéb mezőket tartalmaz. + +![Screenshot of generated PDF417 barcode](/images/pdf417-example.png){: .center-image alt="PDF417 vonalkód generálása C# példakimenet"} + +## Teljes forráskód (másolás‑beillesztés kész) + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace Pdf417MacroDemo +{ + class Program + { + static void Main() + { + // Step 1: Create a Macro PDF417 barcode generator with the desired text + using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) + { + // Step 2: Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol + + // Step 3: Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; + + // Step 4: Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); + } + + Console.WriteLine("Macro PDF417 barcode generated successfully."); + } + } +} +``` + +### Az eredmény ellenőrzése + +1. Nyissa meg az `ExtPDF417Meta.png` fájlt bármely képnézőben. +2. Használjon PDF417‑olvasó alkalmazást (pl. *Zebra Scanner* vagy *BarCode Reader* Androidon/iOS‑en). +3. Ellenőrizze, hogy a dekódolt payload tartalmazza az eredeti szöveget és egy JSON‑szerű blokkot a beállított makró mezőkkel. + +## Gyakori kérdések és szélsőséges esetek kezelése + +| Kérdés | Válasz | +|----------|--------| +| **Létrehozhatok vektoros képet PNG helyett?** | Igen. Cserélje a `BarCodeImageFormat.Png`‑t `BarCodeImageFormat.Svg`‑re. A kód többi része változatlan marad. | +| **Mi van, ha az adataim meghaladják az alapkapacitást?** | Növelje a `Pdf417.Columns` értékét vagy állítsa be manuálisan a `Pdf417.Rows`‑t. A nagyobb értékek több kódszót engednek meg szegmensenként. | +| **Támogatott-e az Unicode a kódolt szövegben?** | Természetesen. A példa a „Åspóse.Barcóde©” szöveget használja. Az Aspose.BarCode szükség esetén automatikusan UTF‑8 kódolásra vált. | +| **Szükséges licencet regisztrálni az Aspose.BarCode‑hoz?** | Éles környezetben licencet kell alkalmazni a vízjel elkerülése érdekében. Hívja meg a `License license = new License(); license.SetLicense("Aspose.BarCode.lic");` sort a generátor létrehozása előtt. | +| **Hogyan kezeljem a mentési hibákat?** | Tegye a `Save` hívást try/catch blokkba, és naplózza az `IOException`‑t vagy `BarCodeException`‑t a hibaelhárításhoz. | + +## Következtetés + +Most már tudja, hogyan **generáljon PDF417 vonalkódot C#‑ban** az Aspose.BarCode‑dal, hogyan ágyazzon be teljes Macro PDF417 metaadatokat, és hogyan exportálja az eredményt magas minőségű PNG‑képként. A lépések – a generátor létrehozása, a megjelenés beállítása, a metaadatok feltöltése és a kép mentése – újrahasználható mintát adnak, amelyet számlák, szállítócímkék vagy bármely olyan szituáció esetén alkalmazhat, ahol gazdag vonalkód adatokra van szükség. + +### Következő lépések + +- Kísérletezzen más vonalkódformátumokkal (pl. QR, Code128) az `EncodeTypes` módosításával. +- Fedezze fel a `Pdf417.ErrorCorrectionLevel` beállítást a rossz fényviszonyok közti beolvasási megbízhatóság javításához. +- Integrálja a generált képet PDF‑jelentésbe az Aspose.PDF segítségével a teljes dokumentumautomatizálás érdekében. + +Nyugodtan módosítsa a metaadatmezőket a saját üzleti szabályai szerint, és tegye a vonalkódgenerálást zökkenőmentes részeivé C#‑alkalmazásainak. Boldog kódolást! + +## Mit érdemes még tanulni? + +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 teljesen működő kódrészleteket és lépésről‑lépésre magyarázatokat tartalmaz, 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 hozzunk létre vonalkódot – Kompakt PDF417 az Aspose.BarCode‑dal](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [Hogyan hozzunk létre vonalkódot – Kompakt PDF417 az Aspose.BarCode‑dal (német) ](/barcode/german/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [java vonalkód könyvtár – Vonalkód hozzáadása PDF‑hez az Aspose használatával](/barcode/english/java/barcode-basics/adding-barcode-to-pdf-document/) + +{{< /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/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md b/barcode/hungarian/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md new file mode 100644 index 000000000..604ca1005 --- /dev/null +++ b/barcode/hungarian/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md @@ -0,0 +1,188 @@ +--- +category: general +date: 2026-08-03 +description: Hogyan menthetünk gyorsan vonalkódot C#-ban. Ismerje meg a MicroPDF417 + vonalkód generálását, állítsa be a méreteket, válasszon oszlopokat, és exportálja + PNG formátumba. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to save barcode +- MicroPDF417 barcode +- C# barcode generation +- barcode XDimension +- PDF417 columns +- barcode image format +language: hu +lastmod: 2026-08-03 +og_description: hogyan mentse el a vonalkódot C#-ban egy teljes példával. Generáljon + MicroPDF417 vonalkódot, állítsa be a méretet, adja meg az oszlopokat, és exportálja + PNG formátumba. +og_image_alt: Screenshot showing a MicroPDF417 barcode saved as a PNG file +og_title: hogyan mentsünk vonalkódot – lépésről‑lépésre C# útmutató +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: how to save barcode quickly using C#. Learn MicroPDF417 barcode generation, + set dimensions, choose columns, and export to PNG. + headline: how to save barcode as an image – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- imaging +title: Hogyan menthetünk el egy vonalkódot képként – teljes C# útmutató +url: /hu/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# hogyan mentse el a vonalkódot – teljes C# útmutató + +Ha **hogyan mentse el a vonalkódot** egy .NET alkalmazásban, ez a tutorial pontos lépéseket mutat. Létrehozunk egy MicroPDF417 vonalkódot, finomhangoljuk a méreteit, kiválasztjuk az oszlopszámot, majd végül PNG fájlként írjuk le a lemezen. + +Vonalkódok létrehozása és tárolása nem igényel nehéz könyvtárat – elegendő az Aspose.BarCode for .NET csomag `BarcodeGenerator` osztálya. Az alábbi szakaszokban végigvezetünk minden konfigurációs lehetőségen, elmagyarázzuk, miért fontos, és egy azonnal futtatható kódrészletet adunk. + +## Előfeltételek + +- .NET 6.0 vagy újabb (az API működik .NET Core és .NET Framework alatt is) +- Aspose.BarCode for .NET (NuGet csomag `Aspose.BarCode`) +- Egy mappa, amelybe írási jogosultsággal rendelkezik (a **hogyan mentse el a vonalkódot** lépésben használt) + +## 1. lépés: MicroPDF417 vonalkódgenerátor létrehozása + +Az első feladat minden **hogyan mentse el a vonalkódot** munkafolyamatban, hogy példányosítsunk egy `BarcodeGenerator`‑t a kívánt szimbólummal és adattal. A MicroPDF417 a PDF417 mátrix vonalkód kompakt változata, ideális kis címkékhez. + +```csharp +using Aspose.BarCode.Generation; + +// Create a MicroPDF417 barcode with sample text that includes Unicode characters. +BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, // Symbology + "Åspóse.Barcóde©"); // Data to encode +``` + +**Miért fontos:** +`EncodeTypes.MicroPdf417` azt mondja a könyvtárnak, hogy a MicroPDF417 algoritmust használja, amely automatikusan kezeli a hibajavítást és az adatkódolást. Unicode szöveg megadása azt mutatja, hogy a generátor helyesen kezeli a nem‑ASCII karaktereket. + +## 2. lépés: Az X‑dimenzió (modulméret) beállítása + +Az X‑dimenzió határozza meg egyetlen vonalkódmodul (pixel) szélességét. Egy kisebb érték szorosabb vonalkódot eredményez, míg egy nagyobb érték könnyebben olvashatóvá teszi. + +```csharp +// Set each module to 2 pixels wide. +barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +**Miért fontos:** +Az `barcode XDimension` beállítása biztosítja, hogy a vonalkód illeszkedjen a célcímke méretéhez. Ha kihagyja ezt a lépést, az alapértelmezett méret túl nagy lehet mobil képernyőkön vagy kis nyomatokon. + +## 3. lépés: A PDF417 mátrix oszlopainak száma + +A MicroPDF417 1–4 oszlopot támogat. Több oszlop négyzetesebb vonalkódot eredményez; kevesebb oszlop függőlegesen nyújtja. + +```csharp +// Use the maximum of 4 columns for a compact, square shape. +barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; +``` + +**Miért fontos:** +A **PDF417 oszlopok** beállítása lehetővé teszi, hogy az olvashatóságot a helykorláttal egyensúlyba hozza. Sok beolvasási szituációban a 4‑oszlopos elrendezés a legjobb kompromisszum. + +## 4. lépés: A generált vonalkód mentése PNG képként + +Miután a vonalkódot konfiguráltuk, végre megválaszolhatjuk a “**hogyan mentse el a vonalkódot**” kérdést, és leírhatjuk egy fájlba. A PNG veszteségmentes minőséget őriz, ami a tiszta beolvasáshoz elengedhetetlen. + +```csharp +// Define the output path (ensure the directory exists). +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + +// Export the barcode to PNG. +barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + +Console.WriteLine($"Barcode saved to: {outputPath}"); +``` + +**Miért fontos:** +A `barcode image format` meghatározza a mentett fájl vizuális hűségét. A PNG a legtöbb UI‑ és nyomtatási munkafolyamatban előnyben részesül, mivel éles éleket tart meg tömörítési hibák nélkül. + +## Teljes, futtatható példa + +Mindent egy helyen összerakva egy önálló programot kapunk, amelyet egyszerűen másolhat, beilleszthet és futtathat. + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // 1️⃣ Create the barcode generator. + BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, + "Åspóse.Barcóde©"); + + // 2️⃣ Adjust module size. + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; + + // 3️⃣ Set column count (1‑4 allowed). + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; + + // 4️⃣ Define output location. + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + + // 5️⃣ Save as PNG. + barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"✅ Barcode saved to: {outputPath}"); + } +} +``` + +**Várható kimenet** + +A program futtatása a `MicroPdf417.png` fájlt hozza létre az asztalon. A fájl megnyitása egy tiszta MicroPDF417 vonalkódot mutat, amely a `Åspóse.Barcóde©` karakterláncot kódolja. Bármely szabványos vonalkódolvasóval beolvasva visszakapja az eredeti szöveget. + +## Gyakori kérdések és szélhelyzetek + +| Kérdés | Válasz | +|----------|--------| +| *Használhatok JPEG‑et PNG helyett?* | Igen. Cserélje le a `BarCodeImageFormat.Png`‑t `BarCodeImageFormat.Jpeg`‑re. A JPEG kisebb, de tömörítési hibákat vezet be, amelyek befolyásolhatják a beolvasást. | +| *Mi van, ha az adataim meghaladják a MicroPDF417 kapacitását?* | A MicroPDF417 legfeljebb 1 KB adatot tárolhat. Nagyobb terhelés esetén válassza a teljes `EncodeTypes.Pdf417`‑t. | +| *Hogyan változtathatom meg a vonalkód színét?* | Használja a `barcodeGenerator.Parameters.Barcode.BarColor` és `BackColor` tulajdonságokat az előtér/háttér színek beállításához a `Save` hívása előtt. | +| *Az X‑dimenzió korlátozva van egész pixelre?* | A tulajdonság `float`‑ot fogad. Olyan értékek, mint `1.5f`, megengedettek, de a legtöbb nyomtató a teljes pixelméretekkel működik a legjobban. | + +## Pro tippek a megbízható **hogyan mentse el a vonalkódot** megvalósításhoz + +- **Ellenőrizze a kimeneti mappát** a `Directory.Exists`‑el a `Save` hívása előtt, hogy elkerülje a `IOException`‑t. +- **Szabadítsa fel a generátort** (`barcodeGenerator.Dispose()`) nagy mennyiségű vonalkód ciklikus előállítása esetén, hogy natív erőforrásokat szabadítson fel. +- **Tesztelje valódi olvasókkal** a mentés után; a vizuális ellenőrzés önmagában nem elegendő a termelési környezetben. +- **Tartsa naprakészen a könyvtárat** – az újabb Aspose.BarCode kiadások szimbólumfejlesztéseket és hibajavításokat tartalmaznak. + +## Összegzés + +Most már tudja, **hogyan mentse el a vonalkódot** képekként C#‑ban az Aspose.BarCode könyvtár segítségével. Egy MicroPDF417 vonalkód létrehozásával, a **vonalkód XDimension** konfigurálásával, a megfelelő **PDF417 oszlopok** kiválasztásával és a **vonalkód képformátum** PNG‑re exportálásával egy komplett, termelés‑kész megoldást kapott. + +Ezután fedezze fel a kapcsolódó témákat, például a **C# vonalkódgenerálás QR kódokhoz**, a **tömeges vonalkódkészítés**, vagy a **vonalkódok beágyazása PDF jelentésekbe**. Mindegyik ugyanazokra az alapelvekre épül, amelyeket itt bemutattunk, így magabiztosan bővítheti képalkotó eszköztárát. + +## Mit érdemes még tanulni? + +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 komplett, működő kódrészleteket és lépésről‑lépésre magyarázatokat tartalmaz, hogy segítsen elsajátítani további API‑funkciókat és alternatív megvalósítási megközelítéseket a saját projektjeiben. + +- [How to Save PNG using DataMatrix C40 with Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-c40/) +- [How to Set Border for ITF-14 Barcode Customization](/barcode/english/net/itf-14-barcode-customization/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) + +{{< /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/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md b/barcode/hungarian/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md new file mode 100644 index 000000000..0ae60a5e0 --- /dev/null +++ b/barcode/hungarian/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md @@ -0,0 +1,215 @@ +--- +category: general +date: 2026-08-03 +description: Olvassa be a PDF417 vonalkódot egy képről C# BarCodeReader segítségével + – egy komplett vonalkódolvasó példa, amely azt is megmutatja, hogyan olvashatók + több vonalkód. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- read PDF417 barcode +- barcode reader example +- read multiple barcodes +- read barcodes image +language: hu +lastmod: 2026-08-03 +og_description: Olvassa be gyorsan a PDF417 vonalkódot egy C# BarCodeReader példával. + Kövesse ezt a lépésről‑lépésre útmutatót a macro PDF417 dekódolásához és több vonalkód + beolvasásához egy képről. +og_image_alt: Console output of a read PDF417 barcode example in C# +og_title: PDF417 vonalkód olvasása C#-ban – komplett vonalkódolvasó példa +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + headline: Read PDF417 barcode in C# – barcode reader example + type: TechArticle +- description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + name: Read PDF417 barcode in C# – barcode reader example + steps: + - name: '**Create a new console project**' + text: '**Create a new console project**' + - name: '**Add the barcode library**' + text: '**Add the barcode library**' + - name: '**Copy the barcode image**' + text: '**Copy the barcode image**' + type: HowTo +tags: +- barcode +- PDF417 +- C# +- .NET +title: PDF417 vonalkód olvasása C#-ban – vonalkódolvasó példa +url: /hu/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PDF417 vonalkód olvasása C#-ban – vonalkód olvasó példa + +Ha PDF417 vonalkód adatokat szeretne olvasni egy képből, ez az útmutató megmutatja, hogyan teheti ezt meg a **BarCodeReader** osztállyal C#-ban. Megtanul egy vonalkód olvasó példát, amely kezeli a macro PDF417-et is, és képes több vonalkódot olvasni egyetlen képen. + +Vonalkódokkal dolgozni gyakran azt jelenti, hogy különböző képforrásokkal, változó fényviszonyokkal, és néha összetett adatokkal, például macro PDF417 szegmensekkel kell megküzdeni. Ez az oktatóanyag mindent lefed, amire szüksége van egy PDF417 vonalkód dekódolásához, kiterjesztett mezőinek kinyeréséhez, és több vonalkód feldolgozásához ugyanabból a képből. A végére egy futtatható konzolprogramja lesz, amely képfájlból olvas vonalkódokat, és részletes információkat nyomtat a konzolra. + +## Amire szüksége lesz + +* .NET 6.0 SDK vagy újabb telepítve +* A **Aspose.BarCode for .NET** NuGet csomag legújabb verziója (vagy bármely kompatibilis könyvtár, amely biztosítja a `BarCodeReader` és a `DecodeType.MacroPdf417` elemeket) +* Egy képfájl, amely PDF417 vagy macro PDF417 vonalkódot tartalmaz (a példa a `ExtPDF417Meta.png`-t használja) +* Egy kódszerkesztő vagy IDE, például a Visual Studio 2022 + +Nem szükséges további szolgáltatás vagy külső API. + +## A projekt beállítása a vonalkódolvasáshoz + +1. **Új konzolprojekt létrehozása** + + ```bash + dotnet new console -n Pdf417ReaderDemo + cd Pdf417ReaderDemo + ``` + +2. **A vonalkód könyvtár hozzáadása** + + ```bash + dotnet add package Aspose.BarCode --version 23.12 + ``` + +3. **A vonalkód kép másolása** + + Helyezze a `ExtPDF417Meta.png`-t (vagy bármely PDF417 vonalkódot tartalmazó képet) a projekt mappájába. + Ebben az oktatóanyagban feltételezzük, hogy a fájl a `YOUR_DIRECTORY/ExtPDF417Meta.png` helyen található. + +A projekt most már készen áll a fordításra és a vonalkódolvasó példa futtatására. + +## PDF417 vonalkód olvasása a BarCodeReader-rel + +A megoldás központja egy `using` blokk, amely létrehozza a `BarCodeReader` példányt, megadja a `DecodeType.MacroPdf417` értéket, és végigiterál minden észlelt vonalkódon. Az alábbi kód egy teljes, önálló program, amelyet beilleszthet a `Program.cs` fájlba. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.BarCodeRecognition; + +class Program +{ + static void Main() + { + // Path to the image that contains one or more PDF417 barcodes + const string imagePath = "YOUR_DIRECTORY/ExtPDF417Meta.png"; + + // Step 1: Create a BarCodeReader for a macro PDF417 image + using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.MacroPdf417)) + { + // Step 2: Read all barcodes from the image + foreach (BarCodeResult result in reader.ReadBarCodes()) + { + // Step 3: Output basic barcode information + Console.WriteLine($"CodeType: {result.CodeTypeName}"); + Console.WriteLine($"CodeText: {result.CodeText}"); + + // Step 4: Output macro PDF417 specific fields + Console.WriteLine($"Pdf417MacroFileID: {result.Extended.Pdf417.MacroPdf417FileID}"); + Console.WriteLine($"Pdf417MacroSegmentID: {result.Extended.Pdf417.MacroPdf417SegmentID}"); + Console.WriteLine($"Pdf417MacroSegmentsCount: {result.Extended.Pdf417.MacroPdf417SegmentsCount}"); + Console.WriteLine($"Pdf417MacroFileName: {result.Extended.Pdf417.MacroPdf417FileName}"); + Console.WriteLine($"Pdf417MacroChecksum: {result.Extended.Pdf417.MacroPdf417Checksum}"); + Console.WriteLine($"Pdf417MacroFileSize: {result.Extended.Pdf417.MacroPdf417FileSize}"); + Console.WriteLine($"Pdf417MacroTimeStamp: {result.Extended.Pdf417.MacroPdf417TimeStamp}"); + Console.WriteLine($"Pdf417MacroAddressee: {result.Extended.Pdf417.MacroPdf417Addressee}"); + Console.WriteLine($"Pdf417MacroSender: {result.Extended.Pdf417.MacroPdf417Sender}"); + Console.WriteLine($"MacroPdf417Terminator: {result.Extended.Pdf417.MacroPdf417Terminator}"); + Console.WriteLine(new string('-', 40)); + } + + // Pro tip: If no barcodes are found, ReadBarCodes() returns an empty collection. + // You can check reader.HasBarcodes for a quick boolean test. + if (!reader.HasBarcodes) + { + Console.WriteLine("No barcodes detected in the provided image."); + } + } + } +} +``` + +**Miért működik**: + +* `DecodeType.MacroPdf417` azt mondja az olvasónak, hogy keresse a PDF417 macro kiterjesztését, amely további metaadatokat tartalmaz, például fájlazonosítót, szegmens számot és időbélyegeket. +* A `using` utasítás garantálja, hogy a nem kezelt erőforrások (fájlkezelők, natív dekódoló pufferek) gyorsan felszabaduljanak. +* A `foreach` ciklus automatikusan feldolgozza a képen lévő **összes** vonalkódot, ezzel teljesítve a *több vonalkód olvasása* követelményt. + +A program futtatásakor (`dotnet run`) hasonló kimenetet kell látnia, mint az alábbi: + +``` +CodeType: MacroPdf417 +CodeText: https://example.com/document.pdf +Pdf417MacroFileID: 12345 +Pdf417MacroSegmentID: 1 +Pdf417MacroSegmentsCount: 3 +Pdf417MacroFileName: document.pdf +Pdf417MacroChecksum: 0x1A2B +Pdf417MacroFileSize: 204800 +Pdf417MacroTimeStamp: 2024-07-15T10:25:00Z +Pdf417MacroAddressee: John Doe +Pdf417MacroSender: Acme Corp +MacroPdf417Terminator: True +---------------------------------------- +``` + +Ha a kép több mint egy PDF417 vonalkódot tartalmaz, a ciklus minden vonalkódhoz külön blokkot nyomtat, ezáltal bemutatva, hogyan **olvashat több vonalkódot** egyetlen képről. + +## Több vonalkód olvasása egy képből + +Ugyanaz a `BarCodeReader` példány egyszerre több vonalkódtípust is dekódolhat. A hatókör kiterjesztéséhez, hogy ne csak macro PDF417-et, hanem bármely PDF417-et (vagy akár QR, Code128 stb.) is kezeljen, módosítsa a `DecodeType` jelzőt: + +```csharp +using (BarCodeReader reader = new BarCodeReader(imagePath, + DecodeType.Pdf417 | DecodeType.MacroPdf417 | DecodeType.QR | DecodeType.Code128)) +{ + // The rest of the code stays unchanged. +} +``` + +*`DecodeType`* egy bitmaszk, így tetszőleges számú támogatott formátumot kombinálhat. Ez a rugalmasság teszi a kódrészletet egy **vonalkód olvasó példává**, amely számos felhasználási esetben működik, például termékcímkék, jegyek vagy személyi igazolványok beolvasásakor. + +## A macro PDF417 mezők biztonságos elérése + +Macro PDF417 gazdag kiterjesztett tulajdonságkészletet ad hozzá. Azonban nem minden vonalkód tartalmaz minden mezőt. Hiányzó tulajdonság elérése `NullReferenceException`-t dobhat. A legbiztonságosabb megközelítés, ha minden tulajdonságot ellenőriz a kiírás előtt: + +```csharp +var macro = result.Extended?.Pdf417; +if (macro != null) +{ + Console.WriteLine($"Pdf417MacroFileID: {macro.MacroPdf417FileID ?? "N/A"}"); + // Repeat for other fields... +} +``` + +*Miért fontos*: Valós környezetben előfordulhat, hogy egyszerű PDF417 vonalkódokat kap, amelyek nem tartalmaznak macro adatokat. A védelmi ellenőrzés biztosítja, hogy az alkalmazás tovább fusson anélkül, hogy összeomlana. + +## Gyakori buktatók és legjobb gyakorlatok + +| Probléma | Miért fordul elő | Javasolt megoldás | +|----------|------------------|-------------------| +| A képfájl útvonala helytelen | `BarCodeReader` fájl‑nem‑található kivételt dob, mielőtt bármilyen dekódolás megtörténne | Használja a `Path.Combine`-t, és ellenőrizze, hogy a fájl létezik-e a `File.Exists` segítségével | +| Alacsony felbontású kép | A dekóder nem tudja megtalálni a vonalkód éleit, ami nulla detektáláshoz vezet | Biztosítson legalább 300 dpi felbontást a megbízható eredményekhez | +| A vonalkód > 45°-ra el van fordítva | Sok könyvtár felálló orientációt feltételez | Engedélyezze a `reader.RecognitionOptions.RotateImage = true` beállítást, ha a | + +## Mit érdemes még megtanulni? + +A következő 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észletet 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 olvassunk DataMatrix vonalkódokat az Aspose.BarCode for .NET segítségével](/barcode/english/net/datamatrix-barcode-reading/) +- [DataMatrix vonalkód olvasása C# – DataMatrix mód generálása (Auto)](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-auto/) +- [Vonalkód olvasása képből – A vonalkód régió kinyerésének elsajátítása Java-ban az Aspose.BarCode segítségével](/barcode/english/java/advanced-settings-and-optimization/extracting-barcode-region-information/) + +{{< /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/net/compact-pdf417-encoding/_index.md b/barcode/indonesian/net/compact-pdf417-encoding/_index.md index e49f3f784..abe681f2e 100644 --- a/barcode/indonesian/net/compact-pdf417-encoding/_index.md +++ b/barcode/indonesian/net/compact-pdf417-encoding/_index.md @@ -77,6 +77,14 @@ Aspose.BarCode memungkinkan Anda mengatur properti `Pdf417ErrorCorrectionLevel` ## Compact PDF417 Encoding Tutorials ### [Creating Compact PDF417 Barcodes](./compact-pdf417-basic-configuration/) Pelajari cara menghasilkan barcode Compact PDF417 menggunakan Aspose.BarCode untuk .NET. Panduan komprehensif dengan instruksi langkah‑demi‑langkah dan contoh kode. +### [Buat barcode PDF417 di C# – panduan langkah‑demi‑langkah](./create-pdf417-barcode-in-c-step-by-step-guide/) +Panduan lengkap membuat barcode PDF417 menggunakan C# dengan Aspose.BarCode, termasuk contoh kode dan konfigurasi. +### [Buat barcode PDF417 C# – panduan lengkap dengan Aspose.BarCode](./generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/) +Panduan menyeluruh untuk menghasilkan barcode PDF417 menggunakan C# dan Aspose.BarCode, termasuk contoh kode dan konfigurasi lengkap. +### [Cara menyimpan barcode sebagai gambar – panduan lengkap C#](./how-to-save-barcode-as-an-image-complete-c-guide/) +Panduan lengkap untuk menyimpan barcode sebagai file gambar menggunakan C# dan Aspose.BarCode. +### [Baca barcode PDF417 di C# – contoh pembaca barcode](./read-pdf417-barcode-in-c-barcode-reader-example/) +Contoh cara membaca barcode PDF417 menggunakan Aspose.BarCode di C#, termasuk kode contoh dan penjelasan konfigurasi. ## Frequently Asked Questions @@ -106,4 +114,4 @@ A: Tidak diperlukan font eksternal; pustaka menangani semua rendering secara int {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/indonesian/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md b/barcode/indonesian/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..a68a5e79d --- /dev/null +++ b/barcode/indonesian/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md @@ -0,0 +1,226 @@ +--- +category: general +date: 2026-08-03 +description: Buat barcode PDF417 di C# dengan cepat. Pelajari cara menghasilkan barcode + PDF417 dan cara menyimpan gambar barcode sebagai PNG dengan Aspose.Barcode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create pdf417 barcode +- how to generate pdf417 barcode +- how to save barcode image +language: id +lastmod: 2026-08-03 +og_description: Buat kode batang PDF417 dalam C# dengan Aspose.Barcode. Ikuti panduan + ini untuk menghasilkan kode batang PDF417 dan cara menyimpan gambar kode batang + secara efisien. +og_image_alt: Screenshot of a generated compact PDF417 barcode saved as PNG +og_title: Buat barcode PDF417 di C# – tutorial pemrograman lengkap +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + headline: Create PDF417 barcode in C# – step‑by‑step guide + type: TechArticle +- description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + name: Create PDF417 barcode in C# – step‑by‑step guide + steps: + - name: Why this matters + text: '* **EncodeTypes.Pdf417** tells the library to use the PDF417 standard, + which supports large data payloads and error correction. * Providing Unicode + characters proves the generator handles non‑ASCII input without extra configuration.' + - name: Practical tip + text: If you need a taller barcode for limited horizontal space, increase `Columns`. + Setting `Truncate` to `true` reduces the overall height by removing quiet zones, + which is ideal for mobile screens. + - name: Expected result + text: Running the program creates `CompactPdf417.png` in the project folder. Opening + the file shows a compact PDF417 barcode that encodes the string *Åspóse.Barcóde©*. + The image can be embedded in HTML, PDF reports, or printed on labels. + - name: Verifying the output + text: 'After the program finishes, you can verify the file exists with a quick + command:' + type: HowTo +tags: +- barcode +- C# +- PDF417 +- image generation +title: Buat kode batang PDF417 di C# – panduan langkah demi langkah +url: /id/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Membuat barcode PDF417 di C# – panduan langkah‑demi‑langkah + +Jika Anda perlu **membuat barcode PDF417** dalam aplikasi .NET, panduan ini menunjukkan secara tepat cara menghasilkan barcode PDF417 dan cara menyimpan gambar barcode. Anda akan mendapatkan file PNG yang dapat digunakan dalam laporan, tiket, atau aplikasi pemindaian seluler. + +Tutorial ini mencakup semua hal mulai dari penyiapan proyek hingga file PNG akhir. Tidak diperlukan dokumentasi eksternal; cukup ikuti langkah‑langkahnya dan jalankan kode. + +## Apa yang Anda perlukan + +Sebelum memulai, pastikan Anda memiliki: + +* .NET 6.0 SDK atau yang lebih baru (kode ini juga berfungsi dengan .NET Framework 4.7+) +* Visual Studio 2022 atau IDE apa pun yang mendukung C# +* Akses internet untuk menginstal paket NuGet **Aspose.Barcode for .NET** + +Prasyarat ini memastikan kode dapat dikompilasi tanpa konfigurasi tambahan. + +## Membuat barcode PDF417 – penyiapan proyek + +1. Buka command prompt dan buat proyek konsol baru: + + ```bash + dotnet new console -n Pdf417Demo + cd Pdf417Demo + ``` + +2. Tambahkan pustaka Aspose.Barcode: + + ```bash + dotnet add package Aspose.Barcode + ``` + +3. Buka file `Program.cs` yang dihasilkan. Pernyataan `using` di bagian atas memberi Anda akses ke kelas barcode: + + ```csharp + using System; + using Aspose.Barcode.Generation; + using Aspose.Barcode; + ``` + +Proyek kini siap untuk **membuat barcode PDF417**. + +## Cara menghasilkan barcode PDF417 dengan Aspose.Barcode + +Inti pembuatan barcode berada di kelas `BarcodeGenerator`. Anda menentukan simbolologi (`EncodeTypes.Pdf417`) dan data yang ingin dienkode. + +```csharp +// Step 1: Initialise the generator with PDF417 symbology and sample text. +// The text includes Unicode characters to demonstrate full‑range support. +BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Pdf417, "Åspóse.Barcóde©"); +``` + +### Mengapa ini penting + +* **EncodeTypes.Pdf417** memberi tahu pustaka untuk menggunakan standar PDF417, yang mendukung muatan data besar dan koreksi kesalahan. +* Menyertakan karakter Unicode membuktikan generator dapat menangani masukan non‑ASCII tanpa konfigurasi tambahan. + +## Cara mengonfigurasi tampilan barcode + +Anda dapat mengontrol ukuran setiap modul, jumlah kolom, dan apakah barcode menggunakan mode kompak (terpotong). Pengaturan ini memengaruhi keterbacaan serta ukuran file. + +```csharp +// Step 2: Set the module (X) dimension – each barcode element will be 2 pixels wide. +generator.Parameters.Barcode.XDimension.Pixels = 2; + +// Step 3: Configure PDF417‑specific options. +generator.Parameters.Barcode.Pdf417.Columns = 3; // Number of columns (affects height) +generator.Parameters.Barcode.Pdf417.Truncate = true; // Enable compact mode +``` + +### Tips praktis + +Jika Anda membutuhkan barcode yang lebih tinggi karena ruang horizontal terbatas, tingkatkan `Columns`. Menetapkan `Truncate` ke `true` mengurangi tinggi keseluruhan dengan menghilangkan zona tenang, yang ideal untuk layar seluler. + +## Cara menyimpan gambar barcode sebagai PNG + +Setelah mengonfigurasi generator, panggil `Save` dengan jalur file dan format gambar yang diinginkan. Metode ini menulis gambar langsung ke disk. + +```csharp +// Step 4: Save the generated barcode as a PNG image. +string outputPath = @"./CompactPdf417.png"; +generator.Save(outputPath, BarCodeImageFormat.Png); +Console.WriteLine($"Barcode saved to {outputPath}"); +``` + +### Hasil yang diharapkan + +Menjalankan program akan membuat `CompactPdf417.png` di folder proyek. Membuka file tersebut menampilkan barcode PDF417 kompak yang mengenkripsi string *Åspóse.Barcóde©*. Gambar ini dapat disematkan dalam HTML, laporan PDF, atau dicetak pada label. + +## Kode sumber lengkap + +Berikut adalah program lengkap yang dapat dijalankan. Salin ke `Program.cs` dan jalankan `dotnet run`. + +```csharp +using System; +using Aspose.Barcode.Generation; +using Aspose.Barcode; + +namespace Pdf417Demo +{ + class Program + { + static void Main() + { + // Initialise the generator with PDF417 symbology and sample text. + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.Pdf417, + "Åspóse.Barcóde©"); + + // Set the module width to 2 pixels. + generator.Parameters.Barcode.XDimension.Pixels = 2; + + // Configure PDF417‑specific options. + generator.Parameters.Barcode.Pdf417.Columns = 3; + generator.Parameters.Barcode.Pdf417.Truncate = true; + + // Define the output file path. + string outputPath = @"./CompactPdf417.png"; + + // Save the barcode as a PNG image. + generator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"Barcode saved to {outputPath}"); + } + } +} +``` + +### Memverifikasi output + +Setelah program selesai, Anda dapat memverifikasi keberadaan file dengan perintah singkat: + +```bash +dotnet run && ls -l CompactPdf417.png +``` + +Jika file muncul, proses **membuat barcode PDF417** berhasil. + +## Variasi umum dan kasus tepi + +| Situasi | Penyesuaian | +|-----------|------------| +| **String data lebih panjang** | Tingkatkan `Columns` atau atur `Rows` untuk menampung lebih banyak codeword. | +| **Format gambar berbeda** | Ganti `BarCodeImageFormat.Png` dengan `Jpeg`, `Bmp`, atau `Gif`. | +| **Resolusi lebih tinggi** | Atur `generator.Parameters.ImageResolution` sebelum `Save`. | +| **Warna latar belakang** | Gunakan `generator.Parameters.Barcode.ImageBackgroundColor = Color.White;` | +| **Penanganan pengecualian** | Bungkus `generator.Save` dalam blok `try/catch` untuk menangkap kesalahan I/O. | + +Variasi ini memungkinkan Anda menyesuaikan barcode untuk perangkat atau kebutuhan branding tertentu. + +## Kesimpulan + +Anda kini tahu cara **membuat barcode PDF417** di C# menggunakan Aspose.Barcode, mengonfigurasi tampilannya, dan **menyimpan gambar barcode** sebagai file PNG. Contoh lengkap ini menunjukkan setiap langkah yang diperlukan, mulai dari penyiapan proyek hingga verifikasi, sehingga Anda dapat mengintegrasikan pembuatan barcode ke dalam solusi .NET apa pun. + +Selanjutnya, pertimbangkan untuk menjelajahi topik terkait seperti **cara menghasilkan QR code**, **menyematkan barcode dalam dokumen PDF**, atau **menyesuaikan warna barcode**. Semua ini dibangun di atas API generator yang sama, memungkinkan Anda memperluas kemampuan pemindaian aplikasi dengan usaha minimal. Selamat coding! + +## Apa yang Harus Anda Pelajari Selanjutnya? + +Tutorial berikut mencakup topik yang sangat terkait dan membangun teknik yang ditunjukkan dalam panduan ini. Setiap sumber 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. + +- [Cara Membuat Barcode – PDF417 Kompak dengan Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [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/) + +{{< /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/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md b/barcode/indonesian/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md new file mode 100644 index 000000000..22daf25da --- /dev/null +++ b/barcode/indonesian/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md @@ -0,0 +1,241 @@ +--- +category: general +date: 2026-08-03 +description: Hasilkan kode batang PDF417 C# menggunakan Aspose.BarCode. Pelajari langkah + demi langkah cara menambahkan metadata Macro PDF417 dan menyimpannya sebagai PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- generate PDF417 barcode C# +- Macro PDF417 barcode +- Aspose.BarCode +- C# barcode generation +- PDF417 metadata +- barcode image PNG +language: id +lastmod: 2026-08-03 +og_description: Buat kode batang PDF417 dengan C# menggunakan Aspose.BarCode. Tutorial + ini menunjukkan cara menyematkan metadata Macro PDF417 dan mengekspor hasilnya sebagai + gambar PNG. +og_image_alt: Screenshot of a generated PDF417 barcode created with C# +og_title: Menghasilkan barcode PDF417 C# – tutorial Aspose.BarCode langkah demi langkah +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + headline: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + type: TechArticle +- description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + name: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + steps: + - name: Create a Macro PDF417 barcode generator + text: First, instantiate `BarcodeGenerator` with the `EncodeTypes.MacroPdf417` + enum. The constructor also accepts the text you want to encode – in this example + we use a string that contains Unicode characters to demonstrate full‑width support. + - name: Adjust basic barcode appearance + text: Next, define the visual size of the barcode. `XDimension.Pixels` controls + the width of a single module (the smallest black/white square), while `Pdf417.Columns` + influences the overall shape by setting the number of columns. + - name: Populate Macro PDF417 metadata + text: Macro PDF417 allows you to embed file‑level information that many back‑office + systems rely on (e.g., file ID, segment ID, timestamp). The following properties + illustrate the most common fields. + - name: Save the barcode image as PNG + text: Finally, call `Save` to write the barcode to disk. PNG is lossless, making + it ideal for high‑quality scanning. + - name: How to verify the result + text: 1. Open `ExtPDF417Meta.png` in any image viewer. 2. Use a PDF417 scanner + app (e.g., *Zebra Scanner* or *BarCode Reader* on Android/iOS). 3. Confirm that + the decoded payload includes the original text and a JSON‑like block with the + macro fields you set. + - name: Next steps + text: '- Experiment with other barcode formats (e.g., QR, Code128) by changing + `EncodeTypes`. - Explore `Pdf417.ErrorCorrectionLevel` to improve scan reliability + under poor lighting. - Integrate the generated image into a PDF report using + Aspose.PDF for end‑to‑end document automation.' + type: HowTo +tags: +- PDF417 +- C# +- Barcode +title: Menghasilkan barcode PDF417 C# – panduan lengkap dengan Aspose.BarCode +url: /id/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Menghasilkan Barcode PDF417 C# – panduan lengkap + +Jika Anda perlu **menghasilkan barcode PDF417 C#** untuk sistem logistik atau manajemen dokumen, tutorial ini menunjukkan secara tepat cara melakukannya dengan Aspose.BarCode. Anda akan melihat cara mengonfigurasi barcode, menyematkan metadata Macro PDF417, dan menyimpan hasilnya sebagai gambar PNG hanya dalam beberapa baris kode. + +Membuat barcode PDF417 di C# sering berarti menangani informasi tambahan seperti pengidentifikasi file, nomor segmen, atau cap waktu. Panduan ini mencakup detail tersebut, sehingga Anda tidak perlu mencari melalui dokumentasi yang tersebar. Pada akhir artikel Anda akan memiliki program siap‑jalan yang menghasilkan gambar barcode Macro PDF417 yang sesuai standar. + +## Apa yang Anda butuhkan + +- .NET 6.0 atau lebih baru (kode juga berfungsi dengan .NET Framework 4.7+) +- Aspose.BarCode untuk .NET (v23.9 atau lebih baru) – instal melalui NuGet `Install-Package Aspose.BarCode` +- Lingkungan pengembangan seperti Visual Studio 2022 atau Visual Studio Code +- Pemahaman dasar tentang sintaks C# + +> **Tips pro:** Gunakan versi Aspose.BarCode terbaru untuk mendapatkan perbaikan bug dan dukungan untuk spesifikasi PDF417 terbaru. + +## Cara menghasilkan barcode PDF417 C# dengan Aspose.BarCode + +Proses ini terdiri dari empat langkah logis. Setiap langkah dibungkus dalam blok kode yang jelas sehingga Anda dapat menyalin, menempel, dan menjalankannya segera. + +### Langkah 1: Buat generator barcode Macro PDF417 + +Pertama, buat instance `BarcodeGenerator` dengan enum `EncodeTypes.MacroPdf417`. Konstruktor juga menerima teks yang ingin Anda enkode – dalam contoh ini kami menggunakan string yang berisi karakter Unicode untuk mendemonstrasikan dukungan lebar penuh. + +```csharp +using System; +using Aspose.BarCode.Generation; + +// Create a Macro PDF417 barcode generator with the desired text +using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) +{ + // Subsequent steps go inside this using block +``` + +*Mengapa ini penting*: Tipe `MacroPdf417` memberi tahu Aspose.BarCode untuk memperlakukan simbol sebagai barcode makro, yang dapat membawa metadata tingkat file tambahan. Tanpa flag ini, bidang ekstra yang Anda atur nanti akan diabaikan. + +### Langkah 2: Sesuaikan tampilan dasar barcode + +Selanjutnya, tentukan ukuran visual barcode. `XDimension.Pixels` mengontrol lebar satu modul (kotak hitam/putih terkecil), sementara `Pdf417.Columns` memengaruhi bentuk keseluruhan dengan mengatur jumlah kolom. + +```csharp + // Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol +``` + +*Mengapa ini penting*: `XDimension` yang lebih kecil menghasilkan gambar beresolusi lebih tinggi, yang berguna ketika barcode harus dipindai dari layar. Mengubah jumlah kolom dapat membantu menyesuaikan barcode ke ruang terbatas tanpa mengorbankan kapasitas data. + +### Langkah 3: Isi metadata Macro PDF417 + +Macro PDF417 memungkinkan Anda menyematkan informasi tingkat file yang banyak sistem back‑office andalkan (misalnya, ID file, ID segmen, cap waktu). Properti berikut menggambarkan bidang paling umum. + +```csharp + // Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; +``` + +*Mengapa ini penting*: Setiap bidang langsung memetakan ke segmen spesifikasi barcode makro. Misalnya, `MacroPdf417FileID` secara unik mengidentifikasi file logis, sementara `MacroPdf417SegmentsCount` memberi tahu pemindai berapa banyak bagian yang diharapkan. Menyediakan metadata yang akurat memastikan sistem hilir dapat merekonstruksi dokumen asli tanpa kesalahan. + +### Langkah 4: Simpan gambar barcode sebagai PNG + +Akhirnya, panggil `Save` untuk menulis barcode ke disk. PNG bersifat lossless, menjadikannya ideal untuk pemindaian berkualitas tinggi. + +```csharp + // Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); +} +``` + +*Mengapa ini penting*: Enum `BarCodeImageFormat.Png` menjamin bahwa file output berisi data piksel tepat seperti yang Anda konfigurasikan. Jika Anda memerlukan format vektor untuk penskalaan, ganti `Png` dengan `Svg` – Aspose.BarCode mendukungnya secara langsung. + +#### Output yang Diharapkan + +Menjalankan program lengkap menghasilkan file bernama **ExtPDF417Meta.png**. Gambar tersebut menampilkan simbol PDF417 padat, multi‑baris yang mencakup teks “Åspóse.Barcóde©” dan metadata makro yang Anda berikan. Memindai barcode dengan pembaca kompatibel PDF417 mengembalikan teks asli plus blok data terstruktur yang berisi ID file, ID segmen, cap waktu, dan bidang lainnya. + +![Tangkapan layar barcode PDF417 yang dihasilkan](/images/pdf417-example.png){: .center-image alt="contoh output generate barcode PDF417 C#"} + +## Kode sumber lengkap (siap salin‑tempel) + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace Pdf417MacroDemo +{ + class Program + { + static void Main() + { + // Step 1: Create a Macro PDF417 barcode generator with the desired text + using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) + { + // Step 2: Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol + + // Step 3: Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; + + // Step 4: Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); + } + + Console.WriteLine("Macro PDF417 barcode generated successfully."); + } + } +} +``` + +### Cara memverifikasi hasilnya + +1. Buka `ExtPDF417Meta.png` di penampil gambar apa pun. +2. Gunakan aplikasi pemindai PDF417 (misalnya *Zebra Scanner* atau *BarCode Reader* di Android/iOS). +3. Pastikan payload yang didekode mencakup teks asli dan blok mirip JSON dengan bidang makro yang Anda atur. + +## Pertanyaan umum dan penanganan kasus tepi + +| Pertanyaan | Jawaban | +|------------|---------| +| **Apakah saya dapat menghasilkan gambar vektor alih‑alih PNG?** | Ya. Ganti `BarCodeImageFormat.Png` dengan `BarCodeImageFormat.Svg`. Sisanya tetap tidak berubah. | +| **Bagaimana jika data saya melebihi kapasitas default?** | Tingkatkan `Pdf417.Columns` atau atur `Pdf417.Rows` secara manual. Nilai yang lebih besar memungkinkan lebih banyak codeword per segmen. | +| **Apakah Unicode didukung dalam teks yang dienkode?** | Tentu saja. Contoh menggunakan “Åspóse.Barcóde©”. Aspose.BarCode secara otomatis beralih ke enkoding UTF‑8 bila diperlukan. | +| **Apakah saya perlu menandatangani lisensi untuk Aspose.BarCode?** | Untuk produksi Anda harus menerapkan lisensi agar tidak muncul watermark evaluasi. Panggil `License license = new License(); license.SetLicense("Aspose.BarCode.lic");` sebelum membuat generator. | +| **Bagaimana cara menangani error saat menyimpan file?** | Bungkus pemanggilan `Save` dalam blok try/catch dan log `IOException` atau `BarCodeException` untuk pemecahan masalah. | + +## Kesimpulan + +Anda kini tahu cara **menghasilkan barcode PDF417 C#** menggunakan Aspose.BarCode, menyematkan metadata Macro PDF417 lengkap, dan mengekspor hasilnya sebagai gambar PNG berkualitas tinggi. Langkah‑langkah—membuat generator, menyesuaikan tampilan, mengisi metadata, dan menyimpan gambar—merupakan pola yang dapat digunakan kembali dan dapat disesuaikan untuk faktur, label pengiriman, atau skenario apa pun yang memerlukan data barcode kaya. + +### Langkah selanjutnya + +- Bereksperimen dengan format barcode lain (mis., QR, Code128) dengan mengubah `EncodeTypes`. +- Jelajahi `Pdf417.ErrorCorrectionLevel` untuk meningkatkan keandalan pemindaian dalam pencahayaan buruk. +- Integrasikan gambar yang dihasilkan ke dalam laporan PDF menggunakan Aspose.PDF untuk otomatisasi dokumen end‑to‑end. + +Silakan modifikasi bidang metadata agar sesuai dengan aturan bisnis Anda, dan biarkan pembuatan barcode menjadi bagian mulus dari aplikasi C# Anda. Selamat coding! + +## Apa yang Harus Anda Pelajari Selanjutnya? + +Tutorial berikut mencakup topik terkait yang membangun teknik yang ditunjukkan dalam panduan ini. Setiap sumber menyertakan contoh kode lengkap yang berfungsi dengan penjelasan langkah‑demi‑langkah untuk membantu Anda menguasai fitur API tambahan dan menjelajahi pendekatan implementasi alternatif dalam proyek Anda sendiri. + +- [Cara Membuat Barcode – PDF417 Kompak dengan Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [Cara Membuat Barcode – PDF417 Kompak dengan Aspose.BarCode](/barcode/german/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [Perpustakaan barcode Java – Menambahkan barcode ke PDF menggunakan Aspose](/barcode/english/java/barcode-basics/adding-barcode-to-pdf-document/) + +{{< /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/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md b/barcode/indonesian/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md new file mode 100644 index 000000000..25d83fdcd --- /dev/null +++ b/barcode/indonesian/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md @@ -0,0 +1,187 @@ +--- +category: general +date: 2026-08-03 +description: cara menyimpan barcode dengan cepat menggunakan C#. Pelajari pembuatan + barcode MicroPDF417, atur dimensi, pilih kolom, dan ekspor ke PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to save barcode +- MicroPDF417 barcode +- C# barcode generation +- barcode XDimension +- PDF417 columns +- barcode image format +language: id +lastmod: 2026-08-03 +og_description: cara menyimpan barcode di C# dengan contoh lengkap. Hasilkan barcode + MicroPDF417, sesuaikan ukuran, atur kolom, dan ekspor ke PNG. +og_image_alt: Screenshot showing a MicroPDF417 barcode saved as a PNG file +og_title: cara menyimpan barcode – tutorial C# langkah demi langkah +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: how to save barcode quickly using C#. Learn MicroPDF417 barcode generation, + set dimensions, choose columns, and export to PNG. + headline: how to save barcode as an image – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- imaging +title: Cara menyimpan barcode sebagai gambar – panduan lengkap C# +url: /id/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# cara menyimpan barcode – panduan lengkap C# + +Jika Anda perlu **cara menyimpan barcode** dalam aplikasi .NET, tutorial ini menunjukkan langkah‑langkah tepatnya. Anda akan menghasilkan barcode MicroPDF417, menyesuaikan dimensinya, memilih jumlah kolom, dan akhirnya menulis gambar ke disk sebagai file PNG. + +Membuat dan menyimpan barcode tidak memerlukan pustaka berat—hanya kelas `BarcodeGenerator` dari suite Aspose.BarCode untuk .NET. Pada bagian di bawah ini kami akan membahas setiap opsi konfigurasi, menjelaskan mengapa penting, dan memberikan contoh kode yang siap dijalankan. + +## Prasyarat + +- .NET 6.0 atau lebih baru (API bekerja dengan .NET Core dan .NET Framework) +- Aspose.BarCode untuk .NET (paket NuGet `Aspose.BarCode`) +- Sebuah folder yang Anda miliki izin menulis (digunakan pada langkah **cara menyimpan barcode**) + +## Langkah 1: Buat generator barcode MicroPDF417 + +Tugas pertama dalam alur kerja **cara menyimpan barcode** adalah menginstansiasi `BarcodeGenerator` dengan simbol dan data yang diinginkan. MicroPDF417 adalah versi kompak dari barcode matriks PDF417, ideal untuk label kecil. + +```csharp +using Aspose.BarCode.Generation; + +// Create a MicroPDF417 barcode with sample text that includes Unicode characters. +BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, // Symbology + "Åspóse.Barcóde©"); // Data to encode +``` + +**Mengapa ini penting:** +`EncodeTypes.MicroPdf417` memberi tahu pustaka untuk menggunakan algoritma MicroPDF417, yang secara otomatis menangani koreksi kesalahan dan enkoding data. Menyediakan teks Unicode menunjukkan bahwa generator memproses karakter non‑ASCII dengan benar. + +## Langkah 2: Sesuaikan X‑dimension (ukuran modul) + +X‑dimension menentukan lebar satu modul barcode (pixel). Nilai yang lebih kecil menghasilkan barcode yang lebih rapat, sementara nilai yang lebih besar memudahkan pemindaian. + +```csharp +// Set each module to 2 pixels wide. +barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +**Mengapa ini penting:** +Menetapkan `barcode XDimension` memastikan barcode cocok dengan ukuran label target. Jika Anda melewatkan langkah ini, ukuran default mungkin terlalu besar untuk layar seluler atau cetakan kecil. + +## Langkah 3: Pilih jumlah kolom untuk matriks PDF417 + +MicroPDF417 mendukung 1–4 kolom. Lebih banyak kolom menghasilkan barcode yang lebih kotak; lebih sedikit kolom membuatnya memanjang secara vertikal. + +```csharp +// Use the maximum of 4 columns for a compact, square shape. +barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; +``` + +**Mengapa ini penting:** +Menyesuaikan **kolom PDF417** memungkinkan Anda menyeimbangkan keterbacaan dengan keterbatasan ruang. Dalam banyak skenario pemindaian, tata letak 4‑kolom menawarkan kompromi terbaik. + +## Langkah 4: Simpan barcode yang dihasilkan sebagai gambar PNG + +Setelah barcode dikonfigurasi, Anda akhirnya dapat menjawab “**cara menyimpan barcode**” dengan menuliskannya ke file. PNG mempertahankan kualitas loss‑less, yang penting untuk pemindaian yang tajam. + +```csharp +// Define the output path (ensure the directory exists). +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + +// Export the barcode to PNG. +barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + +Console.WriteLine($"Barcode saved to: {outputPath}"); +``` + +**Mengapa ini penting:** +`barcode image format` menentukan fidelitas visual file yang disimpan. PNG lebih disukai untuk sebagian besar alur kerja UI dan pencetakan karena mempertahankan tepi yang tajam tanpa artefak kompresi. + +## Contoh lengkap yang dapat dijalankan + +Menggabungkan semuanya memberi Anda program mandiri yang dapat Anda salin, tempel, dan jalankan. + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // 1️⃣ Create the barcode generator. + BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, + "Åspóse.Barcóde©"); + + // 2️⃣ Adjust module size. + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; + + // 3️⃣ Set column count (1‑4 allowed). + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; + + // 4️⃣ Define output location. + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + + // 5️⃣ Save as PNG. + barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"✅ Barcode saved to: {outputPath}"); + } +} +``` + +**Output yang diharapkan** + +Menjalankan program akan membuat `MicroPdf417.png` di desktop Anda. Membuka file tersebut menampilkan barcode MicroPDF417 yang jelas dengan string `Åspóse.Barcóde©`. Memindainya dengan pemindai barcode standar akan mengembalikan teks asli. + +## Pertanyaan umum dan kasus tepi + +| Pertanyaan | Jawaban | +|----------|--------| +| *Bisakah saya menggunakan JPEG alih-alih PNG?* | Ya. Ganti `BarCodeImageFormat.Png` dengan `BarCodeImageFormat.Jpeg`. JPEG lebih kecil tetapi memperkenalkan artefak kompresi yang dapat memengaruhi pemindaian. | +| *Bagaimana jika data saya melebihi kapasitas MicroPDF417?* | MicroPDF417 dapat menyimpan hingga 1 KB data. Untuk payload yang lebih besar, beralihlah ke `EncodeTypes.Pdf417` penuh. | +| *Bagaimana cara mengubah warna barcode?* | Gunakan `barcodeGenerator.Parameters.Barcode.BarColor` dan `BackColor` untuk mengatur warna latar depan/belakang sebelum memanggil `Save`. | +| *Apakah X‑dimension terbatas pada piksel integer?* | Properti ini menerima `float`. Nilai seperti `1.5f` diperbolehkan, tetapi kebanyakan printer bekerja paling baik dengan ukuran piksel bulat. | + +## Tips profesional untuk implementasi **cara menyimpan barcode** yang andal + +- **Validasi folder output** dengan `Directory.Exists` sebelum memanggil `Save` untuk menghindari `IOException`. +- **Dispose generator** (`barcodeGenerator.Dispose()`) ketika Anda menghasilkan banyak barcode dalam loop untuk membebaskan sumber daya native. +- **Uji dengan pemindai nyata** setelah menyimpan; inspeksi visual saja tidak cukup untuk produksi. +- **Jaga pustaka tetap terbaru**—rilis Aspose.BarCode yang lebih baru menambahkan perbaikan simbol dan perbaikan bug. + +## Kesimpulan + +Anda kini mengetahui **cara menyimpan barcode** dalam C# menggunakan pustaka Aspose.BarCode. Dengan membuat barcode MicroPDF417, mengonfigurasi **XDimension barcode**, memilih **kolom PDF417** yang tepat, dan mengekspor ke **format gambar barcode** seperti PNG, Anda memiliki solusi lengkap yang siap produksi. + +Selanjutnya, jelajahi topik terkait seperti **generasi barcode QR dengan C#**, **pembuatan barcode batch**, atau **penyematan barcode dalam laporan PDF**. Masing‑masing membangun atas prinsip yang sama yang ditunjukkan di sini, memungkinkan Anda memperluas toolkit imaging dengan percaya diri. + +## Apa yang Harus Anda Pelajari Selanjutnya? + + +Tutorial berikut mencakup topik yang sangat terkait dan membangun teknik yang ditunjukkan dalam panduan ini. Setiap sumber menyertakan contoh kode lengkap dengan penjelasan langkah‑demi‑langkah untuk membantu Anda menguasai fitur API tambahan dan mengeksplorasi pendekatan implementasi alternatif dalam proyek Anda. + +- [How to Save PNG using DataMatrix C40 with Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-c40/) +- [How to Set Border for ITF-14 Barcode Customization](/barcode/english/net/itf-14-barcode-customization/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) + +{{< /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/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md b/barcode/indonesian/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md new file mode 100644 index 000000000..fc53037fb --- /dev/null +++ b/barcode/indonesian/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md @@ -0,0 +1,214 @@ +--- +category: general +date: 2026-08-03 +description: Baca kode batang PDF417 dari gambar menggunakan C# BarCodeReader – contoh + pembaca kode batang lengkap yang juga menunjukkan cara membaca beberapa kode batang. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- read PDF417 barcode +- barcode reader example +- read multiple barcodes +- read barcodes image +language: id +lastmod: 2026-08-03 +og_description: Baca kode batang PDF417 dengan cepat menggunakan contoh BarCodeReader + C#. Ikuti panduan langkah demi langkah ini untuk mendekode macro PDF417 dan membaca + beberapa kode batang dari sebuah gambar. +og_image_alt: Console output of a read PDF417 barcode example in C# +og_title: Baca kode batang PDF417 di C# – contoh lengkap pembaca kode batang +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + headline: Read PDF417 barcode in C# – barcode reader example + type: TechArticle +- description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + name: Read PDF417 barcode in C# – barcode reader example + steps: + - name: '**Create a new console project**' + text: '**Create a new console project**' + - name: '**Add the barcode library**' + text: '**Add the barcode library**' + - name: '**Copy the barcode image**' + text: '**Copy the barcode image**' + type: HowTo +tags: +- barcode +- PDF417 +- C# +- .NET +title: Baca barcode PDF417 di C# – contoh pembaca barcode +url: /id/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Baca Kode Batang PDF417 di C# – Contoh Pembaca Kode Batang + +Jika Anda perlu membaca data kode batang PDF417 dari sebuah gambar, panduan ini menunjukkan cara melakukannya dengan kelas **BarCodeReader** di C#. Anda akan mempelajari contoh pembaca kode batang yang juga menangani macro PDF417 dan dapat membaca beberapa kode batang dalam satu gambar. + +Bekerja dengan kode batang sering berarti harus menangani sumber gambar yang berbeda, kondisi pencahayaan yang bervariasi, dan terkadang data komposit seperti segmen macro PDF417. Tutorial ini mencakup semua yang Anda perlukan untuk mendekode kode batang PDF417, mengekstrak bidang‑bidang ekstendednya, dan memproses beberapa kode batang dari gambar yang sama. Pada akhir tutorial Anda akan memiliki program konsol yang dapat dijalankan, yang membaca kode batang dari file gambar dan mencetak informasi detail ke konsol. + +## Apa yang Anda Butuhkan + +* .NET 6.0 SDK atau yang lebih baru terpasang +* Versi terbaru paket NuGet **Aspose.BarCode for .NET** (atau perpustakaan kompatibel lain yang menyediakan `BarCodeReader` dan `DecodeType.MacroPdf417`) +* File gambar yang berisi kode batang PDF417 atau macro PDF417 (contoh menggunakan `ExtPDF417Meta.png`) +* Editor kode atau IDE seperti Visual Studio 2022 + +Tidak ada layanan tambahan atau API eksternal yang diperlukan. + +## Menyiapkan Proyek untuk Membaca Kode Batang + +1. **Create a new console project** + + ```bash + dotnet new console -n Pdf417ReaderDemo + cd Pdf417ReaderDemo + ``` + +2. **Add the barcode library** + + ```bash + dotnet add package Aspose.BarCode --version 23.12 + ``` + +3. **Copy the barcode image** + + Tempatkan `ExtPDF417Meta.png` (atau gambar apa pun yang berisi kode batang PDF417) ke dalam folder proyek. + Untuk tutorial ini kami mengasumsikan file berada di `YOUR_DIRECTORY/ExtPDF417Meta.png`. + +Proyek kini siap untuk dikompilasi dan menjalankan contoh pembaca kode batang. + +## Cara Membaca Kode Batang PDF417 dengan BarCodeReader + +Inti solusi adalah blok `using` yang membuat instance `BarCodeReader`, menentukan `DecodeType.MacroPdf417`, dan mengiterasi setiap kode batang yang terdeteksi. Kode berikut adalah program lengkap yang berdiri sendiri yang dapat Anda tempel ke dalam `Program.cs`. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.BarCodeRecognition; + +class Program +{ + static void Main() + { + // Path to the image that contains one or more PDF417 barcodes + const string imagePath = "YOUR_DIRECTORY/ExtPDF417Meta.png"; + + // Step 1: Create a BarCodeReader for a macro PDF417 image + using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.MacroPdf417)) + { + // Step 2: Read all barcodes from the image + foreach (BarCodeResult result in reader.ReadBarCodes()) + { + // Step 3: Output basic barcode information + Console.WriteLine($"CodeType: {result.CodeTypeName}"); + Console.WriteLine($"CodeText: {result.CodeText}"); + + // Step 4: Output macro PDF417 specific fields + Console.WriteLine($"Pdf417MacroFileID: {result.Extended.Pdf417.MacroPdf417FileID}"); + Console.WriteLine($"Pdf417MacroSegmentID: {result.Extended.Pdf417.MacroPdf417SegmentID}"); + Console.WriteLine($"Pdf417MacroSegmentsCount: {result.Extended.Pdf417.MacroPdf417SegmentsCount}"); + Console.WriteLine($"Pdf417MacroFileName: {result.Extended.Pdf417.MacroPdf417FileName}"); + Console.WriteLine($"Pdf417MacroChecksum: {result.Extended.Pdf417.MacroPdf417Checksum}"); + Console.WriteLine($"Pdf417MacroFileSize: {result.Extended.Pdf417.MacroPdf417FileSize}"); + Console.WriteLine($"Pdf417MacroTimeStamp: {result.Extended.Pdf417.MacroPdf417TimeStamp}"); + Console.WriteLine($"Pdf417MacroAddressee: {result.Extended.Pdf417.MacroPdf417Addressee}"); + Console.WriteLine($"Pdf417MacroSender: {result.Extended.Pdf417.MacroPdf417Sender}"); + Console.WriteLine($"MacroPdf417Terminator: {result.Extended.Pdf417.MacroPdf417Terminator}"); + Console.WriteLine(new string('-', 40)); + } + + // Pro tip: If no barcodes are found, ReadBarCodes() returns an empty collection. + // You can check reader.HasBarcodes for a quick boolean test. + if (!reader.HasBarcodes) + { + Console.WriteLine("No barcodes detected in the provided image."); + } + } + } +} +``` + +**Mengapa ini berhasil**: + +* `DecodeType.MacroPdf417` memberi tahu pembaca untuk mencari ekstensi macro dari PDF417, yang membawa metadata tambahan seperti ID file, jumlah segmen, dan timestamp. +* Pernyataan `using` menjamin bahwa sumber daya tidak terkelola (handle file, buffer dekoding native) dilepaskan dengan cepat. +* Loop `foreach` secara otomatis memproses **semua** kode batang yang ada dalam gambar, memenuhi kebutuhan *membaca beberapa kode batang*. + +Saat Anda menjalankan program (`dotnet run`), Anda akan melihat output serupa dengan berikut: + +``` +CodeType: MacroPdf417 +CodeText: https://example.com/document.pdf +Pdf417MacroFileID: 12345 +Pdf417MacroSegmentID: 1 +Pdf417MacroSegmentsCount: 3 +Pdf417MacroFileName: document.pdf +Pdf417MacroChecksum: 0x1A2B +Pdf417MacroFileSize: 204800 +Pdf417MacroTimeStamp: 2024-07-15T10:25:00Z +Pdf417MacroAddressee: John Doe +Pdf417MacroSender: Acme Corp +MacroPdf417Terminator: True +---------------------------------------- +``` + +Jika gambar berisi lebih dari satu kode batang PDF417, loop akan mencetak blok terpisah untuk setiap kode batang, sehingga memperlihatkan cara **membaca beberapa kode batang** dari satu gambar. + +## Membaca Beberapa Kode Batang dari Sebuah Gambar + +Instance `BarCodeReader` yang sama dapat mendekode beberapa tipe kode batang sekaligus. Untuk memperluas cakupan dari hanya macro PDF417 ke PDF417 apa pun (atau bahkan QR, Code128, dll.), sesuaikan flag `DecodeType`: + +```csharp +using (BarCodeReader reader = new BarCodeReader(imagePath, + DecodeType.Pdf417 | DecodeType.MacroPdf417 | DecodeType.QR | DecodeType.Code128)) +{ + // The rest of the code stays unchanged. +} +``` + +*`DecodeType`* adalah bitmask, sehingga Anda dapat menggabungkan sejumlah format yang didukung. Fleksibilitas ini menjadikan potongan kode tersebut sebuah **contoh pembaca kode batang** yang bekerja untuk berbagai kasus penggunaan, seperti pemindaian label produk, tiket, atau kartu identitas. + +## Mengakses Field Macro PDF417 dengan Aman + +Macro PDF417 menambahkan serangkaian properti ekstended yang kaya. Namun, tidak setiap kode batang menyertakan semua field. Mengakses properti yang tidak ada dapat memicu `NullReferenceException`. Pendekatan paling aman adalah memverifikasi setiap properti sebelum mencetaknya: + +```csharp +var macro = result.Extended?.Pdf417; +if (macro != null) +{ + Console.WriteLine($"Pdf417MacroFileID: {macro.MacroPdf417FileID ?? "N/A"}"); + // Repeat for other fields... +} +``` + +*Mengapa ini penting*: Dalam penerapan dunia nyata Anda mungkin menerima kode batang PDF417 biasa yang tidak memiliki data macro. Pemeriksaan defensif memastikan aplikasi Anda tetap berjalan tanpa crash. + +## Kesalahan Umum dan Praktik Terbaik + +| Issue | Why it happens | Recommended fix | +|-------|----------------|-----------------| +| Image path is incorrect | `BarCodeReader` throws a file‑not‑found exception before any decoding occurs | Use `Path.Combine` and validate the file exists with `File.Exists` | +| Low‑resolution image | The decoder cannot locate barcode edges, resulting in zero detections | Provide a minimum resolution of 300 dpi for reliable results | +| Barcode rotated > 45° | Many libraries assume upright orientation | Enable `reader.RecognitionOptions.RotateImage = true` if the | + +## 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. + +- [How to Read DataMatrix Barcodes with Aspose.BarCode for .NET](/barcode/english/net/datamatrix-barcode-reading/) +- [Read DataMatrix barcode C# – Generate DataMatrix Mode (Auto)](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-auto/) +- [Read Barcode from Image – Mastering Barcode Region Extraction in Java with Aspose.BarCode](/barcode/english/java/advanced-settings-and-optimization/extracting-barcode-region-information/) + +{{< /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/net/compact-pdf417-encoding/_index.md b/barcode/italian/net/compact-pdf417-encoding/_index.md index 9fd32044d..a66c6715f 100644 --- a/barcode/italian/net/compact-pdf417-encoding/_index.md +++ b/barcode/italian/net/compact-pdf417-encoding/_index.md @@ -84,7 +84,19 @@ Oltre alle basi, ecco alcuni consigli pratici per ottimizzare il tuo flusso di l ## Tutorial di codifica Compact PDF417 ### [Creating Compact PDF417 Barcodes](./compact-pdf417-basic-configuration/) -Scopri come generare codici a barre Compact PDF417 usando Aspose.BarCode per .NET. Guida completa con istruzioni passo‑per‑passo ed esempi di codice. +Scopri come generare codici a barre Compact PDF417 usando Aspose.BarCode per .NET. Guida completa con istruzioni passo‑per‑step ed esempi di codice. + +### [Crea codice a barre PDF417 in C# – guida passo‑passo](./create-pdf417-barcode-in-c-step-by-step-guide/) +Scopri come generare un codice a barre PDF417 in C# con esempi pratici passo‑per‑step. + +### [Genera codice a barre PDF417 C# – guida completa con Aspose.BarCode](./generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/) +Scopri come creare un codice a barre PDF417 in C# con una guida dettagliata e esempi pratici usando Aspose.BarCode. + +### [Come salvare il codice a barre come immagine – guida completa C#](./how-to-save-barcode-as-an-image-complete-c-guide/) +Scopri come salvare un codice a barre generato in un file immagine usando Aspose.BarCode per .NET con esempi C# completi. + +### [Leggi codice a barre PDF417 in C# – esempio lettore di codici a barre](./read-pdf417-barcode-in-c-barcode-reader-example/) +Scopri come leggere codici a barre PDF417 in C# usando Aspose.BarCode Reader con esempi pratici. ## Domande frequenti @@ -114,4 +126,4 @@ R: No, non sono richiesti font esterni; la libreria gestisce tutto il rendering {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/italian/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md b/barcode/italian/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..bf23f9eb4 --- /dev/null +++ b/barcode/italian/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md @@ -0,0 +1,227 @@ +--- +category: general +date: 2026-08-03 +description: Crea rapidamente un codice a barre PDF417 in C#. Scopri come generare + un codice a barre PDF417 e come salvare l'immagine del codice a barre come PNG con + Aspose.Barcode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create pdf417 barcode +- how to generate pdf417 barcode +- how to save barcode image +language: it +lastmod: 2026-08-03 +og_description: Crea un codice a barre PDF417 in C# con Aspose.Barcode. Segui questa + guida per generare il codice a barre PDF417 e per salvare l'immagine del codice + a barre in modo efficiente. +og_image_alt: Screenshot of a generated compact PDF417 barcode saved as PNG +og_title: Crea codice a barre PDF417 in C# – tutorial completo di programmazione +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + headline: Create PDF417 barcode in C# – step‑by‑step guide + type: TechArticle +- description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + name: Create PDF417 barcode in C# – step‑by‑step guide + steps: + - name: Why this matters + text: '* **EncodeTypes.Pdf417** tells the library to use the PDF417 standard, + which supports large data payloads and error correction. * Providing Unicode + characters proves the generator handles non‑ASCII input without extra configuration.' + - name: Practical tip + text: If you need a taller barcode for limited horizontal space, increase `Columns`. + Setting `Truncate` to `true` reduces the overall height by removing quiet zones, + which is ideal for mobile screens. + - name: Expected result + text: Running the program creates `CompactPdf417.png` in the project folder. Opening + the file shows a compact PDF417 barcode that encodes the string *Åspóse.Barcóde©*. + The image can be embedded in HTML, PDF reports, or printed on labels. + - name: Verifying the output + text: 'After the program finishes, you can verify the file exists with a quick + command:' + type: HowTo +tags: +- barcode +- C# +- PDF417 +- image generation +title: Crea codice a barre PDF417 in C# – guida passo passo +url: /it/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crea un codice a barre PDF417 in C# – guida passo‑passo + +Se hai bisogno di **creare un codice a barre PDF417** in un'applicazione .NET, questa guida ti mostra esattamente come generare il codice a barre PDF417 e come salvare l’immagine del codice a barre. Otterrai un file PNG che potrà essere usato in report, ticket o app di scansione mobile. + +Il tutorial copre tutto, dall’impostazione del progetto al file PNG finale. Non è necessaria alcuna documentazione esterna; basta seguire i passaggi e eseguire il codice. + +## Cosa ti servirà + +Prima di iniziare, assicurati di avere: + +* .NET 6.0 SDK o successivo (il codice funziona anche con .NET Framework 4.7+) +* Visual Studio 2022 o qualsiasi IDE che supporti C# +* Accesso a Internet per installare il pacchetto NuGet **Aspose.Barcode for .NET** + +Questi prerequisiti garantiscono che il codice si compili senza configurazioni aggiuntive. + +## Crea un codice a barre PDF417 – configurazione del progetto + +1. Apri un prompt dei comandi e crea un nuovo progetto console: + + ```bash + dotnet new console -n Pdf417Demo + cd Pdf417Demo + ``` + +2. Aggiungi la libreria Aspose.Barcode: + + ```bash + dotnet add package Aspose.Barcode + ``` + +3. Apri il file `Program.cs` generato. Le istruzioni `using` in cima ti danno accesso alle classi del barcode: + + ```csharp + using System; + using Aspose.Barcode.Generation; + using Aspose.Barcode; + ``` + +Il progetto è ora pronto per **creare un codice a barre PDF417**. + +## Come generare un codice a barre PDF417 con Aspose.Barcode + +Il cuore della creazione del codice a barre risiede nella classe `BarcodeGenerator`. Specifici la simbologia (`EncodeTypes.Pdf417`) e i dati che vuoi codificare. + +```csharp +// Step 1: Initialise the generator with PDF417 symbology and sample text. +// The text includes Unicode characters to demonstrate full‑range support. +BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Pdf417, "Åspóse.Barcóde©"); +``` + +### Perché è importante + +* **EncodeTypes.Pdf417** indica alla libreria di utilizzare lo standard PDF417, che supporta grandi quantità di dati e correzione d'errore. +* L’inserimento di caratteri Unicode dimostra che il generatore gestisce input non‑ASCII senza configurazioni aggiuntive. + +## Come configurare l’aspetto del codice a barre + +Puoi controllare la dimensione di ogni modulo, il numero di colonne e se il codice a barre utilizza la modalità compatta (troncata). Queste impostazioni influenzano sia la leggibilità sia la dimensione del file. + +```csharp +// Step 2: Set the module (X) dimension – each barcode element will be 2 pixels wide. +generator.Parameters.Barcode.XDimension.Pixels = 2; + +// Step 3: Configure PDF417‑specific options. +generator.Parameters.Barcode.Pdf417.Columns = 3; // Number of columns (affects height) +generator.Parameters.Barcode.Pdf417.Truncate = true; // Enable compact mode +``` + +### Consiglio pratico + +Se ti serve un codice a barre più alto per spazio orizzontale limitato, aumenta `Columns`. Impostare `Truncate` a `true` riduce l’altezza complessiva eliminando le zone silenziose, ideale per schermi mobili. + +## Come salvare l’immagine del codice a barre come PNG + +Dopo aver configurato il generatore, chiama `Save` passando un percorso file e il formato immagine desiderato. Il metodo scrive l’immagine direttamente su disco. + +```csharp +// Step 4: Save the generated barcode as a PNG image. +string outputPath = @"./CompactPdf417.png"; +generator.Save(outputPath, BarCodeImageFormat.Png); +Console.WriteLine($"Barcode saved to {outputPath}"); +``` + +### Risultato atteso + +L’esecuzione del programma crea `CompactPdf417.png` nella cartella del progetto. Aprendo il file vedrai un codice a barre PDF417 compatto che codifica la stringa *Åspóse.Barcóde©*. L’immagine può essere inserita in HTML, report PDF o stampata su etichette. + +## Codice sorgente completo + +Di seguito trovi il programma completo e pronto all’esecuzione. Copialo in `Program.cs` ed esegui `dotnet run`. + +```csharp +using System; +using Aspose.Barcode.Generation; +using Aspose.Barcode; + +namespace Pdf417Demo +{ + class Program + { + static void Main() + { + // Initialise the generator with PDF417 symbology and sample text. + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.Pdf417, + "Åspóse.Barcóde©"); + + // Set the module width to 2 pixels. + generator.Parameters.Barcode.XDimension.Pixels = 2; + + // Configure PDF417‑specific options. + generator.Parameters.Barcode.Pdf417.Columns = 3; + generator.Parameters.Barcode.Pdf417.Truncate = true; + + // Define the output file path. + string outputPath = @"./CompactPdf417.png"; + + // Save the barcode as a PNG image. + generator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"Barcode saved to {outputPath}"); + } + } +} +``` + +### Verifica dell’output + +Al termine del programma, puoi verificare che il file esista con un semplice comando: + +```bash +dotnet run && ls -l CompactPdf417.png +``` + +Se il file appare, il processo di **creazione del codice a barre PDF417** è riuscito. + +## Varianti comuni e casi limite + +| Situazione | Regolazione | +|------------|-------------| +| **Stringa di dati più lunga** | Aumenta `Columns` o imposta `Rows` per ospitare più codeword. | +| **Formato immagine diverso** | Sostituisci `BarCodeImageFormat.Png` con `Jpeg`, `Bmp` o `Gif`. | +| **Risoluzione più alta** | Imposta `generator.Parameters.ImageResolution` prima di `Save`. | +| **Colore di sfondo** | Usa `generator.Parameters.Barcode.ImageBackgroundColor = Color.White;` | +| **Gestione delle eccezioni** | Avvolgi `generator.Save` in un blocco `try/catch` per catturare errori I/O. | + +Queste varianti ti consentono di personalizzare il codice a barre per dispositivi specifici o requisiti di branding. + +## Conclusione + +Ora sai come **creare un codice a barre PDF417** in C# usando Aspose.Barcode, configurarne l’aspetto e **salvare l’immagine del codice a barre** come file PNG. L’esempio completo dimostra ogni passaggio necessario, dall’impostazione del progetto alla verifica, così da poter integrare la generazione di codici a barre in qualsiasi soluzione .NET. + +Successivamente, potresti approfondire argomenti correlati come **come generare codici QR**, **incorporare codici a barre in documenti PDF** o **personalizzare i colori del codice a barre**. Ognuno di questi si basa sulla stessa API del generatore, permettendoti di estendere le capacità di scansione della tua applicazione con il minimo sforzo. 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 e funzionanti con spiegazioni passo‑passo per aiutarti a padroneggiare funzionalità aggiuntive dell’API e a esplorare approcci di implementazione alternativi nei tuoi progetti. + +- [Come creare un codice a barre – PDF417 compatto con Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [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/) + +{{< /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/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md b/barcode/italian/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md new file mode 100644 index 000000000..4acc6568e --- /dev/null +++ b/barcode/italian/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md @@ -0,0 +1,241 @@ +--- +category: general +date: 2026-08-03 +description: Genera codice a barre PDF417 in C# usando Aspose.BarCode. Impara passo + passo come aggiungere i metadati Macro PDF417 e salvarlo come PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- generate PDF417 barcode C# +- Macro PDF417 barcode +- Aspose.BarCode +- C# barcode generation +- PDF417 metadata +- barcode image PNG +language: it +lastmod: 2026-08-03 +og_description: Genera codice a barre PDF417 in C# con Aspose.BarCode. Questo tutorial + mostra come incorporare i metadati Macro PDF417 ed esportare il risultato come immagine + PNG. +og_image_alt: Screenshot of a generated PDF417 barcode created with C# +og_title: Genera codice a barre PDF417 C# – tutorial passo‑passo Aspose.BarCode +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + headline: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + type: TechArticle +- description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + name: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + steps: + - name: Create a Macro PDF417 barcode generator + text: First, instantiate `BarcodeGenerator` with the `EncodeTypes.MacroPdf417` + enum. The constructor also accepts the text you want to encode – in this example + we use a string that contains Unicode characters to demonstrate full‑width support. + - name: Adjust basic barcode appearance + text: Next, define the visual size of the barcode. `XDimension.Pixels` controls + the width of a single module (the smallest black/white square), while `Pdf417.Columns` + influences the overall shape by setting the number of columns. + - name: Populate Macro PDF417 metadata + text: Macro PDF417 allows you to embed file‑level information that many back‑office + systems rely on (e.g., file ID, segment ID, timestamp). The following properties + illustrate the most common fields. + - name: Save the barcode image as PNG + text: Finally, call `Save` to write the barcode to disk. PNG is lossless, making + it ideal for high‑quality scanning. + - name: How to verify the result + text: 1. Open `ExtPDF417Meta.png` in any image viewer. 2. Use a PDF417 scanner + app (e.g., *Zebra Scanner* or *BarCode Reader* on Android/iOS). 3. Confirm that + the decoded payload includes the original text and a JSON‑like block with the + macro fields you set. + - name: Next steps + text: '- Experiment with other barcode formats (e.g., QR, Code128) by changing + `EncodeTypes`. - Explore `Pdf417.ErrorCorrectionLevel` to improve scan reliability + under poor lighting. - Integrate the generated image into a PDF report using + Aspose.PDF for end‑to‑end document automation.' + type: HowTo +tags: +- PDF417 +- C# +- Barcode +title: Generare il codice a barre PDF417 C# – guida completa con Aspose.BarCode +url: /it/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Generare codice a barre PDF417 C# – guida completa + +Se hai bisogno di **generare PDF417 barcode C#** per un sistema logistico o di gestione documentale, questo tutorial ti mostra esattamente come farlo con Aspose.BarCode. Vedrai come configurare il codice a barre, incorporare i metadati Macro PDF417 e salvare il risultato come immagine PNG in poche righe di codice. + +Generare un codice a barre PDF417 in C# spesso implica la gestione di informazioni aggiuntive come identificatori di file, numeri di segmento o timestamp. Questa guida copre quei dettagli, così non dovrai cercare nella documentazione sparsa. Alla fine dell’articolo avrai un programma pronto all’uso che produce un’immagine di codice a barre Macro PDF417 conforme. + +## Cosa ti servirà + +- .NET 6.0 o successivo (il codice funziona anche con .NET Framework 4.7+) +- Aspose.BarCode per .NET (v23.9 o più recente) – installa via NuGet `Install-Package Aspose.BarCode` +- Un ambiente di sviluppo come Visual Studio 2022 o Visual Studio Code +- Familiarità di base con la sintassi C# + +> **Consiglio professionale:** Usa l’ultima versione di Aspose.BarCode per beneficiare delle correzioni di bug e del supporto alle specifiche PDF417 più recenti. + +## Come generare PDF417 barcode C# con Aspose.BarCode + +Il processo è composto da quattro passaggi logici. Ogni passaggio è racchiuso in un chiaro blocco di codice così puoi copiarlo, incollarlo ed eseguirlo immediatamente. + +### Passo 1: Crea un generatore di codice a barre Macro PDF417 + +Per prima cosa, istanzia `BarcodeGenerator` con l’enum `EncodeTypes.MacroPdf417`. Il costruttore accetta anche il testo da codificare – in questo esempio usiamo una stringa che contiene caratteri Unicode per dimostrare il supporto a larghezza piena. + +```csharp +using System; +using Aspose.BarCode.Generation; + +// Create a Macro PDF417 barcode generator with the desired text +using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) +{ + // Subsequent steps go inside this using block +``` + +*Why this matters*: Il tipo `MacroPdf417` indica ad Aspose.BarCode di trattare il simbolo come un codice macro, che può trasportare metadati a livello di file. Senza questo flag i campi extra impostati successivamente verrebbero ignorati. + +### Passo 2: Regola l'aspetto di base del codice a barre + +Successivamente, definisci le dimensioni visive del codice a barre. `XDimension.Pixels` controlla la larghezza di un singolo modulo (il più piccolo quadrato nero/bianco), mentre `Pdf417.Columns` influenza la forma complessiva impostando il numero di colonne. + +```csharp + // Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol +``` + +*Why this matters*: Un `XDimension` più piccolo produce un’immagine ad alta risoluzione, utile quando il codice a barre deve essere scansionato da uno schermo. Modificare il conteggio delle colonne può aiutare a far entrare il codice a barre in spazi limitati senza sacrificare la capacità di dati. + +### Passo 3: Popola i metadati Macro PDF417 + +Macro PDF417 consente di incorporare informazioni a livello di file su cui molti sistemi di back‑office fanno affidamento (ad es., ID file, ID segmento, timestamp). Le proprietà seguenti illustrano i campi più comuni. + +```csharp + // Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; +``` + +*Why this matters*: Ogni campo mappa direttamente a una sezione della specifica del codice macro. Per esempio, `MacroPdf417FileID` identifica in modo univoco il file logico, mentre `MacroPdf417SegmentsCount` indica allo scanner quanti segmenti aspettarsi. Fornire metadati accurati garantisce che i sistemi a valle possano ricostruire il documento originale senza errori. + +### Passo 4: Salva l'immagine del codice a barre come PNG + +Infine, chiama `Save` per scrivere il codice a barre su disco. PNG è lossless, rendendolo ideale per scansioni di alta qualità. + +```csharp + // Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); +} +``` + +*Why this matters*: L’enum `BarCodeImageFormat.Png` garantisce che il file di output contenga esattamente i dati pixel configurati. Se ti serve un formato vettoriale per il ridimensionamento, sostituisci `Png` con `Svg` – Aspose.BarCode lo supporta nativamente. + +#### Output previsto + +Eseguendo il programma completo viene creato un file chiamato **ExtPDF417Meta.png**. L’immagine mostra un simbolo PDF417 denso, a più righe, che include il testo “Åspóse.Barcóde©” e i metadati macro forniti. Scansionando il codice a barre con un lettore compatibile PDF417 si ottiene il testo originale più un blocco di dati strutturato contenente l’ID file, l’ID segmento, il timestamp e gli altri campi. + +![Screenshot of generated PDF417 barcode](/images/pdf417-example.png){: .center-image alt="esempio di output generazione PDF417 barcode C#"} + +## Codice sorgente completo (pronto per copia‑incolla) + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace Pdf417MacroDemo +{ + class Program + { + static void Main() + { + // Step 1: Create a Macro PDF417 barcode generator with the desired text + using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) + { + // Step 2: Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol + + // Step 3: Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; + + // Step 4: Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); + } + + Console.WriteLine("Macro PDF417 barcode generated successfully."); + } + } +} +``` + +### Come verificare il risultato + +1. Apri `ExtPDF417Meta.png` in qualsiasi visualizzatore di immagini. +2. Usa un’app scanner PDF417 (ad es., *Zebra Scanner* o *BarCode Reader* su Android/iOS). +3. Conferma che il payload decodificato includa il testo originale e un blocco simile a JSON con i campi macro che hai impostato. + +## Domande frequenti e gestione dei casi limite + +| Question | Answer | +|----------|--------| +| **Posso generare un’immagine vettoriale invece di PNG?** | Sì. Sostituisci `BarCodeImageFormat.Png` con `BarCodeImageFormat.Svg`. Il resto del codice rimane invariato. | +| **Cosa succede se i miei dati superano la capacità predefinita?** | Aumenta `Pdf417.Columns` o imposta manualmente `Pdf417.Rows`. Valori più alti consentono più codeword per segmento. | +| **Il testo codificato supporta Unicode?** | Assolutamente. L’esempio utilizza “Åspóse.Barcóde©”. Aspose.BarCode passa automaticamente alla codifica UTF‑8 quando necessario. | +| **Devo firmare una licenza per Aspose.BarCode?** | Per la produzione dovresti applicare una licenza per evitare la filigrana di valutazione. Chiama `License license = new License(); license.SetLicense("Aspose.BarCode.lic");` prima di creare il generatore. | +| **Come gestire gli errori durante il salvataggio del file?** | Avvolgi la chiamata `Save` in un blocco try/catch e registra `IOException` o `BarCodeException` per il troubleshooting. | + +## Conclusione + +Ora sai come **generare PDF417 barcode C#** usando Aspose.BarCode, incorporare i metadati Macro PDF417 completi e esportare il risultato come immagine PNG di alta qualità. I passaggi – creazione del generatore, regolazione dell’aspetto, popolamento dei metadati e salvataggio dell’immagine – costituiscono un modello riutilizzabile che puoi adattare per fatture, etichette di spedizione o qualsiasi scenario che richieda dati ricchi nei codici a barre. + +### Prossimi passi + +- Sperimenta con altri formati di codice a barre (ad es., QR, Code128) modificando `EncodeTypes`. +- Esplora `Pdf417.ErrorCorrectionLevel` per migliorare l’affidabilità della scansione in condizioni di scarsa illuminazione. +- Integra l’immagine generata in un report PDF usando Aspose.PDF per un’automazione documentale end‑to‑end. + +Sentiti libero di modificare i campi dei metadati per adeguarli alle regole della tua azienda, e lascia che la generazione del codice a barre diventi una parte fluida delle tue applicazioni C#. 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 creare un codice a barre – PDF417 compatto con Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [So erstellen Sie einen Barcode – Kompaktes PDF417 mit Aspose.BarCode](/barcode/german/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [java barcode library – Aggiungi codice a barre a PDF usando Aspose](/barcode/english/java/barcode-basics/adding-barcode-to-pdf-document/) + +{{< /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/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md b/barcode/italian/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md new file mode 100644 index 000000000..325b1c253 --- /dev/null +++ b/barcode/italian/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md @@ -0,0 +1,188 @@ +--- +category: general +date: 2026-08-03 +description: come salvare rapidamente un codice a barre usando C#. Impara la generazione + di codici a barre MicroPDF417, imposta le dimensioni, scegli le colonne e esporta + in PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to save barcode +- MicroPDF417 barcode +- C# barcode generation +- barcode XDimension +- PDF417 columns +- barcode image format +language: it +lastmod: 2026-08-03 +og_description: come salvare un codice a barre in C# con un esempio completo. Genera + un codice a barre MicroPDF417, regola le dimensioni, imposta le colonne e esporta + in PNG. +og_image_alt: Screenshot showing a MicroPDF417 barcode saved as a PNG file +og_title: come salvare il codice a barre – tutorial passo‑passo C# +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: how to save barcode quickly using C#. Learn MicroPDF417 barcode generation, + set dimensions, choose columns, and export to PNG. + headline: how to save barcode as an image – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- imaging +title: come salvare il codice a barre come immagine – guida completa C# +url: /it/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# come salvare un codice a barre – guida completa C# + +Se hai bisogno di **how to save barcode** in un'applicazione .NET, questo tutorial ti mostra i passaggi esatti. Genererai un codice a barre MicroPDF417, ne modificherai le dimensioni, sceglierai il numero di colonne e, infine, scriverai l'immagine su disco come file PNG. + +Creare e conservare i codici a barre non richiede una libreria pesante—basta la classe `BarcodeGenerator` della suite Aspose.BarCode per .NET. Nelle sezioni seguenti esamineremo ogni opzione di configurazione, spiegheremo perché è importante e ti forniremo un esempio di codice pronto all'uso. + +## Prerequisiti + +- .NET 6.0 o versioni successive (l'API funziona con .NET Core e .NET Framework) +- Aspose.BarCode per .NET (pacchetto NuGet `Aspose.BarCode`) +- Una cartella in cui hai i permessi di scrittura (usata nel passaggio **how to save barcode**) + +## Passo 1: Creare un generatore di codice a barre MicroPDF417 + +Il primo compito in qualsiasi flusso di lavoro **how to save barcode** è istanziare un `BarcodeGenerator` con la simbologia e i dati desiderati. MicroPDF417 è una versione compatta del codice a barre matriciale PDF417, ideale per etichette piccole. + +```csharp +using Aspose.BarCode.Generation; + +// Create a MicroPDF417 barcode with sample text that includes Unicode characters. +BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, // Symbology + "Åspóse.Barcóde©"); // Data to encode +``` + +**Perché è importante:** +`EncodeTypes.MicroPdf417` indica alla libreria di utilizzare l'algoritmo MicroPDF417, che gestisce automaticamente la correzione degli errori e la codifica dei dati. Fornire testo Unicode dimostra che il generatore elabora correttamente i caratteri non‑ASCII. + +## Passo 2: Regolare la X‑dimension (dimensione del modulo) + +La X‑dimension definisce la larghezza di un singolo modulo del codice a barre (pixel). Un valore più piccolo produce un codice più compatto, mentre un valore più grande lo rende più facile da leggere. + +```csharp +// Set each module to 2 pixels wide. +barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +**Perché è importante:** +Impostare `barcode XDimension` garantisce che il codice a barre si adatti alle dimensioni dell'etichetta target. Se salti questo passaggio, la dimensione predefinita potrebbe essere troppo grande per schermi mobili o stampe piccole. + +## Passo 3: Scegliere il numero di colonne per la matrice PDF417 + +MicroPDF417 supporta da 1 a 4 colonne. Più colonne producono un codice più quadrato; meno colonne lo allungano verticalmente. + +```csharp +// Use the maximum of 4 columns for a compact, square shape. +barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; +``` + +**Perché è importante:** +Regolare le **colonne PDF417** ti consente di bilanciare la leggibilità con le limitazioni di spazio. In molti scenari di scansione, una disposizione a 4 colonne offre il miglior compromesso. + +## Passo 4: Salvare il codice a barre generato come immagine PNG + +Ora che il codice a barre è configurato, puoi finalmente rispondere a “**how to save barcode**” scrivendolo su un file. PNG conserva la qualità loss‑less, fondamentale per una scansione nitida. + +```csharp +// Define the output path (ensure the directory exists). +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + +// Export the barcode to PNG. +barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + +Console.WriteLine($"Barcode saved to: {outputPath}"); +``` + +**Perché è importante:** +`barcode image format` determina la fedeltà visiva del file salvato. PNG è preferito per la maggior parte dei flussi UI e di stampa perché mantiene bordi nitidi senza artefatti di compressione. + +## Esempio completo, eseguibile + +Mettere tutto insieme ti fornisce un programma autonomo che puoi copiare, incollare ed eseguire. + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // 1️⃣ Create the barcode generator. + BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, + "Åspóse.Barcóde©"); + + // 2️⃣ Adjust module size. + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; + + // 3️⃣ Set column count (1‑4 allowed). + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; + + // 4️⃣ Define output location. + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + + // 5️⃣ Save as PNG. + barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"✅ Barcode saved to: {outputPath}"); + } +} +``` + +**Output previsto** + +Eseguendo il programma viene creato `MicroPdf417.png` sul tuo desktop. Aprendo il file si vede un chiaro codice a barre MicroPDF417 che codifica la stringa `Åspóse.Barcóde©`. Scansionandolo con qualsiasi lettore di codici a barre standard si ottiene il testo originale. + +## Domande comuni e casi limite + +| Question | Answer | +|----------|--------| +| *Posso usare JPEG invece di PNG?* | Sì. Sostituisci `BarCodeImageFormat.Png` con `BarCodeImageFormat.Jpeg`. JPEG è più piccolo ma introduce artefatti di compressione che possono influire sulla scansione. | +| *Cosa succede se i miei dati superano la capacità di MicroPDF417?* | MicroPDF417 può memorizzare fino a 1 KB di dati. Per payload più grandi passa al completo `EncodeTypes.Pdf417`. | +| *Come posso cambiare il colore del codice a barre?* | Usa `barcodeGenerator.Parameters.Barcode.BarColor` e `BackColor` per impostare i colori di primo piano/sfondo prima di chiamare `Save`. | +| *La X‑dimension è limitata a pixel interi?* | La proprietà accetta un `float`. Valori come `1.5f` sono consentiti, ma la maggior parte delle stampanti funziona meglio con dimensioni di pixel interi. | + +## Consigli professionali per implementazioni affidabili di **how to save barcode** + +- **Convalida la cartella di output** con `Directory.Exists` prima di chiamare `Save` per evitare `IOException`. +- **Rilascia il generatore** (`barcodeGenerator.Dispose()`) quando generi molti codici a barre in un ciclo per liberare le risorse native. +- **Testa con scanner reali** dopo il salvataggio; l'ispezione visiva non è sufficiente per le distribuzioni in produzione. +- **Mantieni la libreria aggiornata**—le versioni più recenti di Aspose.BarCode aggiungono miglioramenti alla simbologia e correzioni di bug. + +## Conclusione + +Ora sai come **how to save barcode** immagini in C# usando la libreria Aspose.BarCode. Creando un codice a barre MicroPDF417, configurando la **barcode XDimension**, selezionando le appropriate **colonne PDF417** e esportando in un **barcode image format** come PNG, disponi di una soluzione completa e pronta per la produzione. + +Successivamente, esplora argomenti correlati come **generazione di codici a barre C# per QR code**, **creazione batch di codici a barre**, o **incorporamento di codici a barre in report PDF**. Ognuno di questi si basa sugli stessi principi mostrati qui, permettendoti di ampliare il tuo toolkit di imaging con fiducia. + +## 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 e funzionanti con spiegazioni passo‑passo per aiutarti a padroneggiare funzionalità API aggiuntive ed esplorare approcci di implementazione alternativi nei tuoi progetti. + +- [Come salvare PNG usando DataMatrix C40 con Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-c40/) +- [Come impostare il bordo per la personalizzazione del codice a barre ITF-14](/barcode/english/net/itf-14-barcode-customization/) +- [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/) + +{{< /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/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md b/barcode/italian/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md new file mode 100644 index 000000000..7d1329dc5 --- /dev/null +++ b/barcode/italian/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md @@ -0,0 +1,216 @@ +--- +category: general +date: 2026-08-03 +description: Leggi il codice a barre PDF417 da un'immagine usando C# BarCodeReader + – un esempio completo di lettore di codici a barre che mostra anche come leggere + più codici a barre. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- read PDF417 barcode +- barcode reader example +- read multiple barcodes +- read barcodes image +language: it +lastmod: 2026-08-03 +og_description: Leggi rapidamente il codice a barre PDF417 con un esempio di BarCodeReader + in C#. Segui questa guida passo‑passo per decodificare il macro PDF417 e leggere + più codici a barre da un'immagine. +og_image_alt: Console output of a read PDF417 barcode example in C# +og_title: Leggi il codice a barre PDF417 in C# – esempio completo di lettore di codici + a barre +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + headline: Read PDF417 barcode in C# – barcode reader example + type: TechArticle +- description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + name: Read PDF417 barcode in C# – barcode reader example + steps: + - name: '**Create a new console project**' + text: '**Create a new console project**' + - name: '**Add the barcode library**' + text: '**Add the barcode library**' + - name: '**Copy the barcode image**' + text: '**Copy the barcode image**' + type: HowTo +tags: +- barcode +- PDF417 +- C# +- .NET +title: Leggi il codice a barre PDF417 in C# – esempio di lettore di codici a barre +url: /it/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Leggi il codice a barre PDF417 in C# – esempio di lettura del codice a barre + +Se hai bisogno di leggere i dati del codice a barre PDF417 da un'immagine, questa guida ti mostra come farlo con la classe **BarCodeReader** in C#. Imparerai un esempio di lettura del codice a barre che gestisce anche il macro PDF417 e può leggere più codici a barre in una singola immagine. + +Lavorare con i codici a barre spesso significa gestire diverse fonti di immagini, condizioni di illuminazione variabili e talvolta dati compositi come i segmenti macro PDF417. Questo tutorial copre tutto ciò di cui hai bisogno per decodificare un codice a barre PDF417, estrarre i suoi campi estesi e processare diversi codici a barre dalla stessa immagine. Alla fine avrai un programma console eseguibile che legge i codici a barre da un file immagine e stampa informazioni dettagliate sulla console. + +## Cosa ti serve + +* .NET 6.0 SDK o versioni successive installate +* Una versione recente del pacchetto NuGet **Aspose.BarCode for .NET** (o qualsiasi libreria compatibile che fornisca `BarCodeReader` e `DecodeType.MacroPdf417`) +* Un file immagine che contiene un codice a barre PDF417 o macro PDF417 (l'esempio utilizza `ExtPDF417Meta.png`) +* Un editor di codice o IDE come Visual Studio 2022 + +Non sono richiesti servizi aggiuntivi o API esterne. + +## Configurare il progetto per la lettura dei codici a barre + +1. **Crea un nuovo progetto console** + + ```bash + dotnet new console -n Pdf417ReaderDemo + cd Pdf417ReaderDemo + ``` + +2. **Aggiungi la libreria per i codici a barre** + + ```bash + dotnet add package Aspose.BarCode --version 23.12 + ``` + +3. **Copia l'immagine del codice a barre** + + Posiziona `ExtPDF417Meta.png` (o qualsiasi immagine che contenga un codice a barre PDF417) nella cartella del progetto. + Per questo tutorial assumiamo che il file si trovi in `YOUR_DIRECTORY/ExtPDF417Meta.png`. + +Il progetto è ora pronto per compilare ed eseguire l'esempio di lettura del codice a barre. + +## Come leggere il codice a barre PDF417 con BarCodeReader + +Il nucleo della soluzione è un blocco `using` che crea un'istanza di `BarCodeReader`, specifica `DecodeType.MacroPdf417` e itera su ogni codice a barre rilevato. Il codice seguente è un programma completo e autonomo che puoi incollare in `Program.cs`. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.BarCodeRecognition; + +class Program +{ + static void Main() + { + // Path to the image that contains one or more PDF417 barcodes + const string imagePath = "YOUR_DIRECTORY/ExtPDF417Meta.png"; + + // Step 1: Create a BarCodeReader for a macro PDF417 image + using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.MacroPdf417)) + { + // Step 2: Read all barcodes from the image + foreach (BarCodeResult result in reader.ReadBarCodes()) + { + // Step 3: Output basic barcode information + Console.WriteLine($"CodeType: {result.CodeTypeName}"); + Console.WriteLine($"CodeText: {result.CodeText}"); + + // Step 4: Output macro PDF417 specific fields + Console.WriteLine($"Pdf417MacroFileID: {result.Extended.Pdf417.MacroPdf417FileID}"); + Console.WriteLine($"Pdf417MacroSegmentID: {result.Extended.Pdf417.MacroPdf417SegmentID}"); + Console.WriteLine($"Pdf417MacroSegmentsCount: {result.Extended.Pdf417.MacroPdf417SegmentsCount}"); + Console.WriteLine($"Pdf417MacroFileName: {result.Extended.Pdf417.MacroPdf417FileName}"); + Console.WriteLine($"Pdf417MacroChecksum: {result.Extended.Pdf417.MacroPdf417Checksum}"); + Console.WriteLine($"Pdf417MacroFileSize: {result.Extended.Pdf417.MacroPdf417FileSize}"); + Console.WriteLine($"Pdf417MacroTimeStamp: {result.Extended.Pdf417.MacroPdf417TimeStamp}"); + Console.WriteLine($"Pdf417MacroAddressee: {result.Extended.Pdf417.MacroPdf417Addressee}"); + Console.WriteLine($"Pdf417MacroSender: {result.Extended.Pdf417.MacroPdf417Sender}"); + Console.WriteLine($"MacroPdf417Terminator: {result.Extended.Pdf417.MacroPdf417Terminator}"); + Console.WriteLine(new string('-', 40)); + } + + // Pro tip: If no barcodes are found, ReadBarCodes() returns an empty collection. + // You can check reader.HasBarcodes for a quick boolean test. + if (!reader.HasBarcodes) + { + Console.WriteLine("No barcodes detected in the provided image."); + } + } + } +} +``` + +**Perché funziona**: + +* `DecodeType.MacroPdf417` indica al lettore di cercare l'estensione macro del PDF417, che contiene metadati aggiuntivi come ID file, conteggio dei segmenti e timestamp. +* L'istruzione `using` garantisce che le risorse non gestite (handle di file, buffer di decodifica nativi) vengano rilasciate prontamente. +* Il ciclo `foreach` elabora automaticamente **tutti** i codici a barre presenti nell'immagine, soddisfacendo il requisito di *leggere più codici a barre*. + +Quando esegui il programma (`dotnet run`), dovresti vedere un output simile al seguente: + +``` +CodeType: MacroPdf417 +CodeText: https://example.com/document.pdf +Pdf417MacroFileID: 12345 +Pdf417MacroSegmentID: 1 +Pdf417MacroSegmentsCount: 3 +Pdf417MacroFileName: document.pdf +Pdf417MacroChecksum: 0x1A2B +Pdf417MacroFileSize: 204800 +Pdf417MacroTimeStamp: 2024-07-15T10:25:00Z +Pdf417MacroAddressee: John Doe +Pdf417MacroSender: Acme Corp +MacroPdf417Terminator: True +---------------------------------------- +``` + +Se l'immagine contiene più di un codice a barre PDF417, il ciclo stampa un blocco separato per ciascun codice a barre, dimostrando così come **leggere più codici a barre** da una singola immagine. + +## Leggere più codici a barre da un'immagine + +La stessa istanza di `BarCodeReader` può decodificare diversi tipi di codici a barre contemporaneamente. Per ampliare lo scopo da solo macro PDF417 a qualsiasi PDF417 (o anche QR, Code128, ecc.), regola il flag `DecodeType`: + +```csharp +using (BarCodeReader reader = new BarCodeReader(imagePath, + DecodeType.Pdf417 | DecodeType.MacroPdf417 | DecodeType.QR | DecodeType.Code128)) +{ + // The rest of the code stays unchanged. +} +``` + +*`DecodeType`* è una maschera di bit, quindi puoi combinare qualsiasi numero di formati supportati. Questa flessibilità rende lo snippet un **esempio di lettura del codice a barre** che funziona per una vasta gamma di casi d'uso, come la scansione di etichette di prodotto, biglietti o carte d'identità. + +## Accedere in modo sicuro ai campi macro PDF417 + +Macro PDF417 aggiunge un ricco insieme di proprietà estese. Tuttavia, non tutti i codici a barre includono tutti i campi. Accedere a una proprietà mancante può generare una `NullReferenceException`. L'approccio più sicuro è verificare ogni proprietà prima di stamparla: + +```csharp +var macro = result.Extended?.Pdf417; +if (macro != null) +{ + Console.WriteLine($"Pdf417MacroFileID: {macro.MacroPdf417FileID ?? "N/A"}"); + // Repeat for other fields... +} +``` + +*Perché è importante*: Nelle implementazioni reali potresti ricevere codici a barre PDF417 semplici che non contengono dati macro. Il controllo difensivo garantisce che la tua applicazione continui a funzionare senza crash. + +## Problemi comuni e migliori pratiche + +| Problema | Perché accade | Correzione consigliata | +|----------|----------------|------------------------| +| Il percorso dell'immagine è errato | `BarCodeReader` genera un'eccezione file‑not‑found prima di qualsiasi decodifica | Usa `Path.Combine` e verifica che il file esista con `File.Exists` | +| Immagine a bassa risoluzione | Il decoder non riesce a individuare i bordi del codice a barre, risultando in zero rilevamenti | Fornisci una risoluzione minima di 300 dpi per risultati affidabili | +| Codice a barre ruotato > 45° | Molte librerie assumono un'orientazione verticale | Abilita `reader.RecognitionOptions.RotateImage = true` se il | + +## 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. + +- [Come leggere i codici a barre DataMatrix con Aspose.BarCode per .NET](/barcode/english/net/datamatrix-barcode-reading/) +- [Leggi il codice a barre DataMatrix C# – Genera modalità DataMatrix (Auto)](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-auto/) +- [Leggi il codice a barre da immagine – Padronanza dell'estrazione della regione del codice a barre in Java con Aspose.BarCode](/barcode/english/java/advanced-settings-and-optimization/extracting-barcode-region-information/) + +{{< /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/net/compact-pdf417-encoding/_index.md b/barcode/japanese/net/compact-pdf417-encoding/_index.md index a3cc7ebe8..01e8fc311 100644 --- a/barcode/japanese/net/compact-pdf417-encoding/_index.md +++ b/barcode/japanese/net/compact-pdf417-encoding/_index.md @@ -84,7 +84,13 @@ Aspose.BarCode では `Pdf417ErrorCorrectionLevel` プロパティ(0‑8)を ### [Compact PDF417 バーコードの作成](./compact-pdf417-basic-configuration/) -Aspose.BarCode for .NET を使用して Compact PDF417 バーコードを生成する方法を学びます。ステップバイステップの手順とコード例を含む包括的なガイドです。 +### [C# で PDF417 バーコードを作成する – ステップバイステップガイド](./create-pdf417-barcode-in-c-step-by-step-guide/) + +### [C# で PDF417 バーコードを生成する – Aspose.BarCode 完全ガイド](./generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/) + +### [バーコードを画像として保存する方法 – 完全 C# ガイド](./how-to-save-barcode-as-an-image-complete-c-guide/) + +### [C# で PDF417 バーコードを読み取る – バーコードリーダーの例](./read-pdf417-barcode-in-c-barcode-reader-example/) ## よくある質問 @@ -114,4 +120,4 @@ A: 外部フォントは不要です。ライブラリが内部で全てのレ {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/japanese/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md b/barcode/japanese/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..7c4498616 --- /dev/null +++ b/barcode/japanese/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md @@ -0,0 +1,224 @@ +--- +category: general +date: 2026-08-03 +description: C# で PDF417 バーコードをすばやく作成します。PDF417 バーコードの生成方法と、Aspose.Barcode を使用してバーコード画像を + PNG として保存する方法を学びましょう。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create pdf417 barcode +- how to generate pdf417 barcode +- how to save barcode image +language: ja +lastmod: 2026-08-03 +og_description: Aspose.Barcode を使用して C# で PDF417 バーコードを作成します。このガイドに従って PDF417 バーコードを生成し、バーコード画像を効率的に保存する方法をご覧ください。 +og_image_alt: Screenshot of a generated compact PDF417 barcode saved as PNG +og_title: C#でPDF417バーコードを作成する – 完全コーディングチュートリアル +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + headline: Create PDF417 barcode in C# – step‑by‑step guide + type: TechArticle +- description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + name: Create PDF417 barcode in C# – step‑by‑step guide + steps: + - name: Why this matters + text: '* **EncodeTypes.Pdf417** tells the library to use the PDF417 standard, + which supports large data payloads and error correction. * Providing Unicode + characters proves the generator handles non‑ASCII input without extra configuration.' + - name: Practical tip + text: If you need a taller barcode for limited horizontal space, increase `Columns`. + Setting `Truncate` to `true` reduces the overall height by removing quiet zones, + which is ideal for mobile screens. + - name: Expected result + text: Running the program creates `CompactPdf417.png` in the project folder. Opening + the file shows a compact PDF417 barcode that encodes the string *Åspóse.Barcóde©*. + The image can be embedded in HTML, PDF reports, or printed on labels. + - name: Verifying the output + text: 'After the program finishes, you can verify the file exists with a quick + command:' + type: HowTo +tags: +- barcode +- C# +- PDF417 +- image generation +title: C#でPDF417バーコードを作成する – ステップバイステップガイド +url: /ja/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# で PDF417 バーコードを作成する – ステップバイステップ ガイド + +.NET アプリケーションで **PDF417 バーコードを作成** する必要がある場合、このガイドでは PDF417 バーコードの生成方法とバーコード画像の保存方法を正確に示します。最終的に、レポートやチケット、モバイルスキャンアプリで使用できる PNG ファイルが得られます。 + +このチュートリアルは、プロジェクトのセットアップから最終的な PNG ファイルまでのすべてをカバーしています。外部ドキュメントは不要です。手順に従ってコードを実行するだけです。 + +## 必要なもの + +開始する前に、以下が揃っていることを確認してください: + +* .NET 6.0 SDK 以降(コードは .NET Framework 4.7+ でも動作します) +* Visual Studio 2022 または C# をサポートする任意の IDE +* **Aspose.Barcode for .NET** NuGet パッケージをインストールするためのインターネット接続 + +これらの前提条件により、追加設定なしでコードがコンパイルできます。 + +## PDF417 バーコードの作成 – プロジェクト設定 + +1. コマンドプロンプトを開き、新しいコンソールプロジェクトを作成します: + + ```bash + dotnet new console -n Pdf417Demo + cd Pdf417Demo + ``` + +2. Aspose.Barcode ライブラリを追加します: + + ```bash + dotnet add package Aspose.Barcode + ``` + +3. 生成された `Program.cs` ファイルを開きます。上部の `using` 文により、バーコードクラスにアクセスできるようになります: + + ```csharp + using System; + using Aspose.Barcode.Generation; + using Aspose.Barcode; + ``` + +これでプロジェクトは **PDF417 バーコードを作成** できる状態になりました。 + +## Aspose.Barcode を使用して PDF417 バーコードを生成する方法 + +バーコード生成の中心は `BarcodeGenerator` クラスです。シンボロジー(`EncodeTypes.Pdf417`)とエンコードしたいデータを指定します。 + +```csharp +// Step 1: Initialise the generator with PDF417 symbology and sample text. +// The text includes Unicode characters to demonstrate full‑range support. +BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Pdf417, "Åspóse.Barcóde©"); +``` + +### これが重要な理由 + +* **EncodeTypes.Pdf417** はライブラリに PDF417 標準を使用させます。この標準は大容量データとエラー訂正をサポートします。 +* Unicode 文字を提供することで、ジェネレータが追加設定なしで非 ASCII 入力を処理できることが確認できます。 + +## バーコードの外観を設定する方法 + +各モジュールのサイズ、列数、そしてバーコードがコンパクト(トランケート)モードを使用するかどうかを制御できます。これらの設定は可読性とファイルサイズの両方に影響します。 + +```csharp +// Step 2: Set the module (X) dimension – each barcode element will be 2 pixels wide. +generator.Parameters.Barcode.XDimension.Pixels = 2; + +// Step 3: Configure PDF417‑specific options. +generator.Parameters.Barcode.Pdf417.Columns = 3; // Number of columns (affects height) +generator.Parameters.Barcode.Pdf417.Truncate = true; // Enable compact mode +``` + +### 実用的なヒント + +横幅が限られていて縦長のバーコードが必要な場合は `Columns` を増やします。`Truncate` を `true` に設定すると、クワイエットゾーンを除去して全体の高さが減少し、モバイル画面に最適です。 + +## バーコード画像を PNG として保存する方法 + +ジェネレータの設定が完了したら、ファイルパスと希望の画像フォーマットを指定して `Save` を呼び出します。このメソッドは画像を直接ディスクに書き込みます。 + +```csharp +// Step 4: Save the generated barcode as a PNG image. +string outputPath = @"./CompactPdf417.png"; +generator.Save(outputPath, BarCodeImageFormat.Png); +Console.WriteLine($"Barcode saved to {outputPath}"); +``` + +### 期待される結果 + +プログラムを実行すると、プロジェクトフォルダーに `CompactPdf417.png` が作成されます。ファイルを開くと、文字列 *Åspóse.Barcóde©* をエンコードしたコンパクトな PDF417 バーコードが表示されます。この画像は HTML、PDF レポートに埋め込んだり、ラベルに印刷したりできます。 + +## 完全なソースコード + +以下は完全な実行可能プログラムです。`Program.cs` にコピーし、`dotnet run` を実行してください。 + +```csharp +using System; +using Aspose.Barcode.Generation; +using Aspose.Barcode; + +namespace Pdf417Demo +{ + class Program + { + static void Main() + { + // Initialise the generator with PDF417 symbology and sample text. + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.Pdf417, + "Åspóse.Barcóde©"); + + // Set the module width to 2 pixels. + generator.Parameters.Barcode.XDimension.Pixels = 2; + + // Configure PDF417‑specific options. + generator.Parameters.Barcode.Pdf417.Columns = 3; + generator.Parameters.Barcode.Pdf417.Truncate = true; + + // Define the output file path. + string outputPath = @"./CompactPdf417.png"; + + // Save the barcode as a PNG image. + generator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"Barcode saved to {outputPath}"); + } + } +} +``` + +### 出力の確認 + +プログラムが終了したら、以下の簡単なコマンドでファイルの存在を確認できます: + +```bash +dotnet run && ls -l CompactPdf417.png +``` + +ファイルが表示されれば、**PDF417 バーコードの作成** プロセスは成功です。 + +## 一般的なバリエーションとエッジケース + +| Situation | Adjustment | +|-----------|------------| +| **Longer data string** | `Columns` を増やすか、`Rows` を設定してコードワード数を増やします。 | +| **Different image format** | `BarCodeImageFormat.Png` を `Jpeg`、`Bmp`、`Gif` のいずれかに置き換えます。 | +| **Higher resolution** | `Save` の前に `generator.Parameters.ImageResolution` を設定します。 | +| **Background color** | `generator.Parameters.Barcode.ImageBackgroundColor = Color.White;` を使用します。 | +| **Exception handling** | `generator.Save` を `try/catch` ブロックでラップし、I/O エラーを捕捉します。 | + +これらのバリエーションにより、特定のデバイスやブランディング要件に合わせてバーコードを調整できます。 + +## 結論 + +これで、Aspose.Barcode を使用して C# で **PDF417 バーコードを作成** し、その外観を設定し、**PNG ファイルとしてバーコード画像を保存** する方法が分かりました。完全な例は、プロジェクトのセットアップから検証までのすべての手順を示しているので、任意の .NET ソリューションにバーコード生成を組み込むことができます。 + +次に、**QR コードの生成方法**、**PDF ドキュメントへのバーコード埋め込み**、または **バーコードの色カスタマイズ** などの関連トピックを検討してください。これらはすべて同じジェネレータ API を基盤としており、最小限の手間でアプリケーションのスキャン機能を拡張できます。コーディングを楽しんでください! + +## 次に学ぶべきことは? + +以下のチュートリアルは、本ガイドで示した手法を基にした密接に関連するトピックをカバーしています。各リソースには、ステップバイステップの解説と完全な動作コード例が含まれており、追加の API 機能を習得し、独自プロジェクトで代替実装アプローチを検討するのに役立ちます。 + +- [バーコードの作成方法 – コンパクト PDF417(Aspose.BarCode)](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [DataMatrix バーコード(ECC 200)を Aspose.BarCode for .NET で生成する方法](/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/) + +{{< /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/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md b/barcode/japanese/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md new file mode 100644 index 000000000..09727189c --- /dev/null +++ b/barcode/japanese/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md @@ -0,0 +1,240 @@ +--- +category: general +date: 2026-08-03 +description: Aspose.BarCode を使用して C# で PDF417 バーコードを生成します。Macro PDF417 メタデータの追加方法と + PNG への保存方法をステップバイステップで学びましょう。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- generate PDF417 barcode C# +- Macro PDF417 barcode +- Aspose.BarCode +- C# barcode generation +- PDF417 metadata +- barcode image PNG +language: ja +lastmod: 2026-08-03 +og_description: Aspose.BarCode を使用して C# で PDF417 バーコードを生成します。このチュートリアルでは、Macro PDF417 + メタデータを埋め込み、結果を PNG 画像としてエクスポートする方法を示します。 +og_image_alt: Screenshot of a generated PDF417 barcode created with C# +og_title: PDF417バーコードをC#で生成 – ステップバイステップ Aspose.BarCode チュートリアル +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + headline: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + type: TechArticle +- description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + name: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + steps: + - name: Create a Macro PDF417 barcode generator + text: First, instantiate `BarcodeGenerator` with the `EncodeTypes.MacroPdf417` + enum. The constructor also accepts the text you want to encode – in this example + we use a string that contains Unicode characters to demonstrate full‑width support. + - name: Adjust basic barcode appearance + text: Next, define the visual size of the barcode. `XDimension.Pixels` controls + the width of a single module (the smallest black/white square), while `Pdf417.Columns` + influences the overall shape by setting the number of columns. + - name: Populate Macro PDF417 metadata + text: Macro PDF417 allows you to embed file‑level information that many back‑office + systems rely on (e.g., file ID, segment ID, timestamp). The following properties + illustrate the most common fields. + - name: Save the barcode image as PNG + text: Finally, call `Save` to write the barcode to disk. PNG is lossless, making + it ideal for high‑quality scanning. + - name: How to verify the result + text: 1. Open `ExtPDF417Meta.png` in any image viewer. 2. Use a PDF417 scanner + app (e.g., *Zebra Scanner* or *BarCode Reader* on Android/iOS). 3. Confirm that + the decoded payload includes the original text and a JSON‑like block with the + macro fields you set. + - name: Next steps + text: '- Experiment with other barcode formats (e.g., QR, Code128) by changing + `EncodeTypes`. - Explore `Pdf417.ErrorCorrectionLevel` to improve scan reliability + under poor lighting. - Integrate the generated image into a PDF report using + Aspose.PDF for end‑to‑end document automation.' + type: HowTo +tags: +- PDF417 +- C# +- Barcode +title: C#でPDF417バーコードを生成 – Aspose.BarCode 完全ガイド +url: /ja/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PDF417バーコード C# 生成 – 完全ガイド + +物流や文書管理システム向けに **PDF417バーコード C# を生成** する必要がある場合、本チュートリアルでは Aspose.BarCode を使った手順を詳しく解説します。バーコードの設定方法、Macro PDF417 メタデータの埋め込み、そして数行のコードで PNG 画像として保存する方法が分かります。 + +C# で PDF417 バーコードを生成する際は、ファイル識別子やセグメント番号、タイムスタンプといった追加情報を扱うことが多くなります。本ガイドではそれらの詳細を網羅しているため、散在するドキュメントを探す必要はありません。記事の最後まで読めば、Macro PDF417 に準拠したバーコード画像を生成できる実行可能なプログラムが手に入ります。 + +## 必要な環境 + +- .NET 6.0 以上(.NET Framework 4.7+ でも動作します) +- Aspose.BarCode for .NET (v23.9 以上) – NuGet で `Install-Package Aspose.BarCode` を実行してインストール +- Visual Studio 2022 または Visual Studio Code などの開発環境 +- C# の基本的な構文に慣れていること + +> **プロのコツ:** 最新の Aspose.BarCode バージョンを使用すると、バグ修正や最新 PDF417 仕様への対応が得られます。 + +## Aspose.BarCode で PDF417 バーコード C# を生成する手順 + +このプロセスは 4 つの論理的ステップで構成されます。各ステップは明確なコードブロックで示されているので、コピー&ペーストしてすぐに実行できます。 + +### ステップ 1: Macro PDF417 バーコードジェネレータを作成 + +まず、`EncodeTypes.MacroPdf417` 列挙体を指定して `BarcodeGenerator` をインスタンス化します。コンストラクタにはエンコードしたいテキストも渡せます – 例では全角文字を含む文字列を使用し、フル幅サポートをデモしています。 + +```csharp +using System; +using Aspose.BarCode.Generation; + +// Create a Macro PDF417 barcode generator with the desired text +using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) +{ + // Subsequent steps go inside this using block +``` + +*ポイント*: `MacroPdf417` タイプを指定すると、Aspose.BarCode はシンボルをマクロバーコードとして扱い、追加のファイルレベルメタデータを保持できるようになります。このフラグが無いと、後で設定する余分なフィールドは無視されます。 + +### ステップ 2: 基本的なバーコード外観を調整 + +次に、バーコードの視覚サイズを定義します。`XDimension.Pixels` は単一モジュール(最小の黒/白の正方形)の幅を制御し、`Pdf417.Columns` は列数を設定して全体の形状に影響を与えます。 + +```csharp + // Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol +``` + +*ポイント*: `XDimension` を小さくすると解像度が上がり、画面上からのスキャンに適した高品質画像が得られます。列数を変更すれば、データ容量を犠牲にせず限られたスペースにバーコードを収めやすくなります。 + +### ステップ 3: Macro PDF417 メタデータを設定 + +Macro PDF417 は、多くのバックオフィスシステムが依存するファイルレベル情報(例: ファイル ID、セグメント ID、タイムスタンプ)を埋め込むことができます。以下のプロパティは最も一般的なフィールドを示しています。 + +```csharp + // Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; +``` + +*ポイント*: 各フィールドはマクロバーコード仕様のセグメントに直接対応しています。たとえば `MacroPdf417FileID` は論理ファイルを一意に識別し、`MacroPdf417SegmentsCount` はスキャナに期待すべきセグメント数を伝えます。正確なメタデータを提供することで、下流システムが元文書をエラーなく再構築できます。 + +### ステップ 4: PNG 形式でバーコード画像を保存 + +最後に `Save` を呼び出してバーコードをディスクに書き出します。PNG はロスレス形式なので、高品質スキャンに最適です。 + +```csharp + // Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); +} +``` + +*ポイント*: `BarCodeImageFormat.Png` 列挙体は、設定したピクセルデータがそのまま出力ファイルに保存されることを保証します。ベクタ形式が必要な場合は `Png` を `Svg` に置き換えるだけで、Aspose.BarCode が自動的に対応します。 + +#### 期待される出力 + +プログラムを実行すると **ExtPDF417Meta.png** という名前のファイルが作成されます。画像は「Åspóse.Barcóde©」というテキストと、設定したマクロメタデータを含む密なマルチロウ PDF417 シンボルを示します。PDF417 対応リーダーでスキャンすると、元テキストに加えてファイル ID、セグメント ID、タイムスタンプなどの構造化データブロックが取得できます。 + +![生成された PDF417 バーコードのスクリーンショット](/images/pdf417-example.png){: .center-image alt="PDF417 バーコード C# 生成例の出力"} + +## 完全なソースコード(コピー&ペースト可能) + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace Pdf417MacroDemo +{ + class Program + { + static void Main() + { + // Step 1: Create a Macro PDF417 barcode generator with the desired text + using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) + { + // Step 2: Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol + + // Step 3: Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; + + // Step 4: Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); + } + + Console.WriteLine("Macro PDF417 barcode generated successfully."); + } + } +} +``` + +### 結果の検証方法 + +1. 任意の画像ビューアで `ExtPDF417Meta.png` を開く。 +2. Android/iOS 用の PDF417 スキャナアプリ(例: *Zebra Scanner* や *BarCode Reader*)で読み取る。 +3. デコードされたペイロードに元テキストと、設定したマクロフィールドを含む JSON 風ブロックが含まれていることを確認する。 + +## よくある質問とエッジケースの対処 + +| 質問 | 回答 | +|----------|--------| +| **PNG ではなくベクタ画像を生成できますか?** | はい。`BarCodeImageFormat.Png` を `BarCodeImageFormat.Svg` に置き換えるだけです。コードの他の部分は変更不要です。 | +| **データが既定の容量を超えた場合は?** | `Pdf417.Columns` を増やすか、`Pdf417.Rows` を手動で設定してください。値を大きくするとセグメントあたりのコードワード数が増えます。 | +| **エンコードテキストで Unicode はサポートされていますか?** | 完全にサポートしています。例の “Åspóse.Barcóde©” のように、必要に応じて Aspose.BarCode が自動で UTF‑8 に切り替えます。 | +| **Aspose.BarCode のライセンスは必要ですか?** | 本番環境では評価版の透かしを除去するためにライセンスを適用すべきです。ジェネレータ作成前に `License license = new License(); license.SetLicense("Aspose.BarCode.lic");` を呼び出してください。 | +| **ファイル保存時のエラーはどう処理すれば?** | `Save` 呼び出しを try/catch で囲み、`IOException` や `BarCodeException` をログに記録するとトラブルシューティングが容易になります。 | + +## 結論 + +これで Aspose.BarCode を使用して **PDF417バーコード C# を生成** し、完全な Macro PDF417 メタデータを埋め込み、高品質 PNG 画像としてエクスポートする方法が分かりました。ジェネレータ作成、外観調整、メタデータ設定、画像保存というステップは、請求書や出荷ラベル、リッチバーコードデータが必要なあらゆるシナリオに再利用できるパターンです。 + +### 次のステップ + +- `EncodeTypes` を変更して、QR や Code128 など他のバーコード形式を試す。 +- `Pdf417.ErrorCorrectionLevel` を調整し、暗い環境や汚れた印刷でもスキャン信頼性を向上させる。 +- Aspose.PDF と組み合わせて、生成した画像を PDF レポートに埋め込み、エンドツーエンドの文書自動化を実現する。 + +メタデータフィールドはビジネスルールに合わせて自由に変更し、バーコード生成を C# アプリケーションのシームレスな一部にしてください。コーディングを楽しんでください! + +## 次に学ぶべきこと + +以下のチュートリアルは、本ガイドで示したテクニックを基にした関連トピックを扱っています。各リソースには完全な動作コード例とステップバイステップの解説が含まれており、API の追加機能習得や代替実装アプローチの探索に役立ちます。 + +- [How to Create Barcode – Compact PDF417 with Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [So erstellen Sie einen Barcode – Kompaktes PDF417 mit Aspose.BarCode](/barcode/german/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [java barcode library – Add barcode to PDF using Aspose](/barcode/english/java/barcode-basics/adding-barcode-to-pdf-document/) + +{{< /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/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md b/barcode/japanese/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md new file mode 100644 index 000000000..9f191e688 --- /dev/null +++ b/barcode/japanese/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md @@ -0,0 +1,184 @@ +--- +category: general +date: 2026-08-03 +description: C# を使用してバーコードを素早く保存する方法。MicroPDF417 バーコードの生成を学び、サイズを設定し、列数を選択して PNG にエクスポートします。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to save barcode +- MicroPDF417 barcode +- C# barcode generation +- barcode XDimension +- PDF417 columns +- barcode image format +language: ja +lastmod: 2026-08-03 +og_description: C#でバーコードを保存する方法(完全な例付き)。MicroPDF417バーコードを生成し、サイズを調整し、列数を設定し、PNGにエクスポートします。 +og_image_alt: Screenshot showing a MicroPDF417 barcode saved as a PNG file +og_title: バーコードを保存する方法 – ステップバイステップ C# チュートリアル +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: how to save barcode quickly using C#. Learn MicroPDF417 barcode generation, + set dimensions, choose columns, and export to PNG. + headline: how to save barcode as an image – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- imaging +title: バーコードを画像として保存する方法 – 完全なC#ガイド +url: /ja/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# バーコードの保存方法 – 完全な C# ガイド + +If you need to **how to save barcode** in a .NET application, this tutorial shows you the exact steps. You’ll generate a MicroPDF417 barcode, tweak its dimensions, choose the column count, and finally write the image to disk as a PNG file. + +Creating and persisting barcodes doesn’t require a heavyweight library—just the `BarcodeGenerator` class from the Aspose.BarCode for .NET suite. In the sections below we walk through each configuration option, explain why it matters, and give you a ready‑to‑run code sample. + +## 前提条件 + +- .NET 6.0 以降(API は .NET Core と .NET Framework でも動作します) +- Aspose.BarCode for .NET(NuGet パッケージ `Aspose.BarCode`) +- 書き込み権限のあるフォルダー(**how to save barcode** 手順で使用) + +## 手順 1: MicroPDF417 バーコードジェネレーターの作成 + +The first task in any **how to save barcode** workflow is to instantiate a `BarcodeGenerator` with the desired symbology and data. MicroPDF417 is a compact version of the PDF417 matrix barcode, ideal for small labels. + +```csharp +using Aspose.BarCode.Generation; + +// Create a MicroPDF417 barcode with sample text that includes Unicode characters. +BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, // Symbology + "Åspóse.Barcóde©"); // Data to encode +``` + +**この重要性:** +`EncodeTypes.MicroPdf417` はライブラリに MicroPDF417 アルゴリズムを使用させ、エラー訂正とデータエンコードを自動的に処理します。Unicode テキストを提供することで、ジェネレーターが非 ASCII 文字を正しく処理できることを示しています。 + +## 手順 2: X‑dimension(モジュールサイズ)の調整 + +The X‑dimension defines the width of a single barcode module (pixel). A smaller value yields a tighter barcode, while a larger value makes it easier to scan. + +```csharp +// Set each module to 2 pixels wide. +barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +**この重要性:** +`barcode XDimension` を設定することで、バーコードが対象ラベルサイズに収まります。このステップを省略すると、デフォルトサイズがモバイル画面や小さな印刷物に対して大きすぎる可能性があります。 + +## 手順 3: PDF417 マトリックスの列数を選択 + +MicroPDF417 supports 1–4 columns. More columns produce a squarer barcode; fewer columns stretch it vertically. + +```csharp +// Use the maximum of 4 columns for a compact, square shape. +barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; +``` + +**この重要性:** +**PDF417 columns** を調整することで、可読性とスペース制約のバランスを取れます。多くのスキャンシナリオでは、4 列レイアウトが最適な妥協点となります。 + +## 手順 4: 生成したバーコードを PNG 画像として保存 + +Now that the barcode is configured, you can finally answer “**how to save barcode**” by writing it to a file. PNG preserves loss‑less quality, which is essential for sharp scanning. + +```csharp +// Define the output path (ensure the directory exists). +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + +// Export the barcode to PNG. +barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + +Console.WriteLine($"Barcode saved to: {outputPath}"); +``` + +**この重要性:** +`barcode image format` は保存ファイルの視覚的忠実度を決定します。PNG は圧縮アーティファクトがなく鮮明なエッジを保つため、ほとんどの UI や印刷ワークフローで好まれます。 + +## 完全な実行可能サンプル + +Putting everything together gives you a self‑contained program you can copy, paste, and run. + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // 1️⃣ Create the barcode generator. + BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, + "Åspóse.Barcóde©"); + + // 2️⃣ Adjust module size. + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; + + // 3️⃣ Set column count (1‑4 allowed). + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; + + // 4️⃣ Define output location. + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + + // 5️⃣ Save as PNG. + barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"✅ Barcode saved to: {outputPath}"); + } +} +``` + +**期待される出力** + +Running the program creates `MicroPdf417.png` on your desktop. Opening the file shows a clear MicroPDF417 barcode that encodes the string `Åspóse.Barcóde©`. Scanning it with any standard barcode scanner returns the original text. + +## よくある質問とエッジケース + +| Question | Answer | +|----------|--------| +| *JPEG を PNG の代わりに使用できますか?* | はい。`BarCodeImageFormat.Png` を `BarCodeImageFormat.Jpeg` に置き換えます。JPEG はサイズが小さいですが、圧縮アーティファクトが発生し、スキャンに影響を与える可能性があります。 | +| *データが MicroPDF417 の容量を超えた場合はどうなりますか?* | MicroPDF417 は最大 1 KB のデータを保存できます。より大きなペイロードの場合は、フルバージョンの `EncodeTypes.Pdf417` に切り替えてください。 | +| *バーコードの色を変更するには?* | `barcodeGenerator.Parameters.Barcode.BarColor` と `BackColor` を使用して、`Save` を呼び出す前に前景色と背景色を設定します。 | +| *X‑dimension は整数ピクセルに限定されていますか?* | このプロパティは `float` を受け付けます。`1.5f` のような値も使用可能ですが、ほとんどのプリンターは整数ピクセルサイズで最適に動作します。 | + +## 信頼性の高い **how to save barcode** 実装のためのプロのコツ + +- `Save` を呼び出す前に `Directory.Exists` で出力フォルダーを **検証** し、`IOException` を回避します。 +- ループで多数のバーコードを生成する場合は、**ジェネレーターを破棄**(`barcodeGenerator.Dispose()`)してネイティブリソースを解放します。 +- 保存後は **実際のスキャナーでテスト** してください。目視検査だけでは本番展開には不十分です。 +- **ライブラリを最新に保つ**—新しい Aspose.BarCode のリリースはシンボロジーの改善やバグ修正を追加します。 + +## 結論 + +これで、Aspose.BarCode ライブラリを使用して C# で **how to save barcode** 画像を作成する方法が分かりました。MicroPDF417 バーコードを作成し、**barcode XDimension** を設定し、適切な **PDF417 columns** を選択し、PNG のような **barcode image format** にエクスポートすることで、完全な本番対応ソリューションが手に入ります。 + +次に、**C# の QR コード用バーコード生成**、**バッチバーコード作成**、または **PDF レポートへのバーコード埋め込み** などの関連トピックを探求してください。これらはすべて本ガイドで示した同じ原則に基づいており、自信を持ってイメージングツールキットを拡張できます。 + +## 次に学ぶべきことは? + +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. + +- [Aspose.BarCode を使用した DataMatrix C40 で PNG を保存する方法](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-c40/) +- [ITF-14 バーコードカスタマイズのためのボーダー設定方法](/barcode/english/net/itf-14-barcode-customization/) +- [Aspose.BarCode for .NET を使用したカスタムアスペクト比の Aztec バーコード生成方法](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) + +{{< /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/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md b/barcode/japanese/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md new file mode 100644 index 000000000..81fd29bb3 --- /dev/null +++ b/barcode/japanese/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md @@ -0,0 +1,214 @@ +--- +category: general +date: 2026-08-03 +description: C# の BarCodeReader を使用して画像から PDF417 バーコードを読み取る – 複数のバーコードの読み取り方法も示す、完全なバーコードリーダーのサンプルです。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- read PDF417 barcode +- barcode reader example +- read multiple barcodes +- read barcodes image +language: ja +lastmod: 2026-08-03 +og_description: C# の BarCodeReader サンプルで PDF417 バーコードを素早く読み取ります。ステップバイステップのガイドに従って、マクロ + PDF417 をデコードし、画像から複数のバーコードを読み取ります。 +og_image_alt: Console output of a read PDF417 barcode example in C# +og_title: C#でPDF417バーコードを読み取る – 完全なバーコードリーダーの例 +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + headline: Read PDF417 barcode in C# – barcode reader example + type: TechArticle +- description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + name: Read PDF417 barcode in C# – barcode reader example + steps: + - name: '**Create a new console project**' + text: '**Create a new console project**' + - name: '**Add the barcode library**' + text: '**Add the barcode library**' + - name: '**Copy the barcode image**' + text: '**Copy the barcode image**' + type: HowTo +tags: +- barcode +- PDF417 +- C# +- .NET +title: C#でPDF417バーコードを読み取る – バーコードリーダーの例 +url: /ja/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# で PDF417 バーコードを読み取る – バーコードリーダーの例 + +画像から PDF417 バーコードデータを読み取る必要がある場合、このガイドでは **BarCodeReader** クラスを使用した方法を示します。マクロ PDF417 を扱い、1 つの画像内の複数のバーコードを読み取ることができるバーコードリーダーの例を学びます。 + +バーコードを扱う際は、さまざまな画像ソースや照明条件、時にはマクロ PDF417 のような複合データに対応する必要があります。本チュートリアルでは、PDF417 バーコードをデコードし、拡張フィールドを抽出し、同じ画像から複数のバーコードを処理する方法をすべて網羅しています。最後まで進めば、画像ファイルからバーコードを読み取り、コンソールに詳細情報を出力する実行可能なコンソールプログラムが完成します。 + +## 必要なもの + +開始する前に、以下がインストールされていることを確認してください。 + +* .NET 6.0 SDK 以降 +* **Aspose.BarCode for .NET** の最新バージョン NuGet パッケージ(または `BarCodeReader` と `DecodeType.MacroPdf417` を提供する互換ライブラリ) +* PDF417 またはマクロ PDF417 バーコードを含む画像ファイル(サンプルでは `ExtPDF417Meta.png` を使用) +* Visual Studio 2022 などのコードエディタまたは IDE + +追加のサービスや外部 API は必要ありません。 + +## バーコード読み取りプロジェクトのセットアップ + +1. **新しいコンソールプロジェクトを作成** + + ```bash + dotnet new console -n Pdf417ReaderDemo + cd Pdf417ReaderDemo + ``` + +2. **バーコードライブラリを追加** + + ```bash + dotnet add package Aspose.BarCode --version 23.12 + ``` + +3. **バーコード画像をコピー** + + `ExtPDF417Meta.png`(または PDF417 バーコードを含む任意の画像)をプロジェクトフォルダーに配置します。 + 本チュートリアルではファイルが `YOUR_DIRECTORY/ExtPDF417Meta.png` にあるものとします。 + +これでプロジェクトはコンパイルおよび実行できるバーコードリーダーの例の準備が整いました。 + +## BarCodeReader で PDF417 バーコードを読む方法 + +解決策の核心は、`BarCodeReader` インスタンスを作成し、`DecodeType.MacroPdf417` を指定して、検出されたすべてのバーコードを反復処理する `using` ブロックです。以下のコードは、`Program.cs` に貼り付けて使用できる、完全かつ自己完結型のプログラムです。 + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.BarCodeRecognition; + +class Program +{ + static void Main() + { + // Path to the image that contains one or more PDF417 barcodes + const string imagePath = "YOUR_DIRECTORY/ExtPDF417Meta.png"; + + // Step 1: Create a BarCodeReader for a macro PDF417 image + using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.MacroPdf417)) + { + // Step 2: Read all barcodes from the image + foreach (BarCodeResult result in reader.ReadBarCodes()) + { + // Step 3: Output basic barcode information + Console.WriteLine($"CodeType: {result.CodeTypeName}"); + Console.WriteLine($"CodeText: {result.CodeText}"); + + // Step 4: Output macro PDF417 specific fields + Console.WriteLine($"Pdf417MacroFileID: {result.Extended.Pdf417.MacroPdf417FileID}"); + Console.WriteLine($"Pdf417MacroSegmentID: {result.Extended.Pdf417.MacroPdf417SegmentID}"); + Console.WriteLine($"Pdf417MacroSegmentsCount: {result.Extended.Pdf417.MacroPdf417SegmentsCount}"); + Console.WriteLine($"Pdf417MacroFileName: {result.Extended.Pdf417.MacroPdf417FileName}"); + Console.WriteLine($"Pdf417MacroChecksum: {result.Extended.Pdf417.MacroPdf417Checksum}"); + Console.WriteLine($"Pdf417MacroFileSize: {result.Extended.Pdf417.MacroPdf417FileSize}"); + Console.WriteLine($"Pdf417MacroTimeStamp: {result.Extended.Pdf417.MacroPdf417TimeStamp}"); + Console.WriteLine($"Pdf417MacroAddressee: {result.Extended.Pdf417.MacroPdf417Addressee}"); + Console.WriteLine($"Pdf417MacroSender: {result.Extended.Pdf417.MacroPdf417Sender}"); + Console.WriteLine($"MacroPdf417Terminator: {result.Extended.Pdf417.MacroPdf417Terminator}"); + Console.WriteLine(new string('-', 40)); + } + + // Pro tip: If no barcodes are found, ReadBarCodes() returns an empty collection. + // You can check reader.HasBarcodes for a quick boolean test. + if (!reader.HasBarcodes) + { + Console.WriteLine("No barcodes detected in the provided image."); + } + } + } +} +``` + +**このコードが機能する理由** + +* `DecodeType.MacroPdf417` は、PDF417 のマクロ拡張(ファイル ID、セグメント数、タイムスタンプなどの追加メタデータ)を検索するようリーダーに指示します。 +* `using` 文は、アンマネージドリソース(ファイルハンドルやネイティブデコードバッファ)を速やかに解放することを保証します。 +* `foreach` ループは、画像に含まれる **すべて** のバーコードを自動的に処理し、*複数バーコードの読み取り* 要件を満たします。 + +プログラムを実行 (`dotnet run`) すると、以下のような出力が表示されます。 + +``` +CodeType: MacroPdf417 +CodeText: https://example.com/document.pdf +Pdf417MacroFileID: 12345 +Pdf417MacroSegmentID: 1 +Pdf417MacroSegmentsCount: 3 +Pdf417MacroFileName: document.pdf +Pdf417MacroChecksum: 0x1A2B +Pdf417MacroFileSize: 204800 +Pdf417MacroTimeStamp: 2024-07-15T10:25:00Z +Pdf417MacroAddressee: John Doe +Pdf417MacroSender: Acme Corp +MacroPdf417Terminator: True +---------------------------------------- +``` + +画像に複数の PDF417 バーコードが含まれている場合、ループは各バーコードごとに別々のブロックを出力し、**1 つの画像から複数バーコードを読む** 方法を示します。 + +## 画像から複数のバーコードを読む + +同じ `BarCodeReader` インスタンスで、複数のバーコードタイプを同時にデコードできます。マクロ PDF417 のみから、任意の PDF417(あるいは QR、Code128 など)へ範囲を広げるには、`DecodeType` フラグを調整します。 + +```csharp +using (BarCodeReader reader = new BarCodeReader(imagePath, + DecodeType.Pdf417 | DecodeType.MacroPdf417 | DecodeType.QR | DecodeType.Code128)) +{ + // The rest of the code stays unchanged. +} +``` + +*`DecodeType`* はビットマスクなので、サポートされているフォーマットを任意の数だけ組み合わせられます。この柔軟性により、スニペットは **バーコードリーダーの例** として、製品ラベル、チケット、ID カードなど、さまざまなユースケースに対応できます。 + +## マクロ PDF417 フィールドを安全に取得する + +マクロ PDF417 には豊富な拡張プロパティが含まれますが、すべてのバーコードがすべてのフィールドを持つわけではありません。存在しないプロパティにアクセスすると `NullReferenceException` がスローされる可能性があります。最も安全な方法は、各プロパティを出力する前に存在を確認することです。 + +```csharp +var macro = result.Extended?.Pdf417; +if (macro != null) +{ + Console.WriteLine($"Pdf417MacroFileID: {macro.MacroPdf417FileID ?? "N/A"}"); + // Repeat for other fields... +} +``` + +*このチェックが重要な理由*: 実運用では、マクロデータを含まない普通の PDF417 バーコードが届くことがあります。防御的チェックを入れることで、アプリケーションがクラッシュせずに動作し続けます。 + +## よくある落とし穴とベストプラクティス + +| 問題 | 発生原因 | 推奨される対策 | +|------|----------|----------------| +| 画像パスが間違っている | `BarCodeReader` がデコード前にファイル未検出例外をスローする | `Path.Combine` を使用し、`File.Exists` でファイルの存在を検証する | +| 低解像度画像 | デコーダがバーコードのエッジを検出できず、検出件数が 0 になる | 信頼性のある結果を得るために最低 300 dpi の解像度を確保する | +| バーコードが 45° 超で回転している | 多くのライブラリは正立姿勢を前提としている | 必要に応じて `reader.RecognitionOptions.RotateImage = true` を有効にする | + +## 次に学ぶべきことは? + +以下のチュートリアルは、本ガイドで示したテクニックを基にした、密接に関連するトピックを取り上げています。各リソースには、ステップバイステップの解説と完全な動作コード例が含まれており、追加の API 機能を習得したり、独自プロジェクトで代替実装アプローチを探求したりするのに役立ちます。 + +- [How to Read DataMatrix Barcodes with Aspose.BarCode for .NET](/barcode/english/net/datamatrix-barcode-reading/) +- [Read DataMatrix barcode C# – Generate DataMatrix Mode (Auto)](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-auto/) +- [Read Barcode from Image – Mastering Barcode Region Extraction in Java with Aspose.BarCode](/barcode/english/java/advanced-settings-and-optimization/extracting-barcode-region-information/) + +{{< /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/net/compact-pdf417-encoding/_index.md b/barcode/korean/net/compact-pdf417-encoding/_index.md index 0ecfa04d3..061dfdc4c 100644 --- a/barcode/korean/net/compact-pdf417-encoding/_index.md +++ b/barcode/korean/net/compact-pdf417-encoding/_index.md @@ -86,6 +86,16 @@ Aspose.BarCode는 `Pdf417ErrorCorrectionLevel` 속성(0‑8)을 설정할 수 ### [Compact PDF417 바코드 만들기](./compact-pdf417-basic-configuration/) Aspose.BarCode for .NET를 사용해 Compact PDF417 바코드를 생성하는 방법을 배웁니다. 단계별 지침과 코드 예제가 포함된 포괄적인 가이드입니다. +### [C#에서 PDF417 바코드 만들기 – 단계별 가이드](./create-pdf417-barcode-in-c-step-by-step-guide/) + +### [C#에서 PDF417 바코드 생성 – Aspose.BarCode 완전 가이드](./generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/) +Aspose.BarCode for .NET를 사용해 C#에서 PDF417 바코드를 만드는 전체 단계별 안내입니다. + +### [바코드를 이미지로 저장하는 방법 – 완전 C# 가이드](./how-to-save-barcode-as-an-image-complete-c-guide/) +Aspose.BarCode for .NET를 사용해 바코드를 이미지 파일로 저장하는 전체 단계별 안내. + +### [C#에서 PDF417 바코드 읽기 – 바코드 리더 예제](./read-pdf417-barcode-in-c-barcode-reader-example/) + ## 자주 묻는 질문 **Q: Compact PDF417 바코드에 저장할 수 있는 최대 데이터 양은?** @@ -114,4 +124,4 @@ A: 외부 폰트가 필요하지 않으며, 라이브러리가 내부적으로 {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/korean/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md b/barcode/korean/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..79aaf9174 --- /dev/null +++ b/barcode/korean/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-08-03 +description: C#에서 PDF417 바코드를 빠르게 생성하세요. PDF417 바코드 생성 방법과 Aspose.Barcode를 사용해 바코드 + 이미지를 PNG로 저장하는 방법을 배워보세요. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create pdf417 barcode +- how to generate pdf417 barcode +- how to save barcode image +language: ko +lastmod: 2026-08-03 +og_description: Aspose.Barcode를 사용하여 C#에서 PDF417 바코드를 생성합니다. 이 가이드를 따라 PDF417 바코드를 + 생성하고 바코드 이미지를 효율적으로 저장하는 방법을 확인하세요. +og_image_alt: Screenshot of a generated compact PDF417 barcode saved as PNG +og_title: C#에서 PDF417 바코드 만들기 – 완전 코딩 튜토리얼 +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + headline: Create PDF417 barcode in C# – step‑by‑step guide + type: TechArticle +- description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + name: Create PDF417 barcode in C# – step‑by‑step guide + steps: + - name: Why this matters + text: '* **EncodeTypes.Pdf417** tells the library to use the PDF417 standard, + which supports large data payloads and error correction. * Providing Unicode + characters proves the generator handles non‑ASCII input without extra configuration.' + - name: Practical tip + text: If you need a taller barcode for limited horizontal space, increase `Columns`. + Setting `Truncate` to `true` reduces the overall height by removing quiet zones, + which is ideal for mobile screens. + - name: Expected result + text: Running the program creates `CompactPdf417.png` in the project folder. Opening + the file shows a compact PDF417 barcode that encodes the string *Åspóse.Barcóde©*. + The image can be embedded in HTML, PDF reports, or printed on labels. + - name: Verifying the output + text: 'After the program finishes, you can verify the file exists with a quick + command:' + type: HowTo +tags: +- barcode +- C# +- PDF417 +- image generation +title: C#에서 PDF417 바코드 만들기 – 단계별 가이드 +url: /ko/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#에서 PDF417 바코드 생성 – 단계별 가이드 + +.NET 애플리케이션에서 **PDF417 바코드 생성**이 필요하다면, 이 가이드는 PDF417 바코드를 생성하고 바코드 이미지를 저장하는 방법을 정확히 보여줍니다. 최종적으로 보고서, 티켓, 모바일 스캔 앱 등에 사용할 수 있는 PNG 파일을 얻게 됩니다. + +이 튜토리얼은 프로젝트 설정부터 최종 PNG 파일까지 모든 과정을 다룹니다. 별도의 외부 문서는 필요 없으며, 단계대로 따라하고 코드를 실행하면 됩니다. + +## 필요 사항 + +* .NET 6.0 SDK 또는 그 이후 버전 (코드는 .NET Framework 4.7+에서도 작동합니다) +* C#를 지원하는 Visual Studio 2022 또는 기타 IDE +* Aspose.Barcode for .NET NuGet 패키지를 설치할 수 있는 인터넷 연결 + +이 전제 조건들은 추가 설정 없이 코드를 컴파일할 수 있도록 보장합니다. + +## PDF417 바코드 생성 – 프로젝트 설정 + +1. 명령 프롬프트를 열고 새 콘솔 프로젝트를 생성합니다: + + ```bash + dotnet new console -n Pdf417Demo + cd Pdf417Demo + ``` + +2. Aspose.Barcode 라이브러리를 추가합니다: + + ```bash + dotnet add package Aspose.Barcode + ``` + +3. `Program.cs` 파일을 엽니다. 상단의 `using` 문을 통해 바코드 클래스를 사용할 수 있습니다: + + ```csharp + using System; + using Aspose.Barcode.Generation; + using Aspose.Barcode; + ``` + +이제 프로젝트가 **PDF417 바코드 생성**을 할 준비가 되었습니다. + +## Aspose.Barcode를 사용하여 PDF417 바코드 생성 방법 + +바코드 생성의 핵심은 `BarcodeGenerator` 클래스에 있습니다. 여기서 심볼(`EncodeTypes.Pdf417`)과 인코딩할 데이터를 지정합니다. + +```csharp +// Step 1: Initialise the generator with PDF417 symbology and sample text. +// The text includes Unicode characters to demonstrate full‑range support. +BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Pdf417, "Åspóse.Barcóde©"); +``` + +### 왜 중요한가 + +* **EncodeTypes.Pdf417**는 라이브러리에게 PDF417 표준을 사용하도록 지시하며, 이는 대용량 데이터와 오류 정정을 지원합니다. +* Unicode 문자를 제공하면 추가 설정 없이도 생성기가 비ASCII 입력을 처리함을 입증합니다. + +## 바코드 모양 구성 방법 + +각 모듈의 크기, 열 수, 바코드가 컴팩트(축소) 모드를 사용할지 여부를 제어할 수 있습니다. 이러한 설정은 가독성과 파일 크기에 모두 영향을 줍니다. + +```csharp +// Step 2: Set the module (X) dimension – each barcode element will be 2 pixels wide. +generator.Parameters.Barcode.XDimension.Pixels = 2; + +// Step 3: Configure PDF417‑specific options. +generator.Parameters.Barcode.Pdf417.Columns = 3; // Number of columns (affects height) +generator.Parameters.Barcode.Pdf417.Truncate = true; // Enable compact mode +``` + +### 실용적인 팁 + +수평 공간이 제한되어 높이가 더 필요한 경우 `Columns` 값을 늘립니다. `Truncate`를 `true`로 설정하면 정지 구역을 제거해 전체 높이가 감소하므로 모바일 화면에 적합합니다. + +## 바코드 이미지를 PNG로 저장하는 방법 + +생성기 설정 후, 파일 경로와 원하는 이미지 형식을 지정해 `Save`를 호출합니다. 이 메서드는 이미지를 바로 디스크에 저장합니다. + +```csharp +// Step 4: Save the generated barcode as a PNG image. +string outputPath = @"./CompactPdf417.png"; +generator.Save(outputPath, BarCodeImageFormat.Png); +Console.WriteLine($"Barcode saved to {outputPath}"); +``` + +### 예상 결과 + +프로그램을 실행하면 프로젝트 폴더에 `CompactPdf417.png` 파일이 생성됩니다. 파일을 열면 문자열 *Åspóse.Barcóde©*를 인코딩한 컴팩트 PDF417 바코드가 표시됩니다. 이 이미지는 HTML, PDF 보고서에 삽입하거나 라벨에 인쇄할 수 있습니다. + +## 전체 소스 코드 + +아래는 완전하고 실행 가능한 프로그램입니다. `Program.cs`에 복사하고 `dotnet run`을 실행하십시오. + +```csharp +using System; +using Aspose.Barcode.Generation; +using Aspose.Barcode; + +namespace Pdf417Demo +{ + class Program + { + static void Main() + { + // Initialise the generator with PDF417 symbology and sample text. + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.Pdf417, + "Åspóse.Barcóde©"); + + // Set the module width to 2 pixels. + generator.Parameters.Barcode.XDimension.Pixels = 2; + + // Configure PDF417‑specific options. + generator.Parameters.Barcode.Pdf417.Columns = 3; + generator.Parameters.Barcode.Pdf417.Truncate = true; + + // Define the output file path. + string outputPath = @"./CompactPdf417.png"; + + // Save the barcode as a PNG image. + generator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"Barcode saved to {outputPath}"); + } + } +} +``` + +### 출력 확인 + +프로그램이 종료된 후, 간단한 명령으로 파일 존재 여부를 확인할 수 있습니다: + +```bash +dotnet run && ls -l CompactPdf417.png +``` + +파일이 존재한다면 **PDF417 바코드 생성** 과정이 성공한 것입니다. + +## 일반적인 변형 및 엣지 케이스 + +| 상황 | 조정 | +|-----------|------------| +| **데이터 문자열이 더 길 경우** | 더 많은 코드워드를 수용하도록 `Columns`를 늘리거나 `Rows`를 설정합니다. | +| **다른 이미지 형식** | `BarCodeImageFormat.Png`를 `Jpeg`, `Bmp`, 또는 `Gif`로 교체합니다. | +| **해상도 높게** | `Save` 호출 전에 `generator.Parameters.ImageResolution`을 설정합니다. | +| **배경 색상** | `generator.Parameters.Barcode.ImageBackgroundColor = Color.White;` 를 사용합니다. | +| **예외 처리** | I/O 오류를 포착하기 위해 `generator.Save`를 `try/catch` 블록으로 감쌉니다. | + +이러한 변형을 통해 특정 디바이스나 브랜드 요구에 맞게 바코드를 맞춤 설정할 수 있습니다. + +## 결론 + +이제 Aspose.Barcode를 사용해 C#에서 **PDF417 바코드 생성**, 모양 구성, 그리고 PNG 파일로 **바코드 이미지 저장**하는 방법을 알게 되었습니다. 전체 예제는 프로젝트 설정부터 검증까지 필요한 모든 단계를 보여주므로, 어떤 .NET 솔루션에도 바코드 생성을 통합할 수 있습니다. + +다음으로 **QR 코드 생성 방법**, **PDF 문서에 바코드 삽입**, **바코드 색상 맞춤**과 같은 관련 주제를 탐색해 보세요. 이들 모두 동일한 generator API를 기반으로 하며, 최소한의 노력으로 애플리케이션의 스캔 기능을 확장할 수 있습니다. 즐거운 코딩 되세요! + +## 다음에 배워야 할 내용은? + +다음 튜토리얼들은 이 가이드에서 시연한 기술을 기반으로 하는 밀접한 관련 주제를 다룹니다. 각 자료는 단계별 설명과 함께 완전한 동작 코드 예제를 제공하여 추가 API 기능을 마스터하고 프로젝트에서 대체 구현 방식을 탐색하도록 돕습니다. + +- [바코드 생성 – Compact PDF417 with Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [DataMatrix 바코드 (ECC 200) 생성 with Aspose.BarCode for .NET](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-ecc-200-configuration/) +- [맞춤 종횡비를 사용한 Aztec 바코드 생성 with Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) + +{{< /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/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md b/barcode/korean/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md new file mode 100644 index 000000000..b3ad608cb --- /dev/null +++ b/barcode/korean/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md @@ -0,0 +1,242 @@ +--- +category: general +date: 2026-08-03 +description: Aspose.BarCode를 사용하여 C#에서 PDF417 바코드를 생성합니다. Macro PDF417 메타데이터를 추가하고 + PNG로 저장하는 방법을 단계별로 배웁니다. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- generate PDF417 barcode C# +- Macro PDF417 barcode +- Aspose.BarCode +- C# barcode generation +- PDF417 metadata +- barcode image PNG +language: ko +lastmod: 2026-08-03 +og_description: Aspose.BarCode를 사용하여 C#에서 PDF417 바코드를 생성합니다. 이 튜토리얼에서는 매크로 PDF417 + 메타데이터를 삽입하고 결과를 PNG 이미지로 내보내는 방법을 보여줍니다. +og_image_alt: Screenshot of a generated PDF417 barcode created with C# +og_title: PDF417 바코드 생성 C# – 단계별 Aspose.BarCode 튜토리얼 +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + headline: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + type: TechArticle +- description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + name: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + steps: + - name: Create a Macro PDF417 barcode generator + text: First, instantiate `BarcodeGenerator` with the `EncodeTypes.MacroPdf417` + enum. The constructor also accepts the text you want to encode – in this example + we use a string that contains Unicode characters to demonstrate full‑width support. + - name: Adjust basic barcode appearance + text: Next, define the visual size of the barcode. `XDimension.Pixels` controls + the width of a single module (the smallest black/white square), while `Pdf417.Columns` + influences the overall shape by setting the number of columns. + - name: Populate Macro PDF417 metadata + text: Macro PDF417 allows you to embed file‑level information that many back‑office + systems rely on (e.g., file ID, segment ID, timestamp). The following properties + illustrate the most common fields. + - name: Save the barcode image as PNG + text: Finally, call `Save` to write the barcode to disk. PNG is lossless, making + it ideal for high‑quality scanning. + - name: How to verify the result + text: 1. Open `ExtPDF417Meta.png` in any image viewer. 2. Use a PDF417 scanner + app (e.g., *Zebra Scanner* or *BarCode Reader* on Android/iOS). 3. Confirm that + the decoded payload includes the original text and a JSON‑like block with the + macro fields you set. + - name: Next steps + text: '- Experiment with other barcode formats (e.g., QR, Code128) by changing + `EncodeTypes`. - Explore `Pdf417.ErrorCorrectionLevel` to improve scan reliability + under poor lighting. - Integrate the generated image into a PDF report using + Aspose.PDF for end‑to‑end document automation.' + type: HowTo +tags: +- PDF417 +- C# +- Barcode +title: C#에서 PDF417 바코드 생성 – Aspose.BarCode를 활용한 완전 가이드 +url: /ko/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PDF417 바코드 C# 생성 – 완전 가이드 + +물류 또는 문서 관리 시스템을 위해 **PDF417 바코드 C# 생성**이 필요하다면, 이 튜토리얼에서는 Aspose.BarCode를 사용하여 정확히 어떻게 수행하는지 보여드립니다. 바코드 설정 방법, Macro PDF417 메타데이터 삽입 방법, 그리고 몇 줄의 코드만으로 결과를 PNG 이미지로 저장하는 과정을 확인할 수 있습니다. + +C#에서 PDF417 바코드를 생성할 때는 파일 식별자, 세그먼트 번호, 타임스탬프와 같은 추가 정보를 다루어야 하는 경우가 많습니다. 이 가이드는 이러한 세부 사항을 모두 다루므로 흩어져 있는 문서를 찾아볼 필요가 없습니다. 기사 끝까지 읽으면, 규격에 맞는 Macro PDF417 바코드 이미지를 바로 실행할 수 있는 프로그램을 얻게 됩니다. + +## 준비 사항 + +- .NET 6.0 이상 (코드는 .NET Framework 4.7+에서도 동작) +- Aspose.BarCode for .NET (v23.9 이상) – NuGet `Install-Package Aspose.BarCode` 로 설치 +- Visual Studio 2022 또는 Visual Studio Code와 같은 개발 환경 +- C# 문법에 대한 기본적인 이해 + +> **프로 팁:** 최신 Aspose.BarCode 버전을 사용하면 버그 수정 및 최신 PDF417 사양 지원을 받을 수 있습니다. + +## Aspose.BarCode로 PDF417 바코드 C# 생성 방법 + +전체 과정은 네 단계로 구성됩니다. 각 단계는 명확한 코드 블록으로 감싸져 있어 바로 복사·붙여넣기·실행이 가능합니다. + +### Step 1: Macro PDF417 바코드 생성기 만들기 + +먼저 `EncodeTypes.MacroPdf417` 열거형을 사용해 `BarcodeGenerator`를 인스턴스화합니다. 생성자는 인코딩할 텍스트도 받아들이며, 여기서는 전체 너비 지원을 보여주기 위해 유니코드 문자를 포함한 문자열을 사용합니다. + +```csharp +using System; +using Aspose.BarCode.Generation; + +// Create a Macro PDF417 barcode generator with the desired text +using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) +{ + // Subsequent steps go inside this using block +``` + +*왜 중요한가*: `MacroPdf417` 타입은 Aspose.BarCode에 해당 심볼을 매크로 바코드로 취급하도록 알려주며, 이를 통해 파일 수준 메타데이터를 추가로 담을 수 있습니다. 이 플래그가 없으면 이후에 설정하는 추가 필드가 무시됩니다. + +### Step 2: 기본 바코드 외형 조정 + +다음으로 바코드의 시각적 크기를 정의합니다. `XDimension.Pixels`는 단일 모듈(가장 작은 검은색/흰색 사각형)의 너비를 제어하고, `Pdf417.Columns`는 열 수를 설정해 전체 형태에 영향을 줍니다. + +```csharp + // Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol +``` + +*왜 중요한가*: 작은 `XDimension`은 해상도가 높은 이미지를 만들며, 화면에서 바코드를 스캔해야 할 때 유용합니다. 열 수를 조정하면 데이터 용량을 유지하면서 제한된 공간에 바코드를 맞출 수 있습니다. + +### Step 3: Macro PDF417 메타데이터 채우기 + +Macro PDF417는 많은 백오피스 시스템이 의존하는 파일 수준 정보를 삽입할 수 있게 해줍니다(예: 파일 ID, 세그먼트 ID, 타임스탬프). 아래 속성들은 가장 흔히 사용되는 필드를 보여줍니다. + +```csharp + // Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; +``` + +*왜 중요한가*: 각 필드는 매크로 바코드 사양의 특정 구간에 직접 매핑됩니다. 예를 들어 `MacroPdf417FileID`는 논리 파일을 고유하게 식별하고, `MacroPdf417SegmentsCount`는 스캐너에게 몇 개의 파트를 기대해야 하는지 알려줍니다. 정확한 메타데이터를 제공하면 하위 시스템이 원본 문서를 오류 없이 재구성할 수 있습니다. + +### Step 4: 바코드 이미지를 PNG로 저장 + +마지막으로 `Save` 메서드를 호출해 바코드를 디스크에 기록합니다. PNG는 손실이 없으므로 고품질 스캔에 적합합니다. + +```csharp + // Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); +} +``` + +*왜 중요한가*: `BarCodeImageFormat.Png` 열거형은 출력 파일에 설정한 정확한 픽셀 데이터를 포함하도록 보장합니다. 벡터 형식이 필요하면 `Png` 대신 `Svg` 로 교체하면 되며, Aspose.BarCode가 기본적으로 지원합니다. + +#### 예상 출력 + +전체 프로그램을 실행하면 **ExtPDF417Meta.png** 라는 파일이 생성됩니다. 이미지에는 텍스트 “Åspóse.Barcóde©”와 입력한 매크로 메타데이터가 포함된 조밀한 다중 행 PDF417 심볼이 표시됩니다. PDF417 호환 리더기로 스캔하면 원본 텍스트와 파일 ID, 세그먼트 ID, 타임스탬프 등 구조화된 데이터 블록이 반환됩니다. + +![Screenshot of generated PDF417 barcode](/images/pdf417-example.png){: .center-image alt="PDF417 바코드 C# 생성 예시 출력"} + +## 전체 소스 코드 (복사·붙여넣기 가능) + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace Pdf417MacroDemo +{ + class Program + { + static void Main() + { + // Step 1: Create a Macro PDF417 barcode generator with the desired text + using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) + { + // Step 2: Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol + + // Step 3: Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; + + // Step 4: Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); + } + + Console.WriteLine("Macro PDF417 barcode generated successfully."); + } + } +} +``` + +### 결과 확인 방법 + +1. `ExtPDF417Meta.png` 를 이미지 뷰어로 엽니다. +2. PDF417 스캐너 앱(예: *Zebra Scanner* 또는 Android/iOS 용 *BarCode Reader*)을 사용합니다. +3. 디코딩된 페이로드에 원본 텍스트와 설정한 매크로 필드가 포함된 JSON‑유사 블록이 있는지 확인합니다. + +## 자주 묻는 질문 및 엣지 케이스 처리 + +| Question | Answer | +|----------|--------| +| **Can I generate a vector image instead of PNG?** | Yes. Replace `BarCodeImageFormat.Png` with `BarCodeImageFormat.Svg`. The rest of the code stays unchanged. | +| **What if my data exceeds the default capacity?** | Increase `Pdf417.Columns` or set `Pdf417.Rows` manually. Larger values allow more codewords per segment. | +| **Is Unicode supported in the encoded text?** | Absolutely. The example uses “Åspóse.Barcóde©”. Aspose.BarCode automatically switches to UTF‑8 encoding when needed. | +| **Do I need to sign a license for Aspose.BarCode?** | For production you should apply a license to avoid the evaluation watermark. Call `License license = new License(); license.SetLicense("Aspose.BarCode.lic");` before creating the generator. | +| **How do I handle errors when saving the file?** | Wrap the `Save` call in a try/catch block and log `IOException` or `BarCodeException` for troubleshooting. | + +## 결론 + +이제 Aspose.BarCode를 사용해 **PDF417 바코드 C# 생성**, 전체 Macro PDF417 메타데이터 삽입, 고품질 PNG 이미지 내보내기를 수행하는 방법을 알게 되었습니다. 생성기 만들기, 외형 조정, 메타데이터 채우기, 이미지 저장이라는 단계는 인보이스, 배송 라벨, 혹은 풍부한 바코드 데이터가 필요한 모든 시나리오에 재사용 가능한 패턴이 됩니다. + +### 다음 단계 + +- `EncodeTypes` 를 변경해 QR, Code128 등 다른 바코드 형식도 실험해 보세요. +- `Pdf417.ErrorCorrectionLevel` 을 탐색해 조명 부족 상황에서도 스캔 신뢰성을 높이세요. +- Aspose.PDF와 연계해 생성된 이미지를 PDF 보고서에 삽입해 엔드‑투‑엔드 문서 자동화를 구현하세요. + +메타데이터 필드를 비즈니스 규칙에 맞게 수정하고, 바코드 생성이 C# 애플리케이션에 자연스럽게 녹아들도록 하세요. 즐거운 코딩 되세요! + + +## 다음에 배워야 할 내용은? + + +다음 튜토리얼들은 이 가이드에서 다룬 기술을 기반으로 하며, 관련 주제를 깊이 있게 다룹니다. 각 리소스는 단계별 설명과 완전한 코드 예제를 제공해 추가 API 기능을 마스터하고 프로젝트에 다양한 구현 방식을 적용하도록 돕습니다. + +- [바코드 만들기 – Aspose.BarCode로 Compact PDF417 생성](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [바코드 만들기 – Aspose.BarCode로 Compact PDF417 생성 (독일어)](/barcode/german/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [java barcode library – Aspose를 사용해 PDF에 바코드 추가](/barcode/english/java/barcode-basics/adding-barcode-to-pdf-document/) + +{{< /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/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md b/barcode/korean/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md new file mode 100644 index 000000000..4deba8f28 --- /dev/null +++ b/barcode/korean/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md @@ -0,0 +1,186 @@ +--- +category: general +date: 2026-08-03 +description: C#를 사용하여 바코드를 빠르게 저장하는 방법. MicroPDF417 바코드 생성, 크기 설정, 열 선택, PNG로 내보내기 + 배우기. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to save barcode +- MicroPDF417 barcode +- C# barcode generation +- barcode XDimension +- PDF417 columns +- barcode image format +language: ko +lastmod: 2026-08-03 +og_description: C#에서 바코드를 저장하는 방법 전체 예제와 함께. MicroPDF417 바코드를 생성하고, 크기를 조정하고, 열을 설정하고, + PNG로 내보내기. +og_image_alt: Screenshot showing a MicroPDF417 barcode saved as a PNG file +og_title: 바코드 저장 방법 – 단계별 C# 튜토리얼 +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: how to save barcode quickly using C#. Learn MicroPDF417 barcode generation, + set dimensions, choose columns, and export to PNG. + headline: how to save barcode as an image – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- imaging +title: 바코드를 이미지로 저장하는 방법 – 완전한 C# 가이드 +url: /ko/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 바코드 저장 방법 – 완전한 C# 가이드 + +.NET 애플리케이션에서 **how to save barcode**가 필요하다면, 이 튜토리얼에서 정확한 단계들을 보여드립니다. MicroPDF417 바코드를 생성하고, 차원을 조정하고, 열 개수를 선택한 뒤, 최종적으로 이미지를 PNG 파일로 디스크에 저장합니다. + +바코드를 생성하고 영구 저장하는 데 무거운 라이브러리가 필요하지 않습니다—Aspose.BarCode for .NET 제품군의 `BarcodeGenerator` 클래스만 있으면 됩니다. 아래 섹션에서는 각 구성 옵션을 살펴보고, 왜 중요한지 설명하며, 바로 실행할 수 있는 코드 샘플을 제공합니다. + +## Prerequisites + +- .NET 6.0 이상 (.NET Core 및 .NET Framework에서도 동작) +- Aspose.BarCode for .NET (NuGet 패키지 `Aspose.BarCode`) +- 쓰기 권한이 있는 폴더 (**how to save barcode** 단계에서 사용) + +## Step 1: Create a MicroPDF417 barcode generator + +Any **how to save barcode** workflow starts by instantiating a `BarcodeGenerator` with the desired symbology and data. MicroPDF417 is a compact version of the PDF417 matrix barcode, ideal for small labels. + +```csharp +using Aspose.BarCode.Generation; + +// Create a MicroPDF417 barcode with sample text that includes Unicode characters. +BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, // Symbology + "Åspóse.Barcóde©"); // Data to encode +``` + +**Why this matters:** +`EncodeTypes.MicroPdf417`는 라이브러리에게 MicroPDF417 알고리즘을 사용하도록 지시하며, 오류 정정 및 데이터 인코딩을 자동으로 처리합니다. Unicode 텍스트를 제공함으로써 제네레이터가 비 ASCII 문자를 올바르게 처리함을 확인할 수 있습니다. + +## Step 2: Adjust the X‑dimension (module size) + +X‑dimension은 단일 바코드 모듈(픽셀)의 너비를 정의합니다. 값이 작을수록 바코드가 촘촘해지고, 값이 클수록 스캔이 쉬워집니다. + +```csharp +// Set each module to 2 pixels wide. +barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +**Why this matters:** +`barcode XDimension`을 설정하면 바코드가 목표 라벨 크기에 맞게 조정됩니다. 이 단계를 건너뛰면 기본 크기가 모바일 화면이나 작은 인쇄물에 너무 클 수 있습니다. + +## Step 3: Choose the number of columns for the PDF417 matrix + +MicroPDF417는 1–4 열을 지원합니다. 열이 많을수록 바코드가 더 정사각형에 가깝고, 열이 적을수록 세로로 늘어납니다. + +```csharp +// Use the maximum of 4 columns for a compact, square shape. +barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; +``` + +**Why this matters:** +**PDF417 columns**를 조정하면 가독성과 공간 제약 사이의 균형을 맞출 수 있습니다. 많은 스캔 시나리오에서 4열 레이아웃이 가장 좋은 타협점을 제공합니다. + +## Step 4: Save the generated barcode as a PNG image + +이제 바코드 구성이 완료되었으니, 파일에 기록하여 “**how to save barcode**” 질문에 답할 수 있습니다. PNG는 무손실 품질을 유지하므로 선명한 스캔에 필수적입니다. + +```csharp +// Define the output path (ensure the directory exists). +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + +// Export the barcode to PNG. +barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + +Console.WriteLine($"Barcode saved to: {outputPath}"); +``` + +**Why this matters:** +`barcode image format`은 저장된 파일의 시각적 충실도를 결정합니다. PNG는 압축 아티팩트 없이 선명한 가장자리를 유지하므로 대부분의 UI 및 인쇄 워크플로에 선호됩니다. + +## Full, runnable example + +모든 코드를 합치면 복사·붙여넣기만으로 실행 가능한 독립 프로그램이 됩니다. + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // 1️⃣ Create the barcode generator. + BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, + "Åspóse.Barcóde©"); + + // 2️⃣ Adjust module size. + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; + + // 3️⃣ Set column count (1‑4 allowed). + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; + + // 4️⃣ Define output location. + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + + // 5️⃣ Save as PNG. + barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"✅ Barcode saved to: {outputPath}"); + } +} +``` + +**Expected output** + +프로그램을 실행하면 데스크톱에 `MicroPdf417.png` 파일이 생성됩니다. 파일을 열면 문자열 `Åspóse.Barcóde©`를 인코딩한 선명한 MicroPDF417 바코드가 표시됩니다. 표준 바코드 스캐너로 스캔하면 원본 텍스트가 반환됩니다. + +## Common questions and edge cases + +| Question | Answer | +|----------|--------| +| *JPEG을 PNG 대신 사용할 수 있나요?* | 예. `BarCodeImageFormat.Png`를 `BarCodeImageFormat.Jpeg`로 교체하십시오. JPEG은 파일 크기가 작지만 스캔에 영향을 줄 수 있는 압축 아티팩트를 발생시킵니다. | +| *데이터가 MicroPDF417 용량을 초과하면 어떻게 되나요?* | MicroPDF417는 최대 1 KB까지 저장할 수 있습니다. 더 큰 페이로드의 경우 전체 `EncodeTypes.Pdf417`로 전환하십시오. | +| *바코드 색상을 어떻게 변경하나요?* | `barcodeGenerator.Parameters.Barcode.BarColor`와 `BackColor`를 사용하여 `Save` 호출 전에 전경/배경 색상을 설정하십시오. | +| *X‑dimension이 정수 픽셀로 제한되나요?* | 이 속성은 `float`을 허용합니다. `1.5f`와 같은 값도 가능하지만 대부분의 프린터는 정수 픽셀 크기에서 최적의 성능을 보입니다. | + +## Pro tips for reliable **how to save barcode** implementations + +- `Save`를 호출하기 전에 `Directory.Exists`로 출력 폴더를 **검증**하여 `IOException`을 방지하십시오. +- 루프에서 다수의 바코드를 생성할 때 `barcodeGenerator.Dispose()` (**제너레이터 해제**)를 수행하여 네이티브 리소스를 해제하십시오. +- 저장 후 **실제 스캐너로 테스트**하십시오; 시각적 검사만으로는 프로덕션 배포에 충분하지 않습니다. +- 라이브러리를 **최신 상태로 유지**하십시오—새 버전의 Aspose.BarCode는 심볼로지 개선 및 버그 수정을 포함합니다. + +## Conclusion + +이제 Aspose.BarCode 라이브러리를 사용해 C#에서 **how to save barcode** 이미지를 만드는 방법을 알게 되었습니다. MicroPDF417 바코드를 생성하고, **barcode XDimension**을 설정하고, 적절한 **PDF417 columns**를 선택한 뒤 PNG와 같은 **barcode image format**으로 내보내면 완전한 프로덕션‑레디 솔루션이 완성됩니다. + +다음으로 **QR 코드용 C# 바코드 생성**, **배치 바코드 생성**, **PDF 보고서에 바코드 삽입**과 같은 관련 주제를 탐색해 보세요. 각각은 여기서 보여준 원리를 기반으로 하여 이미지 툴킷을 자신 있게 확장할 수 있게 해줍니다. + +## What Should You Learn Next? + +다음 튜토리얼은 이 가이드에서 시연한 기술을 기반으로 하는 밀접한 관련 주제를 다룹니다. 각 리소스는 단계별 설명과 완전한 작동 코드 예제를 포함하여 추가 API 기능을 마스터하고 프로젝트에서 대체 구현 방식을 탐색하도록 돕습니다. + +- [Aspose.BarCode를 사용한 DataMatrix C40으로 PNG 저장 방법](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-c40/) +- [ITF-14 바코드 커스터마이징을 위한 테두리 설정 방법](/barcode/english/net/itf-14-barcode-customization/) +- [Aspose.BarCode for .NET을 사용해 사용자 정의 종횡비로 Aztec 바코드 생성하는 방법](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) + +{{< /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/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md b/barcode/korean/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md new file mode 100644 index 000000000..850820dbe --- /dev/null +++ b/barcode/korean/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md @@ -0,0 +1,216 @@ +--- +category: general +date: 2026-08-03 +description: C# BarCodeReader를 사용하여 이미지에서 PDF417 바코드를 읽기 – 다중 바코드 읽는 방법도 보여주는 완전한 + 바코드 리더 예제. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- read PDF417 barcode +- barcode reader example +- read multiple barcodes +- read barcodes image +language: ko +lastmod: 2026-08-03 +og_description: C# BarCodeReader 예제로 PDF417 바코드를 빠르게 읽어보세요. 이 단계별 가이드를 따라 매크로 PDF417를 + 디코딩하고 이미지에서 여러 바코드를 읽어보세요. +og_image_alt: Console output of a read PDF417 barcode example in C# +og_title: C#에서 PDF417 바코드 읽기 – 완전한 바코드 리더 예제 +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + headline: Read PDF417 barcode in C# – barcode reader example + type: TechArticle +- description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + name: Read PDF417 barcode in C# – barcode reader example + steps: + - name: '**Create a new console project**' + text: '**Create a new console project**' + - name: '**Add the barcode library**' + text: '**Add the barcode library**' + - name: '**Copy the barcode image**' + text: '**Copy the barcode image**' + type: HowTo +tags: +- barcode +- PDF417 +- C# +- .NET +title: C#에서 PDF417 바코드 읽기 – 바코드 리더 예제 +url: /ko/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#에서 PDF417 바코드 읽기 – 바코드 리더 예제 + +이미지에서 PDF417 바코드 데이터를 읽어야 한다면, 이 가이드는 **BarCodeReader** 클래스를 사용하여 C#에서 수행하는 방법을 보여줍니다. 매크로 PDF417를 처리하고 하나의 이미지에서 여러 바코드를 읽을 수 있는 바코드 리더 예제를 배울 수 있습니다. + +바코드를 다룰 때는 다양한 이미지 소스, 조명 조건, 때로는 매크로 PDF417 세그먼트와 같은 복합 데이터와 마주하게 됩니다. 이 튜토리얼에서는 PDF417 바코드를 디코딩하고, 확장 필드를 추출하며, 동일한 사진에서 여러 바코드를 처리하는 데 필요한 모든 것을 다룹니다. 최종적으로 이미지 파일에서 바코드를 읽고 콘솔에 상세 정보를 출력하는 실행 가능한 콘솔 프로그램을 만들 수 있게 됩니다. + +## 필요 사항 + +시작하기 전에 다음이 준비되어 있는지 확인하세요: + +* .NET 6.0 SDK 이상이 설치되어 있음 +* `BarCodeReader`와 `DecodeType.MacroPdf417`를 제공하는 **Aspose.BarCode for .NET** NuGet 패키지 최신 버전(또는 호환 라이브러리) +* PDF417 또는 매크로 PDF417 바코드가 포함된 이미지 파일(예시에서는 `ExtPDF417Meta.png` 사용) +* Visual Studio 2022와 같은 코드 편집기 또는 IDE + +추가 서비스나 외부 API는 필요하지 않습니다. + +## 바코드 읽기를 위한 프로젝트 설정 + +1. **새 콘솔 프로젝트 생성** + + ```bash + dotnet new console -n Pdf417ReaderDemo + cd Pdf417ReaderDemo + ``` + +2. **바코드 라이브러리 추가** + + ```bash + dotnet add package Aspose.BarCode --version 23.12 + ``` + +3. **바코드 이미지 복사** + + `ExtPDF417Meta.png`(또는 PDF417 바코드가 포함된 이미지)를 프로젝트 폴더에 넣습니다. + 이 튜토리얼에서는 파일이 `YOUR_DIRECTORY/ExtPDF417Meta.png`에 있다고 가정합니다. + +프로젝트가 이제 바코드 리더 예제를 컴파일하고 실행할 준비가 되었습니다. + +## BarCodeReader로 PDF417 바코드 읽는 방법 + +솔루션의 핵심은 `using` 블록 안에서 `BarCodeReader` 인스턴스를 생성하고, `DecodeType.MacroPdf417`를 지정한 뒤, 감지된 모든 바코드를 순회하는 것입니다. 아래 코드는 `Program.cs`에 붙여넣을 수 있는 완전하고 독립적인 프로그램입니다. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.BarCodeRecognition; + +class Program +{ + static void Main() + { + // Path to the image that contains one or more PDF417 barcodes + const string imagePath = "YOUR_DIRECTORY/ExtPDF417Meta.png"; + + // Step 1: Create a BarCodeReader for a macro PDF417 image + using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.MacroPdf417)) + { + // Step 2: Read all barcodes from the image + foreach (BarCodeResult result in reader.ReadBarCodes()) + { + // Step 3: Output basic barcode information + Console.WriteLine($"CodeType: {result.CodeTypeName}"); + Console.WriteLine($"CodeText: {result.CodeText}"); + + // Step 4: Output macro PDF417 specific fields + Console.WriteLine($"Pdf417MacroFileID: {result.Extended.Pdf417.MacroPdf417FileID}"); + Console.WriteLine($"Pdf417MacroSegmentID: {result.Extended.Pdf417.MacroPdf417SegmentID}"); + Console.WriteLine($"Pdf417MacroSegmentsCount: {result.Extended.Pdf417.MacroPdf417SegmentsCount}"); + Console.WriteLine($"Pdf417MacroFileName: {result.Extended.Pdf417.MacroPdf417FileName}"); + Console.WriteLine($"Pdf417MacroChecksum: {result.Extended.Pdf417.MacroPdf417Checksum}"); + Console.WriteLine($"Pdf417MacroFileSize: {result.Extended.Pdf417.MacroPdf417FileSize}"); + Console.WriteLine($"Pdf417MacroTimeStamp: {result.Extended.Pdf417.MacroPdf417TimeStamp}"); + Console.WriteLine($"Pdf417MacroAddressee: {result.Extended.Pdf417.MacroPdf417Addressee}"); + Console.WriteLine($"Pdf417MacroSender: {result.Extended.Pdf417.MacroPdf417Sender}"); + Console.WriteLine($"MacroPdf417Terminator: {result.Extended.Pdf417.MacroPdf417Terminator}"); + Console.WriteLine(new string('-', 40)); + } + + // Pro tip: If no barcodes are found, ReadBarCodes() returns an empty collection. + // You can check reader.HasBarcodes for a quick boolean test. + if (!reader.HasBarcodes) + { + Console.WriteLine("No barcodes detected in the provided image."); + } + } + } +} +``` + +**동작 원리**: + +* `DecodeType.MacroPdf417`는 리더에게 PDF417의 매크로 확장을 찾아서 파일 ID, 세그먼트 수, 타임스탬프와 같은 추가 메타데이터를 가져오도록 지시합니다. +* `using` 문은 관리되지 않는 리소스(파일 핸들, 네이티브 디코딩 버퍼 등)가 즉시 해제되도록 보장합니다. +* `foreach` 루프는 이미지에 포함된 **모든** 바코드를 자동으로 처리하여 *여러 바코드 읽기* 요구사항을 충족합니다. + +프로그램을 실행(`dotnet run`)하면 다음과 유사한 출력이 표시됩니다: + +``` +CodeType: MacroPdf417 +CodeText: https://example.com/document.pdf +Pdf417MacroFileID: 12345 +Pdf417MacroSegmentID: 1 +Pdf417MacroSegmentsCount: 3 +Pdf417MacroFileName: document.pdf +Pdf417MacroChecksum: 0x1A2B +Pdf417MacroFileSize: 204800 +Pdf417MacroTimeStamp: 2024-07-15T10:25:00Z +Pdf417MacroAddressee: John Doe +Pdf417MacroSender: Acme Corp +MacroPdf417Terminator: True +---------------------------------------- +``` + +이미지에 PDF417 바코드가 두 개 이상 포함되어 있으면, 루프는 각 바코드마다 별도의 블록을 출력하여 하나의 사진에서 **여러 바코드 읽기**를 시연합니다. + +## 이미지에서 여러 바코드 읽기 + +동일한 `BarCodeReader` 인스턴스로 여러 종류의 바코드를 동시에 디코딩할 수 있습니다. 매크로 PDF417만이 아니라 일반 PDF417(또는 QR, Code128 등)까지 범위를 넓히려면 `DecodeType` 플래그를 조정하세요: + +```csharp +using (BarCodeReader reader = new BarCodeReader(imagePath, + DecodeType.Pdf417 | DecodeType.MacroPdf417 | DecodeType.QR | DecodeType.Code128)) +{ + // The rest of the code stays unchanged. +} +``` + +*`DecodeType`*은 비트마스크이므로 지원되는 형식을 원하는 만큼 조합할 수 있습니다. 이 유연성 덕분에 스니펫은 제품 라벨, 티켓, 신분증 등 다양한 사용 사례에 적용 가능한 **바코드 리더 예제**가 됩니다. + +## 매크로 PDF417 필드 안전하게 접근하기 + +매크로 PDF417는 풍부한 확장 속성을 제공하지만, 모든 바코드가 모든 필드를 포함하는 것은 아닙니다. 존재하지 않는 속성에 접근하면 `NullReferenceException`이 발생할 수 있습니다. 가장 안전한 방법은 각 속성을 출력하기 전에 확인하는 것입니다: + +```csharp +var macro = result.Extended?.Pdf417; +if (macro != null) +{ + Console.WriteLine($"Pdf417MacroFileID: {macro.MacroPdf417FileID ?? "N/A"}"); + // Repeat for other fields... +} +``` + +*중요 이유*: 실제 배포 환경에서는 매크로 데이터가 없는 일반 PDF417 바코드를 받을 수 있습니다. 방어적인 검사는 애플리케이션이 충돌 없이 계속 실행되도록 보장합니다. + +## 흔히 겪는 문제와 모범 사례 + +| Issue | Why it happens | Recommended fix | +|-------|----------------|-----------------| +| 이미지 경로가 잘못됨 | `BarCodeReader`가 파일을 찾지 못해 디코딩 전에 파일‑없음 예외가 발생 | `Path.Combine`을 사용하고 `File.Exists`로 파일 존재 여부 확인 | +| 저해상도 이미지 | 디코더가 바코드 경계를 찾지 못해 감지가 0개가 됨 | 신뢰할 수 있는 결과를 위해 최소 300 dpi 해상도 제공 | +| 바코드가 45° 이상 회전 | 많은 라이브러리가 수직 방향을 전제로 함 | `reader.RecognitionOptions.RotateImage = true`를 활성화 | + +## 다음에 배워야 할 내용은? + + +다음 튜토리얼은 이 가이드에서 다룬 기술을 기반으로 하는 밀접한 주제를 다룹니다. 각 리소스는 단계별 설명과 완전한 코드 예제를 포함하고 있어 추가 API 기능을 마스터하고 프로젝트에 다양한 구현 방식을 적용하는 데 도움이 됩니다. + +- [How to Read DataMatrix Barcodes with Aspose.BarCode for .NET](/barcode/english/net/datamatrix-barcode-reading/) +- [Read DataMatrix barcode C# – Generate DataMatrix Mode (Auto)](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-auto/) +- [Read Barcode from Image – Mastering Barcode Region Extraction in Java with Aspose.BarCode](/barcode/english/java/advanced-settings-and-optimization/extracting-barcode-region-information/) + +{{< /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/net/compact-pdf417-encoding/_index.md b/barcode/polish/net/compact-pdf417-encoding/_index.md index 90d161b27..e37646484 100644 --- a/barcode/polish/net/compact-pdf417-encoding/_index.md +++ b/barcode/polish/net/compact-pdf417-encoding/_index.md @@ -88,6 +88,22 @@ Poza podstawami, oto kilka praktycznych wskazówek, które usprawnią Twój prze Dowiedz się, jak generować kody Compact PDF417 przy użyciu Aspose.BarCode dla .NET. Kompleksowy przewodnik z instrukcjami krok po kroku i przykładami kodu. +### [Tworzenie kodu kreskowego PDF417 w C# – przewodnik krok po kroku](./create-pdf417-barcode-in-c-step-by-step-guide/) + +Dowiedz się, jak wygenerować kod PDF417 w C# przy użyciu Aspose.BarCode, krok po kroku. + +### [Generowanie kodu kreskowego PDF417 w C# – kompletny przewodnik z Aspose.BarCode](./generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/) + +Pełny przewodnik generowania kodu PDF417 w C# przy użyciu Aspose.BarCode, krok po kroku. + +### [Jak zapisać kod kreskowy jako obraz – kompletny przewodnik C#](./how-to-save-barcode-as-an-image-complete-c-guide/) + +Dowiedz się, jak w C# zapisać wygenerowany kod kreskowy jako plik obrazu przy użyciu Aspose.BarCode. + +### [Odczyt kodu kreskowego PDF417 w C# – przykład czytnika kodów](./read-pdf417-barcode-in-c-barcode-reader-example/) + +Przykład użycia Aspose.BarCode do odczytu kodu PDF417 w aplikacji C#. + ## Najczęściej zadawane pytania **Q:** Jaką maksymalną ilość danych mogę przechowywać w kodzie Compact PDF417? @@ -116,4 +132,4 @@ Dowiedz się, jak generować kody Compact PDF417 przy użyciu Aspose.BarCode dla {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/polish/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md b/barcode/polish/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..c6d0c69d3 --- /dev/null +++ b/barcode/polish/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md @@ -0,0 +1,226 @@ +--- +category: general +date: 2026-08-03 +description: Szybko utwórz kod kreskowy PDF417 w C#. Dowiedz się, jak generować kod + kreskowy PDF417 i jak zapisać obraz kodu jako PNG przy użyciu Aspose.Barcode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create pdf417 barcode +- how to generate pdf417 barcode +- how to save barcode image +language: pl +lastmod: 2026-08-03 +og_description: Utwórz kod kreskowy PDF417 w C# z Aspose.Barcode. Skorzystaj z tego + przewodnika, aby wygenerować kod PDF417 i dowiedzieć się, jak efektywnie zapisać + obraz kodu kreskowego. +og_image_alt: Screenshot of a generated compact PDF417 barcode saved as PNG +og_title: Stwórz kod kreskowy PDF417 w C# – kompletny poradnik programistyczny +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + headline: Create PDF417 barcode in C# – step‑by‑step guide + type: TechArticle +- description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + name: Create PDF417 barcode in C# – step‑by‑step guide + steps: + - name: Why this matters + text: '* **EncodeTypes.Pdf417** tells the library to use the PDF417 standard, + which supports large data payloads and error correction. * Providing Unicode + characters proves the generator handles non‑ASCII input without extra configuration.' + - name: Practical tip + text: If you need a taller barcode for limited horizontal space, increase `Columns`. + Setting `Truncate` to `true` reduces the overall height by removing quiet zones, + which is ideal for mobile screens. + - name: Expected result + text: Running the program creates `CompactPdf417.png` in the project folder. Opening + the file shows a compact PDF417 barcode that encodes the string *Åspóse.Barcóde©*. + The image can be embedded in HTML, PDF reports, or printed on labels. + - name: Verifying the output + text: 'After the program finishes, you can verify the file exists with a quick + command:' + type: HowTo +tags: +- barcode +- C# +- PDF417 +- image generation +title: Tworzenie kodu kreskowego PDF417 w C# – przewodnik krok po kroku +url: /pl/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tworzenie kodu kreskowego PDF417 w C# – przewodnik krok po kroku + +Jeśli potrzebujesz **utworzyć kod kreskowy PDF417** w aplikacji .NET, ten przewodnik pokaże Ci dokładnie, jak wygenerować kod PDF417 i jak zapisać jego obraz. Otrzymasz plik PNG, który można wykorzystać w raportach, biletach lub aplikacjach mobilnych do skanowania. + +Tutorial obejmuje wszystko, od konfiguracji projektu po ostateczny plik PNG. Nie jest wymagana żadna zewnętrzna dokumentacja; po prostu postępuj zgodnie z krokami i uruchom kod. + +## Czego będziesz potrzebować + +Zanim rozpoczniesz, upewnij się, że masz: + +* .NET 6.0 SDK lub nowszy (kod działa również z .NET Framework 4.7+) +* Visual Studio 2022 lub dowolne IDE obsługujące C# +* Dostęp do Internetu w celu zainstalowania pakietu NuGet **Aspose.Barcode for .NET** + +Te wymagania wstępne zapewniają, że kod skompiluje się bez dodatkowej konfiguracji. + +## Tworzenie kodu kreskowego PDF417 – konfiguracja projektu + +1. Otwórz wiersz poleceń i utwórz nowy projekt konsolowy: + + ```bash + dotnet new console -n Pdf417Demo + cd Pdf417Demo + ``` + +2. Dodaj bibliotekę Aspose.Barcode: + + ```bash + dotnet add package Aspose.Barcode + ``` + +3. Otwórz wygenerowany plik `Program.cs`. Dyrektywy `using` na początku dają dostęp do klas kodów kreskowych: + + ```csharp + using System; + using Aspose.Barcode.Generation; + using Aspose.Barcode; + ``` + +Projekt jest już gotowy do **utworzenia kodu kreskowego PDF417**. + +## Jak wygenerować kod kreskowy PDF417 przy użyciu Aspose.Barcode + +Podstawą tworzenia kodu kreskowego jest klasa `BarcodeGenerator`. Określasz symbologię (`EncodeTypes.Pdf417`) oraz dane, które chcesz zakodować. + +```csharp +// Step 1: Initialise the generator with PDF417 symbology and sample text. +// The text includes Unicode characters to demonstrate full‑range support. +BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Pdf417, "Åspóse.Barcóde©"); +``` + +### Dlaczego to ważne + +* **EncodeTypes.Pdf417** informuje bibliotekę, aby użyła standardu PDF417, który obsługuje duże ładunki danych i korekcję błędów. +* Dostarczenie znaków Unicode dowodzi, że generator radzi sobie z wejściem nie‑ASCII bez dodatkowej konfiguracji. + +## Jak skonfigurować wygląd kodu kreskowego + +Możesz kontrolować rozmiar każdego modułu, liczbę kolumn oraz to, czy kod używa trybu kompaktowego (skróconego). Ustawienia te wpływają zarówno na czytelność, jak i rozmiar pliku. + +```csharp +// Step 2: Set the module (X) dimension – each barcode element will be 2 pixels wide. +generator.Parameters.Barcode.XDimension.Pixels = 2; + +// Step 3: Configure PDF417‑specific options. +generator.Parameters.Barcode.Pdf417.Columns = 3; // Number of columns (affects height) +generator.Parameters.Barcode.Pdf417.Truncate = true; // Enable compact mode +``` + +### Praktyczna wskazówka + +Jeśli potrzebujesz wyższego kodu kreskowego przy ograniczonej przestrzeni poziomej, zwiększ `Columns`. Ustawienie `Truncate` na `true` zmniejsza całkowitą wysokość, usuwając strefy ciszy, co jest idealne dla ekranów mobilnych. + +## Jak zapisać obraz kodu kreskowego jako PNG + +Po skonfigurowaniu generatora wywołaj `Save` z ścieżką pliku i żądanym formatem obrazu. Metoda zapisuje obraz bezpośrednio na dysku. + +```csharp +// Step 4: Save the generated barcode as a PNG image. +string outputPath = @"./CompactPdf417.png"; +generator.Save(outputPath, BarCodeImageFormat.Png); +Console.WriteLine($"Barcode saved to {outputPath}"); +``` + +### Oczekiwany rezultat + +Uruchomienie programu tworzy plik `CompactPdf417.png` w folderze projektu. Otwarcie pliku pokazuje kompaktowy kod PDF417, który koduje ciąg *Åspóse.Barcóde©*. Obraz można osadzić w HTML, raportach PDF lub wydrukować na etykietach. + +## Pełny kod źródłowy + +Poniżej znajduje się kompletny, gotowy do uruchomienia program. Skopiuj go do `Program.cs` i wykonaj `dotnet run`. + +```csharp +using System; +using Aspose.Barcode.Generation; +using Aspose.Barcode; + +namespace Pdf417Demo +{ + class Program + { + static void Main() + { + // Initialise the generator with PDF417 symbology and sample text. + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.Pdf417, + "Åspóse.Barcóde©"); + + // Set the module width to 2 pixels. + generator.Parameters.Barcode.XDimension.Pixels = 2; + + // Configure PDF417‑specific options. + generator.Parameters.Barcode.Pdf417.Columns = 3; + generator.Parameters.Barcode.Pdf417.Truncate = true; + + // Define the output file path. + string outputPath = @"./CompactPdf417.png"; + + // Save the barcode as a PNG image. + generator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"Barcode saved to {outputPath}"); + } + } +} +``` + +### Weryfikacja wyniku + +Po zakończeniu programu możesz szybko sprawdzić, czy plik istnieje, używając polecenia: + +```bash +dotnet run && ls -l CompactPdf417.png +``` + +Jeśli plik się pojawi, proces **tworzenia kodu kreskowego PDF417** zakończył się sukcesem. + +## Typowe warianty i przypadki brzegowe + +| Sytuacja | Dostosowanie | +|-----------|------------| +| **Dłuższy ciąg danych** | Zwiększ `Columns` lub ustaw `Rows`, aby pomieścić więcej kodowych słów. | +| **Inny format obrazu** | Zamień `BarCodeImageFormat.Png` na `Jpeg`, `Bmp` lub `Gif`. | +| **Wyższa rozdzielczość** | Ustaw `generator.Parameters.ImageResolution` przed wywołaniem `Save`. | +| **Kolor tła** | Użyj `generator.Parameters.Barcode.ImageBackgroundColor = Color.White;` | +| **Obsługa wyjątków** | Owiń `generator.Save` w blok `try/catch`, aby przechwycić błędy I/O. | + +Te warianty pozwalają dostosować kod kreskowy do konkretnych urządzeń lub wymagań brandingowych. + +## Podsumowanie + +Teraz wiesz, jak **utworzyć kod kreskowy PDF417** w C# przy użyciu Aspose.Barcode, jak skonfigurować jego wygląd oraz **zapisać obraz kodu kreskowego** jako plik PNG. Pełny przykład demonstruje każdy niezbędny krok, od konfiguracji projektu po weryfikację, dzięki czemu możesz zintegrować generowanie kodów kreskowych z dowolnym rozwiązaniem .NET. + +Następnie rozważ zgłębienie tematów takich jak **generowanie kodów QR**, **osadzanie kodów kreskowych w dokumentach PDF** lub **personalizacja kolorów kodów kreskowych**. Wszystkie te zagadnienia opierają się na tym samym API generatora, co pozwala rozszerzyć możliwości skanowania w Twojej aplikacji przy minimalnym wysiłku. Powodzenia w kodowaniu! + +## 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 poznać alternatywne podejścia implementacyjne w własnych projektach. + +- [How to Create Barcode – Compact PDF417 with Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [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/) + +{{< /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/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md b/barcode/polish/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md new file mode 100644 index 000000000..3e63b650e --- /dev/null +++ b/barcode/polish/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md @@ -0,0 +1,240 @@ +--- +category: general +date: 2026-08-03 +description: Generuj kod kreskowy PDF417 w C# przy użyciu Aspose.BarCode. Dowiedz + się krok po kroku, jak dodać metadane Macro PDF417 i zapisać jako PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- generate PDF417 barcode C# +- Macro PDF417 barcode +- Aspose.BarCode +- C# barcode generation +- PDF417 metadata +- barcode image PNG +language: pl +lastmod: 2026-08-03 +og_description: Generuj kod kreskowy PDF417 w C# przy użyciu Aspose.BarCode. Ten samouczek + pokazuje, jak osadzić metadane Macro PDF417 i wyeksportować wynik jako obraz PNG. +og_image_alt: Screenshot of a generated PDF417 barcode created with C# +og_title: Generowanie kodu kreskowego PDF417 w C# – krok po kroku tutorial Aspose.BarCode +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + headline: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + type: TechArticle +- description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + name: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + steps: + - name: Create a Macro PDF417 barcode generator + text: First, instantiate `BarcodeGenerator` with the `EncodeTypes.MacroPdf417` + enum. The constructor also accepts the text you want to encode – in this example + we use a string that contains Unicode characters to demonstrate full‑width support. + - name: Adjust basic barcode appearance + text: Next, define the visual size of the barcode. `XDimension.Pixels` controls + the width of a single module (the smallest black/white square), while `Pdf417.Columns` + influences the overall shape by setting the number of columns. + - name: Populate Macro PDF417 metadata + text: Macro PDF417 allows you to embed file‑level information that many back‑office + systems rely on (e.g., file ID, segment ID, timestamp). The following properties + illustrate the most common fields. + - name: Save the barcode image as PNG + text: Finally, call `Save` to write the barcode to disk. PNG is lossless, making + it ideal for high‑quality scanning. + - name: How to verify the result + text: 1. Open `ExtPDF417Meta.png` in any image viewer. 2. Use a PDF417 scanner + app (e.g., *Zebra Scanner* or *BarCode Reader* on Android/iOS). 3. Confirm that + the decoded payload includes the original text and a JSON‑like block with the + macro fields you set. + - name: Next steps + text: '- Experiment with other barcode formats (e.g., QR, Code128) by changing + `EncodeTypes`. - Explore `Pdf417.ErrorCorrectionLevel` to improve scan reliability + under poor lighting. - Integrate the generated image into a PDF report using + Aspose.PDF for end‑to‑end document automation.' + type: HowTo +tags: +- PDF417 +- C# +- Barcode +title: Generowanie kodu kreskowego PDF417 w C# – kompletny przewodnik z Aspose.BarCode +url: /pl/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Generowanie kodu kreskowego PDF417 w C# – kompletny przewodnik + +Jeśli potrzebujesz **generować kod kreskowy PDF417 w C#** dla systemu logistycznego lub zarządzania dokumentami, ten samouczek pokaże Ci dokładnie, jak to zrobić przy użyciu Aspose.BarCode. Zobaczysz, jak skonfigurować kod kreskowy, osadzić metadane Macro PDF417 i zapisać wynik jako obraz PNG w zaledwie kilku linijkach kodu. + +Generowanie kodu kreskowego PDF417 w C# często oznacza obsługę dodatkowych informacji, takich jak identyfikatory plików, numery segmentów czy znaczniki czasu. Ten przewodnik obejmuje te szczegóły, więc nie musisz przeszukiwać rozproszonej dokumentacji. Po przeczytaniu artykułu będziesz mieć gotowy do uruchomienia program, który tworzy zgodny obraz kodu Macro PDF417. + +## Czego będziesz potrzebować + +- .NET 6.0 lub nowszy (kod działa również z .NET Framework 4.7+) +- Aspose.BarCode for .NET (v23.9 lub nowszy) – zainstaluj przez NuGet `Install-Package Aspose.BarCode` +- Środowisko programistyczne, takie jak Visual Studio 2022 lub Visual Studio Code +- Podstawowa znajomość składni C# + +> **Pro tip:** Użyj najnowszej wersji Aspose.BarCode, aby skorzystać z poprawek błędów i wsparcia najnowszych specyfikacji PDF417. + +## Jak generować kod kreskowy PDF417 w C# przy użyciu Aspose.BarCode + +Proces składa się z czterech logicznych kroków. Każdy krok jest zamknięty w przejrzystym bloku kodu, abyś mógł go od razu skopiować, wkleić i uruchomić. + +### Krok 1: Utwórz generator kodu kreskowego Macro PDF417 + +Najpierw utwórz instancję `BarcodeGenerator` z wyliczeniem `EncodeTypes.MacroPdf417`. Konstruktor przyjmuje także tekst, który chcesz zakodować – w tym przykładzie używamy łańcucha zawierającego znaki Unicode, aby pokazać obsługę pełnej szerokości. + +```csharp +using System; +using Aspose.BarCode.Generation; + +// Create a Macro PDF417 barcode generator with the desired text +using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) +{ + // Subsequent steps go inside this using block +``` + +*Dlaczego to ważne*: Typ `MacroPdf417` informuje Aspose.BarCode, że symbol ma być traktowany jako kod makro, który może zawierać dodatkowe metadane na poziomie pliku. Bez tego flagi pola ustawione później zostaną zignorowane. + +### Krok 2: Dostosuj podstawowy wygląd kodu kreskowego + +Następnie określ wizualny rozmiar kodu kreskowego. `XDimension.Pixels` kontroluje szerokość pojedynczego modułu (najmniejszego czarno‑białego kwadratu), natomiast `Pdf417.Columns` wpływa na ogólny kształt, ustawiając liczbę kolumn. + +```csharp + // Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol +``` + +*Dlaczego to ważne*: Mniejszy `XDimension` daje obraz o wyższej rozdzielczości, co jest przydatne, gdy kod ma być skanowany z ekranu. Zmiana liczby kolumn może pomóc dopasować kod do ograniczonej przestrzeni bez utraty pojemności danych. + +### Krok 3: Wypełnij metadane Macro PDF417 + +Macro PDF417 pozwala osadzić informacje na poziomie pliku, na których opiera się wiele systemów back‑office (np. ID pliku, ID segmentu, znacznik czasu). Poniższe właściwości ilustrują najczęściej używane pola. + +```csharp + // Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; +``` + +*Dlaczego to ważne*: Każde pole mapuje się bezpośrednio na segment specyfikacji kodu makro. Na przykład `MacroPdf417FileID` jednoznacznie identyfikuje logiczny plik, a `MacroPdf417SegmentsCount` informuje skaner, ile części ma się spodziewać. Dostarczenie dokładnych metadanych zapewnia, że systemy downstream mogą odtworzyć oryginalny dokument bez błędów. + +### Krok 4: Zapisz obraz kodu kreskowego jako PNG + +Na koniec wywołaj `Save`, aby zapisać kod na dysku. PNG jest bezstratny, co czyni go idealnym do skanowania wysokiej jakości. + +```csharp + // Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); +} +``` + +*Dlaczego to ważne*: Wyliczenie `BarCodeImageFormat.Png` gwarantuje, że plik wyjściowy zawiera dokładnie takie same dane pikselowe, jakie skonfigurowałeś. Jeśli potrzebny jest format wektorowy do skalowania, zamień `Png` na `Svg` – Aspose.BarCode obsługuje to od razu. + +#### Oczekiwany wynik + +Uruchomienie pełnego programu tworzy plik o nazwie **ExtPDF417Meta.png**. Obraz przedstawia gęsty, wielowierszowy symbol PDF417, który zawiera tekst „Åspóse.Barcóde©” oraz makro‑metadane, które podałeś. Skanowanie kodu przy użyciu czytnika kompatybilnego z PDF417 zwraca oryginalny tekst oraz blok danych w formacie podobnym do JSON, zawierający ID pliku, ID segmentu, znacznik czasu i inne pola. + +![Zrzut ekranu wygenerowanego kodu kreskowego PDF417](/images/pdf417-example.png){: .center-image alt="przykładowy wynik generowania kodu kreskowego PDF417 w C#"} + +## Pełny kod źródłowy (gotowy do kopiowania i wklejania) + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace Pdf417MacroDemo +{ + class Program + { + static void Main() + { + // Step 1: Create a Macro PDF417 barcode generator with the desired text + using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) + { + // Step 2: Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol + + // Step 3: Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; + + // Step 4: Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); + } + + Console.WriteLine("Macro PDF417 barcode generated successfully."); + } + } +} +``` + +### Jak zweryfikować wynik + +1. Otwórz `ExtPDF417Meta.png` w dowolnym przeglądarce obrazów. +2. Użyj aplikacji skanującej PDF417 (np. *Zebra Scanner* lub *BarCode Reader* na Androidzie/iOS). +3. Potwierdź, że odkodowana zawartość obejmuje oryginalny tekst oraz blok danych w stylu JSON z makro‑polami, które ustawiłeś. + +## Częste pytania i obsługa przypadków brzegowych + +| Pytanie | Odpowiedź | +|----------|--------| +| **Czy mogę wygenerować obraz wektorowy zamiast PNG?** | Tak. Zamień `BarCodeImageFormat.Png` na `BarCodeImageFormat.Svg`. Reszta kodu pozostaje niezmieniona. | +| **Co zrobić, gdy moje dane przekraczają domyślną pojemność?** | Zwiększ `Pdf417.Columns` lub ręcznie ustaw `Pdf417.Rows`. Większe wartości pozwalają na więcej kodowych słów w segmencie. | +| **Czy Unicode jest obsługiwany w zakodowanym tekście?** | Oczywiście. Przykład używa „Åspóse.Barcóde©”. Aspose.BarCode automatycznie przełącza się na kodowanie UTF‑8 w razie potrzeby. | +| **Czy muszę podpisać licencję dla Aspose.BarCode?** | W produkcji powinieneś zastosować licencję, aby uniknąć znaku wodnego wersji ewaluacyjnej. Wywołaj `License license = new License(); license.SetLicense("Aspose.BarCode.lic");` przed utworzeniem generatora. | +| **Jak obsłużyć błędy przy zapisywaniu pliku?** | Otocz wywołanie `Save` w bloku try/catch i loguj `IOException` lub `BarCodeException` w celu diagnostyki. | + +## Podsumowanie + +Teraz wiesz, jak **generować kod kreskowy PDF417 w C#** przy użyciu Aspose.BarCode, osadzać pełne metadane Macro PDF417 i eksportować wynik jako wysokiej jakości obraz PNG. Kroki – tworzenie generatora, dostosowanie wyglądu, wypełnianie metadanych i zapisywanie obrazu – tworzą wzorzec, który możesz ponownie wykorzystać przy fakturach, etykietach wysyłkowych lub w każdej sytuacji wymagającej bogatych danych w kodzie kreskowym. + +### Kolejne kroki + +- Eksperymentuj z innymi formatami kodów kreskowych (np. QR, Code128), zmieniając `EncodeTypes`. +- Zbadaj `Pdf417.ErrorCorrectionLevel`, aby poprawić niezawodność skanowania przy słabym oświetleniu. +- Zintegruj wygenerowany obraz z raportem PDF przy użyciu Aspose.PDF, aby uzyskać pełną automatyzację dokumentów od początku do końca. + +Śmiało modyfikuj pola metadanych, aby dopasować je do reguł biznesowych, i niech generowanie kodów kreskowych stanie się płynną częścią Twoich aplikacji C#. Szczęśliwego kodowania! + +## Co powinieneś się nauczyć 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 wraz z wyjaśnieniami krok po kroku, aby pomóc Ci opanować dodatkowe funkcje API i odkrywać alternatywne podejścia w własnych projektach. + +- [Jak utworzyć kod kreskowy – Compact PDF417 z Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [Jak utworzyć kod kreskowy – Kompaktowy PDF417 z Aspose.BarCode](/barcode/german/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [biblioteka kodów kreskowych Java – Dodaj kod kreskowy do PDF przy użyciu Aspose](/barcode/english/java/barcode-basics/adding-barcode-to-pdf-document/) + +{{< /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/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md b/barcode/polish/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md new file mode 100644 index 000000000..2244977a3 --- /dev/null +++ b/barcode/polish/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md @@ -0,0 +1,186 @@ +--- +category: general +date: 2026-08-03 +description: jak szybko zapisać kod kreskowy przy użyciu C#. Poznaj generowanie kodu + MicroPDF417, ustaw wymiary, wybierz kolumny i wyeksportuj do PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to save barcode +- MicroPDF417 barcode +- C# barcode generation +- barcode XDimension +- PDF417 columns +- barcode image format +language: pl +lastmod: 2026-08-03 +og_description: jak zapisać kod kreskowy w C# z pełnym przykładem. Wygeneruj kod MicroPDF417, + dostosuj rozmiar, ustaw kolumny i wyeksportuj do PNG. +og_image_alt: Screenshot showing a MicroPDF417 barcode saved as a PNG file +og_title: Jak zapisać kod kreskowy – krok po kroku tutorial C# +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: how to save barcode quickly using C#. Learn MicroPDF417 barcode generation, + set dimensions, choose columns, and export to PNG. + headline: how to save barcode as an image – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- imaging +title: Jak zapisać kod kreskowy jako obraz – kompletny przewodnik C# +url: /pl/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# jak zapisać kod kreskowy – kompletny przewodnik C# + +Jeśli potrzebujesz **jak zapisać kod kreskowy** w aplikacji .NET, ten tutorial pokaże Ci dokładne kroki. Wygenerujesz kod kreskowy MicroPDF417, dostosujesz jego wymiary, wybierzesz liczbę kolumn, a na końcu zapiszesz obraz na dysku jako plik PNG. + +Tworzenie i przechowywanie kodów kreskowych nie wymaga ciężkiej biblioteki — wystarczy klasa `BarcodeGenerator` z pakietu Aspose.BarCode for .NET. W poniższych sekcjach przeprowadzimy Cię przez każdą opcję konfiguracji, wyjaśnimy, dlaczego jest ważna, i dostarczymy gotowy do uruchomienia przykład kodu. + +## Wymagania wstępne + +- .NET 6.0 lub nowszy (API działa z .NET Core i .NET Framework) +- Aspose.BarCode for .NET (pakiet NuGet `Aspose.BarCode`) +- Folder, do którego masz uprawnienia zapisu (używany w kroku **jak zapisać kod kreskowy**) + +## Krok 1: Utwórz generator kodu kreskowego MicroPDF417 + +Pierwszym zadaniem w każdym procesie **jak zapisać kod kreskowy** jest utworzenie instancji `BarcodeGenerator` z żądaną symbologią i danymi. MicroPDF417 to kompaktowa wersja macierzowego kodu PDF417, idealna dla małych etykiet. + +```csharp +using Aspose.BarCode.Generation; + +// Create a MicroPDF417 barcode with sample text that includes Unicode characters. +BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, // Symbology + "Åspóse.Barcóde©"); // Data to encode +``` + +**Dlaczego to jest ważne:** +`EncodeTypes.MicroPdf417` informuje bibliotekę, aby użyła algorytmu MicroPDF417, który automatycznie obsługuje korekcję błędów i kodowanie danych. Dostarczenie tekstu Unicode pokazuje, że generator poprawnie przetwarza znaki spoza ASCII. + +## Krok 2: Dostosuj wymiar X (rozmiar modułu) + +Wymiar X określa szerokość pojedynczego modułu kodu kreskowego (piksel). Mniejsza wartość daje bardziej zwarty kod, natomiast większa ułatwia skanowanie. + +```csharp +// Set each module to 2 pixels wide. +barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +**Dlaczego to jest ważne:** +Ustawienie `barcode XDimension` zapewnia, że kod kreskowy pasuje do rozmiaru docelowej etykiety. Jeśli pominiesz ten krok, domyślny rozmiar może być zbyt duży dla ekranów mobilnych lub małych wydruków. + +## Krok 3: Wybierz liczbę kolumn dla macierzy PDF417 + +MicroPDF417 obsługuje 1–4 kolumny. Więcej kolumn daje bardziej kwadratowy kod, mniej kolumn rozciąga go w pionie. + +```csharp +// Use the maximum of 4 columns for a compact, square shape. +barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; +``` + +**Dlaczego to jest ważne:** +Dostosowanie **kolumn PDF417** pozwala zrównoważyć czytelność z ograniczeniami przestrzennymi. W wielu scenariuszach skanowania układ 4‑kolumnowy oferuje najlepszy kompromis. + +## Krok 4: Zapisz wygenerowany kod kreskowy jako obraz PNG + +Teraz, gdy kod kreskowy jest skonfigurowany, możesz w końcu odpowiedzieć na pytanie „**jak zapisać kod kreskowy**” zapisując go do pliku. PNG zachowuje jakość bezstratną, co jest niezbędne do wyraźnego skanowania. + +```csharp +// Define the output path (ensure the directory exists). +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + +// Export the barcode to PNG. +barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + +Console.WriteLine($"Barcode saved to: {outputPath}"); +``` + +**Dlaczego to jest ważne:** +`barcode image format` określa wizualną wierność zapisanego pliku. PNG jest preferowany w większości interfejsów użytkownika i procesów drukowania, ponieważ zachowuje ostre krawędzie bez artefaktów kompresji. + +## Pełny, gotowy do uruchomienia przykład + +Połączenie wszystkiego razem daje Ci samodzielny program, który możesz skopiować, wkleić i uruchomić. + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // 1️⃣ Create the barcode generator. + BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, + "Åspóse.Barcóde©"); + + // 2️⃣ Adjust module size. + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; + + // 3️⃣ Set column count (1‑4 allowed). + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; + + // 4️⃣ Define output location. + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + + // 5️⃣ Save as PNG. + barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"✅ Barcode saved to: {outputPath}"); + } +} +``` + +**Oczekiwany wynik** + +Uruchomienie programu tworzy `MicroPdf417.png` na pulpicie. Otwarcie pliku pokazuje wyraźny kod MicroPDF417, który koduje ciąg `Åspóse.Barcóde©`. Zeskanowanie go dowolnym standardowym skanerem kodów kreskowych zwraca oryginalny tekst. + +## Częste pytania i przypadki brzegowe + +| Question | Answer | +|----------|--------| +| *Czy mogę użyć JPEG zamiast PNG?* | Tak. Zastąp `BarCodeImageFormat.Png` przez `BarCodeImageFormat.Jpeg`. JPEG jest mniejszy, ale wprowadza artefakty kompresji, które mogą wpływać na skanowanie. | +| *Co jeśli moje dane przekraczają pojemność MicroPDF417?* | MicroPDF417 może przechowywać do 1 KB danych. Dla większych ładunków przełącz się na pełny `EncodeTypes.Pdf417`. | +| *Jak zmienić kolor kodu kreskowego?* | Użyj `barcodeGenerator.Parameters.Barcode.BarColor` oraz `BackColor`, aby ustawić kolory pierwszego planu/tła przed wywołaniem `Save`. | +| *Czy wymiar X jest ograniczony do całkowitych pikseli?* | Właściwość przyjmuje `float`. Wartości takie jak `1.5f` są dozwolone, ale większość drukarek najlepiej działa przy rozmiarach całkowitych pikseli. | + +## Profesjonalne wskazówki dla niezawodnych implementacji **jak zapisać kod kreskowy** + +- **Sprawdź folder wyjściowy** przy użyciu `Directory.Exists` przed wywołaniem `Save`, aby uniknąć `IOException`. +- **Zwolnij generator** (`barcodeGenerator.Dispose()`), gdy generujesz wiele kodów kreskowych w pętli, aby zwolnić zasoby natywne. +- **Testuj rzeczywistymi skanerami** po zapisaniu; wizualna inspekcja nie wystarczy w środowiskach produkcyjnych. +- **Utrzymuj bibliotekę w najnowszej wersji** — nowsze wydania Aspose.BarCode dodają ulepszenia symbologii i poprawki błędów. + +## Zakończenie + +Teraz wiesz, **jak zapisać kod kreskowy** jako obrazy w C# przy użyciu biblioteki Aspose.BarCode. Tworząc kod MicroPDF417, konfigurując **barcode XDimension**, wybierając odpowiednie **kolumny PDF417** i eksportując do **formatu obrazu kodu kreskowego** takiego jak PNG, masz kompletną, gotową do produkcji rozwiązanie. + +Następnie, zapoznaj się z powiązanymi tematami, takimi jak **generowanie kodów kreskowych QR w C#**, **tworzenie kodów kreskowych w partiach**, lub **osadzanie kodów kreskowych w raportach PDF**. Każdy z nich opiera się na tych samych zasadach przedstawionych tutaj, pozwalając Ci pewnie rozbudować zestaw narzędzi do obrazowania. + +## 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 odkrywać alternatywne podejścia implementacyjne w własnych projektach. + +- [Jak zapisać PNG przy użyciu DataMatrix C40 z Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-c40/) +- [Jak ustawić obramowanie dla dostosowania kodu kreskowego ITF-14](/barcode/english/net/itf-14-barcode-customization/) +- [Jak wygenerować kod Aztec z niestandardowym współczynnikiem proporcji przy użyciu Aspose.BarCode dla .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) + +{{< /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/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md b/barcode/polish/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md new file mode 100644 index 000000000..498cfd578 --- /dev/null +++ b/barcode/polish/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md @@ -0,0 +1,217 @@ +--- +category: general +date: 2026-08-03 +description: Odczytaj kod kreskowy PDF417 z obrazu przy użyciu C# BarCodeReader – + kompletny przykład czytnika kodów kreskowych, który również pokazuje, jak odczytać + wiele kodów kreskowych. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- read PDF417 barcode +- barcode reader example +- read multiple barcodes +- read barcodes image +language: pl +lastmod: 2026-08-03 +og_description: Szybko odczytaj kod kreskowy PDF417 przy użyciu przykładu C# BarCodeReader. + Postępuj zgodnie z tym przewodnikiem krok po kroku, aby zdekodować macro PDF417 + i odczytać wiele kodów kreskowych z obrazu. +og_image_alt: Console output of a read PDF417 barcode example in C# +og_title: Odczytaj kod kreskowy PDF417 w C# – kompletny przykład czytnika kodów +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + headline: Read PDF417 barcode in C# – barcode reader example + type: TechArticle +- description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + name: Read PDF417 barcode in C# – barcode reader example + steps: + - name: '**Create a new console project**' + text: '**Create a new console project**' + - name: '**Add the barcode library**' + text: '**Add the barcode library**' + - name: '**Copy the barcode image**' + text: '**Copy the barcode image**' + type: HowTo +tags: +- barcode +- PDF417 +- C# +- .NET +title: Odczyt kodu PDF417 w C# – przykład czytnika kodów +url: /pl/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Odczyt kodu kreskowego PDF417 w C# – przykład czytnika kodów kreskowych + +Jeśli potrzebujesz odczytać dane z kodu kreskowego PDF417 z obrazu, ten przewodnik pokaże Ci, jak zrobić to przy użyciu klasy **BarCodeReader** w C#. Poznasz przykład czytnika kodów kreskowych, który obsługuje także macro PDF417 i potrafi odczytać wiele kodów w jednym obrazie. + +Praca z kodami kreskowymi często oznacza radzenie sobie z różnymi źródłami obrazów, zmiennymi warunkami oświetleniowymi oraz czasami złożonymi danymi, takimi jak segmenty macro PDF417. Ten tutorial obejmuje wszystko, co jest potrzebne do dekodowania kodu PDF417, wyodrębniania jego rozszerzonych pól i przetwarzania kilku kodów z tego samego zdjęcia. Po zakończeniu będziesz mieć działający program konsolowy, który odczytuje kody kreskowe z pliku obrazu i wypisuje szczegółowe informacje w konsoli. + +## Czego będziesz potrzebować + +Zanim rozpoczniesz, upewnij się, że masz: + +* .NET 6.0 SDK lub nowszy zainstalowany +* Aktualną wersję pakietu NuGet **Aspose.BarCode for .NET** (lub dowolną kompatybilną bibliotekę, która udostępnia `BarCodeReader` i `DecodeType.MacroPdf417`) +* Plik obrazu zawierający kod PDF417 lub macro PDF417 (przykład używa `ExtPDF417Meta.png`) +* Edytor kodu lub IDE, np. Visual Studio 2022 + +Nie są wymagane dodatkowe usługi ani zewnętrzne API. + +## Konfiguracja projektu do odczytu kodów kreskowych + +1. **Utwórz nowy projekt konsolowy** + + ```bash + dotnet new console -n Pdf417ReaderDemo + cd Pdf417ReaderDemo + ``` + +2. **Dodaj bibliotekę kodów kreskowych** + + ```bash + dotnet add package Aspose.BarCode --version 23.12 + ``` + +3. **Skopiuj obraz kodu kreskowego** + + Umieść `ExtPDF417Meta.png` (lub dowolny obraz zawierający kod PDF417) w folderze projektu. + W tym tutorialu zakładamy, że plik znajduje się w `YOUR_DIRECTORY/ExtPDF417Meta.png`. + +Projekt jest już gotowy do kompilacji i uruchomienia przykładu czytnika kodów kreskowych. + +## Jak odczytać kod PDF417 przy użyciu BarCodeReader + +Sednem rozwiązania jest blok `using`, który tworzy instancję `BarCodeReader`, określa `DecodeType.MacroPdf417` i iteruje po każdym wykrytym kodzie. Poniższy kod to kompletny, samodzielny program, który możesz wkleić do `Program.cs`. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.BarCodeRecognition; + +class Program +{ + static void Main() + { + // Path to the image that contains one or more PDF417 barcodes + const string imagePath = "YOUR_DIRECTORY/ExtPDF417Meta.png"; + + // Step 1: Create a BarCodeReader for a macro PDF417 image + using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.MacroPdf417)) + { + // Step 2: Read all barcodes from the image + foreach (BarCodeResult result in reader.ReadBarCodes()) + { + // Step 3: Output basic barcode information + Console.WriteLine($"CodeType: {result.CodeTypeName}"); + Console.WriteLine($"CodeText: {result.CodeText}"); + + // Step 4: Output macro PDF417 specific fields + Console.WriteLine($"Pdf417MacroFileID: {result.Extended.Pdf417.MacroPdf417FileID}"); + Console.WriteLine($"Pdf417MacroSegmentID: {result.Extended.Pdf417.MacroPdf417SegmentID}"); + Console.WriteLine($"Pdf417MacroSegmentsCount: {result.Extended.Pdf417.MacroPdf417SegmentsCount}"); + Console.WriteLine($"Pdf417MacroFileName: {result.Extended.Pdf417.MacroPdf417FileName}"); + Console.WriteLine($"Pdf417MacroChecksum: {result.Extended.Pdf417.MacroPdf417Checksum}"); + Console.WriteLine($"Pdf417MacroFileSize: {result.Extended.Pdf417.MacroPdf417FileSize}"); + Console.WriteLine($"Pdf417MacroTimeStamp: {result.Extended.Pdf417.MacroPdf417TimeStamp}"); + Console.WriteLine($"Pdf417MacroAddressee: {result.Extended.Pdf417.MacroPdf417Addressee}"); + Console.WriteLine($"Pdf417MacroSender: {result.Extended.Pdf417.MacroPdf417Sender}"); + Console.WriteLine($"MacroPdf417Terminator: {result.Extended.Pdf417.MacroPdf417Terminator}"); + Console.WriteLine(new string('-', 40)); + } + + // Pro tip: If no barcodes are found, ReadBarCodes() returns an empty collection. + // You can check reader.HasBarcodes for a quick boolean test. + if (!reader.HasBarcodes) + { + Console.WriteLine("No barcodes detected in the provided image."); + } + } + } +} +``` + +**Dlaczego to działa**: + +* `DecodeType.MacroPdf417` instruuje czytnik, aby szukał rozszerzenia macro kodu PDF417, które zawiera dodatkowe metadane, takie jak identyfikator pliku, liczba segmentów i znaczniki czasu. +* Instrukcja `using` zapewnia, że zasoby niezarządzane (uchwyty plików, natywne bufory dekodowania) zostaną zwolnione natychmiast. +* Pętla `foreach` automatycznie przetwarza **wszystkie** kody kreskowe znajdujące się na obrazie, spełniając wymóg *odczytu wielu kodów*. + +Po uruchomieniu programu (`dotnet run`) powinieneś zobaczyć wyjście podobne do poniższego: + +``` +CodeType: MacroPdf417 +CodeText: https://example.com/document.pdf +Pdf417MacroFileID: 12345 +Pdf417MacroSegmentID: 1 +Pdf417MacroSegmentsCount: 3 +Pdf417MacroFileName: document.pdf +Pdf417MacroChecksum: 0x1A2B +Pdf417MacroFileSize: 204800 +Pdf417MacroTimeStamp: 2024-07-15T10:25:00Z +Pdf417MacroAddressee: John Doe +Pdf417MacroSender: Acme Corp +MacroPdf417Terminator: True +---------------------------------------- +``` + +Jeśli obraz zawiera więcej niż jeden kod PDF417, pętla wypisze oddzielny blok dla każdego kodu, demonstrując w ten sposób **odczyt wielu kodów** z jednego zdjęcia. + +## Odczyt wielu kodów z obrazu + +Ta sama instancja `BarCodeReader` może dekodować kilka typów kodów jednocześnie. Aby rozszerzyć zakres z macro PDF417 na dowolny PDF417 (lub nawet QR, Code128 itp.), zmień flagę `DecodeType`: + +```csharp +using (BarCodeReader reader = new BarCodeReader(imagePath, + DecodeType.Pdf417 | DecodeType.MacroPdf417 | DecodeType.QR | DecodeType.Code128)) +{ + // The rest of the code stays unchanged. +} +``` + +*`DecodeType`* jest maską bitową, więc możesz połączyć dowolną liczbę obsługiwanych formatów. Ta elastyczność czyni fragment **przykładem czytnika kodów kreskowych**, który działa w szerokim wachlarzu scenariuszy, takich jak skanowanie etykiet produktów, biletów czy kart identyfikacyjnych. + +## Bezpieczny dostęp do pól macro PDF417 + +Macro PDF417 dodaje bogaty zestaw rozszerzonych właściwości. Jednak nie każdy kod zawiera wszystkie pola. Dostęp do nieistniejącej właściwości może spowodować `NullReferenceException`. Najbezpieczniejszym podejściem jest weryfikacja każdej właściwości przed jej wypisaniem: + +```csharp +var macro = result.Extended?.Pdf417; +if (macro != null) +{ + Console.WriteLine($"Pdf417MacroFileID: {macro.MacroPdf417FileID ?? "N/A"}"); + // Repeat for other fields... +} +``` + +*Dlaczego to ważne*: W rzeczywistych wdrożeniach możesz otrzymać zwykłe kody PDF417, które nie posiadają danych macro. Sprawdzanie defensywne zapewnia, że aplikacja będzie działać dalej bez awarii. + +## Typowe pułapki i dobre praktyki + +| Problem | Dlaczego się pojawia | Zalecane rozwiązanie | +|---------|----------------------|----------------------| +| Nieprawidłowa ścieżka do obrazu | `BarCodeReader` zgłasza wyjątek „file‑not‑found” przed rozpoczęciem dekodowania | Użyj `Path.Combine` i sprawdź istnienie pliku przy pomocy `File.Exists` | +| Obraz o niskiej rozdzielczości | Dekoder nie może znaleźć krawędzi kodu, co skutkuje zerową liczbą wykryć | Zapewnij minimalną rozdzielczość 300 dpi dla wiarygodnych wyników | +| Kod obrócony o > 45° | Wiele bibliotek zakłada orientację pionową | Włącz `reader.RecognitionOptions.RotateImage = true`, jeśli obraz może być obrócony | + +## 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 poznać alternatywne podejścia implementacyjne w własnych projektach. + +- [Jak odczytać kody DataMatrix przy użyciu Aspose.BarCode for .NET](/barcode/english/net/datamatrix-barcode-reading/) +- [Odczyt kodu DataMatrix w C# – generowanie trybu DataMatrix (Auto)](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-auto/) +- [Odczyt kodu kreskowego z obrazu – mistrzostwo w ekstrakcji regionu kodu w Javie z Aspose.BarCode](/barcode/english/java/advanced-settings-and-optimization/extracting-barcode-region-information/) + +{{< /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/net/compact-pdf417-encoding/_index.md b/barcode/portuguese/net/compact-pdf417-encoding/_index.md index 9b00326c0..16c2afc5b 100644 --- a/barcode/portuguese/net/compact-pdf417-encoding/_index.md +++ b/barcode/portuguese/net/compact-pdf417-encoding/_index.md @@ -85,6 +85,18 @@ Beyond the basics, here are some practical tips to streamline your workflow: ### [Criando Códigos de Barras Compact PDF417](./compact-pdf417-basic-configuration/) Learn how to generate Compact PDF417 barcodes using Aspose.BarCode for .NET. Comprehensive guide with step-by-step instructions and code examples. +### [Criar código de barras PDF417 em C# – guia passo a passo](./create-pdf417-barcode-in-c-step-by-step-guide/) +Aprenda a gerar códigos de barras PDF417 em C# com instruções detalhadas passo a passo usando Aspose.BarCode. + +### [Gerar código de barras PDF417 C# – guia completo com Aspose.BarCode](./generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/) +Aprenda a gerar códigos de barras PDF417 em C# com um guia completo usando Aspose.BarCode, incluindo exemplos e melhores práticas. + +### [Como salvar código de barras como imagem – guia completo C#](./how-to-save-barcode-as-an-image-complete-c-guide/) +Aprenda a salvar códigos de barras como imagens em C# usando Aspose.BarCode, passo a passo com exemplos completos. + +### [Ler código de barras PDF417 em C# – exemplo de leitor de código de barras](./read-pdf417-barcode-in-c-barcode-reader-example/) +Aprenda a ler códigos de barras PDF417 em C# usando o Aspose.BarCode, com exemplo completo de leitura. + ## Perguntas Frequentes **Q: Qual é a quantidade máxima de dados que posso armazenar em um código de barras Compact PDF417?** @@ -113,4 +125,4 @@ A: Não são necessárias fontes externas; a biblioteca lida com toda a renderiz {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/portuguese/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md b/barcode/portuguese/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..2a34ff159 --- /dev/null +++ b/barcode/portuguese/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md @@ -0,0 +1,226 @@ +--- +category: general +date: 2026-08-03 +description: Crie código de barras PDF417 em C# rapidamente. Aprenda como gerar código + de barras PDF417 e como salvar a imagem do código de barras como PNG com Aspose.Barcode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create pdf417 barcode +- how to generate pdf417 barcode +- how to save barcode image +language: pt +lastmod: 2026-08-03 +og_description: Crie código de barras PDF417 em C# com Aspose.Barcode. Siga este guia + para gerar o código de barras PDF417 e aprender como salvar a imagem do código de + barras de forma eficiente. +og_image_alt: Screenshot of a generated compact PDF417 barcode saved as PNG +og_title: Criar código de barras PDF417 em C# – tutorial completo de codificação +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + headline: Create PDF417 barcode in C# – step‑by‑step guide + type: TechArticle +- description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + name: Create PDF417 barcode in C# – step‑by‑step guide + steps: + - name: Why this matters + text: '* **EncodeTypes.Pdf417** tells the library to use the PDF417 standard, + which supports large data payloads and error correction. * Providing Unicode + characters proves the generator handles non‑ASCII input without extra configuration.' + - name: Practical tip + text: If you need a taller barcode for limited horizontal space, increase `Columns`. + Setting `Truncate` to `true` reduces the overall height by removing quiet zones, + which is ideal for mobile screens. + - name: Expected result + text: Running the program creates `CompactPdf417.png` in the project folder. Opening + the file shows a compact PDF417 barcode that encodes the string *Åspóse.Barcóde©*. + The image can be embedded in HTML, PDF reports, or printed on labels. + - name: Verifying the output + text: 'After the program finishes, you can verify the file exists with a quick + command:' + type: HowTo +tags: +- barcode +- C# +- PDF417 +- image generation +title: Criar código de barras PDF417 em C# – guia passo a passo +url: /pt/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Criar código de barras PDF417 em C# – guia passo a passo + +Se você precisa **criar código de barras PDF417** em uma aplicação .NET, este guia mostra exatamente como gerar o código de barras PDF417 e como salvar a imagem do código de barras. Você obterá um arquivo PNG que pode ser usado em relatórios, tickets ou aplicativos de escaneamento móvel. + +O tutorial cobre tudo, desde a configuração do projeto até o arquivo PNG final. Nenhuma documentação externa é necessária; basta seguir os passos e executar o código. + +## O que você precisará + +Antes de começar, certifique‑se de que você tem: + +* .NET 6.0 SDK ou posterior (o código também funciona com .NET Framework 4.7+) +* Visual Studio 2022 ou qualquer IDE que suporte C# +* Acesso à internet para instalar o pacote NuGet **Aspose.Barcode for .NET** + +Esses pré‑requisitos garantem que o código compile sem configuração adicional. + +## Criar código de barras PDF417 – configuração do projeto + +1. Abra um prompt de comando e crie um novo projeto de console: + + ```bash + dotnet new console -n Pdf417Demo + cd Pdf417Demo + ``` + +2. Adicione a biblioteca Aspose.Barcode: + + ```bash + dotnet add package Aspose.Barcode + ``` + +3. Abra o arquivo `Program.cs` gerado. As instruções `using` no topo dão acesso às classes de código de barras: + + ```csharp + using System; + using Aspose.Barcode.Generation; + using Aspose.Barcode; + ``` + +O projeto agora está pronto para **criar código de barras PDF417**. + +## Como gerar código de barras PDF417 com Aspose.Barcode + +O núcleo da criação do código de barras está na classe `BarcodeGenerator`. Você especifica a simbologia (`EncodeTypes.Pdf417`) e os dados que deseja codificar. + +```csharp +// Step 1: Initialise the generator with PDF417 symbology and sample text. +// The text includes Unicode characters to demonstrate full‑range support. +BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Pdf417, "Åspóse.Barcóde©"); +``` + +### Por que isso importa + +* **EncodeTypes.Pdf417** indica à biblioteca para usar o padrão PDF417, que suporta grandes cargas de dados e correção de erros. +* Fornecer caracteres Unicode demonstra que o gerador lida com entrada não‑ASCII sem configuração extra. + +## Como configurar a aparência do código de barras + +Você pode controlar o tamanho de cada módulo, o número de colunas e se o código de barras usa o modo compacto (truncado). Essas configurações afetam tanto a legibilidade quanto o tamanho do arquivo. + +```csharp +// Step 2: Set the module (X) dimension – each barcode element will be 2 pixels wide. +generator.Parameters.Barcode.XDimension.Pixels = 2; + +// Step 3: Configure PDF417‑specific options. +generator.Parameters.Barcode.Pdf417.Columns = 3; // Number of columns (affects height) +generator.Parameters.Barcode.Pdf417.Truncate = true; // Enable compact mode +``` + +### Dica prática + +Se precisar de um código de barras mais alto para espaço horizontal limitado, aumente `Columns`. Definir `Truncate` como `true` reduz a altura total removendo as zonas silenciosas, o que é ideal para telas móveis. + +## Como salvar a imagem do código de barras como PNG + +Após configurar o gerador, chame `Save` com um caminho de arquivo e o formato de imagem desejado. O método grava a imagem diretamente no disco. + +```csharp +// Step 4: Save the generated barcode as a PNG image. +string outputPath = @"./CompactPdf417.png"; +generator.Save(outputPath, BarCodeImageFormat.Png); +Console.WriteLine($"Barcode saved to {outputPath}"); +``` + +### Resultado esperado + +Executar o programa cria `CompactPdf417.png` na pasta do projeto. Abrir o arquivo mostra um código de barras PDF417 compacto que codifica a string *Åspóse.Barcóde©*. A imagem pode ser incorporada em HTML, relatórios PDF ou impressa em etiquetas. + +## Código-fonte completo + +Abaixo está o programa completo e executável. Copie‑o para `Program.cs` e execute `dotnet run`. + +```csharp +using System; +using Aspose.Barcode.Generation; +using Aspose.Barcode; + +namespace Pdf417Demo +{ + class Program + { + static void Main() + { + // Initialise the generator with PDF417 symbology and sample text. + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.Pdf417, + "Åspóse.Barcóde©"); + + // Set the module width to 2 pixels. + generator.Parameters.Barcode.XDimension.Pixels = 2; + + // Configure PDF417‑specific options. + generator.Parameters.Barcode.Pdf417.Columns = 3; + generator.Parameters.Barcode.Pdf417.Truncate = true; + + // Define the output file path. + string outputPath = @"./CompactPdf417.png"; + + // Save the barcode as a PNG image. + generator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"Barcode saved to {outputPath}"); + } + } +} +``` + +### Verificando a saída + +Depois que o programa terminar, você pode verificar se o arquivo existe com um comando rápido: + +```bash +dotnet run && ls -l CompactPdf417.png +``` + +Se o arquivo aparecer, o processo de **criar código de barras PDF417** foi bem‑sucedido. + +## Variações comuns e casos extremos + +| Situação | Ajuste | +|-----------|------------| +| **String de dados mais longa** | Aumente `Columns` ou defina `Rows` para acomodar mais codewords. | +| **Formato de imagem diferente** | Substitua `BarCodeImageFormat.Png` por `Jpeg`, `Bmp` ou `Gif`. | +| **Resolução mais alta** | Defina `generator.Parameters.ImageResolution` antes de `Save`. | +| **Cor de fundo** | Use `generator.Parameters.Barcode.ImageBackgroundColor = Color.White;` | +| **Tratamento de exceções** | Envolva `generator.Save` em um bloco `try/catch` para capturar erros de I/O. | + +Essas variações permitem adaptar o código de barras a dispositivos específicos ou requisitos de branding. + +## Conclusão + +Agora você sabe como **criar código de barras PDF417** em C# usando Aspose.Barcode, configurar sua aparência e **salvar a imagem do código de barras** como um arquivo PNG. O exemplo completo demonstra cada passo necessário, desde a configuração do projeto até a verificação, para que você possa integrar a geração de códigos de barras em qualquer solução .NET. + +Em seguida, considere explorar tópicos relacionados, como **como gerar códigos QR**, **incorporar códigos de barras em documentos PDF** ou **personalizar cores de códigos de barras**. Cada um desses se baseia na mesma API do gerador, permitindo que você amplie as capacidades de escaneamento da sua aplicação com esforço mínimo. Feliz codificação! + +## O que você deve aprender a seguir? + +Os tutoriais a seguir cobrem tópicos estreitamente relacionados que se baseiam nas 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. + +- [Como criar código de barras – PDF417 compacto com Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [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/) + +{{< /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/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md b/barcode/portuguese/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md new file mode 100644 index 000000000..27beb044a --- /dev/null +++ b/barcode/portuguese/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md @@ -0,0 +1,241 @@ +--- +category: general +date: 2026-08-03 +description: Gerar código de barras PDF417 em C# usando Aspose.BarCode. Aprenda passo + a passo como adicionar metadados Macro PDF417 e salvar como PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- generate PDF417 barcode C# +- Macro PDF417 barcode +- Aspose.BarCode +- C# barcode generation +- PDF417 metadata +- barcode image PNG +language: pt +lastmod: 2026-08-03 +og_description: Gerar código de barras PDF417 em C# com Aspose.BarCode. Este tutorial + mostra como incorporar metadados Macro PDF417 e exportar o resultado como uma imagem + PNG. +og_image_alt: Screenshot of a generated PDF417 barcode created with C# +og_title: Gerar código de barras PDF417 C# – tutorial passo a passo do Aspose.BarCode +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + headline: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + type: TechArticle +- description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + name: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + steps: + - name: Create a Macro PDF417 barcode generator + text: First, instantiate `BarcodeGenerator` with the `EncodeTypes.MacroPdf417` + enum. The constructor also accepts the text you want to encode – in this example + we use a string that contains Unicode characters to demonstrate full‑width support. + - name: Adjust basic barcode appearance + text: Next, define the visual size of the barcode. `XDimension.Pixels` controls + the width of a single module (the smallest black/white square), while `Pdf417.Columns` + influences the overall shape by setting the number of columns. + - name: Populate Macro PDF417 metadata + text: Macro PDF417 allows you to embed file‑level information that many back‑office + systems rely on (e.g., file ID, segment ID, timestamp). The following properties + illustrate the most common fields. + - name: Save the barcode image as PNG + text: Finally, call `Save` to write the barcode to disk. PNG is lossless, making + it ideal for high‑quality scanning. + - name: How to verify the result + text: 1. Open `ExtPDF417Meta.png` in any image viewer. 2. Use a PDF417 scanner + app (e.g., *Zebra Scanner* or *BarCode Reader* on Android/iOS). 3. Confirm that + the decoded payload includes the original text and a JSON‑like block with the + macro fields you set. + - name: Next steps + text: '- Experiment with other barcode formats (e.g., QR, Code128) by changing + `EncodeTypes`. - Explore `Pdf417.ErrorCorrectionLevel` to improve scan reliability + under poor lighting. - Integrate the generated image into a PDF report using + Aspose.PDF for end‑to‑end document automation.' + type: HowTo +tags: +- PDF417 +- C# +- Barcode +title: Gerar código de barras PDF417 C# – guia completo com Aspose.BarCode +url: /pt/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Gerar PDF417 barcode C# – guia completo + +Se você precisa **gerar PDF417 barcode C#** para um sistema de logística ou gerenciamento de documentos, este tutorial mostra exatamente como fazer isso com Aspose.BarCode. Você verá como configurar o código de barras, incorporar metadados Macro PDF417 e salvar o resultado como uma imagem PNG em apenas algumas linhas de código. + +Gerar um código de barras PDF417 em C# geralmente significa lidar com informações extras, como identificadores de arquivos, números de segmento ou timestamps. Este guia cobre esses detalhes, para que você não precise procurar em documentação dispersa. Ao final do artigo, você terá um programa pronto‑para‑executar que produz uma imagem de código de barras Macro PDF417 compatível. + +## O que você precisará + +- .NET 6.0 ou posterior (o código também funciona com .NET Framework 4.7+) +- Aspose.BarCode para .NET (v23.9 ou mais recente) – instale via NuGet `Install-Package Aspose.BarCode` +- Um ambiente de desenvolvimento como Visual Studio 2022 ou Visual Studio Code +- Familiaridade básica com a sintaxe C# + +> **Dica profissional:** Use a versão mais recente do Aspose.BarCode para se beneficiar de correções de bugs e suporte às especificações mais recentes do PDF417. + +## Como gerar PDF417 barcode C# com Aspose.BarCode + +O processo consiste em quatro etapas lógicas. Cada etapa está encapsulada em um bloco de código claro para que você possa copiar, colar e executar imediatamente. + +### Etapa 1: Criar um gerador de código de barras Macro PDF417 + +Primeiro, instancie `BarcodeGenerator` com o enum `EncodeTypes.MacroPdf417`. O construtor também aceita o texto que você deseja codificar – neste exemplo usamos uma string que contém caracteres Unicode para demonstrar suporte a largura total. + +```csharp +using System; +using Aspose.BarCode.Generation; + +// Create a Macro PDF417 barcode generator with the desired text +using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) +{ + // Subsequent steps go inside this using block +``` + +*Por que isso importa*: O tipo `MacroPdf417` indica ao Aspose.BarCode que o símbolo deve ser tratado como um macro barcode, que pode transportar metadados adicionais ao nível de arquivo. Sem essa flag, os campos extras definidos posteriormente seriam ignorados. + +### Etapa 2: Ajustar a aparência básica do código de barras + +Em seguida, defina o tamanho visual do código de barras. `XDimension.Pixels` controla a largura de um único módulo (o menor quadrado preto/branco), enquanto `Pdf417.Columns` influencia a forma geral definindo o número de colunas. + +```csharp + // Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol +``` + +*Por que isso importa*: Um `XDimension` menor gera uma imagem de maior resolução, o que é útil quando o código de barras precisa ser escaneado a partir de uma tela. Alterar a contagem de colunas pode ajudar a encaixar o código de barras em espaço limitado sem sacrificar a capacidade de dados. + +### Etapa 3: Preencher metadados Macro PDF417 + +Macro PDF417 permite incorporar informações ao nível de arquivo que muitos sistemas de back‑office dependem (por exemplo, ID do arquivo, ID do segmento, timestamp). As propriedades a seguir ilustram os campos mais comuns. + +```csharp + // Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; +``` + +*Por que isso importa*: Cada campo mapeia diretamente para um segmento da especificação do macro barcode. Por exemplo, `MacroPdf417FileID` identifica unicamente o arquivo lógico, enquanto `MacroPdf417SegmentsCount` informa ao scanner quantas partes esperar. Fornecer metadados precisos garante que os sistemas downstream possam reconstruir o documento original sem erro. + +### Etapa 4: Salvar a imagem do código de barras como PNG + +Finalmente, chame `Save` para gravar o código de barras no disco. PNG é sem perdas, tornando‑o ideal para escaneamento de alta qualidade. + +```csharp + // Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); +} +``` + +*Por que isso importa*: O enum `BarCodeImageFormat.Png` garante que o arquivo de saída contenha exatamente os dados de pixel que você configurou. Se precisar de um formato vetorial para dimensionamento, substitua `Png` por `Svg` – Aspose.BarCode oferece suporte a isso nativamente. + +#### Saída esperada + +Executar o programa completo cria um arquivo chamado **ExtPDF417Meta.png**. A imagem mostra um símbolo PDF417 denso e de múltiplas linhas que inclui o texto “Åspóse.Barcóde©” e os metadados macro que você forneceu. Escanear o código de barras com um leitor compatível com PDF417 devolve o texto original mais um bloco de dados estruturado contendo o ID do arquivo, ID do segmento, timestamp e outros campos. + +![Captura de tela do PDF417 barcode gerado](/images/pdf417-example.png){: .center-image alt="exemplo de saída de geração de PDF417 barcode C#"} + +## Código-fonte completo (pronto para copiar e colar) + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace Pdf417MacroDemo +{ + class Program + { + static void Main() + { + // Step 1: Create a Macro PDF417 barcode generator with the desired text + using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) + { + // Step 2: Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol + + // Step 3: Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; + + // Step 4: Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); + } + + Console.WriteLine("Macro PDF417 barcode generated successfully."); + } + } +} +``` + +### Como verificar o resultado + +1. Abra `ExtPDF417Meta.png` em qualquer visualizador de imagens. +2. Use um aplicativo de scanner PDF417 (por exemplo, *Zebra Scanner* ou *BarCode Reader* no Android/iOS). +3. Confirme que a carga decodificada inclui o texto original e um bloco semelhante a JSON com os campos macro que você definiu. + +## Perguntas comuns e tratamento de casos extremos + +| Pergunta | Resposta | +|----------|----------| +| **Posso gerar uma imagem vetorial em vez de PNG?** | Sim. Substitua `BarCodeImageFormat.Png` por `BarCodeImageFormat.Svg`. O restante do código permanece inalterado. | +| **E se meus dados excederem a capacidade padrão?** | Aumente `Pdf417.Columns` ou defina `Pdf417.Rows` manualmente. Valores maiores permitem mais codewords por segmento. | +| **Unicode é suportado no texto codificado?** | Absolutamente. O exemplo usa “Åspóse.Barcóde©”. Aspose.BarCode muda automaticamente para codificação UTF‑8 quando necessário. | +| **Preciso assinar uma licença para Aspose.BarCode?** | Para produção você deve aplicar uma licença para evitar a marca d'água de avaliação. Chame `License license = new License(); license.SetLicense("Aspose.BarCode.lic");` antes de criar o gerador. | +| **Como lidar com erros ao salvar o arquivo?** | Envolva a chamada `Save` em um bloco try/catch e registre `IOException` ou `BarCodeException` para solução de problemas. | + +## Conclusão + +Agora você sabe como **gerar PDF417 barcode C#** usando Aspose.BarCode, incorporar metadados completos Macro PDF417 e exportar o resultado como uma imagem PNG de alta qualidade. As etapas — criar o gerador, ajustar a aparência, preencher os metadados e salvar a imagem — formam um padrão reutilizável que você pode adaptar para faturas, etiquetas de envio ou qualquer cenário que exija dados ricos em códigos de barras. + +### Próximos passos + +- Experimente outros formatos de código de barras (por exemplo, QR, Code128) alterando `EncodeTypes`. +- Explore `Pdf417.ErrorCorrectionLevel` para melhorar a confiabilidade da leitura em baixa iluminação. +- Integre a imagem gerada em um relatório PDF usando Aspose.PDF para automação de documentos de ponta a ponta. + +Sinta-se à vontade para modificar os campos de metadados para atender às suas regras de negócio, e deixe a geração de códigos de barras se tornar uma parte integrada de suas aplicações C#. Feliz codificação! + +## O que você deve aprender a seguir? + +Os tutoriais a seguir abordam tópicos estreitamente relacionados que se baseiam nas 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. + +- [Como criar Barcode – Compact PDF417 com Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [Como criar um Barcode – PDF417 Compacto com Aspose.BarCode](/barcode/german/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [biblioteca de barcode java – Adicionar barcode ao PDF usando Aspose](/barcode/english/java/barcode-basics/adding-barcode-to-pdf-document/) + +{{< /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/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md b/barcode/portuguese/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md new file mode 100644 index 000000000..4b17a3050 --- /dev/null +++ b/barcode/portuguese/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md @@ -0,0 +1,188 @@ +--- +category: general +date: 2026-08-03 +description: como salvar o código de barras rapidamente usando C#. Aprenda a gerar + códigos de barras MicroPDF417, definir dimensões, escolher colunas e exportar para + PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to save barcode +- MicroPDF417 barcode +- C# barcode generation +- barcode XDimension +- PDF417 columns +- barcode image format +language: pt +lastmod: 2026-08-03 +og_description: como salvar código de barras em C# com um exemplo completo. Gere um + código de barras MicroPDF417, ajuste o tamanho, defina as colunas e exporte para + PNG. +og_image_alt: Screenshot showing a MicroPDF417 barcode saved as a PNG file +og_title: como salvar código de barras – tutorial passo a passo C# +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: how to save barcode quickly using C#. Learn MicroPDF417 barcode generation, + set dimensions, choose columns, and export to PNG. + headline: how to save barcode as an image – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- imaging +title: como salvar código de barras como imagem – guia completo de C# +url: /pt/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# como salvar código de barras – guia completo C# + +Se você precisa **como salvar código de barras** em uma aplicação .NET, este tutorial mostra os passos exatos. Você vai gerar um código de barras MicroPDF417, ajustar suas dimensões, escolher a contagem de colunas e, finalmente, gravar a imagem no disco como um arquivo PNG. + +Criar e persistir códigos de barras não requer uma biblioteca pesada — basta a classe `BarcodeGenerator` da suíte Aspose.BarCode for .NET. Nas seções abaixo, percorremos cada opção de configuração, explicamos por que ela é importante e fornecemos um exemplo de código pronto‑para‑executar. + +## Pré-requisitos + +- .NET 6.0 ou posterior (a API funciona com .NET Core e .NET Framework) +- Aspose.BarCode for .NET (pacote NuGet `Aspose.BarCode`) +- Uma pasta na qual você tem permissão de escrita (usada na etapa **como salvar código de barras**) + +## Etapa 1: Criar um gerador de código de barras MicroPDF417 + +A primeira tarefa em qualquer fluxo de **como salvar código de barras** é instanciar um `BarcodeGenerator` com a simbologia e os dados desejados. MicroPDF417 é uma versão compacta do código de barras matricial PDF417, ideal para rótulos pequenos. + +```csharp +using Aspose.BarCode.Generation; + +// Create a MicroPDF417 barcode with sample text that includes Unicode characters. +BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, // Symbology + "Åspóse.Barcóde©"); // Data to encode +``` + +**Por que isso é importante:** +`EncodeTypes.MicroPdf417` indica à biblioteca que use o algoritmo MicroPDF417, que lida automaticamente com correção de erros e codificação de dados. Fornecer texto Unicode demonstra que o gerador processa corretamente caracteres não‑ASCII. + +## Etapa 2: Ajustar a X‑dimensão (tamanho do módulo) + +A X‑dimensão define a largura de um único módulo do código de barras (pixel). Um valor menor gera um código mais compacto, enquanto um valor maior facilita a leitura. + +```csharp +// Set each module to 2 pixels wide. +barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +**Por que isso é importante:** +Definir `barcode XDimension` garante que o código de barras se ajuste ao tamanho da etiqueta alvo. Se você pular esta etapa, o tamanho padrão pode ser grande demais para telas móveis ou impressões pequenas. + +## Etapa 3: Escolher o número de colunas para a matriz PDF417 + +MicroPDF417 suporta de 1 a 4 colunas. Mais colunas produzem um código mais quadrado; menos colunas o esticam verticalmente. + +```csharp +// Use the maximum of 4 columns for a compact, square shape. +barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; +``` + +**Por que isso é importante:** +Ajustar as **colunas PDF417** permite equilibrar a legibilidade com as restrições de espaço. Em muitos cenários de leitura, um layout de 4 colunas oferece o melhor compromisso. + +## Etapa 4: Salvar o código de barras gerado como imagem PNG + +Agora que o código de barras está configurado, você pode finalmente responder “**como salvar código de barras**” gravando‑o em um arquivo. PNG preserva qualidade sem perdas, o que é essencial para uma leitura nítida. + +```csharp +// Define the output path (ensure the directory exists). +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + +// Export the barcode to PNG. +barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + +Console.WriteLine($"Barcode saved to: {outputPath}"); +``` + +**Por que isso é importante:** +`barcode image format` determina a fidelidade visual do arquivo salvo. PNG é preferido na maioria dos fluxos de UI e impressão porque mantém bordas nítidas sem artefatos de compressão. + +## Exemplo completo e executável + +Juntando tudo, você obtém um programa autônomo que pode copiar, colar e executar. + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // 1️⃣ Create the barcode generator. + BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, + "Åspóse.Barcóde©"); + + // 2️⃣ Adjust module size. + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; + + // 3️⃣ Set column count (1‑4 allowed). + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; + + // 4️⃣ Define output location. + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + + // 5️⃣ Save as PNG. + barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"✅ Barcode saved to: {outputPath}"); + } +} +``` + +**Saída esperada** + +Executar o programa cria `MicroPdf417.png` na sua área de trabalho. Abrir o arquivo mostra um código de barras MicroPDF417 nítido que codifica a string `Åspóse.Barcóde©`. Escaneá‑lo com qualquer leitor de código de barras padrão retorna o texto original. + +## Perguntas comuns e casos extremos + +| Pergunta | Resposta | +|----------|----------| +| *Posso usar JPEG em vez de PNG?* | Sim. Substitua `BarCodeImageFormat.Png` por `BarCodeImageFormat.Jpeg`. JPEG é menor, mas introduz artefatos de compressão que podem afetar a leitura. | +| *E se meus dados excederem a capacidade do MicroPDF417?* | MicroPDF417 pode armazenar até 1 KB de dados. Para cargas maiores, troque para o `EncodeTypes.Pdf417` completo. | +| *Como altero a cor do código de barras?* | Use `barcodeGenerator.Parameters.Barcode.BarColor` e `BackColor` para definir as cores de primeiro plano/fundo antes de chamar `Save`. | +| *A X‑dimensão está limitada a pixels inteiros?* | A propriedade aceita um `float`. Valores como `1.5f` são permitidos, mas a maioria das impressoras funciona melhor com tamanhos de pixel inteiros. | + +## Dicas profissionais para implementações confiáveis de **como salvar código de barras** + +- **Valide a pasta de saída** com `Directory.Exists` antes de chamar `Save` para evitar `IOException`. +- **Dispose o gerador** (`barcodeGenerator.Dispose()`) quando gerar muitos códigos de barras em um loop para liberar recursos nativos. +- **Teste com scanners reais** após salvar; inspeção visual não é suficiente para implantações em produção. +- **Mantenha a biblioteca atualizada** — versões mais recentes do Aspose.BarCode adicionam melhorias de simbologia e correções de bugs. + +## Conclusão + +Agora você sabe **como salvar código de barras** em imagens C# usando a biblioteca Aspose.BarCode. Ao criar um código de barras MicroPDF417, configurar o **barcode XDimension**, selecionar as **colunas PDF417** apropriadas e exportar para um **formato de imagem de código de barras** como PNG, você tem uma solução completa e pronta para produção. + +Em seguida, explore tópicos relacionados como **geração de código de barras C# para QR codes**, **criação em lote de códigos de barras**, ou **incorporação de códigos de barras em relatórios PDF**. Cada um desses se baseia nos mesmos princípios demonstrados aqui, permitindo que você expanda seu conjunto de ferramentas de imagem com confiança. + +## O que você deve aprender a seguir? + +Os tutoriais a seguir abordam tópicos intimamente relacionados que se baseiam nas 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 salvar PNG usando DataMatrix C40 com Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-c40/) +- [Como definir borda para personalização de código de barras ITF-14](/barcode/english/net/itf-14-barcode-customization/) +- [Como gerar código de barras Aztec com proporção personalizada usando Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) + +{{< /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/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md b/barcode/portuguese/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md new file mode 100644 index 000000000..a49dc4f34 --- /dev/null +++ b/barcode/portuguese/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md @@ -0,0 +1,218 @@ +--- +category: general +date: 2026-08-03 +description: Leia o código de barras PDF417 de uma imagem usando C# BarCodeReader + – um exemplo completo de leitor de códigos de barras que também mostra como ler + vários códigos de barras. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- read PDF417 barcode +- barcode reader example +- read multiple barcodes +- read barcodes image +language: pt +lastmod: 2026-08-03 +og_description: Leia o código de barras PDF417 rapidamente com um exemplo de BarCodeReader + em C#. Siga este guia passo a passo para decodificar macro PDF417 e ler vários códigos + de barras de uma imagem. +og_image_alt: Console output of a read PDF417 barcode example in C# +og_title: Ler código de barras PDF417 em C# – exemplo completo de leitor de código + de barras +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + headline: Read PDF417 barcode in C# – barcode reader example + type: TechArticle +- description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + name: Read PDF417 barcode in C# – barcode reader example + steps: + - name: '**Create a new console project**' + text: '**Create a new console project**' + - name: '**Add the barcode library**' + text: '**Add the barcode library**' + - name: '**Copy the barcode image**' + text: '**Copy the barcode image**' + type: HowTo +tags: +- barcode +- PDF417 +- C# +- .NET +title: Ler código de barras PDF417 em C# – exemplo de leitor de código de barras +url: /pt/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Ler código de barras PDF417 em C# – exemplo de leitor de código de barras + +Se você precisar ler dados de código de barras PDF417 a partir de uma imagem, este guia mostra como fazer isso com a classe **BarCodeReader** em C#. Você aprenderá um exemplo de leitor de código de barras que também lida com macro PDF417 e pode ler vários códigos de barras em uma única imagem. + +Trabalhar com códigos de barras geralmente significa lidar com diferentes fontes de imagem, condições de iluminação variadas e, às vezes, dados compostos como segmentos de macro PDF417. Este tutorial cobre tudo o que você precisa para decodificar um código de barras PDF417, extrair seus campos estendidos e processar vários códigos de barras da mesma foto. Ao final, você terá um programa de console executável que lê códigos de barras de um arquivo de imagem e imprime informações detalhadas no console. + +## O que você vai precisar + +Antes de começar, certifique‑se de que você tem: + +* .NET 6.0 SDK ou posterior instalado +* Uma versão recente do pacote NuGet **Aspose.BarCode for .NET** (ou qualquer biblioteca compatível que forneça `BarCodeReader` e `DecodeType.MacroPdf417`) +* Um arquivo de imagem que contenha um código de barras PDF417 ou macro PDF417 (o exemplo usa `ExtPDF417Meta.png`) +* Um editor de código ou IDE, como Visual Studio 2022 + +Nenhum serviço adicional ou API externa é necessário. + +## Configurando o projeto para leitura de código de barras + +1. **Crie um novo projeto de console** + + ```bash + dotnet new console -n Pdf417ReaderDemo + cd Pdf417ReaderDemo + ``` + +2. **Adicione a biblioteca de código de barras** + + ```bash + dotnet add package Aspose.BarCode --version 23.12 + ``` + +3. **Copie a imagem do código de barras** + + Coloque `ExtPDF417Meta.png` (ou qualquer imagem que contenha um código de barras PDF417) na pasta do projeto. + Para este tutorial, assumimos que o arquivo está em `YOUR_DIRECTORY/ExtPDF417Meta.png`. + +O projeto agora está pronto para compilar e executar o exemplo de leitor de código de barras. + +## Como ler código de barras PDF417 com BarCodeReader + +O núcleo da solução é um bloco `using` que cria uma instância de `BarCodeReader`, especifica `DecodeType.MacroPdf417` e itera sobre cada código de barras detectado. O código a seguir é um programa completo e autocontido que você pode colar em `Program.cs`. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.BarCodeRecognition; + +class Program +{ + static void Main() + { + // Path to the image that contains one or more PDF417 barcodes + const string imagePath = "YOUR_DIRECTORY/ExtPDF417Meta.png"; + + // Step 1: Create a BarCodeReader for a macro PDF417 image + using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.MacroPdf417)) + { + // Step 2: Read all barcodes from the image + foreach (BarCodeResult result in reader.ReadBarCodes()) + { + // Step 3: Output basic barcode information + Console.WriteLine($"CodeType: {result.CodeTypeName}"); + Console.WriteLine($"CodeText: {result.CodeText}"); + + // Step 4: Output macro PDF417 specific fields + Console.WriteLine($"Pdf417MacroFileID: {result.Extended.Pdf417.MacroPdf417FileID}"); + Console.WriteLine($"Pdf417MacroSegmentID: {result.Extended.Pdf417.MacroPdf417SegmentID}"); + Console.WriteLine($"Pdf417MacroSegmentsCount: {result.Extended.Pdf417.MacroPdf417SegmentsCount}"); + Console.WriteLine($"Pdf417MacroFileName: {result.Extended.Pdf417.MacroPdf417FileName}"); + Console.WriteLine($"Pdf417MacroChecksum: {result.Extended.Pdf417.MacroPdf417Checksum}"); + Console.WriteLine($"Pdf417MacroFileSize: {result.Extended.Pdf417.MacroPdf417FileSize}"); + Console.WriteLine($"Pdf417MacroTimeStamp: {result.Extended.Pdf417.MacroPdf417TimeStamp}"); + Console.WriteLine($"Pdf417MacroAddressee: {result.Extended.Pdf417.MacroPdf417Addressee}"); + Console.WriteLine($"Pdf417MacroSender: {result.Extended.Pdf417.MacroPdf417Sender}"); + Console.WriteLine($"MacroPdf417Terminator: {result.Extended.Pdf417.MacroPdf417Terminator}"); + Console.WriteLine(new string('-', 40)); + } + + // Pro tip: If no barcodes are found, ReadBarCodes() returns an empty collection. + // You can check reader.HasBarcodes for a quick boolean test. + if (!reader.HasBarcodes) + { + Console.WriteLine("No barcodes detected in the provided image."); + } + } + } +} +``` + +**Por que isso funciona**: + +* `DecodeType.MacroPdf417` indica ao leitor que procure a extensão macro do PDF417, que contém metadados adicionais como ID do arquivo, contagem de segmentos e timestamps. +* A instrução `using` garante que recursos não gerenciados (manipuladores de arquivos, buffers nativos de decodificação) sejam liberados prontamente. +* O laço `foreach` processa automaticamente **todos** os códigos de barras que a imagem contém, atendendo ao requisito de *ler múltiplos códigos de barras*. + +Quando você executar o programa (`dotnet run`), deverá ver uma saída semelhante à seguinte: + +``` +CodeType: MacroPdf417 +CodeText: https://example.com/document.pdf +Pdf417MacroFileID: 12345 +Pdf417MacroSegmentID: 1 +Pdf417MacroSegmentsCount: 3 +Pdf417MacroFileName: document.pdf +Pdf417MacroChecksum: 0x1A2B +Pdf417MacroFileSize: 204800 +Pdf417MacroTimeStamp: 2024-07-15T10:25:00Z +Pdf417MacroAddressee: John Doe +Pdf417MacroSender: Acme Corp +MacroPdf417Terminator: True +---------------------------------------- +``` + +Se a imagem contiver mais de um código de barras PDF417, o laço imprimirá um bloco separado para cada código, demonstrando como **ler múltiplos códigos de barras** a partir de uma única foto. + +## Lendo múltiplos códigos de barras de uma imagem + +A mesma instância de `BarCodeReader` pode decodificar vários tipos de código de barras ao mesmo tempo. Para ampliar o escopo de apenas macro PDF417 para qualquer PDF417 (ou até QR, Code128, etc.), ajuste a flag `DecodeType`: + +```csharp +using (BarCodeReader reader = new BarCodeReader(imagePath, + DecodeType.Pdf417 | DecodeType.MacroPdf417 | DecodeType.QR | DecodeType.Code128)) +{ + // The rest of the code stays unchanged. +} +``` + +*`DecodeType`* é uma máscara de bits, portanto você pode combinar qualquer número de formatos suportados. Essa flexibilidade torna o trecho um **exemplo de leitor de código de barras** que funciona para uma ampla variedade de casos de uso, como a leitura de rótulos de produtos, ingressos ou carteiras de identidade. + +## Acessando campos macro PDF417 com segurança + +Macro PDF417 adiciona um conjunto rico de propriedades estendidas. Contudo, nem todo código de barras inclui todos os campos. Acessar uma propriedade ausente pode gerar uma `NullReferenceException`. A abordagem mais segura é verificar cada propriedade antes de imprimi‑la: + +```csharp +var macro = result.Extended?.Pdf417; +if (macro != null) +{ + Console.WriteLine($"Pdf417MacroFileID: {macro.MacroPdf417FileID ?? "N/A"}"); + // Repeat for other fields... +} +``` + +*Por que isso importa*: Em implantações reais você pode receber códigos de barras PDF417 simples que não possuem dados macro. A verificação defensiva garante que seu aplicativo continue em execução sem travar. + +## Armadilhas comuns e boas práticas + +| Problema | Por que acontece | Correção recomendada | +|----------|------------------|----------------------| +| O caminho da imagem está incorreto | `BarCodeReader` lança uma exceção de arquivo não encontrado antes de qualquer decodificação | Use `Path.Combine` e valide a existência do arquivo com `File.Exists` | +| Imagem de baixa resolução | O decodificador não consegue localizar as bordas do código, resultando em zero detecções | Forneça uma resolução mínima de 300 dpi para resultados confiáveis | +| Código de barras rotacionado > 45° | Muitas bibliotecas assumem orientação vertical | Ative `reader.RecognitionOptions.RotateImage = true` se a imagem estiver inclinada | + +## 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. + +- [Como ler códigos de barras DataMatrix com Aspose.BarCode for .NET](/barcode/english/net/datamatrix-barcode-reading/) +- [Ler código de barras DataMatrix em C# – Gerar modo DataMatrix (Auto)](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-auto/) +- [Ler código de barras a partir de imagem – Dominando a extração de região de código de barras em Java com Aspose.BarCode](/barcode/english/java/advanced-settings-and-optimization/extracting-barcode-region-information/) + +{{< /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/net/compact-pdf417-encoding/_index.md b/barcode/russian/net/compact-pdf417-encoding/_index.md index 18a43fe66..68fa07d3e 100644 --- a/barcode/russian/net/compact-pdf417-encoding/_index.md +++ b/barcode/russian/net/compact-pdf417-encoding/_index.md @@ -85,6 +85,18 @@ Aspose.BarCode позволяет задать свойство `Pdf417ErrorCorr ### [Creating Compact PDF417 Barcodes](./compact-pdf417-basic-configuration/) Узнайте, как генерировать Compact PDF417 штрих‑коды с помощью Aspose.BarCode для .NET. Полное руководство с пошаговыми инструкциями и примерами кода. +### [Создание штрих‑кода PDF417 на C# – пошаговое руководство](./create-pdf417-barcode-in-c-step-by-step-guide/) +Пошаговое руководство по созданию штрих‑кода PDF417 на C# с использованием Aspose.BarCode. + +### [Генерация штрих‑кода PDF417 на C# – полное руководство с Aspose.BarCode](./generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/) +Полное пошаговое руководство по созданию штрих‑кода PDF417 на C# с использованием Aspose.BarCode. + +### [Как сохранить штрих‑код как изображение – полное руководство C#](./how-to-save-barcode-as-an-image-complete-c-guide/) +Полное руководство по сохранению штрих‑кода в виде изображения с помощью Aspose.BarCode и C#. + +### [Чтение штрих‑кода PDF417 на C# – пример считывателя штрих‑кода](./read-pdf417-barcode-in-c-barcode-reader-example/) +Пример кода на C# для чтения штрих‑кода PDF417 с помощью Aspose.BarCode. + ## Часто задаваемые вопросы **В: Какой максимальный объём данных можно хранить в Compact PDF417 штрих‑коде?** @@ -113,4 +125,4 @@ Aspose.BarCode позволяет задать свойство `Pdf417ErrorCorr {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/russian/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md b/barcode/russian/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..3449c5816 --- /dev/null +++ b/barcode/russian/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md @@ -0,0 +1,226 @@ +--- +category: general +date: 2026-08-03 +description: Создайте штрих‑код PDF417 на C# быстро. Узнайте, как генерировать штрих‑код + PDF417 и как сохранять изображение штрих‑кода в формате PNG с помощью Aspose.Barcode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create pdf417 barcode +- how to generate pdf417 barcode +- how to save barcode image +language: ru +lastmod: 2026-08-03 +og_description: Создайте штрих‑код PDF417 на C# с помощью Aspose.Barcode. Следуйте + этому руководству, чтобы сгенерировать штрих‑код PDF417 и узнать, как эффективно + сохранять изображение штрих‑кода. +og_image_alt: Screenshot of a generated compact PDF417 barcode saved as PNG +og_title: Создание штрихкода PDF417 в C# – полный учебный курс по программированию +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + headline: Create PDF417 barcode in C# – step‑by‑step guide + type: TechArticle +- description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + name: Create PDF417 barcode in C# – step‑by‑step guide + steps: + - name: Why this matters + text: '* **EncodeTypes.Pdf417** tells the library to use the PDF417 standard, + which supports large data payloads and error correction. * Providing Unicode + characters proves the generator handles non‑ASCII input without extra configuration.' + - name: Practical tip + text: If you need a taller barcode for limited horizontal space, increase `Columns`. + Setting `Truncate` to `true` reduces the overall height by removing quiet zones, + which is ideal for mobile screens. + - name: Expected result + text: Running the program creates `CompactPdf417.png` in the project folder. Opening + the file shows a compact PDF417 barcode that encodes the string *Åspóse.Barcóde©*. + The image can be embedded in HTML, PDF reports, or printed on labels. + - name: Verifying the output + text: 'After the program finishes, you can verify the file exists with a quick + command:' + type: HowTo +tags: +- barcode +- C# +- PDF417 +- image generation +title: Создание штрих‑кода PDF417 на C# – пошаговое руководство +url: /ru/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Создание штрих‑кода PDF417 в C# – пошаговое руководство + +Если вам нужно **создать штрих‑код PDF417** в приложении .NET, это руководство покажет, как именно сгенерировать штрих‑код PDF417 и сохранить его изображение. В результате вы получите PNG‑файл, который можно использовать в отчетах, билетах или мобильных сканирующих приложениях. + +В учебнике рассматривается всё: от настройки проекта до получения готового PNG‑файла. Внешняя документация не требуется; просто следуйте шагам и запустите код. + +## Что понадобится + +Прежде чем начать, убедитесь, что у вас есть: + +* .NET 6.0 SDK или новее (код также работает с .NET Framework 4.7+) +* Visual Studio 2022 или любой IDE, поддерживающий C# +* Доступ в Интернет для установки пакета NuGet **Aspose.Barcode for .NET** + +Эти предварительные требования гарантируют, что код соберётся без дополнительной конфигурации. + +## Создание штрих‑кода PDF417 – настройка проекта + +1. Откройте командную строку и создайте новый консольный проект: + + ```bash + dotnet new console -n Pdf417Demo + cd Pdf417Demo + ``` + +2. Добавьте библиотеку Aspose.Barcode: + + ```bash + dotnet add package Aspose.Barcode + ``` + +3. Откройте сгенерированный файл `Program.cs`. Операторы `using` в начале дают доступ к классам штрих‑кодов: + + ```csharp + using System; + using Aspose.Barcode.Generation; + using Aspose.Barcode; + ``` + +Проект готов к **созданию штрих‑кода PDF417**. + +## Как сгенерировать штрих‑код PDF417 с помощью Aspose.Barcode + +Основная часть создания штрих‑кода находится в классе `BarcodeGenerator`. Вы указываете символьный набор (`EncodeTypes.Pdf417`) и данные, которые нужно закодировать. + +```csharp +// Step 1: Initialise the generator with PDF417 symbology and sample text. +// The text includes Unicode characters to demonstrate full‑range support. +BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Pdf417, "Åspóse.Barcóde©"); +``` + +### Почему это важно + +* **EncodeTypes.Pdf417** указывает библиотеке использовать стандарт PDF417, поддерживающий большие объёмы данных и коррекцию ошибок. +* Использование Unicode‑символов демонстрирует, что генератор обрабатывает ввод не‑ASCII без дополнительной настройки. + +## Как настроить внешний вид штрих‑кода + +Можно задать размер каждого модуля, количество колонок и использовать компактный (усечённый) режим. Эти параметры влияют как на читаемость, так и на размер файла. + +```csharp +// Step 2: Set the module (X) dimension – each barcode element will be 2 pixels wide. +generator.Parameters.Barcode.XDimension.Pixels = 2; + +// Step 3: Configure PDF417‑specific options. +generator.Parameters.Barcode.Pdf417.Columns = 3; // Number of columns (affects height) +generator.Parameters.Barcode.Pdf417.Truncate = true; // Enable compact mode +``` + +### Практический совет + +Если требуется более высокий штрих‑код при ограниченном горизонтальном пространстве, увеличьте `Columns`. Установка `Truncate` в `true` уменьшает общую высоту, удаляя зоны тишины, что идеально для мобильных экранов. + +## Как сохранить изображение штрих‑кода в PNG + +После настройки генератора вызовите `Save`, указав путь к файлу и желаемый формат изображения. Метод сразу записывает изображение на диск. + +```csharp +// Step 4: Save the generated barcode as a PNG image. +string outputPath = @"./CompactPdf417.png"; +generator.Save(outputPath, BarCodeImageFormat.Png); +Console.WriteLine($"Barcode saved to {outputPath}"); +``` + +### Ожидаемый результат + +Запуск программы создаёт файл `CompactPdf417.png` в папке проекта. При открытии файла вы увидите компактный штрих‑код PDF417, который кодирует строку *Åspóse.Barcóde©*. Изображение можно встроить в HTML, PDF‑отчёты или напечатать на этикетках. + +## Полный исходный код + +Ниже представлен полностью готовый к запуску пример. Скопируйте его в `Program.cs` и выполните `dotnet run`. + +```csharp +using System; +using Aspose.Barcode.Generation; +using Aspose.Barcode; + +namespace Pdf417Demo +{ + class Program + { + static void Main() + { + // Initialise the generator with PDF417 symbology and sample text. + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.Pdf417, + "Åspóse.Barcóde©"); + + // Set the module width to 2 pixels. + generator.Parameters.Barcode.XDimension.Pixels = 2; + + // Configure PDF417‑specific options. + generator.Parameters.Barcode.Pdf417.Columns = 3; + generator.Parameters.Barcode.Pdf417.Truncate = true; + + // Define the output file path. + string outputPath = @"./CompactPdf417.png"; + + // Save the barcode as a PNG image. + generator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"Barcode saved to {outputPath}"); + } + } +} +``` + +### Проверка результата + +После завершения программы вы можете быстро проверить наличие файла следующей командой: + +```bash +dotnet run && ls -l CompactPdf417.png +``` + +Если файл появился, процесс **создания штрих‑кода PDF417** завершён успешно. + +## Распространённые варианты и граничные случаи + +| Ситуация | Корректировка | +|-----------|------------| +| **Более длинная строка данных** | Увеличьте `Columns` или задайте `Rows` для размещения большего количества кодовых слов. | +| **Другой формат изображения** | Замените `BarCodeImageFormat.Png` на `Jpeg`, `Bmp` или `Gif`. | +| **Более высокое разрешение** | Установите `generator.Parameters.ImageResolution` перед вызовом `Save`. | +| **Цвет фона** | Используйте `generator.Parameters.Barcode.ImageBackgroundColor = Color.White;` | +| **Обработка исключений** | Оберните `generator.Save` в блок `try/catch`, чтобы отлавливать ошибки ввода‑вывода. | + +Эти варианты позволяют адаптировать штрих‑код под конкретные устройства или требования брендинга. + +## Заключение + +Теперь вы знаете, как **создать штрих‑код PDF417** в C# с помощью Aspose.Barcode, настроить его внешний вид и **сохранить изображение штрих‑кода** в формате PNG. Полный пример демонстрирует каждый необходимый шаг, от настройки проекта до проверки, что позволяет интегрировать генерацию штрих‑кодов в любое .NET‑решение. + +Далее можете изучить связанные темы, такие как **генерация QR‑кодов**, **встраивание штрих‑кодов в PDF‑документы** или **кастомизация цветов штрих‑кода**. Все они используют тот же API генератора, позволяя расширять возможности сканирования вашего приложения с минимальными усилиями. Приятного кодинга! + +## Что стоит изучить дальше? + +Следующие учебники охватывают тесно связанные темы, построенные на техниках, продемонстрированных в этом руководстве. Каждый ресурс содержит полностью рабочие примеры кода с пошаговыми объяснениями, помогающими освоить дополнительные возможности API и исследовать альтернативные подходы в ваших проектах. + +- [How to Create Barcode – Compact PDF417 with Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [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/) + +{{< /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/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md b/barcode/russian/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md new file mode 100644 index 000000000..10f8fee9d --- /dev/null +++ b/barcode/russian/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md @@ -0,0 +1,241 @@ +--- +category: general +date: 2026-08-03 +description: Создайте штрих‑код PDF417 на C# с помощью Aspose.BarCode. Узнайте пошагово, + как добавить метаданные Macro PDF417 и сохранить в PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- generate PDF417 barcode C# +- Macro PDF417 barcode +- Aspose.BarCode +- C# barcode generation +- PDF417 metadata +- barcode image PNG +language: ru +lastmod: 2026-08-03 +og_description: Создайте штрих‑код PDF417 на C# с помощью Aspose.BarCode. Этот учебник + показывает, как внедрить метаданные Macro PDF417 и экспортировать результат в виде + изображения PNG. +og_image_alt: Screenshot of a generated PDF417 barcode created with C# +og_title: Генерация штрих‑кода PDF417 на C# – пошаговое руководство Aspose.BarCode +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + headline: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + type: TechArticle +- description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + name: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + steps: + - name: Create a Macro PDF417 barcode generator + text: First, instantiate `BarcodeGenerator` with the `EncodeTypes.MacroPdf417` + enum. The constructor also accepts the text you want to encode – in this example + we use a string that contains Unicode characters to demonstrate full‑width support. + - name: Adjust basic barcode appearance + text: Next, define the visual size of the barcode. `XDimension.Pixels` controls + the width of a single module (the smallest black/white square), while `Pdf417.Columns` + influences the overall shape by setting the number of columns. + - name: Populate Macro PDF417 metadata + text: Macro PDF417 allows you to embed file‑level information that many back‑office + systems rely on (e.g., file ID, segment ID, timestamp). The following properties + illustrate the most common fields. + - name: Save the barcode image as PNG + text: Finally, call `Save` to write the barcode to disk. PNG is lossless, making + it ideal for high‑quality scanning. + - name: How to verify the result + text: 1. Open `ExtPDF417Meta.png` in any image viewer. 2. Use a PDF417 scanner + app (e.g., *Zebra Scanner* or *BarCode Reader* on Android/iOS). 3. Confirm that + the decoded payload includes the original text and a JSON‑like block with the + macro fields you set. + - name: Next steps + text: '- Experiment with other barcode formats (e.g., QR, Code128) by changing + `EncodeTypes`. - Explore `Pdf417.ErrorCorrectionLevel` to improve scan reliability + under poor lighting. - Integrate the generated image into a PDF report using + Aspose.PDF for end‑to‑end document automation.' + type: HowTo +tags: +- PDF417 +- C# +- Barcode +title: Генерация штрихкода PDF417 на C# – полное руководство с Aspose.BarCode +url: /ru/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Генерация PDF417 штрих‑кода C# – полное руководство + +Если вам необходимо **генерировать PDF417 barcode C#** для системы логистики или управления документами, этот учебник покажет, как сделать это с помощью Aspose.BarCode. Вы увидите, как настроить штрих‑код, внедрить метаданные Macro PDF417 и сохранить результат в виде PNG‑изображения всего за несколько строк кода. + +Генерация PDF417 штрих‑кода в C# часто подразумевает работу с дополнительной информацией, такой как идентификаторы файлов, номера сегментов или метки времени. Это руководство охватывает эти детали, чтобы вам не пришлось искать их в разрозненной документации. К концу статьи у вас будет готовая к запуску программа, создающая соответствующее спецификации Macro PDF417 изображение штрих‑кода. + +## Что вам понадобится + +- .NET 6.0 или новее (код также работает с .NET Framework 4.7+) +- Aspose.BarCode for .NET (v23.9 или новее) – установить через NuGet `Install-Package Aspose.BarCode` +- Среда разработки, например Visual Studio 2022 или Visual Studio Code +- Базовое знакомство с синтаксисом C# + +> **Совет:** Используйте последнюю версию Aspose.BarCode, чтобы получить исправления ошибок и поддержку новейших спецификаций PDF417. + +## Как сгенерировать PDF417 штрих‑код C# с помощью Aspose.BarCode + +Процесс состоит из четырёх логических шагов. Каждый шаг оформлен в отдельном блоке кода, чтобы вы могли сразу скопировать, вставить и запустить его. + +### Шаг 1: Создать генератор Macro PDF417 + +Сначала создайте экземпляр `BarcodeGenerator` с перечислением `EncodeTypes.MacroPdf417`. Конструктор также принимает текст, который нужно закодировать – в этом примере мы используем строку с Unicode‑символами, чтобы продемонстрировать поддержку полноширинных символов. + +```csharp +using System; +using Aspose.BarCode.Generation; + +// Create a Macro PDF417 barcode generator with the desired text +using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) +{ + // Subsequent steps go inside this using block +``` + +*Почему это важно*: Тип `MacroPdf417` указывает Aspose.BarCode рассматривать символ как макро‑штрих‑код, способный нести дополнительную метаданные уровня файла. Без этого флага дополнительные поля, которые вы зададите позже, будут проигнорированы. + +### Шаг 2: Настроить базовый внешний вид штрих‑кода + +Далее задайте визуальный размер штрих‑кода. `XDimension.Pixels` контролирует ширину отдельного модуля (самого маленького чёрно‑белого квадрата), а `Pdf417.Columns` влияет на общую форму, задавая количество столбцов. + +```csharp + // Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol +``` + +*Почему это важно*: Меньшее значение `XDimension` даёт изображение более высокого разрешения, что полезно, когда штрих‑код сканируют с экрана. Изменение количества столбцов помогает разместить штрих‑код в ограниченном пространстве без потери ёмкости данных. + +### Шаг 3: Заполнить метаданные Macro PDF417 + +Macro PDF417 позволяет внедрять информацию уровня файла, от которой зависят многие бэк‑офисные системы (например, ID файла, ID сегмента, метка времени). Ниже приведены свойства, иллюстрирующие наиболее часто используемые поля. + +```csharp + // Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; +``` + +*Почему это важно*: Каждое поле напрямую сопоставляется с сегментом спецификации макро‑штрих‑кода. Например, `MacroPdf417FileID` уникально идентифицирует логический файл, а `MacroPdf417SegmentsCount` сообщает сканеру, сколько частей следует ожидать. Точные метаданные позволяют downstream‑системам безошибочно воссоздать оригинальный документ. + +### Шаг 4: Сохранить изображение штрих‑кода в PNG + +Наконец, вызовите `Save`, чтобы записать штрих‑код на диск. PNG – формат без потерь, идеально подходящий для высококачественного сканирования. + +```csharp + // Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); +} +``` + +*Почему это важно*: Перечисление `BarCodeImageFormat.Png` гарантирует, что выходной файл будет содержать точно те пиксельные данные, которые вы настроили. Если нужен векторный формат для масштабирования, замените `Png` на `Svg` – Aspose.BarCode поддерживает его из коробки. + +#### Ожидаемый результат + +Запуск полной программы создаёт файл с именем **ExtPDF417Meta.png**. На изображении виден плотный, многострочный символ PDF417, включающий текст «Åspóse.Barcóde©» и макро‑метаданные, которые вы задали. Сканирование штрих‑кода совместимым считывателем PDF417 возвращает исходный текст плюс структурированный блок данных, содержащий ID файла, ID сегмента, метку времени и другие поля. + +![Screenshot of generated PDF417 barcode](/images/pdf417-example.png){: .center-image alt="Скриншот сгенерированного PDF417 штрих‑кода"} + +## Полный исходный код (готов к копированию) + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace Pdf417MacroDemo +{ + class Program + { + static void Main() + { + // Step 1: Create a Macro PDF417 barcode generator with the desired text + using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) + { + // Step 2: Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol + + // Step 3: Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; + + // Step 4: Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); + } + + Console.WriteLine("Macro PDF417 barcode generated successfully."); + } + } +} +``` + +### Как проверить результат + +1. Откройте `ExtPDF417Meta.png` в любой программе просмотра изображений. +2. Используйте приложение‑сканер PDF417 (например, *Zebra Scanner* или *BarCode Reader* на Android/iOS). +3. Убедитесь, что декодированный полезный груз содержит исходный текст и блок, похожий на JSON, с макро‑полями, которые вы задали. + +## Часто задаваемые вопросы и обработка граничных случаев + +| Вопрос | Ответ | +|----------|--------| +| **Можно ли генерировать векторное изображение вместо PNG?** | Да. Замените `BarCodeImageFormat.Png` на `BarCodeImageFormat.Svg`. Остальная часть кода остаётся без изменений. | +| **Что делать, если мои данные превышают стандартную ёмкость?** | Увеличьте `Pdf417.Columns` или задайте `Pdf417.Rows` вручную. Большие значения позволяют разместить больше кодовых слов в сегменте. | +| **Поддерживается ли Unicode в кодируемом тексте?** | Абсолютно. В примере используется «Åspóse.Barcóde©». Aspose.BarCode автоматически переключается на кодировку UTF‑8 при необходимости. | +| **Нужно ли лицензировать Aspose.BarCode?** | Для продакшна следует применить лицензию, чтобы избавиться от водяного знака оценки. Вызовите `License license = new License(); license.SetLicense("Aspose.BarCode.lic");` перед созданием генератора. | +| **Как обрабатывать ошибки при сохранении файла?** | Оберните вызов `Save` в блок `try/catch` и логируйте `IOException` или `BarCodeException` для отладки. | + +## Заключение + +Теперь вы знаете, как **генерировать PDF417 barcode C#** с помощью Aspose.BarCode, внедрять полные метаданные Macro PDF417 и экспортировать результат в виде высококачественного PNG‑изображения. Шаги — создание генератора, настройка внешнего вида, заполнение метаданных и сохранение изображения — образуют переиспользуемый шаблон, который можно адаптировать для счетов‑фактур, транспортных этикеток или любой другой задачи, требующей богатых данных в штрих‑коде. + +### Следующие шаги + +- Поэкспериментируйте с другими форматами штрих‑кодов (например, QR, Code128), изменив `EncodeTypes`. +- Исследуйте `Pdf417.ErrorCorrectionLevel`, чтобы повысить надёжность сканирования при плохом освещении. +- Интегрируйте сгенерированное изображение в PDF‑отчёт с помощью Aspose.PDF для сквозной автоматизации документооборота. + +Не стесняйтесь менять поля метаданных в соответствии с вашими бизнес‑правилами, и пусть генерация штрих‑кодов станет бесшовной частью ваших C#‑приложений. Приятного кодинга! + +## Что стоит изучить дальше? + +Следующие учебники охватывают тесно связанные темы, расширяющие техники, продемонстрированные в этом руководстве. Каждый ресурс включает полностью работающие примеры кода с пошаговыми объяснениями, помогающими освоить дополнительные возможности API и исследовать альтернативные подходы в ваших проектах. + +- [Как создать штрих‑код – компактный PDF417 с Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [Как создать штрих‑код – компактный PDF417 с Aspose.BarCode (на немецком)](/barcode/german/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [java barcode library – Добавить штрих‑код в PDF с помощью Aspose](/barcode/english/java/barcode-basics/adding-barcode-to-pdf-document/) + +{{< /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/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md b/barcode/russian/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md new file mode 100644 index 000000000..1aa4cc015 --- /dev/null +++ b/barcode/russian/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md @@ -0,0 +1,186 @@ +--- +category: general +date: 2026-08-03 +description: как быстро сохранить штрих‑код с помощью C#. Изучите генерацию штрих‑кода + MicroPDF417, задайте размеры, выберите столбцы и экспортируйте в PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to save barcode +- MicroPDF417 barcode +- C# barcode generation +- barcode XDimension +- PDF417 columns +- barcode image format +language: ru +lastmod: 2026-08-03 +og_description: как сохранить штрих‑код в C# с полным примером. Сгенерировать штрих‑код + MicroPDF417, настроить размер, задать количество столбцов и экспортировать в PNG. +og_image_alt: Screenshot showing a MicroPDF417 barcode saved as a PNG file +og_title: как сохранить штрих‑код – пошаговое руководство C# +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: how to save barcode quickly using C#. Learn MicroPDF417 barcode generation, + set dimensions, choose columns, and export to PNG. + headline: how to save barcode as an image – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- imaging +title: Как сохранить штрих‑код как изображение — полное руководство по C# +url: /ru/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# как сохранить штрих‑код – полное руководство по C# guide + +Если вам нужно **как сохранить штрих‑код** в приложении .NET, этот учебник покажет вам точные шаги. Вы сгенерируете MicroPDF417 штрих‑код, настроите его размеры, выберете количество столбцов и в конце запишете изображение на диск в формате PNG. + +Создание и сохранение штрих‑кодов не требует тяжёлой библиотеки — достаточно класса `BarcodeGenerator` из набора Aspose.BarCode для .NET. В следующих разделах мы пройдёмся по каждому параметру конфигурации, объясним, почему он важен, и предоставим готовый к запуску пример кода. + +## Предварительные требования + +- .NET 6.0 или новее (API работает с .NET Core и .NET Framework) +- Aspose.BarCode for .NET (пакет NuGet `Aspose.BarCode`) +- Папка, в которую у вас есть права записи (используется на шаге **как сохранить штрих‑код**) + +## Шаг 1: Создать генератор штрих‑кода MicroPDF417 + +Первая задача в любом процессе **как сохранить штрих‑код** — создать экземпляр `BarcodeGenerator` с нужной символьной системой и данными. MicroPDF417 — это компактная версия матричного штрих‑кода PDF417, идеальная для небольших этикеток. + +```csharp +using Aspose.BarCode.Generation; + +// Create a MicroPDF417 barcode with sample text that includes Unicode characters. +BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, // Symbology + "Åspóse.Barcóde©"); // Data to encode +``` + +**Почему это важно:** +`EncodeTypes.MicroPdf417` указывает библиотеке использовать алгоритм MicroPDF417, который автоматически обрабатывает коррекцию ошибок и кодирование данных. Предоставление текста Unicode демонстрирует, что генератор корректно обрабатывает символы, не входящие в ASCII. + +## Шаг 2: Настроить X‑размер (размер модуля) + +X‑размер определяет ширину одного модуля штрих‑кода (пиксель). Меньшее значение делает штрих‑код плотнее, а большее упрощает сканирование. + +```csharp +// Set each module to 2 pixels wide. +barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +**Почему это важно:** +Установка `barcode XDimension` гарантирует, что штрих‑код впишется в размер целевой этикетки. Если пропустить этот шаг, размер по умолчанию может оказаться слишком большим для мобильных экранов или небольших печатных материалов. + +## Шаг 3: Выбрать количество столбцов для матрицы PDF417 + +MicroPDF417 поддерживает 1–4 столбца. Большее количество столбцов делает штрих‑код более квадратным; меньшее — растягивает его по вертикали. + +```csharp +// Use the maximum of 4 columns for a compact, square shape. +barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; +``` + +**Почему это важно:** +Настройка **PDF417 columns** позволяет сбалансировать читаемость и ограничения по пространству. Во многих сценариях сканирования раскладка из 4 столбцов обеспечивает лучший компромисс. + +## Шаг 4: Сохранить сгенерированный штрих‑код как PNG‑изображение + +Теперь, когда штрих‑код настроен, вы наконец можете ответить на вопрос «**как сохранить штрих‑код**», записав его в файл. PNG сохраняет без потерь качество, что важно для чёткого сканирования. + +```csharp +// Define the output path (ensure the directory exists). +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + +// Export the barcode to PNG. +barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + +Console.WriteLine($"Barcode saved to: {outputPath}"); +``` + +**Почему это важно:** +`barcode image format` определяет визуальную точность сохраняемого файла. PNG предпочтителен для большинства UI и печатных процессов, поскольку сохраняет чёткие края без артефактов сжатия. + +## Полный, исполняемый пример + +Объединив всё вместе, вы получаете автономную программу, которую можно скопировать, вставить и запустить. + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // 1️⃣ Create the barcode generator. + BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, + "Åspóse.Barcóde©"); + + // 2️⃣ Adjust module size. + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; + + // 3️⃣ Set column count (1‑4 allowed). + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; + + // 4️⃣ Define output location. + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + + // 5️⃣ Save as PNG. + barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"✅ Barcode saved to: {outputPath}"); + } +} +``` + +**Ожидаемый результат** + +Запуск программы создаёт `MicroPdf417.png` на вашем рабочем столе. При открытии файла отображается чёткий штрих‑код MicroPDF417, кодирующий строку `Åspóse.Barcóde©`. Сканирование его любым стандартным сканером штрих‑кодов возвращает исходный текст. + +## Часто задаваемые вопросы и особые случаи + +| Question | Answer | +|----------|--------| +| *Можно ли использовать JPEG вместо PNG?* | Да. Замените `BarCodeImageFormat.Png` на `BarCodeImageFormat.Jpeg`. JPEG имеет меньший размер, но вводит артефакты сжатия, которые могут влиять на сканирование. | +| *Что делать, если мои данные превышают ёмкость MicroPDF417?* | MicroPDF417 может хранить до 1 KB данных. Для более крупных полезных нагрузок переключитесь на полный `EncodeTypes.Pdf417`. | +| *Как изменить цвет штрих‑кода?* | Используйте `barcodeGenerator.Parameters.Barcode.BarColor` и `BackColor` для установки цветов переднего плана/фона перед вызовом `Save`. | +| *Ограничен ли X‑размер целыми пикселями?* | Свойство принимает `float`. Значения вроде `1.5f` допустимы, но большинство принтеров лучше работают с целыми пикселями. | + +## Профессиональные советы для надёжных реализаций **как сохранить штрих‑код** + +- **Проверьте существование выходной папки** с помощью `Directory.Exists` перед вызовом `Save`, чтобы избежать `IOException`. +- **Освободите генератор** (`barcodeGenerator.Dispose()`) при генерации большого количества штрих‑кодов в цикле, чтобы освободить нативные ресурсы. +- **Тестируйте реальными сканерами** после сохранения; визуальный осмотр недостаточен для продакшн‑развёртываний. +- **Поддерживайте библиотеку в актуальном состоянии** — новые версии Aspose.BarCode добавляют улучшения символьных систем и исправления ошибок. + +## Заключение + +Теперь вы знаете, **как сохранить штрих‑код** в виде изображений на C# с использованием библиотеки Aspose.BarCode. Создавая штрих‑код MicroPDF417, настраивая **barcode XDimension**, выбирая подходящие **PDF417 columns** и экспортируя в **barcode image format** вроде PNG, вы получаете полное готовое к продакшн решение. + +Далее изучайте связанные темы, такие как **генерация QR‑кодов на C#**, **массовое создание штрих‑кодов** или **встраивание штрих‑кодов в PDF‑отчёты**. Каждая из них опирается на те же принципы, продемонстрированные здесь, позволяя уверенно расширять ваш набор инструментов для работы с изображениями. + +## Что стоит изучить дальше? + +Следующие учебники охватывают тесно связанные темы, которые опираются на техники, продемонстрированные в этом руководстве. Каждый ресурс содержит полные работающие примеры кода с пошаговыми объяснениями, помогающие освоить дополнительные возможности API и исследовать альтернативные подходы к реализации в ваших проектах. + +- [Как сохранить PNG, используя DataMatrix C40 с Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-c40/) +- [Как установить границу для настройки штрих‑кода ITF-14](/barcode/english/net/itf-14-barcode-customization/) +- [Как сгенерировать Aztec‑штрих‑код с пользовательским соотношением сторон, используя Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) + +{{< /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/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md b/barcode/russian/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md new file mode 100644 index 000000000..b3ef229d0 --- /dev/null +++ b/barcode/russian/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md @@ -0,0 +1,217 @@ +--- +category: general +date: 2026-08-03 +description: Считайте штрих‑код PDF417 с изображения с помощью C# BarCodeReader — + полный пример считывателя штрих‑кодов, который также показывает, как считывать несколько + штрих‑кодов. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- read PDF417 barcode +- barcode reader example +- read multiple barcodes +- read barcodes image +language: ru +lastmod: 2026-08-03 +og_description: Быстро считайте штрих‑код PDF417 с помощью примера BarCodeReader на + C#. Следуйте этому пошаговому руководству, чтобы декодировать macro PDF417 и считывать + несколько штрих‑кодов с изображения. +og_image_alt: Console output of a read PDF417 barcode example in C# +og_title: Чтение штрихкода PDF417 на C# – полный пример считывателя штрихкода +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + headline: Read PDF417 barcode in C# – barcode reader example + type: TechArticle +- description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + name: Read PDF417 barcode in C# – barcode reader example + steps: + - name: '**Create a new console project**' + text: '**Create a new console project**' + - name: '**Add the barcode library**' + text: '**Add the barcode library**' + - name: '**Copy the barcode image**' + text: '**Copy the barcode image**' + type: HowTo +tags: +- barcode +- PDF417 +- C# +- .NET +title: Считывание штрихкода PDF417 в C# – пример считывателя штрихкода +url: /ru/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Чтение штрихкода PDF417 в C# – пример считывателя штрихкодов + +Если вам нужно считать данные штрихкода PDF417 из изображения, это руководство покажет, как сделать это с помощью класса **BarCodeReader** в C#. Вы узнаете пример считывателя штрихкода, который также обрабатывает макро‑PDF417 и может читать несколько штрихкодов на одном изображении. + +Работа со штрихкодами часто подразумевает работу с разными источниками изображений, различными условиями освещения и иногда составными данными, такими как сегменты макро‑PDF417. В этом учебнике рассматривается всё, что необходимо для декодирования штрихкода PDF417, извлечения его расширенных полей и обработки нескольких штрихкодов с одной картинки. К концу вы получите готовую консольную программу, которая читает штрихкоды из файла изображения и выводит подробную информацию в консоль. + +## Что понадобится + +Перед началом убедитесь, что у вас есть: + +* .NET 6.0 SDK или более поздняя версия +* Последняя версия NuGet‑пакета **Aspose.BarCode for .NET** (или любая совместимая библиотека, предоставляющая `BarCodeReader` и `DecodeType.MacroPdf417`) +* Файл изображения, содержащий штрихкод PDF417 или макро‑PDF417 (в примере используется `ExtPDF417Meta.png`) +* Редактор кода или IDE, например Visual Studio 2022 + +Дополнительные сервисы или внешние API не требуются. + +## Настройка проекта для чтения штрихкодов + +1. **Создайте новый консольный проект** + + ```bash + dotnet new console -n Pdf417ReaderDemo + cd Pdf417ReaderDemo + ``` + +2. **Добавьте библиотеку штрихкодов** + + ```bash + dotnet add package Aspose.BarCode --version 23.12 + ``` + +3. **Скопируйте изображение штрихкода** + + Поместите `ExtPDF417Meta.png` (или любое изображение, содержащее штрихкод PDF417) в папку проекта. + Для этого учебника предполагается, что файл находится по пути `YOUR_DIRECTORY/ExtPDF417Meta.png`. + +Проект готов к компиляции и запуску примера считывателя штрихкодов. + +## Как читать штрихкод PDF417 с помощью BarCodeReader + +Суть решения — блок `using`, который создаёт экземпляр `BarCodeReader`, указывает `DecodeType.MacroPdf417` и перебирает каждый найденный штрихкод. Ниже приведён полностью самодостаточный код, который можно вставить в `Program.cs`. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.BarCodeRecognition; + +class Program +{ + static void Main() + { + // Path to the image that contains one or more PDF417 barcodes + const string imagePath = "YOUR_DIRECTORY/ExtPDF417Meta.png"; + + // Step 1: Create a BarCodeReader for a macro PDF417 image + using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.MacroPdf417)) + { + // Step 2: Read all barcodes from the image + foreach (BarCodeResult result in reader.ReadBarCodes()) + { + // Step 3: Output basic barcode information + Console.WriteLine($"CodeType: {result.CodeTypeName}"); + Console.WriteLine($"CodeText: {result.CodeText}"); + + // Step 4: Output macro PDF417 specific fields + Console.WriteLine($"Pdf417MacroFileID: {result.Extended.Pdf417.MacroPdf417FileID}"); + Console.WriteLine($"Pdf417MacroSegmentID: {result.Extended.Pdf417.MacroPdf417SegmentID}"); + Console.WriteLine($"Pdf417MacroSegmentsCount: {result.Extended.Pdf417.MacroPdf417SegmentsCount}"); + Console.WriteLine($"Pdf417MacroFileName: {result.Extended.Pdf417.MacroPdf417FileName}"); + Console.WriteLine($"Pdf417MacroChecksum: {result.Extended.Pdf417.MacroPdf417Checksum}"); + Console.WriteLine($"Pdf417MacroFileSize: {result.Extended.Pdf417.MacroPdf417FileSize}"); + Console.WriteLine($"Pdf417MacroTimeStamp: {result.Extended.Pdf417.MacroPdf417TimeStamp}"); + Console.WriteLine($"Pdf417MacroAddressee: {result.Extended.Pdf417.MacroPdf417Addressee}"); + Console.WriteLine($"Pdf417MacroSender: {result.Extended.Pdf417.MacroPdf417Sender}"); + Console.WriteLine($"MacroPdf417Terminator: {result.Extended.Pdf417.MacroPdf417Terminator}"); + Console.WriteLine(new string('-', 40)); + } + + // Pro tip: If no barcodes are found, ReadBarCodes() returns an empty collection. + // You can check reader.HasBarcodes for a quick boolean test. + if (!reader.HasBarcodes) + { + Console.WriteLine("No barcodes detected in the provided image."); + } + } + } +} +``` + +**Почему это работает**: + +* `DecodeType.MacroPdf417` указывает считывателю искать макро‑расширение PDF417, которое содержит дополнительную мета‑информацию, такую как ID файла, количество сегментов и метки времени. +* Оператор `using` гарантирует своевременное освобождение неуправляемых ресурсов (дескрипторы файлов, нативные буферы декодирования). +* Цикл `foreach` автоматически обрабатывает **все** штрихкоды, присутствующие на изображении, удовлетворяя требование *чтения нескольких штрихкодов*. + +При запуске программы (`dotnet run`) вы должны увидеть вывод, похожий на следующий: + +``` +CodeType: MacroPdf417 +CodeText: https://example.com/document.pdf +Pdf417MacroFileID: 12345 +Pdf417MacroSegmentID: 1 +Pdf417MacroSegmentsCount: 3 +Pdf417MacroFileName: document.pdf +Pdf417MacroChecksum: 0x1A2B +Pdf417MacroFileSize: 204800 +Pdf417MacroTimeStamp: 2024-07-15T10:25:00Z +Pdf417MacroAddressee: John Doe +Pdf417MacroSender: Acme Corp +MacroPdf417Terminator: True +---------------------------------------- +``` + +Если изображение содержит более одного штрихкода PDF417, цикл выводит отдельный блок для каждого штрихкода, демонстрируя, как **читать несколько штрихкодов** с одной картинки. + +## Чтение нескольких штрихкодов с одного изображения + +Тот же экземпляр `BarCodeReader` может декодировать сразу несколько типов штрихкодов. Чтобы расширить область от только макро‑PDF417 к любому PDF417 (или даже QR, Code128 и т.д.), измените флаг `DecodeType`: + +```csharp +using (BarCodeReader reader = new BarCodeReader(imagePath, + DecodeType.Pdf417 | DecodeType.MacroPdf417 | DecodeType.QR | DecodeType.Code128)) +{ + // The rest of the code stays unchanged. +} +``` + +*`DecodeType`* — это битовая маска, поэтому вы можете комбинировать любое количество поддерживаемых форматов. Такая гибкость делает фрагмент **примером считывателя штрихкодов**, работающим в широком спектре сценариев, например сканирование этикеток товаров, билетов или удостоверений личности. + +## Безопасный доступ к полям макро‑PDF417 + +Макро‑PDF417 добавляет богатый набор расширенных свойств. Однако не каждый штрихкод содержит все поля. Попытка доступа к отсутствующему свойству может вызвать `NullReferenceException`. Самый безопасный подход — проверять каждое свойство перед выводом: + +```csharp +var macro = result.Extended?.Pdf417; +if (macro != null) +{ + Console.WriteLine($"Pdf417MacroFileID: {macro.MacroPdf417FileID ?? "N/A"}"); + // Repeat for other fields... +} +``` + +*Почему это важно*: В реальных проектах вы можете получать обычные штрихкоды PDF417 без макро‑данных. Защитная проверка гарантирует, что приложение продолжит работу без сбоев. + +## Распространённые ошибки и лучшие практики + +| Проблема | Почему происходит | Рекомендуемое решение | +|----------|-------------------|------------------------| +| Неправильный путь к изображению | `BarCodeReader` бросает исключение «файл не найден» до начала декодирования | Используйте `Path.Combine` и проверяйте наличие файла с помощью `File.Exists` | +| Низкое разрешение изображения | Декодер не может обнаружить границы штрихкода, результат — ноль обнаружений | Обеспечьте минимум 300 dpi для надёжных результатов | +| Штрихкод повернут более 45° | Многие библиотеки предполагают вертикальное расположение | Включите `reader.RecognitionOptions.RotateImage = true`, если изображение может быть повернутым | + +## Что изучать дальше? + +Следующие учебники охватывают тесно связанные темы, расширяющие техники, продемонстрированные в этом руководстве. Каждый ресурс включает полностью рабочие примеры кода с пошаговыми объяснениями, чтобы помочь вам освоить дополнительные возможности API и исследовать альтернативные подходы в собственных проектах. + +- [How to Read DataMatrix Barcodes with Aspose.BarCode for .NET](/barcode/english/net/datamatrix-barcode-reading/) +- [Read DataMatrix barcode C# – Generate DataMatrix Mode (Auto)](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-auto/) +- [Read Barcode from Image – Mastering Barcode Region Extraction in Java with Aspose.BarCode](/barcode/english/java/advanced-settings-and-optimization/extracting-barcode-region-information/) + +{{< /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/net/compact-pdf417-encoding/_index.md b/barcode/spanish/net/compact-pdf417-encoding/_index.md index 6c5e3bd09..f4b89e072 100644 --- a/barcode/spanish/net/compact-pdf417-encoding/_index.md +++ b/barcode/spanish/net/compact-pdf417-encoding/_index.md @@ -85,6 +85,14 @@ Más allá de lo básico, aquí tienes algunos consejos prácticos para optimiza ## Tutoriales de codificación Compact PDF417 ### [Crear códigos de barras Compact PDF417](./compact-pdf417-basic-configuration/) Aprende a generar códigos de barras Compact PDF417 usando Aspose.BarCode para .NET. Guía completa con instrucciones paso a paso y ejemplos de código. +### [Crear código de barras PDF417 en C# – guía paso a paso](./create-pdf417-barcode-in-c-step-by-step-guide/) +Aprende a crear un código de barras PDF417 en C# con instrucciones detalladas y ejemplos de código. +### [Generar código de barras PDF417 en C# – guía completa con Aspose.BarCode](./generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/) +Aprende a crear códigos de barras PDF417 en C# paso a paso usando Aspose.BarCode, con ejemplos y mejores prácticas. +### [Cómo guardar un código de barras como imagen – guía completa en C#](./how-to-save-barcode-as-an-image-complete-c-guide/) +Aprende a guardar códigos de barras como imágenes usando Aspose.BarCode en C# con ejemplos paso a paso. +### [Leer código de barras PDF417 en C# – ejemplo de lector de códigos de barras](./read-pdf417-barcode-in-c-barcode-reader-example/) +Aprende a leer códigos de barras PDF417 en C# usando Aspose.BarCode con un ejemplo práctico de lector. ## Preguntas frecuentes @@ -114,4 +122,4 @@ R: No se requieren fuentes externas; la biblioteca maneja todo el renderizado in {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/spanish/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md b/barcode/spanish/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..01027fd91 --- /dev/null +++ b/barcode/spanish/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-08-03 +description: Crea códigos de barras PDF417 en C# rápidamente. Aprende cómo generar + un código de barras PDF417 y cómo guardar la imagen del código de barras como PNG + con Aspose.Barcode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create pdf417 barcode +- how to generate pdf417 barcode +- how to save barcode image +language: es +lastmod: 2026-08-03 +og_description: Crea un código de barras PDF417 en C# con Aspose.Barcode. Sigue esta + guía para generar un código de barras PDF417 y aprender cómo guardar la imagen del + código de barras de manera eficiente. +og_image_alt: Screenshot of a generated compact PDF417 barcode saved as PNG +og_title: Crear código de barras PDF417 en C# – tutorial completo de programación +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + headline: Create PDF417 barcode in C# – step‑by‑step guide + type: TechArticle +- description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + name: Create PDF417 barcode in C# – step‑by‑step guide + steps: + - name: Why this matters + text: '* **EncodeTypes.Pdf417** tells the library to use the PDF417 standard, + which supports large data payloads and error correction. * Providing Unicode + characters proves the generator handles non‑ASCII input without extra configuration.' + - name: Practical tip + text: If you need a taller barcode for limited horizontal space, increase `Columns`. + Setting `Truncate` to `true` reduces the overall height by removing quiet zones, + which is ideal for mobile screens. + - name: Expected result + text: Running the program creates `CompactPdf417.png` in the project folder. Opening + the file shows a compact PDF417 barcode that encodes the string *Åspóse.Barcóde©*. + The image can be embedded in HTML, PDF reports, or printed on labels. + - name: Verifying the output + text: 'After the program finishes, you can verify the file exists with a quick + command:' + type: HowTo +tags: +- barcode +- C# +- PDF417 +- image generation +title: Crear código de barras PDF417 en C# – guía paso a paso +url: /es/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crear código de barras PDF417 en C# – guía paso a paso + +Si necesitas **crear código de barras PDF417** en una aplicación .NET, esta guía te muestra exactamente cómo generar un código de barras PDF417 y cómo guardar la imagen del código de barras. Obtendrás un archivo PNG que puede usarse en informes, tickets o aplicaciones móviles de escaneo. + +El tutorial cubre todo, desde la configuración del proyecto hasta el archivo PNG final. No se requiere documentación externa; simplemente sigue los pasos y ejecuta el código. + +## Lo que necesitarás + +* SDK de .NET 6.0 o posterior (el código también funciona con .NET Framework 4.7+) +* Visual Studio 2022 o cualquier IDE que soporte C# +* Acceso a Internet para instalar el paquete NuGet **Aspose.Barcode for .NET** + +Estos requisitos previos garantizan que el código se compile sin configuración adicional. + +## Crear código de barras PDF417 – configuración del proyecto + +1. Abre una línea de comandos y crea un nuevo proyecto de consola: + + ```bash + dotnet new console -n Pdf417Demo + cd Pdf417Demo + ``` + +2. Añade la biblioteca Aspose.Barcode: + + ```bash + dotnet add package Aspose.Barcode + ``` + +3. Abre el archivo `Program.cs` generado. Las sentencias `using` al inicio te dan acceso a las clases de códigos de barras: + + ```csharp + using System; + using Aspose.Barcode.Generation; + using Aspose.Barcode; + ``` + +El proyecto está ahora listo para **crear código de barras PDF417**. + +## Cómo generar código de barras PDF417 con Aspose.Barcode + +El núcleo de la creación del código de barras reside en la clase `BarcodeGenerator`. Especificas la simbología (`EncodeTypes.Pdf417`) y los datos que deseas codificar. + +```csharp +// Step 1: Initialise the generator with PDF417 symbology and sample text. +// The text includes Unicode characters to demonstrate full‑range support. +BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Pdf417, "Åspóse.Barcóde©"); +``` + +### Por qué es importante + +* **EncodeTypes.Pdf417** indica a la biblioteca que use el estándar PDF417, que soporta grandes cargas de datos y corrección de errores. +* Proveer caracteres Unicode demuestra que el generador maneja entradas no ASCII sin configuración adicional. + +## Cómo configurar la apariencia del código de barras + +Puedes controlar el tamaño de cada módulo, el número de columnas y si el código de barras usa modo compacto (truncado). Estas configuraciones afectan tanto la legibilidad como el tamaño del archivo. + +```csharp +// Step 2: Set the module (X) dimension – each barcode element will be 2 pixels wide. +generator.Parameters.Barcode.XDimension.Pixels = 2; + +// Step 3: Configure PDF417‑specific options. +generator.Parameters.Barcode.Pdf417.Columns = 3; // Number of columns (affects height) +generator.Parameters.Barcode.Pdf417.Truncate = true; // Enable compact mode +``` + +### Consejo práctico + +Si necesitas un código de barras más alto para espacio horizontal limitado, aumenta `Columns`. Configurar `Truncate` a `true` reduce la altura total al eliminar las zonas silenciosas, lo cual es ideal para pantallas móviles. + +## Cómo guardar la imagen del código de barras como PNG + +Después de configurar el generador, llama a `Save` con una ruta de archivo y el formato de imagen deseado. El método escribe la imagen directamente en el disco. + +```csharp +// Step 4: Save the generated barcode as a PNG image. +string outputPath = @"./CompactPdf417.png"; +generator.Save(outputPath, BarCodeImageFormat.Png); +Console.WriteLine($"Barcode saved to {outputPath}"); +``` + +### Resultado esperado + +Ejecutar el programa crea `CompactPdf417.png` en la carpeta del proyecto. Al abrir el archivo se muestra un código de barras PDF417 compacto que codifica la cadena *Åspóse.Barcóde©*. La imagen puede incrustarse en HTML, informes PDF o imprimirse en etiquetas. + +## Código fuente completo + +A continuación se muestra el programa completo y ejecutable. Cópialo en `Program.cs` y ejecuta `dotnet run`. + +```csharp +using System; +using Aspose.Barcode.Generation; +using Aspose.Barcode; + +namespace Pdf417Demo +{ + class Program + { + static void Main() + { + // Initialise the generator with PDF417 symbology and sample text. + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.Pdf417, + "Åspóse.Barcóde©"); + + // Set the module width to 2 pixels. + generator.Parameters.Barcode.XDimension.Pixels = 2; + + // Configure PDF417‑specific options. + generator.Parameters.Barcode.Pdf417.Columns = 3; + generator.Parameters.Barcode.Pdf417.Truncate = true; + + // Define the output file path. + string outputPath = @"./CompactPdf417.png"; + + // Save the barcode as a PNG image. + generator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"Barcode saved to {outputPath}"); + } + } +} +``` + +### Verificando la salida + +Después de que el programa termine, puedes verificar que el archivo existe con un comando rápido: + +```bash +dotnet run && ls -l CompactPdf417.png +``` + +Si el archivo aparece, el proceso de **crear código de barras PDF417** se completó con éxito. + +## Variaciones comunes y casos límite + +| Situación | Ajuste | +|-----------|--------| +| **Cadena de datos más larga** | Aumenta `Columns` o establece `Rows` para acomodar más codewords. | +| **Formato de imagen diferente** | Reemplaza `BarCodeImageFormat.Png` por `Jpeg`, `Bmp` o `Gif`. | +| **Resolución más alta** | Establece `generator.Parameters.ImageResolution` antes de `Save`. | +| **Color de fondo** | Usa `generator.Parameters.Barcode.ImageBackgroundColor = Color.White;` | +| **Manejo de excepciones** | Envuelve `generator.Save` en un bloque `try/catch` para capturar errores de E/S. | + +## Conclusión + +Ahora sabes cómo **crear código de barras PDF417** en C# usando Aspose.Barcode, configurar su apariencia y **guardar la imagen del código de barras** como archivo PNG. El ejemplo completo muestra cada paso necesario, desde la configuración del proyecto hasta la verificación, para que puedas integrar la generación de códigos de barras en cualquier solución .NET. + +A continuación, considera explorar temas relacionados como **cómo generar códigos QR**, **incrustar códigos de barras en documentos PDF**, o **personalizar colores de códigos de barras**. Cada uno de estos se basa en la misma API del generador, lo que te permite ampliar las capacidades de escaneo de tu aplicación con un esfuerzo mínimo. ¡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 características adicionales de la API y explorar enfoques de implementación alternativos en tus propios proyectos. + +- [Cómo crear código de barras – PDF417 compacto con Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [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/) + +{{< /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/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md b/barcode/spanish/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md new file mode 100644 index 000000000..47ef108c3 --- /dev/null +++ b/barcode/spanish/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md @@ -0,0 +1,241 @@ +--- +category: general +date: 2026-08-03 +description: Generar código de barras PDF417 en C# usando Aspose.BarCode. Aprende + paso a paso cómo agregar metadatos Macro PDF417 y guardarlo como PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- generate PDF417 barcode C# +- Macro PDF417 barcode +- Aspose.BarCode +- C# barcode generation +- PDF417 metadata +- barcode image PNG +language: es +lastmod: 2026-08-03 +og_description: Generar código de barras PDF417 en C# con Aspose.BarCode. Este tutorial + muestra cómo incrustar metadatos Macro PDF417 y exportar el resultado como una imagen + PNG. +og_image_alt: Screenshot of a generated PDF417 barcode created with C# +og_title: Generar código de barras PDF417 en C# – tutorial paso a paso de Aspose.BarCode +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + headline: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + type: TechArticle +- description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + name: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + steps: + - name: Create a Macro PDF417 barcode generator + text: First, instantiate `BarcodeGenerator` with the `EncodeTypes.MacroPdf417` + enum. The constructor also accepts the text you want to encode – in this example + we use a string that contains Unicode characters to demonstrate full‑width support. + - name: Adjust basic barcode appearance + text: Next, define the visual size of the barcode. `XDimension.Pixels` controls + the width of a single module (the smallest black/white square), while `Pdf417.Columns` + influences the overall shape by setting the number of columns. + - name: Populate Macro PDF417 metadata + text: Macro PDF417 allows you to embed file‑level information that many back‑office + systems rely on (e.g., file ID, segment ID, timestamp). The following properties + illustrate the most common fields. + - name: Save the barcode image as PNG + text: Finally, call `Save` to write the barcode to disk. PNG is lossless, making + it ideal for high‑quality scanning. + - name: How to verify the result + text: 1. Open `ExtPDF417Meta.png` in any image viewer. 2. Use a PDF417 scanner + app (e.g., *Zebra Scanner* or *BarCode Reader* on Android/iOS). 3. Confirm that + the decoded payload includes the original text and a JSON‑like block with the + macro fields you set. + - name: Next steps + text: '- Experiment with other barcode formats (e.g., QR, Code128) by changing + `EncodeTypes`. - Explore `Pdf417.ErrorCorrectionLevel` to improve scan reliability + under poor lighting. - Integrate the generated image into a PDF report using + Aspose.PDF for end‑to‑end document automation.' + type: HowTo +tags: +- PDF417 +- C# +- Barcode +title: Generar código de barras PDF417 C# – guía completa con Aspose.BarCode +url: /es/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Generar PDF417 barcode C# – guía completa + +Si necesitas **generate PDF417 barcode C#** para un sistema logístico o de gestión de documentos, este tutorial te muestra exactamente cómo hacerlo con Aspose.BarCode. Verás cómo configurar el código de barras, incrustar metadatos Macro PDF417 y guardar el resultado como una imagen PNG en solo unas pocas líneas de código. + +Generar un código de barras PDF417 en C# a menudo implica manejar información adicional como identificadores de archivo, números de segmento o marcas de tiempo. Esta guía cubre esos detalles, para que no tengas que buscar en documentación dispersa. Al final del artículo tendrás un programa listo para ejecutar que produce una imagen de código de barras Macro PDF417 conforme. + +## Lo que necesitarás + +- .NET 6.0 o posterior (el código también funciona con .NET Framework 4.7+) +- Aspose.BarCode for .NET (v23.9 o más reciente) – instalar vía NuGet `Install-Package Aspose.BarCode` +- Un entorno de desarrollo como Visual Studio 2022 o Visual Studio Code +- Familiaridad básica con la sintaxis de C# + +> **Consejo:** Utiliza la última versión de Aspose.BarCode para beneficiarte de correcciones de errores y soporte para las especificaciones más recientes de PDF417. + +## Cómo generar PDF417 barcode C# con Aspose.BarCode + +El proceso consta de cuatro pasos lógicos. Cada paso está envuelto en un bloque de código claro para que puedas copiar, pegar y ejecutar inmediatamente. + +### Paso 1: Crear un generador de código de barras Macro PDF417 + +Primero, instancia `BarcodeGenerator` con el enum `EncodeTypes.MacroPdf417`. El constructor también acepta el texto que deseas codificar; en este ejemplo usamos una cadena que contiene caracteres Unicode para demostrar el soporte de ancho completo. + +```csharp +using System; +using Aspose.BarCode.Generation; + +// Create a Macro PDF417 barcode generator with the desired text +using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) +{ + // Subsequent steps go inside this using block +``` + +*Por qué es importante*: El tipo `MacroPdf417` indica a Aspose.BarCode que trate el símbolo como un código de barras macro, que puede transportar metadatos a nivel de archivo. Sin esta bandera, los campos adicionales que configures más adelante serían ignorados. + +### Paso 2: Ajustar la apariencia básica del código de barras + +A continuación, define el tamaño visual del código de barras. `XDimension.Pixels` controla el ancho de un módulo único (el cuadrado negro/blanco más pequeño), mientras que `Pdf417.Columns` influye en la forma general estableciendo el número de columnas. + +```csharp + // Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol +``` + +*Por qué es importante*: Un `XDimension` más pequeño produce una imagen de mayor resolución, lo que es útil cuando el código de barras debe escanearse desde una pantalla. Cambiar el recuento de columnas puede ayudar a encajar el código de barras en un espacio limitado sin sacrificar la capacidad de datos. + +### Paso 3: Rellenar los metadatos Macro PDF417 + +Macro PDF417 permite incrustar información a nivel de archivo que muchos sistemas de back‑office utilizan (p. ej., ID de archivo, ID de segmento, marca de tiempo). Las siguientes propiedades ilustran los campos más comunes. + +```csharp + // Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; +``` + +*Por qué es importante*: Cada campo se asigna directamente a un segmento de la especificación del código de barras macro. Por ejemplo, `MacroPdf417FileID` identifica de forma única el archivo lógico, mientras que `MacroPdf417SegmentsCount` indica al escáner cuántas partes debe esperar. Proveer metadatos precisos asegura que los sistemas posteriores puedan reconstruir el documento original sin errores. + +### Paso 4: Guardar la imagen del código de barras como PNG + +Finalmente, llama a `Save` para escribir el código de barras en disco. PNG es sin pérdida, lo que lo hace ideal para escaneos de alta calidad. + +```csharp + // Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); +} +``` + +*Por qué es importante*: El enum `BarCodeImageFormat.Png` garantiza que el archivo de salida contenga los datos de píxeles exactos que configuraste. Si necesitas un formato vectorial para escalar, reemplaza `Png` por `Svg` – Aspose.BarCode lo soporta de forma nativa. + +#### Resultado esperado + +Ejecutar el programa completo crea un archivo llamado **ExtPDF417Meta.png**. La imagen muestra un símbolo PDF417 denso y de varias filas que incluye el texto “Åspóse.Barcóde©” y los metadatos macro que proporcionaste. Escanear el código de barras con un lector compatible con PDF417 devuelve el texto original más un bloque de datos estructurado que contiene el ID de archivo, ID de segmento, marca de tiempo y otros campos. + +![Captura de pantalla del código de barras PDF417 generado](/images/pdf417-example.png){: .center-image alt="ejemplo de salida de generación de código de barras PDF417 C#"} + +## Código fuente completo (listo para copiar y pegar) + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace Pdf417MacroDemo +{ + class Program + { + static void Main() + { + // Step 1: Create a Macro PDF417 barcode generator with the desired text + using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) + { + // Step 2: Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol + + // Step 3: Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; + + // Step 4: Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); + } + + Console.WriteLine("Macro PDF417 barcode generated successfully."); + } + } +} +``` + +### Cómo verificar el resultado + +1. Abre `ExtPDF417Meta.png` en cualquier visor de imágenes. +2. Utiliza una aplicación escáner de PDF417 (p.ej., *Zebra Scanner* o *BarCode Reader* en Android/iOS). +3. Confirma que la carga decodificada incluye el texto original y un bloque tipo JSON con los campos macro que configuraste. + +## Preguntas frecuentes y manejo de casos límite + +| Pregunta | Respuesta | +|----------|-----------| +| **¿Puedo generar una imagen vectorial en lugar de PNG?** | Sí. Reemplaza `BarCodeImageFormat.Png` por `BarCodeImageFormat.Svg`. El resto del código permanece sin cambios. | +| **¿Qué pasa si mis datos superan la capacidad predeterminada?** | Incrementa `Pdf417.Columns` o establece `Pdf417.Rows` manualmente. Valores mayores permiten más codewords por segmento. | +| **¿Se admite Unicode en el texto codificado?** | Absolutamente. El ejemplo usa “Åspóse.Barcóde©”. Aspose.BarCode cambia automáticamente a codificación UTF‑8 cuando es necesario. | +| **¿Necesito registrar una licencia para Aspose.BarCode?** | Para producción deberías aplicar una licencia para evitar la marca de agua de evaluación. Llama a `License license = new License(); license.SetLicense("Aspose.BarCode.lic");` antes de crear el generador. | +| **¿Cómo manejo errores al guardar el archivo?** | Envuelve la llamada a `Save` en un bloque try/catch y registra `IOException` o `BarCodeException` para la solución de problemas. | + +## Conclusión + +Ahora sabes cómo **generate PDF417 barcode C#** usando Aspose.BarCode, incrustar metadatos completos de Macro PDF417 y exportar el resultado como una imagen PNG de alta calidad. Los pasos —crear el generador, ajustar la apariencia, rellenar los metadatos y guardar la imagen— forman un patrón reutilizable que puedes adaptar para facturas, etiquetas de envío o cualquier escenario que requiera datos de código de barras enriquecidos. + +### Próximos pasos + +- Experimenta con otros formatos de código de barras (p.ej., QR, Code128) cambiando `EncodeTypes`. +- Explora `Pdf417.ErrorCorrectionLevel` para mejorar la fiabilidad del escaneo bajo poca iluminación. +- Integra la imagen generada en un informe PDF usando Aspose.PDF para automatización de documentos de extremo a extremo. + +Siéntete libre de modificar los campos de metadatos para que coincidan con tus reglas de negocio, y permite que la generación de códigos de barras se convierta en una parte fluida de tus aplicaciones C#. ¡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 crear código de barras – PDF417 compacto con Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [Cómo crear un código de barras – PDF417 compacto con Aspose.BarCode](/barcode/german/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [biblioteca de códigos de barras Java – Añadir código de barras a PDF usando Aspose](/barcode/english/java/barcode-basics/adding-barcode-to-pdf-document/) + +{{< /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/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md b/barcode/spanish/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md new file mode 100644 index 000000000..19f6d9aeb --- /dev/null +++ b/barcode/spanish/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md @@ -0,0 +1,188 @@ +--- +category: general +date: 2026-08-03 +description: Cómo guardar rápidamente un código de barras usando C#. Aprende la generación + de códigos de barras MicroPDF417, establece dimensiones, elige columnas y exporta + a PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to save barcode +- MicroPDF417 barcode +- C# barcode generation +- barcode XDimension +- PDF417 columns +- barcode image format +language: es +lastmod: 2026-08-03 +og_description: cómo guardar un código de barras en C# con un ejemplo completo. Genera + un código de barras MicroPDF417, ajusta el tamaño, establece las columnas y exporta + a PNG. +og_image_alt: Screenshot showing a MicroPDF417 barcode saved as a PNG file +og_title: Cómo guardar código de barras – tutorial paso a paso en C# +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: how to save barcode quickly using C#. Learn MicroPDF417 barcode generation, + set dimensions, choose columns, and export to PNG. + headline: how to save barcode as an image – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- imaging +title: Cómo guardar un código de barras como imagen – guía completa de C# +url: /es/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# cómo guardar un código de barras – guía completa en C# + +Si necesitas **cómo guardar un código de barras** en una aplicación .NET, este tutorial te muestra los pasos exactos. Generarás un código de barras MicroPDF417, ajustarás sus dimensiones, elegirás la cantidad de columnas y, finalmente, escribirás la imagen en disco como un archivo PNG. + +Crear y persistir códigos de barras no requiere una biblioteca pesada—solo la clase `BarcodeGenerator` del conjunto Aspose.BarCode for .NET. En las secciones siguientes repasamos cada opción de configuración, explicamos por qué es importante y te ofrecemos un ejemplo de código listo para ejecutar. + +## Prerequisites + +- .NET 6.0 o posterior (la API funciona con .NET Core y .NET Framework) +- Aspose.BarCode for .NET (paquete NuGet `Aspose.BarCode`) +- Una carpeta en la que tengas permiso de escritura (usada en el paso de **cómo guardar un código de barras**) + +## Paso 1: Crear un generador de código de barras MicroPDF417 + +El primer paso en cualquier flujo de **cómo guardar un código de barras** es instanciar un `BarcodeGenerator` con la simbología y los datos deseados. MicroPDF417 es una versión compacta del código de barras matricial PDF417, ideal para etiquetas pequeñas. + +```csharp +using Aspose.BarCode.Generation; + +// Create a MicroPDF417 barcode with sample text that includes Unicode characters. +BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, // Symbology + "Åspóse.Barcóde©"); // Data to encode +``` + +**Por qué es importante:** +`EncodeTypes.MicroPdf417` indica a la biblioteca que use el algoritmo MicroPDF417, que maneja automáticamente la corrección de errores y la codificación de datos. Proporcionar texto Unicode demuestra que el generador procesa correctamente caracteres no ASCII. + +## Paso 2: Ajustar la dimensión X (tamaño del módulo) + +La dimensión X define el ancho de un solo módulo del código de barras (píxel). Un valor más pequeño produce un código de barras más compacto, mientras que un valor mayor lo hace más fácil de escanear. + +```csharp +// Set each module to 2 pixels wide. +barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +**Por qué es importante:** +Establecer `barcode XDimension` asegura que el código de barras se ajuste al tamaño de la etiqueta objetivo. Si omites este paso, el tamaño predeterminado puede ser demasiado grande para pantallas móviles o impresiones pequeñas. + +## Paso 3: Elegir el número de columnas para la matriz PDF417 + +MicroPDF417 admite de 1 a 4 columnas. Más columnas producen un código de barras más cuadrado; menos columnas lo estiran verticalmente. + +```csharp +// Use the maximum of 4 columns for a compact, square shape. +barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; +``` + +**Por qué es importante:** +Ajustar las **columnas PDF417** te permite equilibrar la legibilidad con las limitaciones de espacio. En muchos escenarios de escaneo, una disposición de 4 columnas ofrece el mejor compromiso. + +## Paso 4: Guardar el código de barras generado como una imagen PNG + +Ahora que el código de barras está configurado, finalmente puedes responder “**cómo guardar un código de barras**” escribiéndolo en un archivo. PNG conserva calidad sin pérdidas, lo cual es esencial para un escaneo nítido. + +```csharp +// Define the output path (ensure the directory exists). +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + +// Export the barcode to PNG. +barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + +Console.WriteLine($"Barcode saved to: {outputPath}"); +``` + +**Por qué es importante:** +`barcode image format` determina la fidelidad visual del archivo guardado. PNG es preferido para la mayoría de flujos de UI e impresión porque mantiene bordes nítidos sin artefactos de compresión. + +## Ejemplo completo y ejecutable + +Juntando todo se obtiene un programa autónomo que puedes copiar, pegar y ejecutar. + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // 1️⃣ Create the barcode generator. + BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, + "Åspóse.Barcóde©"); + + // 2️⃣ Adjust module size. + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; + + // 3️⃣ Set column count (1‑4 allowed). + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; + + // 4️⃣ Define output location. + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + + // 5️⃣ Save as PNG. + barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"✅ Barcode saved to: {outputPath}"); + } +} +``` + +**Salida esperada** + +Ejecutar el programa crea `MicroPdf417.png` en tu escritorio. Abrir el archivo muestra un código de barras MicroPDF417 claro que codifica la cadena `Åspóse.Barcóde©`. Escanearlo con cualquier lector de códigos de barras estándar devuelve el texto original. + +## Preguntas frecuentes y casos límite + +| Pregunta | Respuesta | +|----------|-----------| +| *¿Puedo usar JPEG en lugar de PNG?* | Sí. Reemplaza `BarCodeImageFormat.Png` por `BarCodeImageFormat.Jpeg`. JPEG es más pequeño pero introduce artefactos de compresión que pueden afectar el escaneo. | +| *¿Qué pasa si mis datos superan la capacidad de MicroPDF417?* | MicroPDF417 puede almacenar hasta 1 KB de datos. Para cargas más grandes cambia a `EncodeTypes.Pdf417` completo. | +| *¿Cómo cambio el color del código de barras?* | Utiliza `barcodeGenerator.Parameters.Barcode.BarColor` y `BackColor` para establecer los colores de primer plano/fondo antes de llamar a `Save`. | +| *¿La dimensión X está limitada a píxeles enteros?* | La propiedad acepta un `float`. Valores como `1.5f` son permitidos, pero la mayoría de impresoras funcionan mejor con tamaños de píxel enteros. | + +## Consejos profesionales para implementaciones fiables de **cómo guardar un código de barras** + +- **Valida la carpeta de salida** con `Directory.Exists` antes de llamar a `Save` para evitar `IOException`. +- **Libera el generador** (`barcodeGenerator.Dispose()`) cuando generes muchos códigos de barras en un bucle para liberar recursos nativos. +- **Prueba con escáneres reales** después de guardar; la inspección visual no es suficiente para implementaciones en producción. +- **Mantén la biblioteca actualizada**—las versiones más recientes de Aspose.BarCode añaden mejoras de simbología y correcciones de errores. + +## Conclusión + +Ahora sabes **cómo guardar un código de barras** en imágenes con C# usando la biblioteca Aspose.BarCode. Creando un código de barras MicroPDF417, configurando la **XDimension del código de barras**, seleccionando las **columnas PDF417** apropiadas y exportando a un **formato de imagen de código de barras** como PNG, tienes una solución completa y lista para producción. + +A continuación, explora temas relacionados como **generación de códigos de barras QR en C#**, **creación masiva de códigos de barras**, o **incrustación de códigos de barras en informes PDF**. Cada uno de estos se basa en los mismos principios demostrados aquí, permitiéndote ampliar tu conjunto de herramientas de imágenes con confianza. + +## ¿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 guardar PNG usando DataMatrix C40 con Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-c40/) +- [Cómo establecer borde para personalización de código de barras ITF-14](/barcode/english/net/itf-14-barcode-customization/) +- [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/) + +{{< /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/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md b/barcode/spanish/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md new file mode 100644 index 000000000..c325b532f --- /dev/null +++ b/barcode/spanish/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md @@ -0,0 +1,218 @@ +--- +category: general +date: 2026-08-03 +description: Leer código de barras PDF417 de una imagen usando C# BarCodeReader – + un ejemplo completo de lector de códigos de barras que también muestra cómo leer + múltiples códigos de barras. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- read PDF417 barcode +- barcode reader example +- read multiple barcodes +- read barcodes image +language: es +lastmod: 2026-08-03 +og_description: Lea rápidamente códigos de barras PDF417 con un ejemplo de BarCodeReader + en C#. Siga esta guía paso a paso para decodificar macro PDF417 y leer varios códigos + de barras de una imagen. +og_image_alt: Console output of a read PDF417 barcode example in C# +og_title: Leer código de barras PDF417 en C# – ejemplo completo de lector de códigos + de barras +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + headline: Read PDF417 barcode in C# – barcode reader example + type: TechArticle +- description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + name: Read PDF417 barcode in C# – barcode reader example + steps: + - name: '**Create a new console project**' + text: '**Create a new console project**' + - name: '**Add the barcode library**' + text: '**Add the barcode library**' + - name: '**Copy the barcode image**' + text: '**Copy the barcode image**' + type: HowTo +tags: +- barcode +- PDF417 +- C# +- .NET +title: Leer código de barras PDF417 en C# – ejemplo de lector de códigos de barras +url: /es/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Leer código de barras PDF417 en C# – ejemplo de lector de códigos de barras + +Si necesitas leer datos de códigos de barras PDF417 a partir de una imagen, esta guía te muestra cómo hacerlo con la clase **BarCodeReader** en C#. Aprenderás un ejemplo de lector de códigos de barras que también maneja macro PDF417 y puede leer múltiples códigos de barras en una sola imagen. + +Trabajar con códigos de barras a menudo implica lidiar con diferentes fuentes de imágenes, condiciones de iluminación variables y, a veces, datos compuestos como segmentos macro PDF417. Este tutorial cubre todo lo que necesitas para decodificar un código de barras PDF417, extraer sus campos extendidos y procesar varios códigos de barras de la misma foto. Al final tendrás un programa de consola ejecutable que lee códigos de barras de un archivo de imagen y muestra información detallada en la consola. + +## Lo que necesitarás + +Antes de comenzar, asegúrate de tener: + +* SDK de .NET 6.0 o posterior instalado +* Una versión reciente del paquete NuGet **Aspose.BarCode for .NET** (o cualquier biblioteca compatible que proporcione `BarCodeReader` y `DecodeType.MacroPdf417`) +* Un archivo de imagen que contenga un código de barras PDF417 o macro PDF417 (el ejemplo usa `ExtPDF417Meta.png`) +* Un editor de código o IDE como Visual Studio 2022 + +No se requieren servicios adicionales ni APIs externas. + +## Configuración del proyecto para la lectura de códigos de barras + +1. **Crear un nuevo proyecto de consola** + + ```bash + dotnet new console -n Pdf417ReaderDemo + cd Pdf417ReaderDemo + ``` + +2. **Agregar la biblioteca de códigos de barras** + + ```bash + dotnet add package Aspose.BarCode --version 23.12 + ``` + +3. **Copiar la imagen del código de barras** + + Coloca `ExtPDF417Meta.png` (o cualquier imagen que contenga un código de barras PDF417) en la carpeta del proyecto. + Para este tutorial asumimos que el archivo se encuentra en `YOUR_DIRECTORY/ExtPDF417Meta.png`. + +El proyecto ya está listo para compilar y ejecutar el ejemplo de lector de códigos de barras. + +## Cómo leer códigos de barras PDF417 con BarCodeReader + +El núcleo de la solución es un bloque `using` que crea una instancia de `BarCodeReader`, especifica `DecodeType.MacroPdf417` y recorre cada código de barras detectado. El siguiente código es un programa completo y autónomo que puedes pegar en `Program.cs`. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.BarCodeRecognition; + +class Program +{ + static void Main() + { + // Path to the image that contains one or more PDF417 barcodes + const string imagePath = "YOUR_DIRECTORY/ExtPDF417Meta.png"; + + // Step 1: Create a BarCodeReader for a macro PDF417 image + using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.MacroPdf417)) + { + // Step 2: Read all barcodes from the image + foreach (BarCodeResult result in reader.ReadBarCodes()) + { + // Step 3: Output basic barcode information + Console.WriteLine($"CodeType: {result.CodeTypeName}"); + Console.WriteLine($"CodeText: {result.CodeText}"); + + // Step 4: Output macro PDF417 specific fields + Console.WriteLine($"Pdf417MacroFileID: {result.Extended.Pdf417.MacroPdf417FileID}"); + Console.WriteLine($"Pdf417MacroSegmentID: {result.Extended.Pdf417.MacroPdf417SegmentID}"); + Console.WriteLine($"Pdf417MacroSegmentsCount: {result.Extended.Pdf417.MacroPdf417SegmentsCount}"); + Console.WriteLine($"Pdf417MacroFileName: {result.Extended.Pdf417.MacroPdf417FileName}"); + Console.WriteLine($"Pdf417MacroChecksum: {result.Extended.Pdf417.MacroPdf417Checksum}"); + Console.WriteLine($"Pdf417MacroFileSize: {result.Extended.Pdf417.MacroPdf417FileSize}"); + Console.WriteLine($"Pdf417MacroTimeStamp: {result.Extended.Pdf417.MacroPdf417TimeStamp}"); + Console.WriteLine($"Pdf417MacroAddressee: {result.Extended.Pdf417.MacroPdf417Addressee}"); + Console.WriteLine($"Pdf417MacroSender: {result.Extended.Pdf417.MacroPdf417Sender}"); + Console.WriteLine($"MacroPdf417Terminator: {result.Extended.Pdf417.MacroPdf417Terminator}"); + Console.WriteLine(new string('-', 40)); + } + + // Pro tip: If no barcodes are found, ReadBarCodes() returns an empty collection. + // You can check reader.HasBarcodes for a quick boolean test. + if (!reader.HasBarcodes) + { + Console.WriteLine("No barcodes detected in the provided image."); + } + } + } +} +``` + +**Por qué funciona**: + +* `DecodeType.MacroPdf417` indica al lector que busque la extensión macro de PDF417, que lleva metadatos adicionales como ID de archivo, recuento de segmentos y marcas de tiempo. +* La instrucción `using` garantiza que los recursos no administrados (manejadores de archivo, búferes nativos de decodificación) se liberen rápidamente. +* El bucle `foreach` procesa automáticamente **todos** los códigos de barras que contiene la imagen, cumpliendo el requisito de *leer múltiples códigos de barras*. + +Cuando ejecutes el programa (`dotnet run`), deberías ver una salida similar a la siguiente: + +``` +CodeType: MacroPdf417 +CodeText: https://example.com/document.pdf +Pdf417MacroFileID: 12345 +Pdf417MacroSegmentID: 1 +Pdf417MacroSegmentsCount: 3 +Pdf417MacroFileName: document.pdf +Pdf417MacroChecksum: 0x1A2B +Pdf417MacroFileSize: 204800 +Pdf417MacroTimeStamp: 2024-07-15T10:25:00Z +Pdf417MacroAddressee: John Doe +Pdf417MacroSender: Acme Corp +MacroPdf417Terminator: True +---------------------------------------- +``` + +Si la imagen contiene más de un código de barras PDF417, el bucle imprime un bloque separado para cada código, demostrando así cómo **leer múltiples códigos de barras** de una sola imagen. + +## Lectura de múltiples códigos de barras desde una imagen + +La misma instancia de `BarCodeReader` puede decodificar varios tipos de códigos de barras a la vez. Para ampliar el alcance más allá del macro PDF417 a cualquier PDF417 (o incluso QR, Code128, etc.), ajusta la bandera `DecodeType`: + +```csharp +using (BarCodeReader reader = new BarCodeReader(imagePath, + DecodeType.Pdf417 | DecodeType.MacroPdf417 | DecodeType.QR | DecodeType.Code128)) +{ + // The rest of the code stays unchanged. +} +``` + +*`DecodeType`* es una máscara de bits, por lo que puedes combinar cualquier número de formatos compatibles. Esta flexibilidad convierte el fragmento en un **ejemplo de lector de códigos de barras** que funciona para una amplia variedad de casos de uso, como escanear etiquetas de productos, boletos o tarjetas de identificación. + +## Accediendo a los campos macro PDF417 de forma segura + +Macro PDF417 añade un conjunto rico de propiedades extendidas. Sin embargo, no todos los códigos de barras incluyen cada campo. Acceder a una propiedad inexistente puede lanzar una `NullReferenceException`. El enfoque más seguro es verificar cada propiedad antes de imprimirla: + +```csharp +var macro = result.Extended?.Pdf417; +if (macro != null) +{ + Console.WriteLine($"Pdf417MacroFileID: {macro.MacroPdf417FileID ?? "N/A"}"); + // Repeat for other fields... +} +``` + +*Por qué es importante*: En implementaciones del mundo real puedes recibir códigos de barras PDF417 simples que carecen de datos macro. La verificación defensiva asegura que tu aplicación continúe ejecutándose sin fallos. + +## Errores comunes y mejores prácticas + +| Problema | Por qué ocurre | Solución recomendada | +|----------|----------------|----------------------| +| La ruta de la imagen es incorrecta | `BarCodeReader` lanza una excepción de archivo no encontrado antes de que ocurra cualquier decodificación | Usa `Path.Combine` y valida que el archivo exista con `File.Exists` | +| Imagen de baja resolución | El decodificador no puede localizar los bordes del código de barras, resultando en cero detecciones | Proporciona una resolución mínima de 300 dpi para obtener resultados fiables | +| Código de barras rotado > 45° | Muchas bibliotecas asumen una orientación vertical | Habilita `reader.RecognitionOptions.RotateImage = true` si el | + +## ¿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 características adicionales de la API y explorar enfoques de implementación alternativos en tus propios proyectos. + +- [Cómo leer códigos de barras DataMatrix con Aspose.BarCode para .NET](/barcode/english/net/datamatrix-barcode-reading/) +- [Leer código de barras DataMatrix C# – Generar modo DataMatrix (Auto)](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-auto/) +- [Leer código de barras desde una imagen – Dominando la extracción de región de código de barras en Java con Aspose.BarCode](/barcode/english/java/advanced-settings-and-optimization/extracting-barcode-region-information/) + +{{< /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/net/compact-pdf417-encoding/_index.md b/barcode/swedish/net/compact-pdf417-encoding/_index.md index cc613e6f8..2c4fbebd0 100644 --- a/barcode/swedish/net/compact-pdf417-encoding/_index.md +++ b/barcode/swedish/net/compact-pdf417-encoding/_index.md @@ -84,6 +84,14 @@ Utöver grunderna, här är några praktiska tips för att effektivisera ditt ar ## Kompakt PDF417-kodningshandledning ### [Skapa kompakta PDF417-streckkoder](./compact-pdf417-basic-configuration/) Lär dig hur du genererar Compact PDF417‑streckkoder med Aspose.BarCode för .NET. Omfattande guide med steg‑för‑steg‑instruktioner och kodexempel. +### [Skapa PDF417-streckkod i C# – steg‑för‑steg‑guide](./create-pdf417-barcode-in-c-step-by-step-guide/) +Lär dig hur du skapar en PDF417‑streckkod i C# med en detaljerad steg‑för‑steg‑guide. +### [Generera PDF417-streckkod i C# – komplett guide med Aspose.BarCode](./generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/) +Lär dig att generera PDF417‑streckkoder i C# med en komplett guide och exempel med Aspose.BarCode. +### [Hur man sparar streckkod som bild – komplett C#-guide](./how-to-save-barcode-as-an-image-complete-c-guide/) +Lär dig hur du sparar en streckkod som bild i C# med en komplett steg‑för‑steg‑guide. +### [Läs PDF417-streckkod i C# – exempel på streckkodsläsare](./read-pdf417-barcode-in-c-barcode-reader-example/) +Lär dig hur du läser PDF417‑streckkoder i C# med Aspose.BarCode‑läsaren. ## Vanliga frågor @@ -113,4 +121,4 @@ A: Inga externa typsnitt krävs; biblioteket hanterar all rendering internt. {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/swedish/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md b/barcode/swedish/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..5d9c51db1 --- /dev/null +++ b/barcode/swedish/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-08-03 +description: Skapa PDF417‑streckkod i C# snabbt. Lär dig hur du genererar PDF417‑streckkod + och hur du sparar streckkodens bild som PNG med Aspose.Barcode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create pdf417 barcode +- how to generate pdf417 barcode +- how to save barcode image +language: sv +lastmod: 2026-08-03 +og_description: Skapa PDF417-streckkod i C# med Aspose.Barcode. Följ den här guiden + för att generera PDF417-streckkod och hur du sparar streckkodsbilden effektivt. +og_image_alt: Screenshot of a generated compact PDF417 barcode saved as PNG +og_title: Skapa PDF417-streckkod i C# – komplett kodningshandledning +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + headline: Create PDF417 barcode in C# – step‑by‑step guide + type: TechArticle +- description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + name: Create PDF417 barcode in C# – step‑by‑step guide + steps: + - name: Why this matters + text: '* **EncodeTypes.Pdf417** tells the library to use the PDF417 standard, + which supports large data payloads and error correction. * Providing Unicode + characters proves the generator handles non‑ASCII input without extra configuration.' + - name: Practical tip + text: If you need a taller barcode for limited horizontal space, increase `Columns`. + Setting `Truncate` to `true` reduces the overall height by removing quiet zones, + which is ideal for mobile screens. + - name: Expected result + text: Running the program creates `CompactPdf417.png` in the project folder. Opening + the file shows a compact PDF417 barcode that encodes the string *Åspóse.Barcóde©*. + The image can be embedded in HTML, PDF reports, or printed on labels. + - name: Verifying the output + text: 'After the program finishes, you can verify the file exists with a quick + command:' + type: HowTo +tags: +- barcode +- C# +- PDF417 +- image generation +title: Skapa PDF417‑streckkod i C# – steg‑för‑steg‑guide +url: /sv/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Skapa PDF417-streckkod i C# – steg‑för‑steg‑guide + +Om du behöver **skapa PDF417-streckkod** i en .NET-applikation visar den här guiden exakt hur du genererar PDF417-streckkod och hur du sparar streckkodsbilden. Du får en PNG-fil som kan användas i rapporter, biljetter eller mobila skanningsappar. + +Handledningen täcker allt från projektuppsättning till den slutliga PNG-filen. Ingen extern dokumentation krävs; följ bara stegen och kör koden. + +## Vad du behöver + +Innan du börjar, se till att du har: + +* .NET 6.0 SDK eller senare (koden fungerar också med .NET Framework 4.7+) +* Visual Studio 2022 eller någon IDE som stödjer C# +* Internetåtkomst för att installera **Aspose.Barcode for .NET** NuGet‑paketet + +Dessa förutsättningar säkerställer att koden kompileras utan ytterligare konfiguration. + +## Skapa PDF417-streckkod – projektuppsättning + +1. Öppna en kommandoprompt och skapa ett nytt konsolprojekt: + + ```bash + dotnet new console -n Pdf417Demo + cd Pdf417Demo + ``` + +2. Lägg till Aspose.Barcode‑biblioteket: + + ```bash + dotnet add package Aspose.Barcode + ``` + +3. Öppna den genererade filen `Program.cs`. `using`‑satserna högst upp ger dig åtkomst till streckkodsklasserna: + + ```csharp + using System; + using Aspose.Barcode.Generation; + using Aspose.Barcode; + ``` + +Projektet är nu redo att **skapa PDF417-streckkod**. + +## Hur man genererar PDF417-streckkod med Aspose.Barcode + +Kärnan i streckkodsskapandet finns i klassen `BarcodeGenerator`. Du specificerar symbologin (`EncodeTypes.Pdf417`) och de data du vill koda. + +```csharp +// Step 1: Initialise the generator with PDF417 symbology and sample text. +// The text includes Unicode characters to demonstrate full‑range support. +BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Pdf417, "Åspóse.Barcóde©"); +``` + +### Varför detta är viktigt + +* **EncodeTypes.Pdf417** talar om för biblioteket att använda PDF417‑standarden, som stödjer stora datamängder och felkorrigering. +* Att tillhandahålla Unicode‑tecken visar att generatorn hanterar icke‑ASCII‑inmatning utan extra konfiguration. + +## Hur man konfigurerar streckkodens utseende + +Du kan styra storleken på varje modul, antalet kolumner och om streckkoden använder kompakt (trunkerad) läge. Dessa inställningar påverkar både läsbarhet och filstorlek. + +```csharp +// Step 2: Set the module (X) dimension – each barcode element will be 2 pixels wide. +generator.Parameters.Barcode.XDimension.Pixels = 2; + +// Step 3: Configure PDF417‑specific options. +generator.Parameters.Barcode.Pdf417.Columns = 3; // Number of columns (affects height) +generator.Parameters.Barcode.Pdf417.Truncate = true; // Enable compact mode +``` + +### Praktiskt tips + +Om du behöver en högre streckkod för begränsat horisontellt utrymme, öka `Columns`. Att sätta `Truncate` till `true` minskar den totala höjden genom att ta bort tysta zoner, vilket är idealiskt för mobila skärmar. + +## Hur man sparar streckkodsbild som PNG + +Efter att ha konfigurerat generatorn, anropa `Save` med en filsökväg och önskat bildformat. Metoden skriver bilden direkt till disk. + +```csharp +// Step 4: Save the generated barcode as a PNG image. +string outputPath = @"./CompactPdf417.png"; +generator.Save(outputPath, BarCodeImageFormat.Png); +Console.WriteLine($"Barcode saved to {outputPath}"); +``` + +### Förväntat resultat + +När programmet körs skapas `CompactPdf417.png` i projektmappen. När du öppnar filen visas en kompakt PDF417‑streckkod som kodar strängen *Åspóse.Barcóde©*. Bilden kan bäddas in i HTML, PDF‑rapporter eller skrivas ut på etiketter. + +## Fullständig källkod + +Nedan är det kompletta, körbara programmet. Kopiera det till `Program.cs` och kör `dotnet run`. + +```csharp +using System; +using Aspose.Barcode.Generation; +using Aspose.Barcode; + +namespace Pdf417Demo +{ + class Program + { + static void Main() + { + // Initialise the generator with PDF417 symbology and sample text. + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.Pdf417, + "Åspóse.Barcóde©"); + + // Set the module width to 2 pixels. + generator.Parameters.Barcode.XDimension.Pixels = 2; + + // Configure PDF417‑specific options. + generator.Parameters.Barcode.Pdf417.Columns = 3; + generator.Parameters.Barcode.Pdf417.Truncate = true; + + // Define the output file path. + string outputPath = @"./CompactPdf417.png"; + + // Save the barcode as a PNG image. + generator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"Barcode saved to {outputPath}"); + } + } +} +``` + +### Verifiera resultatet + +När programmet är klart kan du verifiera att filen finns med ett snabbt kommando: + +```bash +dotnet run && ls -l CompactPdf417.png +``` + +Om filen visas har processen för att **skapa PDF417-streckkod** lyckats. + +## Vanliga variationer och kantfall + +| Situation | Justering | +|-----------|------------| +| **Längre datasträng** | Öka `Columns` eller sätt `Rows` för att rymma fler kodord. | +| **Annat bildformat** | Byt ut `BarCodeImageFormat.Png` mot `Jpeg`, `Bmp` eller `Gif`. | +| **Högre upplösning** | Sätt `generator.Parameters.ImageResolution` innan `Save`. | +| **Bakgrundsfärg** | Använd `generator.Parameters.Barcode.ImageBackgroundColor = Color.White;` | +| **Undantagshantering** | Omslut `generator.Save` med ett `try/catch`‑block för att fånga I/O‑fel. | + +## Slutsats + +Du vet nu hur du **skapar PDF417-streckkod** i C# med Aspose.Barcode, konfigurerar dess utseende och **sparar streckkodsbilden** som en PNG‑fil. Det kompletta exemplet visar varje nödvändigt steg, från projektuppsättning till verifiering, så att du kan integrera streckkodsgenerering i vilken .NET‑lösning som helst. + +Nästa steg är att utforska relaterade ämnen som **hur man genererar QR‑koder**, **bädda in streckkoder i PDF‑dokument** eller **anpassa streckkodsfärger**. Alla dessa bygger på samma generator‑API, vilket låter dig utöka din applikations skanningsmöjligheter med minimal ansträngning. 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 implementationsmetoder i dina egna projekt. + +- [Hur man skapar streckkod – kompakt PDF417 med Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [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/) + +{{< /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/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md b/barcode/swedish/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md new file mode 100644 index 000000000..e7f490c63 --- /dev/null +++ b/barcode/swedish/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md @@ -0,0 +1,240 @@ +--- +category: general +date: 2026-08-03 +description: Generera PDF417‑streckkod i C# med Aspose.BarCode. Lär dig steg för steg + hur du lägger till Macro PDF417‑metadata och sparar som PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- generate PDF417 barcode C# +- Macro PDF417 barcode +- Aspose.BarCode +- C# barcode generation +- PDF417 metadata +- barcode image PNG +language: sv +lastmod: 2026-08-03 +og_description: Generera PDF417-streckkod i C# med Aspose.BarCode. Denna handledning + visar hur du bäddar in Macro PDF417-metadata och exporterar resultatet som en PNG-bild. +og_image_alt: Screenshot of a generated PDF417 barcode created with C# +og_title: Generera PDF417‑streckkod C# – steg‑för‑steg Aspose.BarCode‑handledning +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + headline: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + type: TechArticle +- description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + name: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + steps: + - name: Create a Macro PDF417 barcode generator + text: First, instantiate `BarcodeGenerator` with the `EncodeTypes.MacroPdf417` + enum. The constructor also accepts the text you want to encode – in this example + we use a string that contains Unicode characters to demonstrate full‑width support. + - name: Adjust basic barcode appearance + text: Next, define the visual size of the barcode. `XDimension.Pixels` controls + the width of a single module (the smallest black/white square), while `Pdf417.Columns` + influences the overall shape by setting the number of columns. + - name: Populate Macro PDF417 metadata + text: Macro PDF417 allows you to embed file‑level information that many back‑office + systems rely on (e.g., file ID, segment ID, timestamp). The following properties + illustrate the most common fields. + - name: Save the barcode image as PNG + text: Finally, call `Save` to write the barcode to disk. PNG is lossless, making + it ideal for high‑quality scanning. + - name: How to verify the result + text: 1. Open `ExtPDF417Meta.png` in any image viewer. 2. Use a PDF417 scanner + app (e.g., *Zebra Scanner* or *BarCode Reader* on Android/iOS). 3. Confirm that + the decoded payload includes the original text and a JSON‑like block with the + macro fields you set. + - name: Next steps + text: '- Experiment with other barcode formats (e.g., QR, Code128) by changing + `EncodeTypes`. - Explore `Pdf417.ErrorCorrectionLevel` to improve scan reliability + under poor lighting. - Integrate the generated image into a PDF report using + Aspose.PDF for end‑to‑end document automation.' + type: HowTo +tags: +- PDF417 +- C# +- Barcode +title: Generera PDF417‑streckkod C# – komplett guide med Aspose.BarCode +url: /sv/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Generera PDF417-streckkod C# – komplett guide + +Om du behöver **generera PDF417-streckkod C#** för ett logistik- eller dokumenthanteringssystem, visar den här handledningen exakt hur du gör det med Aspose.BarCode. Du kommer att se hur du konfigurerar streckkoden, bäddar in Macro PDF417-metadata och sparar resultatet som en PNG‑bild på bara några kodrader. + +Att generera en PDF417-streckkod i C# innebär ofta att hantera extra information såsom filidentifierare, segmentnummer eller tidsstämplar. Denna guide täcker dessa detaljer, så att du slipper leta igenom spridd dokumentation. I slutet av artikeln har du ett färdigt program som producerar en kompatibel Macro PDF417‑streckkodsbild. + +## Vad du behöver + +- .NET 6.0 eller senare (koden fungerar också med .NET Framework 4.7+) +- Aspose.BarCode för .NET (v23.9 eller nyare) – installera via NuGet `Install-Package Aspose.BarCode` +- En utvecklingsmiljö som Visual Studio 2022 eller Visual Studio Code +- Grundläggande kunskap om C#‑syntax + +> **Proffstips:** Använd den senaste versionen av Aspose.BarCode för att dra nytta av buggfixar och stöd för de senaste PDF417-specifikationerna. + +## Hur man genererar PDF417-streckkod C# med Aspose.BarCode + +Processen består av fyra logiska steg. Varje steg är omslutet av ett tydligt kodblock så att du kan kopiera, klistra in och köra det omedelbart. + +### Steg 1: Skapa en Macro PDF417‑streckkodsgenerator + +Först instansierar du `BarcodeGenerator` med enum‑värdet `EncodeTypes.MacroPdf417`. Konstruktorn accepterar också den text du vill koda – i detta exempel använder vi en sträng som innehåller Unicode‑tecken för att demonstrera stöd för full bredd. + +```csharp +using System; +using Aspose.BarCode.Generation; + +// Create a Macro PDF417 barcode generator with the desired text +using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) +{ + // Subsequent steps go inside this using block +``` + +*Varför detta är viktigt*: `MacroPdf417`‑typen talar om för Aspose.BarCode att behandla symbolen som en macro‑streckkod, som kan bära extra metadata på filnivå. Utan denna flagga skulle de extra fälten du anger senare ignoreras. + +### Steg 2: Justera grundläggande streckkodens utseende + +Nästa steg är att definiera den visuella storleken på streckkoden. `XDimension.Pixels` styr bredden på en enskild modul (den minsta svarta/vita fyrkanten), medan `Pdf417.Columns` påverkar den övergripande formen genom att ange antalet kolumner. + +```csharp + // Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol +``` + +*Varför detta är viktigt*: En mindre `XDimension` ger en högre upplösning, vilket är användbart när streckkoden måste skannas från en skärm. Att ändra kolumnantalet kan hjälpa till att få streckkoden att passa i begränsat utrymme utan att offra datakapacitet. + +### Steg 3: Fyll i Macro PDF417‑metadata + +Macro PDF417 låter dig bädda in filnivåinformation som många back‑office‑system förlitar sig på (t.ex. fil‑ID, segment‑ID, tidsstämpel). Följande egenskaper illustrerar de vanligaste fälten. + +```csharp + // Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; +``` + +*Varför detta är viktigt*: Varje fält mappar direkt till ett segment av macro‑streckkodsspecifikationen. Till exempel identifierar `MacroPdf417FileID` unikt den logiska filen, medan `MacroPdf417SegmentsCount` talar om för skannern hur många delar som förväntas. Att ange korrekt metadata säkerställer att efterföljande system kan rekonstruera originaldokumentet utan fel. + +### Steg 4: Spara streckkodsbilden som PNG + +Till sist anropar du `Save` för att skriva streckkoden till disk. PNG är förlustfri, vilket gör den idealisk för högkvalitativ skanning. + +```csharp + // Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); +} +``` + +*Varför detta är viktigt*: `BarCodeImageFormat.Png`‑enum garanterar att utdatafilen innehåller exakt de pixeldata du konfigurerat. Om du behöver ett vektorformat för skalning, ersätt `Png` med `Svg` – Aspose.BarCode stödjer det direkt. + +#### Förväntat resultat + +När du kör hela programmet skapas en fil med namnet **ExtPDF417Meta.png**. Bilden visar en tät, flerradig PDF417‑symbol som innehåller texten “Åspóse.Barcóde©” samt den macro‑metadata du angav. Skannar du streckkoden med en PDF417‑kompatibel läsare får du tillbaka originaltexten plus ett strukturerat datablok som innehåller fil‑ID, segment‑ID, tidsstämpel och andra fält. + +![Skärmbild av genererad PDF417-streckkod](/images/pdf417-example.png){: .center-image alt="exempel på genererad PDF417-streckkod C# output"} + +## Fullständig källkod (klar för kopiera‑klistra) + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace Pdf417MacroDemo +{ + class Program + { + static void Main() + { + // Step 1: Create a Macro PDF417 barcode generator with the desired text + using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) + { + // Step 2: Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol + + // Step 3: Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; + + // Step 4: Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); + } + + Console.WriteLine("Macro PDF417 barcode generated successfully."); + } + } +} +``` + +### Så verifierar du resultatet + +1. Öppna `ExtPDF417Meta.png` i någon bildvisare. +2. Använd en PDF417‑skannerapp (t.ex. *Zebra Scanner* eller *BarCode Reader* på Android/iOS). +3. Bekräfta att den avkodade nyttolasten innehåller originaltexten och ett JSON‑liknande block med de macro‑fält du angav. + +## Vanliga frågor och hantering av kantfall + +| Fråga | Svar | +|----------|--------| +| **Kan jag generera en vektorbild istället för PNG?** | Ja. Byt ut `BarCodeImageFormat.Png` mot `BarCodeImageFormat.Svg`. Resten av koden förblir oförändrad. | +| **Vad händer om mina data överskrider standardkapaciteten?** | Öka `Pdf417.Columns` eller sätt `Pdf417.Rows` manuellt. Större värden tillåter fler kodord per segment. | +| **Stöds Unicode i den kodade texten?** | Absolut. Exemplet använder “Åspóse.Barcóde©”. Aspose.BarCode byter automatiskt till UTF‑8‑kodning när det behövs. | +| **Behöver jag signera en licens för Aspose.BarCode?** | För produktion bör du tillämpa en licens för att undvika utvärderingsvattenstämpeln. Anropa `License license = new License(); license.SetLicense("Aspose.BarCode.lic");` innan du skapar generatorn. | +| **Hur hanterar jag fel när filen sparas?** | Omge `Save`‑anropet med ett try/catch‑block och logga `IOException` eller `BarCodeException` för felsökning. | + +## Slutsats + +Du vet nu hur du **genererar PDF417-streckkod C#** med Aspose.BarCode, bäddar in fullständig Macro PDF417‑metadata och exporterar resultatet som en högkvalitativ PNG‑bild. Stegen – att skapa generatorn, justera utseendet, fylla i metadata och spara bilden – bildar ett återanvändbart mönster som du kan anpassa för fakturor, fraktsedlar eller alla scenarier som kräver rik streckkodsdata. + +### Nästa steg + +- Experimentera med andra streckkodformat (t.ex. QR, Code128) genom att ändra `EncodeTypes`. +- Utforska `Pdf417.ErrorCorrectionLevel` för att förbättra skanningspålitlighet under dålig belysning. +- Integrera den genererade bilden i en PDF‑rapport med Aspose.PDF för helautomatiserad dokumenthantering. + +Känn dig fri att modifiera metadata‑fälten så att de matchar dina affärsregler, och låt streckkodsgenereringen bli en sömlös del av dina C#‑applikationer. 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 vidare 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 skapar streckkod – Kompakt PDF417 med Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [Så skapar du en streckkod – Kompakt PDF417 med Aspose.BarCode](/barcode/german/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [java streckkodsbibliotek – Lägg till streckkod i PDF med Aspose](/barcode/english/java/barcode-basics/adding-barcode-to-pdf-document/) + +{{< /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/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md b/barcode/swedish/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md new file mode 100644 index 000000000..c3913da0c --- /dev/null +++ b/barcode/swedish/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md @@ -0,0 +1,186 @@ +--- +category: general +date: 2026-08-03 +description: hur man sparar streckkod snabbt med C#. Lär dig generera MicroPDF417-streckkod, + ställ in dimensioner, välj kolumner och exportera till PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to save barcode +- MicroPDF417 barcode +- C# barcode generation +- barcode XDimension +- PDF417 columns +- barcode image format +language: sv +lastmod: 2026-08-03 +og_description: hur man sparar streckkod i C# med ett komplett exempel. Generera en + MicroPDF417-streckkod, justera storlek, ange kolumner och exportera till PNG. +og_image_alt: Screenshot showing a MicroPDF417 barcode saved as a PNG file +og_title: hur man sparar streckkod – steg‑för‑steg C#‑handledning +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: how to save barcode quickly using C#. Learn MicroPDF417 barcode generation, + set dimensions, choose columns, and export to PNG. + headline: how to save barcode as an image – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- imaging +title: hur man sparar streckkod som bild – komplett C#‑guide +url: /sv/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# hur man sparar streckkod – komplett C#-guide + +Om du behöver **how to save barcode** i en .NET-applikation, visar den här handledningen de exakta stegen. Du kommer att generera en MicroPDF417-streckkod, justera dess dimensioner, välja kolumnantalet och slutligen skriva bilden till disk som en PNG-fil. + +Att skapa och lagra streckkoder kräver inte ett tungt bibliotek—bara `BarcodeGenerator`-klassen från Aspose.BarCode för .NET-sviten. I avsnitten nedan går vi igenom varje konfigurationsalternativ, förklarar varför det är viktigt och ger dig ett färdigt kodexempel som kan köras direkt. + +## Förutsättningar + +- .NET 6.0 eller senare (API:et fungerar med .NET Core och .NET Framework) +- Aspose.BarCode för .NET (NuGet‑paket `Aspose.BarCode`) +- En mapp som du har skrivrättigheter till (används i steget **how to save barcode**) + +## Steg 1: Skapa en MicroPDF417 streckkodsgenerator + +Den första uppgiften i varje **how to save barcode**-arbetsflöde är att instansiera en `BarcodeGenerator` med önskad symbolik och data. MicroPDF417 är en kompakt version av PDF417-matrisstreckkoden, idealisk för små etiketter. + +```csharp +using Aspose.BarCode.Generation; + +// Create a MicroPDF417 barcode with sample text that includes Unicode characters. +BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, // Symbology + "Åspóse.Barcóde©"); // Data to encode +``` + +**Varför detta är viktigt:** +`EncodeTypes.MicroPdf417` talar om för biblioteket att använda MicroPDF417-algoritmen, som automatiskt hanterar felkorrigering och data‑kodning. Att tillhandahålla Unicode‑text visar att generatorn korrekt behandlar icke‑ASCII‑tecken. + +## Steg 2: Justera X‑dimensionen (modulstorlek) + +X‑dimensionen definierar bredden på en enskild streckkodmodul (pixel). Ett mindre värde ger en tätare streckkod, medan ett större värde gör den lättare att skanna. + +```csharp +// Set each module to 2 pixels wide. +barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +**Varför detta är viktigt:** +Att sätta `barcode XDimension` säkerställer att streckkoden passar den avsedda etikettstorleken. Om du hoppar över detta steg kan standardstorleken bli för stor för mobila skärmar eller små utskrifter. + +## Steg 3: Välj antal kolumner för PDF417-matrisen + +MicroPDF417 stödjer 1–4 kolumner. Fler kolumner ger en mer fyrkantig streckkod; färre kolumner sträcker den vertikalt. + +```csharp +// Use the maximum of 4 columns for a compact, square shape. +barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; +``` + +**Varför detta är viktigt:** +Att justera **PDF417 columns** låter dig balansera läsbarhet mot utrymmesbegränsningar. I många skanningsscenarier ger en layout med 4 kolumner den bästa kompromissen. + +## Steg 4: Spara den genererade streckkoden som en PNG‑bild + +Nu när streckkoden är konfigurerad kan du äntligen svara på “**how to save barcode**” genom att skriva den till en fil. PNG bevarar förlustfri kvalitet, vilket är avgörande för skarp skanning. + +```csharp +// Define the output path (ensure the directory exists). +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + +// Export the barcode to PNG. +barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + +Console.WriteLine($"Barcode saved to: {outputPath}"); +``` + +**Varför detta är viktigt:** +`barcode image format` bestämmer den visuella kvaliteten på den sparade filen. PNG föredras för de flesta UI‑ och utskriftsarbetsflöden eftersom den behåller skarpa kanter utan komprimeringsartefakter. + +## Fullt, körbart exempel + +Genom att sätta ihop allt får du ett fristående program som du kan kopiera, klistra in och köra. + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // 1️⃣ Create the barcode generator. + BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, + "Åspóse.Barcóde©"); + + // 2️⃣ Adjust module size. + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; + + // 3️⃣ Set column count (1‑4 allowed). + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; + + // 4️⃣ Define output location. + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + + // 5️⃣ Save as PNG. + barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"✅ Barcode saved to: {outputPath}"); + } +} +``` + +**Förväntad output** + +När programmet körs skapas `MicroPdf417.png` på ditt skrivbord. När du öppnar filen visas en tydlig MicroPDF417-streckkod som kodar strängen `Åspóse.Barcóde©`. Att skanna den med någon standardstreckkodsläsare returnerar den ursprungliga texten. + +## Vanliga frågor och edge cases + +| Question | Answer | +|----------|--------| +| *Kan jag använda JPEG istället för PNG?* | Ja. Byt ut `BarCodeImageFormat.Png` mot `BarCodeImageFormat.Jpeg`. JPEG är mindre men introducerar komprimeringsartefakter som kan påverka skanningen. | +| *Vad händer om min data överskrider MicroPDF417:s kapacitet?* | MicroPDF417 kan lagra upp till 1 KB data. För större mängder bör du byta till full `EncodeTypes.Pdf417`. | +| *Hur ändrar jag streckkodens färg?* | Använd `barcodeGenerator.Parameters.Barcode.BarColor` och `BackColor` för att sätta förgrunds‑/bakgrundsfärger innan du anropar `Save`. | +| *Är X‑dimensionen begränsad till heltalspixlar?* | Egenskapen accepterar ett `float`. Värden som `1.5f` är tillåtna, men de flesta skrivare fungerar bäst med heltalspixlar. | + +## Pro‑tips för pålitliga **how to save barcode**‑implementationer + +- **Validera målmappen** med `Directory.Exists` innan du anropar `Save` för att undvika `IOException`. +- **Disposera generatorn** (`barcodeGenerator.Dispose()`) när du genererar många streckkoder i en loop för att frigöra inhemska resurser. +- **Testa med riktiga skannrar** efter sparning; visuell inspektion räcker inte för produktionsutplaceringar. +- **Håll biblioteket uppdaterat**—nyare Aspose.BarCode‑utgåvor lägger till förbättringar av symbolik och buggfixar. + +## Slutsats + +Du vet nu hur du **how to save barcode**‑bilder i C# med Aspose.BarCode‑biblioteket. Genom att skapa en MicroPDF417‑streckkod, konfigurera **barcode XDimension**, välja lämpliga **PDF417 columns** och exportera till ett **barcode image format** som PNG, har du en komplett, produktionsklar lösning. + +Nästa steg är att utforska relaterade ämnen som **C# barcode generation for QR codes**, **batch barcode creation**, eller **embedding barcodes in PDF reports**. Var och en av dessa bygger på samma principer som demonstrerats här, vilket låter dig utöka ditt bildbehandlingsverktyg med förtroende. + +## 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 sparar PNG med DataMatrix C40 med Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-c40/) +- [Hur man ställer in kant för ITF-14 streckkodsanpassning](/barcode/english/net/itf-14-barcode-customization/) +- [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/) + +{{< /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/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md b/barcode/swedish/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md new file mode 100644 index 000000000..1d9932de9 --- /dev/null +++ b/barcode/swedish/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md @@ -0,0 +1,214 @@ +--- +category: general +date: 2026-08-03 +description: Läs PDF417‑streckkod från en bild med C# BarCodeReader – ett komplett + streckkodsläsareexempel som också visar hur man läser flera streckkoder. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- read PDF417 barcode +- barcode reader example +- read multiple barcodes +- read barcodes image +language: sv +lastmod: 2026-08-03 +og_description: Läs PDF417‑streckkod snabbt med ett C# BarCodeReader‑exempel. Följ + den här steg‑för‑steg‑guiden för att avkoda macro PDF417 och läsa flera streckkoder + från en bild. +og_image_alt: Console output of a read PDF417 barcode example in C# +og_title: Läs PDF417-streckkod i C# – komplett exempel på streckkodsläsare +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + headline: Read PDF417 barcode in C# – barcode reader example + type: TechArticle +- description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + name: Read PDF417 barcode in C# – barcode reader example + steps: + - name: '**Create a new console project**' + text: '**Create a new console project**' + - name: '**Add the barcode library**' + text: '**Add the barcode library**' + - name: '**Copy the barcode image**' + text: '**Copy the barcode image**' + type: HowTo +tags: +- barcode +- PDF417 +- C# +- .NET +title: Läs PDF417‑streckkod i C# – exempel på streckkodsläsare +url: /sv/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Läs PDF417-streckkod i C# – exempel på streckkodsläsare + +Om du behöver läsa PDF417-streckkoddata från en bild visar den här guiden hur du gör det med **BarCodeReader**-klassen i C#. Du kommer att lära dig ett exempel på streckkodsläsare som även hanterar macro PDF417 och kan läsa flera streckkoder i en enda bild. + +Att arbeta med streckkoder innebär ofta att hantera olika bildkällor, varierande ljusförhållanden och ibland sammansatta data såsom macro PDF417-segment. Denna handledning täcker allt du behöver för att avkoda en PDF417-streckkod, extrahera dess utökade fält och bearbeta flera streckkoder från samma bild. I slutet har du ett körbart konsolprogram som läser streckkoder från en bildfil och skriver ut detaljerad information till konsolen. + +## Vad du behöver + +* .NET 6.0 SDK eller senare installerat +* En nyare version av **Aspose.BarCode for .NET** NuGet-paketet (eller något kompatibelt bibliotek som tillhandahåller `BarCodeReader` och `DecodeType.MacroPdf417`) +* En bildfil som innehåller en PDF417- eller macro PDF417-streckkod (exemplet använder `ExtPDF417Meta.png`) +* En kodredigerare eller IDE, till exempel Visual Studio 2022 + +Inga ytterligare tjänster eller externa API:er krävs. + +## Inställning av projektet för streckkodsläsning + +1. **Skapa ett nytt konsolprojekt** + + ```bash + dotnet new console -n Pdf417ReaderDemo + cd Pdf417ReaderDemo + ``` + +2. **Lägg till streckkodsbiblioteket** + + ```bash + dotnet add package Aspose.BarCode --version 23.12 + ``` + +3. **Kopiera streckkodsbilden** + + Placera `ExtPDF417Meta.png` (eller någon bild som innehåller en PDF417-streckkod) i projektmappen. + För den här handledningen antar vi att filen finns på `YOUR_DIRECTORY/ExtPDF417Meta.png`. + +Projektet är nu redo att kompileras och köra streckkodsläsar‑exemplet. + +## Hur man läser PDF417-streckkod med BarCodeReader + +Kärnan i lösningen är ett `using`-block som skapar en `BarCodeReader`-instans, specificerar `DecodeType.MacroPdf417` och itererar över varje upptäckt streckkod. Följande kod är ett komplett, fristående program som du kan klistra in i `Program.cs`. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.BarCodeRecognition; + +class Program +{ + static void Main() + { + // Path to the image that contains one or more PDF417 barcodes + const string imagePath = "YOUR_DIRECTORY/ExtPDF417Meta.png"; + + // Step 1: Create a BarCodeReader for a macro PDF417 image + using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.MacroPdf417)) + { + // Step 2: Read all barcodes from the image + foreach (BarCodeResult result in reader.ReadBarCodes()) + { + // Step 3: Output basic barcode information + Console.WriteLine($"CodeType: {result.CodeTypeName}"); + Console.WriteLine($"CodeText: {result.CodeText}"); + + // Step 4: Output macro PDF417 specific fields + Console.WriteLine($"Pdf417MacroFileID: {result.Extended.Pdf417.MacroPdf417FileID}"); + Console.WriteLine($"Pdf417MacroSegmentID: {result.Extended.Pdf417.MacroPdf417SegmentID}"); + Console.WriteLine($"Pdf417MacroSegmentsCount: {result.Extended.Pdf417.MacroPdf417SegmentsCount}"); + Console.WriteLine($"Pdf417MacroFileName: {result.Extended.Pdf417.MacroPdf417FileName}"); + Console.WriteLine($"Pdf417MacroChecksum: {result.Extended.Pdf417.MacroPdf417Checksum}"); + Console.WriteLine($"Pdf417MacroFileSize: {result.Extended.Pdf417.MacroPdf417FileSize}"); + Console.WriteLine($"Pdf417MacroTimeStamp: {result.Extended.Pdf417.MacroPdf417TimeStamp}"); + Console.WriteLine($"Pdf417MacroAddressee: {result.Extended.Pdf417.MacroPdf417Addressee}"); + Console.WriteLine($"Pdf417MacroSender: {result.Extended.Pdf417.MacroPdf417Sender}"); + Console.WriteLine($"MacroPdf417Terminator: {result.Extended.Pdf417.MacroPdf417Terminator}"); + Console.WriteLine(new string('-', 40)); + } + + // Pro tip: If no barcodes are found, ReadBarCodes() returns an empty collection. + // You can check reader.HasBarcodes for a quick boolean test. + if (!reader.HasBarcodes) + { + Console.WriteLine("No barcodes detected in the provided image."); + } + } + } +} +``` + +**Varför detta fungerar**: + +* `DecodeType.MacroPdf417` talar om för läsaren att leta efter macro‑utökningen av PDF417, som innehåller ytterligare metadata såsom fil‑ID, segmentantal och tidsstämplar. +* `using`‑satsen garanterar att ohanterade resurser (filhandtag, inhemska avkodningsbuffertar) frigörs omedelbart. +* `foreach`‑loopen bearbetar automatiskt **alla** streckkoder som bilden innehåller, vilket uppfyller kravet på *läsa flera streckkoder*. + +När du kör programmet (`dotnet run`) bör du se en utskrift som liknar följande: + +``` +CodeType: MacroPdf417 +CodeText: https://example.com/document.pdf +Pdf417MacroFileID: 12345 +Pdf417MacroSegmentID: 1 +Pdf417MacroSegmentsCount: 3 +Pdf417MacroFileName: document.pdf +Pdf417MacroChecksum: 0x1A2B +Pdf417MacroFileSize: 204800 +Pdf417MacroTimeStamp: 2024-07-15T10:25:00Z +Pdf417MacroAddressee: John Doe +Pdf417MacroSender: Acme Corp +MacroPdf417Terminator: True +---------------------------------------- +``` + +Om bilden innehåller mer än en PDF417-streckkod skriver loopen ut ett separat block för varje streckkod, vilket demonstrerar hur man **läser flera streckkoder** från en enda bild. + +## Läsa flera streckkoder från en bild + +Samma `BarCodeReader`‑instans kan avkoda flera streckkodstyper samtidigt. För att bredda omfånget från endast macro PDF417 till vilken PDF417 som helst (eller till och med QR, Code128, etc.), justera `DecodeType`‑flaggan: + +```csharp +using (BarCodeReader reader = new BarCodeReader(imagePath, + DecodeType.Pdf417 | DecodeType.MacroPdf417 | DecodeType.QR | DecodeType.Code128)) +{ + // The rest of the code stays unchanged. +} +``` + +*`DecodeType`* är en bitmask, så du kan kombinera ett godtyckligt antal stödda format. Denna flexibilitet gör kodsnutten till ett **exempel på streckkodsläsare** som fungerar för en mängd olika användningsfall, såsom skanning av produktetiketter, biljetter eller ID‑kort. + +## Att komma åt macro PDF417-fält på ett säkert sätt + +Macro PDF417 lägger till en rik uppsättning utökade egenskaper. Dock innehåller inte varje streckkod alla fält. Att komma åt en saknad egenskap kan kasta ett `NullReferenceException`. Det säkraste tillvägagångssättet är att verifiera varje egenskap innan den skrivs ut: + +```csharp +var macro = result.Extended?.Pdf417; +if (macro != null) +{ + Console.WriteLine($"Pdf417MacroFileID: {macro.MacroPdf417FileID ?? "N/A"}"); + // Repeat for other fields... +} +``` + +*Varför detta är viktigt*: I verkliga implementationer kan du få vanliga PDF417-streckkoder som saknar macro‑data. Den defensiva kontrollen säkerställer att din applikation fortsätter att köra utan att krascha. + +## Vanliga fallgropar och bästa praxis + +| Problem | Varför det händer | Rekommenderad åtgärd | +|-------|----------------|-----------------| +| Bildvägen är felaktig | `BarCodeReader` kastar ett file‑not‑found‑undantag innan någon avkodning sker | Använd `Path.Combine` och validera att filen finns med `File.Exists` | +| Lågupplöst bild | Avkodaren kan inte lokalisera streckkodens kanter, vilket resulterar i noll upptäckter | Tillhandahåll en minsta upplösning på 300 dpi för pålitliga resultat | +| Streckkod roterad > 45° | Många bibliotek antar vertikal orientering | Aktivera `reader.RecognitionOptions.RotateImage = true` om bilden är roterad | + +## 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 implementationsmetoder i dina egna projekt. + +- [Hur man läser DataMatrix-streckkoder med Aspose.BarCode för .NET](/barcode/english/net/datamatrix-barcode-reading/) +- [Läs DataMatrix-streckkod C# – Generera DataMatrix-läge (Auto)](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-auto/) +- [Läs streckkod från bild – Mästra extrahering av streckkodsområden i Java med Aspose.BarCode](/barcode/english/java/advanced-settings-and-optimization/extracting-barcode-region-information/) + +{{< /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/net/compact-pdf417-encoding/_index.md b/barcode/thai/net/compact-pdf417-encoding/_index.md index 642025381..3078ace0a 100644 --- a/barcode/thai/net/compact-pdf417-encoding/_index.md +++ b/barcode/thai/net/compact-pdf417-encoding/_index.md @@ -84,6 +84,14 @@ Aspose.BarCode ให้คุณตั้งค่าคุณสมบัต ## บทแนะนำการเข้ารหัส Compact PDF417 ### [Creating Compact PDF417 Barcodes](./compact-pdf417-basic-configuration/) เรียนรู้วิธีสร้างบาร์โค้ด Compact PDF417 ด้วย Aspose.BarCode for .NET คู่มือครบถ้วนพร้อมขั้นตอนและตัวอย่างโค้ด +### [สร้างบาร์โค้ด PDF417 ด้วย C# – คู่มือแบบขั้นตอนต่อขั้นตอน](./create-pdf417-barcode-in-c-step-by-step-guide/) +เรียนรู้วิธีสร้างบาร์โค้ด PDF417 ด้วย C# อย่างละเอียดด้วยขั้นตอนที่ชัดเจน +### [สร้างบาร์โค้ด PDF417 ด้วย C# – คู่มือฉบับสมบูรณ์กับ Aspose.BarCode](./generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/) +เรียนรู้วิธีสร้างบาร์โค้ด PDF417 ด้วย C# อย่างละเอียดพร้อมตัวอย่างโค้ดและการตั้งค่าต่าง ๆ +### [วิธีบันทึกบาร์โค้ดเป็นภาพ – คู่มือ C# ฉบับสมบูรณ์](./how-to-save-barcode-as-an-image-complete-c-guide/) +เรียนรู้วิธีบันทึกบาร์โค้ดเป็นไฟล์ภาพด้วย C# อย่างละเอียด +### [อ่านบาร์โค้ด PDF417 ด้วย C# – ตัวอย่างการอ่านบาร์โค้ด](./read-pdf417-barcode-in-c-barcode-reader-example/) +เรียนรู้วิธีอ่านบาร์โค้ด PDF417 ด้วย C# ด้วย Aspose.BarCode ตัวอย่างโค้ดเต็ม ## คำถามที่พบบ่อย @@ -113,4 +121,4 @@ A: ไม่จำเป็นต้องใช้ฟอนต์ภายน {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/thai/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md b/barcode/thai/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..2f0d91a4a --- /dev/null +++ b/barcode/thai/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md @@ -0,0 +1,225 @@ +--- +category: general +date: 2026-08-03 +description: สร้างบาร์โค้ด PDF417 ด้วย C# อย่างรวดเร็ว เรียนรู้วิธีสร้างบาร์โค้ด PDF417 + และวิธีบันทึกรูปภาพบาร์โค้ดเป็น PNG ด้วย Aspose.Barcode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create pdf417 barcode +- how to generate pdf417 barcode +- how to save barcode image +language: th +lastmod: 2026-08-03 +og_description: สร้างบาร์โค้ด PDF417 ด้วย C# และ Aspose.Barcode. ทำตามคำแนะนำนี้เพื่อสร้างบาร์โค้ด + PDF417 และเรียนรู้วิธีบันทึกรูปภาพบาร์โค้ดอย่างมีประสิทธิภาพ. +og_image_alt: Screenshot of a generated compact PDF417 barcode saved as PNG +og_title: สร้างบาร์โค้ด PDF417 ด้วย C# – บทเรียนการเขียนโค้ดครบถ้วน +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + headline: Create PDF417 barcode in C# – step‑by‑step guide + type: TechArticle +- description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + name: Create PDF417 barcode in C# – step‑by‑step guide + steps: + - name: Why this matters + text: '* **EncodeTypes.Pdf417** tells the library to use the PDF417 standard, + which supports large data payloads and error correction. * Providing Unicode + characters proves the generator handles non‑ASCII input without extra configuration.' + - name: Practical tip + text: If you need a taller barcode for limited horizontal space, increase `Columns`. + Setting `Truncate` to `true` reduces the overall height by removing quiet zones, + which is ideal for mobile screens. + - name: Expected result + text: Running the program creates `CompactPdf417.png` in the project folder. Opening + the file shows a compact PDF417 barcode that encodes the string *Åspóse.Barcóde©*. + The image can be embedded in HTML, PDF reports, or printed on labels. + - name: Verifying the output + text: 'After the program finishes, you can verify the file exists with a quick + command:' + type: HowTo +tags: +- barcode +- C# +- PDF417 +- image generation +title: สร้างบาร์โค้ด PDF417 ด้วย C# – คู่มือแบบขั้นตอนโดยละเอียด +url: /th/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# สร้างบาร์โค้ด PDF417 ด้วย C# – คู่มือขั้นตอนโดยละเอียด + +หากคุณต้องการ **สร้างบาร์โค้ด PDF417** ในแอปพลิเคชัน .NET คู่มือนี้จะแสดงให้คุณเห็นวิธีการสร้างบาร์โค้ด PDF417 และวิธีบันทึกรูปภาพบาร์โค้ด คุณจะได้ไฟล์ PNG ที่สามารถใช้ในรายงาน, ตั๋ว, หรือแอปสแกนบนมือถือได้ + +บทเรียนนี้ครอบคลุมตั้งแต่การตั้งค่าโปรเจกต์จนถึงไฟล์ PNG สุดท้าย ไม่ต้องอ้างอิงเอกสารภายนอก เพียงทำตามขั้นตอนและรันโค้ด + +## สิ่งที่คุณต้องมี + +ก่อนเริ่มทำงาน ตรวจสอบให้แน่ใจว่าคุณมี: + +* .NET 6.0 SDK หรือใหม่กว่า (โค้ดนี้ยังทำงานกับ .NET Framework 4.7+) +* Visual Studio 2022 หรือ IDE ใด ๆ ที่รองรับ C# +* การเชื่อมต่ออินเทอร์เน็ตเพื่อทำการติดตั้งแพคเกจ **Aspose.Barcode for .NET** ผ่าน NuGet + +ข้อกำหนดเหล่านี้ทำให้โค้ดคอมไพล์ได้โดยไม่ต้องตั้งค่าเพิ่มเติม + +## สร้างบาร์โค้ด PDF417 – การตั้งค่าโปรเจกต์ + +1. เปิด command prompt แล้วสร้างโปรเจกต์คอนโซลใหม่: + + ```bash + dotnet new console -n Pdf417Demo + cd Pdf417Demo + ``` + +2. เพิ่มไลบรารี Aspose.Barcode: + + ```bash + dotnet add package Aspose.Barcode + ``` + +3. เปิดไฟล์ `Program.cs` ที่สร้างขึ้น `using` statements ที่ด้านบนทำให้คุณเข้าถึงคลาสบาร์โค้ดได้: + + ```csharp + using System; + using Aspose.Barcode.Generation; + using Aspose.Barcode; + ``` + +ตอนนี้โปรเจกต์พร้อมสำหรับ **สร้างบาร์โค้ด PDF417** แล้ว + +## วิธีสร้างบาร์โค้ด PDF417 ด้วย Aspose.Barcode + +แกนหลักของการสร้างบาร์โค้ดอยู่ในคลาส `BarcodeGenerator` คุณระบุ symbology (`EncodeTypes.Pdf417`) และข้อมูลที่ต้องการเข้ารหัส + +```csharp +// Step 1: Initialise the generator with PDF417 symbology and sample text. +// The text includes Unicode characters to demonstrate full‑range support. +BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Pdf417, "Åspóse.Barcóde©"); +``` + +### ทำไมจึงสำคัญ + +* **EncodeTypes.Pdf417** บอกไลบรารีให้ใช้มาตรฐาน PDF417 ซึ่งรองรับข้อมูลขนาดใหญ่และการแก้ไขข้อผิดพลาด +* การใช้ตัวอักษร Unicode แสดงให้เห็นว่าตัวสร้างสามารถจัดการกับข้อมูลที่ไม่ใช่ ASCII ได้โดยไม่ต้องตั้งค่าเพิ่มเติม + +## วิธีกำหนดลักษณะของบาร์โค้ด + +คุณสามารถควบคุมขนาดของแต่ละโมดูล จำนวนคอลัมน์ และการใช้โหมด compact (truncated) การตั้งค่าเหล่านี้ส่งผลต่อความอ่านง่ายและขนาดไฟล์ + +```csharp +// Step 2: Set the module (X) dimension – each barcode element will be 2 pixels wide. +generator.Parameters.Barcode.XDimension.Pixels = 2; + +// Step 3: Configure PDF417‑specific options. +generator.Parameters.Barcode.Pdf417.Columns = 3; // Number of columns (affects height) +generator.Parameters.Barcode.Pdf417.Truncate = true; // Enable compact mode +``` + +### เคล็ดลับปฏิบัติ + +หากต้องการบาร์โค้ดที่สูงขึ้นเพื่อประหยัดพื้นที่แนวนอน ให้เพิ่มค่า `Columns` การตั้งค่า `Truncate` เป็น `true` จะลดความสูงโดยการลบ quiet zones ซึ่งเหมาะกับหน้าจอมือถือ + +## วิธีบันทึกรูปบาร์โค้ดเป็น PNG + +หลังจากกำหนดค่าตัวสร้างแล้ว เรียก `Save` พร้อมเส้นทางไฟล์และรูปแบบภาพที่ต้องการ เมธอดจะเขียนภาพลงดิสก์โดยตรง + +```csharp +// Step 4: Save the generated barcode as a PNG image. +string outputPath = @"./CompactPdf417.png"; +generator.Save(outputPath, BarCodeImageFormat.Png); +Console.WriteLine($"Barcode saved to {outputPath}"); +``` + +### ผลลัพธ์ที่คาดหวัง + +การรันโปรแกรมจะสร้างไฟล์ `CompactPdf417.png` ในโฟลเดอร์โปรเจกต์ การเปิดไฟล์จะแสดงบาร์โค้ด PDF417 แบบ compact ที่เข้ารหัสสตริง *Åspóse.Barcóde©* ภาพนี้สามารถฝังใน HTML, รายงาน PDF หรือพิมพ์บนป้ายได้ + +## โค้ดต้นฉบับเต็ม + +ด้านล่างเป็นโปรแกรมที่สมบูรณ์และสามารถรันได้ คัดลอกไปยัง `Program.cs` แล้วรัน `dotnet run` + +```csharp +using System; +using Aspose.Barcode.Generation; +using Aspose.Barcode; + +namespace Pdf417Demo +{ + class Program + { + static void Main() + { + // Initialise the generator with PDF417 symbology and sample text. + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.Pdf417, + "Åspóse.Barcóde©"); + + // Set the module width to 2 pixels. + generator.Parameters.Barcode.XDimension.Pixels = 2; + + // Configure PDF417‑specific options. + generator.Parameters.Barcode.Pdf417.Columns = 3; + generator.Parameters.Barcode.Pdf417.Truncate = true; + + // Define the output file path. + string outputPath = @"./CompactPdf417.png"; + + // Save the barcode as a PNG image. + generator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"Barcode saved to {outputPath}"); + } + } +} +``` + +### ตรวจสอบผลลัพธ์ + +เมื่อโปรแกรมทำงานเสร็จ คุณสามารถตรวจสอบว่ามีไฟล์อยู่หรือไม่ด้วยคำสั่งสั้น ๆ: + +```bash +dotnet run && ls -l CompactPdf417.png +``` + +หากไฟล์ปรากฏ แสดงว่ากระบวนการ **สร้างบาร์โค้ด PDF417** สำเร็จแล้ว + +## ความแตกต่างทั่วไปและกรณีขอบ + +| สถานการณ์ | การปรับเปลี่ยน | +|-----------|----------------| +| **สตริงข้อมูลยาวกว่า** | เพิ่ม `Columns` หรือกำหนด `Rows` เพื่อรองรับ codewords มากขึ้น | +| **รูปแบบภาพอื่น** | แทนที่ `BarCodeImageFormat.Png` ด้วย `Jpeg`, `Bmp` หรือ `Gif` | +| **ความละเอียดสูงกว่า** | ตั้งค่า `generator.Parameters.ImageResolution` ก่อน `Save` | +| **สีพื้นหลัง** | ใช้ `generator.Parameters.Barcode.ImageBackgroundColor = Color.White;` | +| **การจัดการข้อยกเว้น** | ห่อ `generator.Save` ด้วยบล็อก `try/catch` เพื่อจับข้อผิดพลาด I/O | + +การปรับเปลี่ยนเหล่านี้ช่วยให้คุณปรับบาร์โค้ดให้เหมาะกับอุปกรณ์หรือความต้องการแบรนด์ของคุณได้ + +## สรุป + +คุณได้เรียนรู้วิธี **สร้างบาร์โค้ด PDF417** ด้วย C# และ Aspose.Barcode, วิธีกำหนดลักษณะของบาร์โค้ด, และ **บันทึกรูปบาร์โค้ด** เป็นไฟล์ PNG ตัวอย่างเต็มแสดงขั้นตอนทั้งหมดตั้งแต่การตั้งค่าโปรเจกต์จนถึงการตรวจสอบผลลัพธ์ เพื่อให้คุณสามารถผสานการสร้างบาร์โค้ดเข้าไปในโซลูชัน .NET ใดก็ได้ + +ต่อไปลองสำรวจหัวข้อที่เกี่ยวข้อง เช่น **วิธีสร้าง QR Code**, **ฝังบาร์โค้ดในเอกสาร PDF**, หรือ **การปรับสีบาร์โค้ด** ทุกหัวข้อใช้ API ตัวเดียวกัน ทำให้คุณขยายความสามารถในการสแกนของแอปพลิเคชันได้อย่างง่ายดาย ขอให้สนุกกับการเขียนโค้ด! + +## สิ่งที่คุณควรเรียนต่อไป + +บทเรียนต่อไปนี้ครอบคลุมหัวข้อที่เกี่ยวข้องอย่างใกล้ชิดและต่อยอดจากเทคนิคในคู่มือนี้ แต่ละแหล่งข้อมูลมีโค้ดตัวอย่างทำงานเต็มรูปแบบพร้อมคำอธิบายขั้นตอนเพื่อช่วยคุณเชี่ยวชาญฟีเจอร์ API เพิ่มเติมและสำรวจวิธีการทำงานทางเลือกในโปรเจกต์ของคุณ + +- [How to Create Barcode – Compact PDF417 with Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [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/) + +{{< /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/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md b/barcode/thai/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md new file mode 100644 index 000000000..df4833c54 --- /dev/null +++ b/barcode/thai/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md @@ -0,0 +1,242 @@ +--- +category: general +date: 2026-08-03 +description: สร้างบาร์โค้ด PDF417 ด้วย C# โดยใช้ Aspose.BarCode เรียนรู้ขั้นตอนโดยละเอียดว่าต้องเพิ่มข้อมูลเมตา + Macro PDF417 อย่างไรและบันทึกเป็น PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- generate PDF417 barcode C# +- Macro PDF417 barcode +- Aspose.BarCode +- C# barcode generation +- PDF417 metadata +- barcode image PNG +language: th +lastmod: 2026-08-03 +og_description: สร้างบาร์โค้ด PDF417 ด้วย C# และ Aspose.BarCode บทเรียนนี้แสดงวิธีฝังข้อมูลเมตาดาต้า + Macro PDF417 และส่งออกผลลัพธ์เป็นภาพ PNG +og_image_alt: Screenshot of a generated PDF417 barcode created with C# +og_title: สร้างบาร์โค้ด PDF417 ด้วย C# – บทเรียน Aspose.BarCode ขั้นตอนต่อขั้นตอน +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + headline: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + type: TechArticle +- description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + name: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + steps: + - name: Create a Macro PDF417 barcode generator + text: First, instantiate `BarcodeGenerator` with the `EncodeTypes.MacroPdf417` + enum. The constructor also accepts the text you want to encode – in this example + we use a string that contains Unicode characters to demonstrate full‑width support. + - name: Adjust basic barcode appearance + text: Next, define the visual size of the barcode. `XDimension.Pixels` controls + the width of a single module (the smallest black/white square), while `Pdf417.Columns` + influences the overall shape by setting the number of columns. + - name: Populate Macro PDF417 metadata + text: Macro PDF417 allows you to embed file‑level information that many back‑office + systems rely on (e.g., file ID, segment ID, timestamp). The following properties + illustrate the most common fields. + - name: Save the barcode image as PNG + text: Finally, call `Save` to write the barcode to disk. PNG is lossless, making + it ideal for high‑quality scanning. + - name: How to verify the result + text: 1. Open `ExtPDF417Meta.png` in any image viewer. 2. Use a PDF417 scanner + app (e.g., *Zebra Scanner* or *BarCode Reader* on Android/iOS). 3. Confirm that + the decoded payload includes the original text and a JSON‑like block with the + macro fields you set. + - name: Next steps + text: '- Experiment with other barcode formats (e.g., QR, Code128) by changing + `EncodeTypes`. - Explore `Pdf417.ErrorCorrectionLevel` to improve scan reliability + under poor lighting. - Integrate the generated image into a PDF report using + Aspose.PDF for end‑to‑end document automation.' + type: HowTo +tags: +- PDF417 +- C# +- Barcode +title: สร้างบาร์โค้ด PDF417 ด้วย C# – คู่มือฉบับสมบูรณ์กับ Aspose.BarCode +url: /th/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Generate PDF417 barcode C# – complete guide + +If you need to **generate PDF417 barcode C#** for a logistics or document‑management system, this tutorial shows you exactly how to do it with Aspose.BarCode. You’ll see how to configure the barcode, embed Macro PDF417 metadata, and save the result as a PNG image in just a few lines of code. + +Generating a PDF417 barcode in C# often means handling extra information such as file identifiers, segment numbers, or timestamps. This guide covers those details, so you don’t have to search through scattered documentation. By the end of the article you’ll have a ready‑to‑run program that produces a compliant Macro PDF417 barcode image. + +## What you’ll need + +- .NET 6.0 or later (the code also works with .NET Framework 4.7+) +- Aspose.BarCode for .NET (v23.9 or newer) – install via NuGet `Install-Package Aspose.BarCode` +- A development environment such as Visual Studio 2022 or Visual Studio Code +- Basic familiarity with C# syntax + +> **Pro tip:** Use the latest Aspose.BarCode version to benefit from bug fixes and support for the newest PDF417 specifications. + +## How to generate PDF417 barcode C# with Aspose.BarCode + +The process consists of four logical steps. Each step is wrapped in a clear code block so you can copy, paste, and run it immediately. + +### Step 1: Create a Macro PDF417 barcode generator + +First, instantiate `BarcodeGenerator` with the `EncodeTypes.MacroPdf417` enum. The constructor also accepts the text you want to encode – in this example we use a string that contains Unicode characters to demonstrate full‑width support. + +```csharp +using System; +using Aspose.BarCode.Generation; + +// Create a Macro PDF417 barcode generator with the desired text +using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) +{ + // Subsequent steps go inside this using block +``` + +*Why this matters*: The `MacroPdf417` type tells Aspose.BarCode to treat the symbol as a macro barcode, which can carry additional file‑level metadata. Without this flag the extra fields you set later would be ignored. + +### Step 2: Adjust basic barcode appearance + +Next, define the visual size of the barcode. `XDimension.Pixels` controls the width of a single module (the smallest black/white square), while `Pdf417.Columns` influences the overall shape by setting the number of columns. + +```csharp + // Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol +``` + +*Why this matters*: A smaller `XDimension` yields a higher‑resolution image, which is useful when the barcode must be scanned from a screen. Changing the column count can help fit the barcode into limited space without sacrificing data capacity. + +### Step 3: Populate Macro PDF417 metadata + +Macro PDF417 allows you to embed file‑level information that many back‑office systems rely on (e.g., file ID, segment ID, timestamp). The following properties illustrate the most common fields. + +```csharp + // Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; +``` + +*Why this matters*: Each field maps directly to a segment of the macro barcode specification. For example, `MacroPdf417FileID` uniquely identifies the logical file, while `MacroPdf417SegmentsCount` tells the scanner how many parts to expect. Supplying accurate metadata ensures downstream systems can reconstruct the original document without error. + +### Step 4: Save the barcode image as PNG + +Finally, call `Save` to write the barcode to disk. PNG is lossless, making it ideal for high‑quality scanning. + +```csharp + // Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); +} +``` + +*Why this matters*: The `BarCodeImageFormat.Png` enum guarantees that the output file contains the exact pixel data you configured. If you need a vector format for scaling, replace `Png` with `Svg` – Aspose.BarCode supports that out of the box. + +#### Expected output + +Running the complete program creates a file named **ExtPDF417Meta.png**. The image shows a dense, multi‑row PDF417 symbol that includes the text “Åspóse.Barcóde©” and the macro metadata you supplied. Scanning the barcode with a PDF417‑compatible reader returns the original text plus a structured data block containing the file ID, segment ID, timestamp, and other fields. + +![ภาพหน้าจอของบาร์โค้ด PDF417 ที่สร้างขึ้น](/images/pdf417-example.png){: .center-image alt="ผลลัพธ์ตัวอย่างการสร้างบาร์โค้ด PDF417 ด้วย C#"} + +## Full source code (copy‑paste ready) + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace Pdf417MacroDemo +{ + class Program + { + static void Main() + { + // Step 1: Create a Macro PDF417 barcode generator with the desired text + using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) + { + // Step 2: Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol + + // Step 3: Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; + + // Step 4: Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); + } + + Console.WriteLine("Macro PDF417 barcode generated successfully."); + } + } +} +``` + +### How to verify the result + +1. Open `ExtPDF417Meta.png` in any image viewer. +2. Use a PDF417 scanner app (e.g., *Zebra Scanner* or *BarCode Reader* on Android/iOS). +3. Confirm that the decoded payload includes the original text and a JSON‑like block with the macro fields you set. + +## Common questions and edge‑case handling + +| คำถาม | คำตอบ | +|----------|--------| +| **Can I generate a vector image instead of PNG?** | ใช่. แทนที่ `BarCodeImageFormat.Png` ด้วย `BarCodeImageFormat.Svg`. โค้ดส่วนอื่นไม่ต้องเปลี่ยน. | +| **What if my data exceeds the default capacity?** | เพิ่มค่า `Pdf417.Columns` หรือกำหนด `Pdf417.Rows` ด้วยตนเอง. ค่าที่ใหญ่ขึ้นจะอนุญาตให้มี codewords ต่อ segment มากขึ้น. | +| **Is Unicode supported in the encoded text?** | แน่นอน. ตัวอย่างใช้ “Åspóse.Barcóde©”. Aspose.BarCode จะสลับไปใช้การเข้ารหัส UTF‑8 เมื่อจำเป็น. | +| **Do I need to sign a license for Aspose.BarCode?** | สำหรับการใช้งานจริงควรใส่ลิขสิทธิ์เพื่อหลีกเลี่ยงลายน้ำการประเมินผล. เรียก `License license = new License(); license.SetLicense("Aspose.BarCode.lic");` ก่อนสร้าง generator. | +| **How do I handle errors when saving the file?** | ห่อ `Save` ด้วย try/catch แล้วบันทึก `IOException` หรือ `BarCodeException` เพื่อแก้ไขปัญหา. | + +## Conclusion + +You now know how to **generate PDF417 barcode C#** using Aspose.BarCode, embed full Macro PDF417 metadata, and export the result as a high‑quality PNG image. The steps—creating the generator, adjusting appearance, populating metadata, and saving the image—form a reusable pattern you can adapt for invoices, shipping labels, or any scenario that requires rich barcode data. + +### Next steps + +- Experiment with other barcode formats (e.g., QR, Code128) by changing `EncodeTypes`. +- Explore `Pdf417.ErrorCorrectionLevel` to improve scan reliability under poor lighting. +- Integrate the generated image into a PDF report using Aspose.PDF for end‑to‑end document automation. + +Feel free to modify the metadata fields to match your business rules, and let the barcode generation become a seamless part of your C# applications. 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 – Compact PDF417 with Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [So erstellen Sie einen Barcode – Kompaktes PDF417 mit Aspose.BarCode](/barcode/german/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [java barcode library – Add barcode to PDF using Aspose](/barcode/english/java/barcode-basics/adding-barcode-to-pdf-document/) + +{{< /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/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md b/barcode/thai/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md new file mode 100644 index 000000000..f2287eba6 --- /dev/null +++ b/barcode/thai/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md @@ -0,0 +1,186 @@ +--- +category: general +date: 2026-08-03 +description: วิธีบันทึกบาร์โค้ดอย่างรวดเร็วด้วย C#. เรียนรู้การสร้างบาร์โค้ด MicroPDF417 + ตั้งค่าขนาด เลือกคอลัมน์ และส่งออกเป็น PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to save barcode +- MicroPDF417 barcode +- C# barcode generation +- barcode XDimension +- PDF417 columns +- barcode image format +language: th +lastmod: 2026-08-03 +og_description: วิธีบันทึกบาร์โค้ดใน C# พร้อมตัวอย่างเต็ม สร้างบาร์โค้ด MicroPDF417 + ปรับขนาด ตั้งค่าคอลัมน์ และส่งออกเป็น PNG. +og_image_alt: Screenshot showing a MicroPDF417 barcode saved as a PNG file +og_title: วิธีบันทึกบาร์โค้ด – คำแนะนำ C# ทีละขั้นตอน +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: how to save barcode quickly using C#. Learn MicroPDF417 barcode generation, + set dimensions, choose columns, and export to PNG. + headline: how to save barcode as an image – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- imaging +title: วิธีบันทึกบาร์โค้ดเป็นภาพ – คู่มือ C# ฉบับสมบูรณ์ +url: /th/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# วิธีบันทึกบาร์โค้ด – คู่มือ C# ฉบับสมบูรณ์ + +หากคุณต้องการ **วิธีบันทึกบาร์โค้ด** ในแอปพลิเคชัน .NET นี้ บทแนะนำจะแสดงขั้นตอนที่แน่นอน คุณจะสร้างบาร์โค้ด MicroPDF417 ปรับขนาดของมัน เลือกจำนวนคอลัมน์ และสุดท้ายบันทึกภาพลงดิสก์เป็นไฟล์ PNG + +การสร้างและบันทึกบาร์โค้ดไม่จำเป็นต้องใช้ไลบรารีหนัก ๆ—เพียงคลาส `BarcodeGenerator` จากชุด Aspose.BarCode for .NET เท่านั้น ในส่วนต่อไปนี้เราจะอธิบายแต่ละตัวเลือกการกำหนดค่า ทำไมจึงสำคัญ และให้ตัวอย่างโค้ดที่พร้อมรัน + +## ข้อกำหนดเบื้องต้น + +- .NET 6.0 หรือใหม่กว่า (API ทำงานกับ .NET Core และ .NET Framework) +- Aspose.BarCode for .NET (แพ็กเกจ NuGet `Aspose.BarCode`) +- โฟลเดอร์ที่คุณมีสิทธิ์เขียน (ใช้ในขั้นตอน **วิธีบันทึกบาร์โค้ด**) + +## ขั้นตอนที่ 1: สร้างตัวสร้างบาร์โค้ด MicroPDF417 + +งานแรกในกระบวนการ **วิธีบันทึกบาร์โค้ด** ใด ๆ คือการสร้างอินสแตนซ์ของ `BarcodeGenerator` ด้วยสัญลักษณ์และข้อมูลที่ต้องการ MicroPDF417 เป็นเวอร์ชันกะทัดรัดของบาร์โค้ดเมทริกซ์ PDF417 เหมาะสำหรับป้ายเล็ก + +```csharp +using Aspose.BarCode.Generation; + +// Create a MicroPDF417 barcode with sample text that includes Unicode characters. +BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, // Symbology + "Åspóse.Barcóde©"); // Data to encode +``` + +**ทำไมเรื่องนี้ถึงสำคัญ:** +`EncodeTypes.MicroPdf417` บอกไลบรารีให้ใช้ 알고리즘 MicroPDF417 ซึ่งจัดการการแก้ไขข้อผิดพลาดและการเข้ารหัสข้อมูลโดยอัตโนมัติ การให้ข้อความ Unicode แสดงให้เห็นว่าตัวสร้างสามารถประมวลผลอักขระที่ไม่ใช่ ASCII ได้อย่างถูกต้อง + +## ขั้นตอนที่ 2: ปรับ X‑dimension (ขนาดโมดูล) + +X‑dimension กำหนดความกว้างของโมดูลบาร์โค้ดหนึ่ง (พิกเซล) ค่าที่เล็กกว่าจะทำให้บาร์โค้ดกระชับมากขึ้น ส่วนค่าที่ใหญ่กว่าจะทำให้สแกนง่ายขึ้น + +```csharp +// Set each module to 2 pixels wide. +barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +**ทำไมเรื่องนี้ถึงสำคัญ:** +การตั้งค่า `barcode XDimension` ทำให้บาร์โค้ดพอดีกับขนาดป้ายเป้าหมาย หากข้ามขั้นตอนนี้ ขนาดเริ่มต้นอาจใหญ่เกินไปสำหรับหน้าจอมือถือหรือการพิมพ์ขนาดเล็ก + +## ขั้นตอนที่ 3: เลือกจำนวนคอลัมน์สำหรับเมทริกซ์ PDF417 + +MicroPDF417 รองรับ 1–4 คอลัมน์ คอลัมน์มากขึ้นจะทำให้บาร์โค้ดเป็นสี่เหลี่ยมจัตุรัสมากขึ้น คอลัมน์น้อยลงจะทำให้บาร์โค้ดยืดแนวตั้ง + +```csharp +// Use the maximum of 4 columns for a compact, square shape. +barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; +``` + +**ทำไมเรื่องนี้ถึงสำคัญ:** +การปรับ **PDF417 columns** ช่วยให้คุณสมดุลระหว่างความอ่านง่ายกับข้อจำกัดของพื้นที่ ในหลายสถานการณ์การสแกน การจัดวาง 4‑column ให้ความสมดุลที่ดีที่สุด + +## ขั้นตอนที่ 4: บันทึกบาร์โค้ดที่สร้างเป็นภาพ PNG + +เมื่อบาร์โค้ดถูกกำหนดค่าแล้ว คุณสามารถตอบคำถาม “**วิธีบันทึกบาร์โค้ด**” โดยการเขียนลงไฟล์ PNG จะรักษาคุณภาพแบบ loss‑less ซึ่งสำคัญสำหรับการสแกนที่คมชัด + +```csharp +// Define the output path (ensure the directory exists). +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + +// Export the barcode to PNG. +barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + +Console.WriteLine($"Barcode saved to: {outputPath}"); +``` + +**ทำไมเรื่องนี้ถึงสำคัญ:** +`barcode image format` กำหนดความแม่นยำของภาพที่บันทึก PNG เป็นรูปแบบที่นิยมสำหรับ UI และกระบวนการพิมพ์ส่วนใหญ่ เพราะรักษาขอบคมชัดโดยไม่มีศิลปะการบีบอัด + +## ตัวอย่างเต็มที่สามารถรันได้ + +การรวมทุกอย่างเข้าด้วยกันจะให้โปรแกรมแบบอิสระที่คุณสามารถคัดลอก วาง และรันได้ + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // 1️⃣ Create the barcode generator. + BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, + "Åspóse.Barcóde©"); + + // 2️⃣ Adjust module size. + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; + + // 3️⃣ Set column count (1‑4 allowed). + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; + + // 4️⃣ Define output location. + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + + // 5️⃣ Save as PNG. + barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"✅ Barcode saved to: {outputPath}"); + } +} +``` + +**ผลลัพธ์ที่คาดหวัง** + +การรันโปรแกรมจะสร้างไฟล์ `MicroPdf417.png` บนเดสก์ท็อปของคุณ การเปิดไฟล์จะแสดงบาร์โค้ด MicroPDF417 ที่ชัดเจนซึ่งเข้ารหัสสตริง `Åspóse.Barcóde©` การสแกนด้วยสแกนเนอร์บาร์โค้ดมาตรฐานใด ๆ จะคืนค่าข้อความเดิม + +## คำถามทั่วไปและกรณีขอบ + +| Question | Answer | +|----------|--------| +| *ฉันสามารถใช้ JPEG แทน PNG ได้ไหม?* | ได้. แทนที่ `BarCodeImageFormat.Png` ด้วย `BarCodeImageFormat.Jpeg`. JPEG มีขนาดเล็กกว่าแต่จะสร้างศิลปะการบีบอัดที่อาจส่งผลต่อการสแกน. | +| *ถ้าข้อมูลของฉันเกินความจุของ MicroPDF417 จะทำอย่างไร?* | MicroPDF417 สามารถเก็บข้อมูลได้สูงสุด 1 KB. หากข้อมูลใหญ่กว่านี้ให้เปลี่ยนไปใช้ `EncodeTypes.Pdf417` เต็มรูปแบบ. | +| *ฉันจะเปลี่ยนสีของบาร์โค้ดได้อย่างไร?* | ใช้ `barcodeGenerator.Parameters.Barcode.BarColor` และ `BackColor` เพื่อตั้งค่าสีพื้นหน้า/พื้นหลังก่อนเรียก `Save`. | +| *X‑dimension จำกัดเป็นพิกเซลจำนวนเต็มหรือไม่?* | คุณสมบัตินี้รับค่า `float`. ค่าตัวอย่างเช่น `1.5f` ได้รับอนุญาต แต่เครื่องพิมพ์ส่วนใหญ่ทำงานได้ดีที่สุดกับขนาดพิกเซลเต็ม. | + +## เคล็ดลับมืออาชีพสำหรับการใช้งาน **วิธีบันทึกบาร์โค้ด** ที่เชื่อถือได้ + +- **ตรวจสอบโฟลเดอร์ผลลัพธ์** ด้วย `Directory.Exists` ก่อนเรียก `Save` เพื่อหลีกเลี่ยง `IOException`. +- **ทำลายตัวสร้าง** (`barcodeGenerator.Dispose()`) เมื่อคุณสร้างบาร์โค้ดหลาย ๆ ครั้งในลูปเพื่อปล่อยทรัพยากรเนทีฟ. +- **ทดสอบด้วยสแกนเนอร์จริง** หลังจากบันทึก; การตรวจสอบด้วยสายตาไม่เพียงพอสำหรับการใช้งานจริง. +- **อัปเดตไลบรารีให้เป็นเวอร์ชันล่าสุด**—การปล่อยเวอร์ชันใหม่ของ Aspose.BarCode จะเพิ่มการปรับปรุงสัญลักษณ์และแก้ไขบั๊ก. + +## สรุป + +ตอนนี้คุณรู้แล้วว่า **วิธีบันทึกบาร์โค้ด** เป็นภาพใน C# ด้วยไลบรารี Aspose.BarCode โดยการสร้างบาร์โค้ด MicroPDF417 ตั้งค่า **barcode XDimension**, เลือก **PDF417 columns** ที่เหมาะสม และส่งออกเป็น **barcode image format** เช่น PNG คุณจะได้โซลูชันที่สมบูรณ์พร้อมใช้งานในผลิตภัณฑ์ + +ต่อไปสำรวจหัวข้อที่เกี่ยวข้องเช่น **การสร้างบาร์โค้ด C# สำหรับ QR codes**, **การสร้างบาร์โค้ดเป็นชุด**, หรือ **การฝังบาร์โค้ดในรายงาน PDF** แต่ละหัวข้ออิงจากหลักการเดียวกันที่แสดงในที่นี่ ช่วยให้คุณขยายชุดเครื่องมือการสร้างภาพของคุณด้วยความมั่นใจ + +## คุณควรเรียนรู้อะไรต่อไป? + +บทแนะนำต่อไปนี้ครอบคลุมหัวข้อที่เกี่ยวข้องอย่างใกล้ชิดซึ่งต่อยอดจากเทคนิคที่แสดงในคู่มือนี้ แต่ละแหล่งข้อมูลมีตัวอย่างโค้ดทำงานครบถ้วนพร้อมคำอธิบายทีละขั้นตอน เพื่อช่วยให้คุณเชี่ยวชาญฟีเจอร์ API เพิ่มเติมและสำรวจวิธีการทำงานแบบอื่นในโครงการของคุณ + +- [วิธีบันทึก PNG ด้วย DataMatrix C40 ด้วย Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-c40/) +- [วิธีตั้งขอบสำหรับการปรับแต่งบาร์โค้ด ITF-14](/barcode/english/net/itf-14-barcode-customization/) +- [วิธีสร้างบาร์โค้ด Aztec ด้วยอัตราส่วนภาพที่กำหนดเองโดยใช้ Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) + +{{< /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/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md b/barcode/thai/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md new file mode 100644 index 000000000..d4a3c55f5 --- /dev/null +++ b/barcode/thai/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md @@ -0,0 +1,214 @@ +--- +category: general +date: 2026-08-03 +description: อ่านบาร์โค้ด PDF417 จากภาพโดยใช้ C# BarCodeReader – ตัวอย่างการอ่านบาร์โค้ดที่ครบถ้วนซึ่งยังแสดงวิธีการอ่านบาร์โค้ดหลายรายการด้วย +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- read PDF417 barcode +- barcode reader example +- read multiple barcodes +- read barcodes image +language: th +lastmod: 2026-08-03 +og_description: อ่านบาร์โค้ด PDF417 อย่างรวดเร็วด้วยตัวอย่าง C# BarCodeReader. ปฏิบัติตามคู่มือขั้นตอนต่อขั้นตอนนี้เพื่อถอดรหัส + macro PDF417 และอ่านบาร์โค้ดหลายรายการจากภาพ. +og_image_alt: Console output of a read PDF417 barcode example in C# +og_title: อ่านบาร์โค้ด PDF417 ด้วย C# – ตัวอย่างเครื่องอ่านบาร์โค้ดครบวงจร +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + headline: Read PDF417 barcode in C# – barcode reader example + type: TechArticle +- description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + name: Read PDF417 barcode in C# – barcode reader example + steps: + - name: '**Create a new console project**' + text: '**Create a new console project**' + - name: '**Add the barcode library**' + text: '**Add the barcode library**' + - name: '**Copy the barcode image**' + text: '**Copy the barcode image**' + type: HowTo +tags: +- barcode +- PDF417 +- C# +- .NET +title: อ่านบาร์โค้ด PDF417 ด้วย C# – ตัวอย่างเครื่องอ่านบาร์โค้ด +url: /th/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# อ่านบาร์โค้ด PDF417 ใน C# – ตัวอย่างเครื่องอ่านบาร์โค้ด + +หากคุณต้องการอ่านข้อมูลบาร์โค้ด PDF417 จากภาพ คู่มือนี้จะแสดงวิธีทำด้วยคลาส **BarCodeReader** ใน C# คุณจะได้เรียนรู้ตัวอย่างเครื่องอ่านบาร์โค้ดที่รองรับ macro PDF417 และสามารถอ่านบาร์โค้ดหลายรายการในภาพเดียว + +การทำงานกับบาร์โค้ดมักหมายถึงการจัดการกับแหล่งภาพที่หลากหลาย สภาพแสงที่แตกต่างกัน และบางครั้งข้อมูลเชิงซ้อนเช่นส่วนของ macro PDF417 บทเรียนนี้ครอบคลุมทุกอย่างที่คุณต้องการเพื่อถอดรหัสบาร์โค้ด PDF417 ดึงฟิลด์ขยายของมัน และประมวลผลบาร์โค้ดหลายรายการจากรูปเดียวกัน เมื่อเสร็จสิ้นคุณจะได้โปรแกรมคอนโซลที่สามารถรันได้ซึ่งอ่านบาร์โค้ดจากไฟล์ภาพและพิมพ์ข้อมูลรายละเอียดลงในคอนโซล + +## สิ่งที่คุณต้องมี + +ก่อนเริ่มทำงาน ให้ตรวจสอบว่าคุณมี: + +* .NET 6.0 SDK หรือรุ่นที่ใหม่กว่าได้ติดตั้งแล้ว +* แพคเกจ NuGet **Aspose.BarCode for .NET** รุ่นล่าสุด (หรือไลบรารีที่เข้ากันได้ซึ่งให้ `BarCodeReader` และ `DecodeType.MacroPdf417`) +* ไฟล์ภาพที่มีบาร์โค้ด PDF417 หรือ macro PDF417 (ตัวอย่างใช้ `ExtPDF417Meta.png`) +* โปรแกรมแก้ไขโค้ดหรือ IDE เช่น Visual Studio 2022 + +ไม่จำเป็นต้องใช้บริการเพิ่มเติมหรือ API ภายนอกใด ๆ + +## การตั้งค่าโครงการสำหรับการอ่านบาร์โค้ด + +1. **สร้างโครงการคอนโซลใหม่** + + ```bash + dotnet new console -n Pdf417ReaderDemo + cd Pdf417ReaderDemo + ``` + +2. **เพิ่มไลบรารีบาร์โค้ด** + + ```bash + dotnet add package Aspose.BarCode --version 23.12 + ``` + +3. **คัดลอกภาพบาร์โค้ด** + + วางไฟล์ `ExtPDF417Meta.png` (หรือภาพใด ๆ ที่มีบาร์โค้ด PDF417) ลงในโฟลเดอร์โครงการ + สำหรับบทเรียนนี้เราจะสมมติว่าไฟล์อยู่ที่ `YOUR_DIRECTORY/ExtPDF417Meta.png` + +โครงการของคุณพร้อมสำหรับการคอมไพล์และรันตัวอย่างเครื่องอ่านบาร์โค้ดแล้ว + +## วิธีอ่านบาร์โค้ด PDF417 ด้วย BarCodeReader + +หัวใจของวิธีแก้คือบล็อก `using` ที่สร้างอินสแตนซ์ `BarCodeReader` ระบุ `DecodeType.MacroPdf417` และวนลูปผ่านบาร์โค้ดที่ตรวจพบทั้งหมด โค้ดต่อไปนี้เป็นโปรแกรมที่สมบูรณ์และเป็นอิสระซึ่งคุณสามารถวางลงในไฟล์ `Program.cs` ได้ + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.BarCodeRecognition; + +class Program +{ + static void Main() + { + // Path to the image that contains one or more PDF417 barcodes + const string imagePath = "YOUR_DIRECTORY/ExtPDF417Meta.png"; + + // Step 1: Create a BarCodeReader for a macro PDF417 image + using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.MacroPdf417)) + { + // Step 2: Read all barcodes from the image + foreach (BarCodeResult result in reader.ReadBarCodes()) + { + // Step 3: Output basic barcode information + Console.WriteLine($"CodeType: {result.CodeTypeName}"); + Console.WriteLine($"CodeText: {result.CodeText}"); + + // Step 4: Output macro PDF417 specific fields + Console.WriteLine($"Pdf417MacroFileID: {result.Extended.Pdf417.MacroPdf417FileID}"); + Console.WriteLine($"Pdf417MacroSegmentID: {result.Extended.Pdf417.MacroPdf417SegmentID}"); + Console.WriteLine($"Pdf417MacroSegmentsCount: {result.Extended.Pdf417.MacroPdf417SegmentsCount}"); + Console.WriteLine($"Pdf417MacroFileName: {result.Extended.Pdf417.MacroPdf417FileName}"); + Console.WriteLine($"Pdf417MacroChecksum: {result.Extended.Pdf417.MacroPdf417Checksum}"); + Console.WriteLine($"Pdf417MacroFileSize: {result.Extended.Pdf417.MacroPdf417FileSize}"); + Console.WriteLine($"Pdf417MacroTimeStamp: {result.Extended.Pdf417.MacroPdf417TimeStamp}"); + Console.WriteLine($"Pdf417MacroAddressee: {result.Extended.Pdf417.MacroPdf417Addressee}"); + Console.WriteLine($"Pdf417MacroSender: {result.Extended.Pdf417.MacroPdf417Sender}"); + Console.WriteLine($"MacroPdf417Terminator: {result.Extended.Pdf417.MacroPdf417Terminator}"); + Console.WriteLine(new string('-', 40)); + } + + // Pro tip: If no barcodes are found, ReadBarCodes() returns an empty collection. + // You can check reader.HasBarcodes for a quick boolean test. + if (!reader.HasBarcodes) + { + Console.WriteLine("No barcodes detected in the provided image."); + } + } + } +} +``` + +**เหตุผลที่ทำงานได้**: + +* `DecodeType.MacroPdf417` บอกให้ตัวอ่านมองหาส่วนขยาย macro ของ PDF417 ซึ่งบรรจุเมตาดาต้าเพิ่มเติมเช่นไฟล์ ID, จำนวนส่วน, และเวลาประทับ +* คำสั่ง `using` รับประกันว่าทรัพยากรที่ไม่ได้จัดการ (เช่นไฟล์แฮนด์เดิล, บัฟเฟอร์การถอดรหัสแบบเนทีฟ) จะถูกปล่อยอย่างทันท่วงที +* ลูป `foreach` จะประมวลผล **ทั้งหมด** ของบาร์โค้ดที่ภาพมีอยู่ ทำให้ตอบสนองต่อความต้องการ *อ่านบาร์โค้ดหลายรายการ* + +เมื่อคุณรันโปรแกรม (`dotnet run`) คุณควรเห็นผลลัพธ์คล้ายกับด้านล่าง: + +``` +CodeType: MacroPdf417 +CodeText: https://example.com/document.pdf +Pdf417MacroFileID: 12345 +Pdf417MacroSegmentID: 1 +Pdf417MacroSegmentsCount: 3 +Pdf417MacroFileName: document.pdf +Pdf417MacroChecksum: 0x1A2B +Pdf417MacroFileSize: 204800 +Pdf417MacroTimeStamp: 2024-07-15T10:25:00Z +Pdf417MacroAddressee: John Doe +Pdf417MacroSender: Acme Corp +MacroPdf417Terminator: True +---------------------------------------- +``` + +หากภาพมีบาร์โค้ด PDF417 มากกว่าหนึ่งรายการ ลูปจะพิมพ์บล็อกแยกต่างหากสำหรับแต่ละบาร์โค้ด ซึ่งแสดงวิธี **อ่านบาร์โค้ดหลายรายการ** จากรูปเดียว + +## การอ่านบาร์โค้ดหลายรายการจากภาพเดียว + +อินสแตนซ์ `BarCodeReader` เดียวกันสามารถถอดรหัสหลายประเภทบาร์โค้ดพร้อมกัน เพื่อขยายขอบเขตจาก macro PDF417 เพียงอย่างเดียวไปยัง PDF417 ใด ๆ (หรือแม้แต่ QR, Code128 ฯลฯ) ให้ปรับค่า `DecodeType` ดังนี้: + +```csharp +using (BarCodeReader reader = new BarCodeReader(imagePath, + DecodeType.Pdf417 | DecodeType.MacroPdf417 | DecodeType.QR | DecodeType.Code128)) +{ + // The rest of the code stays unchanged. +} +``` + +*`DecodeType`* เป็นบิตมาสก์ คุณจึงสามารถรวมรูปแบบที่สนับสนุนได้หลายแบบ ความยืดหยุ่นนี้ทำให้โค้ดส่วนนั้นเป็น **ตัวอย่างเครื่องอ่านบาร์โค้ด** ที่ทำงานได้กับกรณีการใช้งานที่หลากหลาย เช่น การสแกนฉลากสินค้า, ตั๋ว, หรือบัตรประจำตัว + +## การเข้าถึงฟิลด์ macro PDF417 อย่างปลอดภัย + +Macro PDF417 เพิ่มชุดคุณสมบัติเพิ่มเติมที่หลากหลาย อย่างไรก็ตาม ไม่ใช่บาร์โค้ดทุกอันจะมีฟิลด์ทั้งหมด การเข้าถึงคุณสมบัติที่ไม่มีอาจทำให้เกิด `NullReferenceException` วิธีที่ปลอดภัยที่สุดคือการตรวจสอบแต่ละคุณสมบัติก่อนพิมพ์: + +```csharp +var macro = result.Extended?.Pdf417; +if (macro != null) +{ + Console.WriteLine($"Pdf417MacroFileID: {macro.MacroPdf417FileID ?? "N/A"}"); + // Repeat for other fields... +} +``` + +*เหตุผลที่สำคัญ*: ในการใช้งานจริงคุณอาจได้รับบาร์โค้ด PDF417 ธรรมดาที่ไม่มีข้อมูล macro การตรวจสอบเชิงป้องกันทำให้แอปพลิเคชันของคุณทำงานต่อได้โดยไม่หยุดทำงาน + +## ข้อผิดพลาดทั่วไปและแนวทางปฏิบัติที่ดีที่สุด + +| ปัญหา | สาเหตุ | วิธีแก้แนะนำ | +|-------|--------|---------------| +| เส้นทางไฟล์ภาพไม่ถูกต้อง | `BarCodeReader` ขว้างข้อยกเว้นไฟล์ไม่พบก่อนทำการถอดรหัส | ใช้ `Path.Combine` และตรวจสอบไฟล์มีอยู่ด้วย `File.Exists` | +| ภาพความละเอียดต่ำ | ตัวถอดรหัสไม่สามารถหาขอบบาร์โค้ดได้ ส่งผลให้ตรวจจับไม่ได้ | ให้ความละเอียดขั้นต่ำที่ 300 dpi เพื่อผลลัพธ์ที่เชื่อถือได้ | +| บาร์โค้ดหมุน > 45° | ไลบรารีหลายตัวสมมติว่าบาร์โค้ดอยู่ในแนวตั้ง | เปิด `reader.RecognitionOptions.RotateImage = true` หากต้องการให้หมุนภาพ | + +## คุณควรเรียนรู้อะไรต่อไป? + +บทเรียนต่อไปนี้ครอบคลุมหัวข้อที่เกี่ยวข้องอย่างใกล้ชิดและต่อยอดจากเทคนิคที่แสดงในคู่มือนี้ แต่ละแหล่งข้อมูลมีตัวอย่างโค้ดที่ทำงานได้เต็มรูปแบบพร้อมคำอธิบายขั้นตอนเพื่อช่วยให้คุณเชี่ยวชาญฟีเจอร์ API เพิ่มเติมและสำรวจแนวทางการทำงานอื่น ๆ ในโครงการของคุณเอง + +- [How to Read DataMatrix Barcodes with Aspose.BarCode for .NET](/barcode/english/net/datamatrix-barcode-reading/) +- [Read DataMatrix barcode C# – Generate DataMatrix Mode (Auto)](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-auto/) +- [Read Barcode from Image – Mastering Barcode Region Extraction in Java with Aspose.BarCode](/barcode/english/java/advanced-settings-and-optimization/extracting-barcode-region-information/) + +{{< /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/net/compact-pdf417-encoding/_index.md b/barcode/turkish/net/compact-pdf417-encoding/_index.md index ea67f016b..3cf10b9aa 100644 --- a/barcode/turkish/net/compact-pdf417-encoding/_index.md +++ b/barcode/turkish/net/compact-pdf417-encoding/_index.md @@ -83,6 +83,18 @@ Temellerin ötesinde, iş akışınızı hızlandıracak bazı pratik ipuçları ### [Compact PDF417 Barkodları Oluşturma](./compact-pdf417-basic-configuration/) Aspose.BarCode for .NET'i kullanarak Compact PDF417 barkodlarını nasıl oluşturacağınızı öğrenin. Adım‑adım talimatları ve kod örnekleri içeren kapsamlı bir rehber. +### [C#'ta PDF417 barkodu oluşturma – adım adım rehber](./create-pdf417-barcode-in-c-step-by-step-guide/) +C# kullanarak PDF417 barkodu oluşturmayı adım adım öğrenin. + +### [PDF417 barkodu oluşturma C# – Aspose.BarCode ile tam rehber](./generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/) +Aspose.BarCode kullanarak C# ile PDF417 barkodu oluşturmayı adım adım öğrenin. + +### [Barkodu Görüntü Olarak Kaydetme – Tam C# Rehberi](./how-to-save-barcode-as-an-image-complete-c-guide/) +C# ile barkodu resim dosyası olarak kaydetmeyi adım adım öğrenin. + +### [C#'ta PDF417 barkodu okuma – barkod okuyucu örneği](./read-pdf417-barcode-in-c-barcode-reader-example/) +C# kullanarak PDF417 barkodunu okuma ve veri çıkarma örneği. + ## Sıkça Sorulan Sorular **Q:** Compact PDF417 barkodunda saklayabileceğim maksimum veri miktarı nedir? @@ -111,4 +123,4 @@ Aspose.BarCode for .NET'i kullanarak Compact PDF417 barkodlarını nasıl oluşt {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/turkish/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md b/barcode/turkish/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..5a4fdf46a --- /dev/null +++ b/barcode/turkish/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md @@ -0,0 +1,227 @@ +--- +category: general +date: 2026-08-03 +description: C#'ta PDF417 barkodu hızlı bir şekilde oluşturun. PDF417 barkodunu nasıl + oluşturacağınızı ve barkod görüntüsünü Aspose.Barcode ile PNG olarak nasıl kaydedeceğinizi + öğrenin. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create pdf417 barcode +- how to generate pdf417 barcode +- how to save barcode image +language: tr +lastmod: 2026-08-03 +og_description: C# ile Aspose.Barcode kullanarak PDF417 barkod oluşturun. PDF417 barkodu + oluşturmak ve barkod görüntüsünü verimli bir şekilde kaydetmek için bu kılavuzu + izleyin. +og_image_alt: Screenshot of a generated compact PDF417 barcode saved as PNG +og_title: C# ile PDF417 barkod oluşturma – eksiksiz kodlama öğreticisi +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + headline: Create PDF417 barcode in C# – step‑by‑step guide + type: TechArticle +- description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + name: Create PDF417 barcode in C# – step‑by‑step guide + steps: + - name: Why this matters + text: '* **EncodeTypes.Pdf417** tells the library to use the PDF417 standard, + which supports large data payloads and error correction. * Providing Unicode + characters proves the generator handles non‑ASCII input without extra configuration.' + - name: Practical tip + text: If you need a taller barcode for limited horizontal space, increase `Columns`. + Setting `Truncate` to `true` reduces the overall height by removing quiet zones, + which is ideal for mobile screens. + - name: Expected result + text: Running the program creates `CompactPdf417.png` in the project folder. Opening + the file shows a compact PDF417 barcode that encodes the string *Åspóse.Barcóde©*. + The image can be embedded in HTML, PDF reports, or printed on labels. + - name: Verifying the output + text: 'After the program finishes, you can verify the file exists with a quick + command:' + type: HowTo +tags: +- barcode +- C# +- PDF417 +- image generation +title: C#'ta PDF417 barkod oluşturma – adım adım rehber +url: /tr/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#'ta PDF417 barkod oluşturma – adım adım rehber + +Bir .NET uygulamasında **PDF417 barkod oluşturmanız** gerekiyorsa, bu rehber PDF417 barkodu nasıl oluşturacağınızı ve barkod görüntüsünü nasıl kaydedeceğinizi tam olarak gösterir. Sonuç olarak raporlar, biletler veya mobil tarama uygulamalarında kullanılabilecek bir PNG dosyası elde edeceksiniz. + +Bu öğretici, proje kurulumundan son PNG dosyasına kadar her şeyi kapsar. Harici bir belgeye ihtiyaç yok; sadece adımları izleyin ve kodu çalıştırın. + +## Gereksinimler + +Başlamadan önce şunların yüklü olduğundan emin olun: + +* .NET 6.0 SDK veya daha yenisi (kod .NET Framework 4.7+ ile de çalışır) +* Visual Studio 2022 veya C# destekleyen herhangi bir IDE +* **Aspose.Barcode for .NET** NuGet paketini yüklemek için internet erişimi + +Bu ön koşullar, kodun ek yapılandırma olmadan derlenmesini sağlar. + +## PDF417 barkod oluşturma – proje kurulumu + +1. Bir komut istemcisi açın ve yeni bir konsol projesi oluşturun: + + ```bash + dotnet new console -n Pdf417Demo + cd Pdf417Demo + ``` + +2. Aspose.Barcode kütüphanesini ekleyin: + + ```bash + dotnet add package Aspose.Barcode + ``` + +3. Oluşturulan `Program.cs` dosyasını açın. Üstteki `using` ifadeleri barkod sınıflarına erişim sağlar: + + ```csharp + using System; + using Aspose.Barcode.Generation; + using Aspose.Barcode; + ``` + +Proje artık **PDF417 barkod oluşturma** için hazır. + +## Aspose.Barcode ile PDF417 barkod nasıl oluşturulur + +Barkod oluşturmanın çekirdeği `BarcodeGenerator` sınıfında yer alır. Sembololojiyi (`EncodeTypes.Pdf417`) ve kodlamak istediğiniz veriyi belirtirsiniz. + +```csharp +// Step 1: Initialise the generator with PDF417 symbology and sample text. +// The text includes Unicode characters to demonstrate full‑range support. +BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Pdf417, "Åspóse.Barcóde©"); +``` + +### Bunun önemi + +* **EncodeTypes.Pdf417** kütüphaneye PDF417 standardını kullanmasını söyler; bu standart büyük veri yüklerini ve hata düzeltmeyi destekler. +* Unicode karakterler sağlamak, jeneratörün ekstra yapılandırma gerektirmeden ASCII dışı girdileri işleyebildiğini kanıtlar. + +## Barkod görünümünü nasıl yapılandırırsınız + +Her modülün boyutunu, sütun sayısını ve barkodun kompakt (kısaltılmış) modda olup olmayacağını kontrol edebilirsiniz. Bu ayarlar okunabilirliği ve dosya boyutunu etkiler. + +```csharp +// Step 2: Set the module (X) dimension – each barcode element will be 2 pixels wide. +generator.Parameters.Barcode.XDimension.Pixels = 2; + +// Step 3: Configure PDF417‑specific options. +generator.Parameters.Barcode.Pdf417.Columns = 3; // Number of columns (affects height) +generator.Parameters.Barcode.Pdf417.Truncate = true; // Enable compact mode +``` + +### Pratik ipucu + +Yatay alan sınırlıysa daha uzun bir barkoda ihtiyacınız varsa `Columns` değerini artırın. `Truncate` değerini `true` yaparak sessiz bölgeleri kaldırıp toplam yüksekliği azaltabilirsiniz; bu, mobil ekranlar için idealdir. + +## Barkod görüntüsünü PNG olarak nasıl kaydedersiniz + +Jeneratörü yapılandırdıktan sonra, bir dosya yolu ve istenen görüntü formatı ile `Save` metodunu çağırın. Metod, görüntüyü doğrudan diske yazar. + +```csharp +// Step 4: Save the generated barcode as a PNG image. +string outputPath = @"./CompactPdf417.png"; +generator.Save(outputPath, BarCodeImageFormat.Png); +Console.WriteLine($"Barcode saved to {outputPath}"); +``` + +### Beklenen sonuç + +Programı çalıştırdığınızda proje klasöründe `CompactPdf417.png` oluşturulur. Dosyayı açtığınızda *Åspóse.Barcóde©* dizesini kodlayan kompakt bir PDF417 barkod görürsünüz. Görüntü HTML, PDF raporları içine gömülebilir veya etiketlere basılabilir. + +## Tam kaynak kodu + +Aşağıda eksiksiz, çalıştırılabilir program yer alıyor. `Program.cs` içine kopyalayıp `dotnet run` komutunu çalıştırın. + +```csharp +using System; +using Aspose.Barcode.Generation; +using Aspose.Barcode; + +namespace Pdf417Demo +{ + class Program + { + static void Main() + { + // Initialise the generator with PDF417 symbology and sample text. + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.Pdf417, + "Åspóse.Barcóde©"); + + // Set the module width to 2 pixels. + generator.Parameters.Barcode.XDimension.Pixels = 2; + + // Configure PDF417‑specific options. + generator.Parameters.Barcode.Pdf417.Columns = 3; + generator.Parameters.Barcode.Pdf417.Truncate = true; + + // Define the output file path. + string outputPath = @"./CompactPdf417.png"; + + // Save the barcode as a PNG image. + generator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"Barcode saved to {outputPath}"); + } + } +} +``` + +### Çıktıyı doğrulama + +Program tamamlandıktan sonra dosyanın varlığını hızlı bir komutla kontrol edebilirsiniz: + +```bash +dotnet run && ls -l CompactPdf417.png +``` + +Dosya mevcutsa, **PDF417 barkod oluşturma** işlemi başarıyla tamamlanmıştır. + +## Yaygın varyasyonlar ve uç durumlar + +| Durum | Ayarlama | +|-----------|------------| +| **Daha uzun veri dizesi** | `Columns` değerini artırın veya daha fazla kod sözcüğü için `Rows` değerini ayarlayın. | +| **Farklı görüntü formatı** | `BarCodeImageFormat.Png` yerine `Jpeg`, `Bmp` veya `Gif` kullanın. | +| **Yüksek çözünürlük** | `Save` metodundan önce `generator.Parameters.ImageResolution` değerini ayarlayın. | +| **Arka plan rengi** | `generator.Parameters.Barcode.ImageBackgroundColor = Color.White;` ifadesini kullanın. | +| **İstisna yönetimi** | I/O hatalarını yakalamak için `generator.Save` metodunu bir `try/catch` bloğuna sarın. | + +Bu varyasyonlar, barkodu belirli cihazlar veya marka gereksinimleri için özelleştirmenizi sağlar. + +## Sonuç + +Artık Aspose.Barcode kullanarak C#'ta **PDF417 barkod oluşturma**, görünümünü yapılandırma ve **barkod görüntüsünü** PNG dosyası olarak kaydetme konusunda bilgi sahibisiniz. Tam örnek, proje kurulumundan doğrulamaya kadar gereken tüm adımları gösterir; böylece barkod üretimini herhangi bir .NET çözümüne entegre edebilirsiniz. + +Sonraki adımda, **QR kodları nasıl oluşturulur**, **barkodların PDF belgelerine gömülmesi** veya **barkod renklerinin özelleştirilmesi** gibi ilgili konuları keşfetmeyi düşünebilirsiniz. Bu konular aynı jeneratör API'si üzerine kurulu olup, uygulamanızın tarama yeteneklerini minimum çabayla genişletmenizi sağlar. İyi kodlamalar! + +## Sonra Ne Öğrenmelisiniz? + +Aşağıdaki öğreticiler, bu rehberde gösterilen tekniklere dayanan ve yakından ilgili konuları kapsar. Her kaynak, adım adım açıklamalarla birlikte tam çalışan kod örnekleri içerir; böylece ek API özelliklerini öğrenebilir ve projelerinizde alternatif uygulama yaklaşımlarını keşfedebilirsiniz. + +- [Barkod Oluşturma – Compact PDF417 Aspose.BarCode ile](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [DataMatrix Barkodları (ECC 200) Aspose.BarCode for .NET ile 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/) + +{{< /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/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md b/barcode/turkish/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md new file mode 100644 index 000000000..03c5fc4f7 --- /dev/null +++ b/barcode/turkish/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md @@ -0,0 +1,241 @@ +--- +category: general +date: 2026-08-03 +description: Aspose.BarCode kullanarak C# ile PDF417 barkod oluşturun. Macro PDF417 + meta verilerini eklemeyi ve PNG olarak kaydetmeyi adım adım öğrenin. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- generate PDF417 barcode C# +- Macro PDF417 barcode +- Aspose.BarCode +- C# barcode generation +- PDF417 metadata +- barcode image PNG +language: tr +lastmod: 2026-08-03 +og_description: Aspose.BarCode ile C#’ta PDF417 barkod oluşturma. Bu öğreticide, Macro + PDF417 meta verilerini nasıl gömeceğinizi ve sonucu PNG görüntüsü olarak nasıl dışa + aktaracağınızı gösterir. +og_image_alt: Screenshot of a generated PDF417 barcode created with C# +og_title: PDF417 barkodunu C# ile oluşturma – adım adım Aspose.BarCode öğreticisi +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + headline: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + type: TechArticle +- description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + name: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + steps: + - name: Create a Macro PDF417 barcode generator + text: First, instantiate `BarcodeGenerator` with the `EncodeTypes.MacroPdf417` + enum. The constructor also accepts the text you want to encode – in this example + we use a string that contains Unicode characters to demonstrate full‑width support. + - name: Adjust basic barcode appearance + text: Next, define the visual size of the barcode. `XDimension.Pixels` controls + the width of a single module (the smallest black/white square), while `Pdf417.Columns` + influences the overall shape by setting the number of columns. + - name: Populate Macro PDF417 metadata + text: Macro PDF417 allows you to embed file‑level information that many back‑office + systems rely on (e.g., file ID, segment ID, timestamp). The following properties + illustrate the most common fields. + - name: Save the barcode image as PNG + text: Finally, call `Save` to write the barcode to disk. PNG is lossless, making + it ideal for high‑quality scanning. + - name: How to verify the result + text: 1. Open `ExtPDF417Meta.png` in any image viewer. 2. Use a PDF417 scanner + app (e.g., *Zebra Scanner* or *BarCode Reader* on Android/iOS). 3. Confirm that + the decoded payload includes the original text and a JSON‑like block with the + macro fields you set. + - name: Next steps + text: '- Experiment with other barcode formats (e.g., QR, Code128) by changing + `EncodeTypes`. - Explore `Pdf417.ErrorCorrectionLevel` to improve scan reliability + under poor lighting. - Integrate the generated image into a PDF report using + Aspose.PDF for end‑to‑end document automation.' + type: HowTo +tags: +- PDF417 +- C# +- Barcode +title: PDF417 barkodunu C# ile oluşturma – Aspose.BarCode ile tam rehber +url: /tr/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PDF417 barkod C# – tam kılavuz + +Eğer bir lojistik veya belge‑yönetim sistemi için **PDF417 barcode C#** oluşturmanız gerekiyorsa, bu öğretici Aspose.BarCode ile bunu tam olarak nasıl yapacağınızı gösterir. Barkodu nasıl yapılandıracağınızı, Macro PDF417 meta verilerini nasıl gömeceğinizi ve sonucu sadece birkaç satır kodla PNG görüntüsü olarak nasıl kaydedeceğinizi göreceksiniz. + +C# içinde PDF417 barkodu oluşturmak, genellikle dosya kimlikleri, segment numaraları veya zaman damgaları gibi ek bilgileri yönetmeyi gerektirir. Bu kılavuz bu detayları kapsar, böylece dağınık dokümantasyonlar arasında arama yapmanıza gerek kalmaz. Makale sonunda, uyumlu bir Macro PDF417 barkod görüntüsü üreten, çalıştırmaya hazır bir programınız olacak. + +## Gereksinimler + +- .NET 6.0 veya üzeri (kod .NET Framework 4.7+ ile de çalışır) +- Aspose.BarCode for .NET (v23.9 veya daha yeni) – NuGet üzerinden `Install-Package Aspose.BarCode` komutuyla kurun +- Visual Studio 2022 veya Visual Studio Code gibi bir geliştirme ortamı +- C# sözdizimine temel aşinalık + +> **Pro ipucu:** En yeni PDF417 spesifikasyonları için hata düzeltmelerinden ve destekten yararlanmak üzere en son Aspose.BarCode sürümünü kullanın. + +## Aspose.BarCode ile PDF417 barkod C# nasıl oluşturulur + +İşlem dört mantıksal adımdan oluşur. Her adım, hemen kopyalayıp çalıştırabileceğiniz net bir kod bloğu içinde sunulmuştur. + +### Adım 1: Macro PDF417 barkod oluşturucu oluşturma + +İlk olarak `BarcodeGenerator` sınıfını `EncodeTypes.MacroPdf417` enum’u ile örnekleyin. Yapıcı aynı zamanda kodlamak istediğiniz metni de kabul eder – bu örnekte tam‑genişlik desteğini göstermek için Unicode karakterler içeren bir dize kullanıyoruz. + +```csharp +using System; +using Aspose.BarCode.Generation; + +// Create a Macro PDF417 barcode generator with the desired text +using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) +{ + // Subsequent steps go inside this using block +``` + +*Neden önemli*: `MacroPdf417` türü, Aspose.BarCode’a sembolü ek dosya‑seviyesi meta veri taşıyabilen bir macro barkod olarak ele almasını söyler. Bu bayrak olmadan daha sonra ayarladığınız ekstra alanlar göz ardı edilir. + +### Adım 2: Temel barkod görünümünü ayarlama + +Sonra barkodun görsel boyutunu tanımlayın. `XDimension.Pixels` tek bir modülün (en küçük siyah/beyaz kare) genişliğini kontrol ederken, `Pdf417.Columns` sütun sayısını ayarlayarak genel şekli etkiler. + +```csharp + // Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol +``` + +*Neden önemli*: Daha küçük bir `XDimension`, ekran üzerinden taranması gereken barkodlar için yüksek çözünürlüklü bir görüntü sağlar. Sütun sayısını değiştirmek, veri kapasitesinden ödün vermeden barkodu sınırlı alana sığdırmaya yardımcı olabilir. + +### Adım 3: Macro PDF417 meta verilerini doldurma + +Macro PDF417, birçok arka‑ofis sisteminin güvendiği dosya‑seviyesi bilgileri (ör. dosya ID’si, segment ID’si, zaman damgası) gömmeye olanak tanır. Aşağıdaki özellikler en yaygın alanları gösterir. + +```csharp + // Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; +``` + +*Neden önemli*: Her alan, macro barkod spesifikasyonunun bir segmentine doğrudan karşılık gelir. Örneğin, `MacroPdf417FileID` mantıksal dosyayı benzersiz şekilde tanımlarken, `MacroPdf417SegmentsCount` tarayıcıya kaç parça beklemesi gerektiğini söyler. Doğru meta veriler sağlamak, alt sistemlerin orijinal belgeyi hatasız bir şekilde yeniden oluşturmasını garantiler. + +### Adım 4: Barkod görüntüsünü PNG olarak kaydetme + +Son olarak, barkodu diske yazmak için `Save` metodunu çağırın. PNG kayıpsızdır, bu da yüksek‑kaliteli tarama için idealdir. + +```csharp + // Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); +} +``` + +*Neden önemli*: `BarCodeImageFormat.Png` enum’u, çıktının tam olarak yapılandırdığınız piksel verisini içerdiğini garanti eder. Ölçekleme için vektör formatına ihtiyacınız varsa, `Png` yerine `Svg` kullanın – Aspose.BarCode bunu kutudan çıkar çıkmaz destekler. + +#### Beklenen çıktı + +Tam programı çalıştırdığınızda **ExtPDF417Meta.png** adlı bir dosya oluşturulur. Görüntü, “Åspóse.Barcóde©” metnini ve sağladığınız macro meta verilerini içeren yoğun, çok‑satırlı bir PDF417 sembolü gösterir. PDF417‑uyumlu bir okuyucu ile barkodu taradığınızda, orijinal metnin yanı sıra dosya ID’si, segment ID’si, zaman damgası ve diğer alanları içeren yapılandırılmış bir veri bloğu elde edersiniz. + +![Oluşturulan PDF417 barkodun ekran görüntüsü](/images/pdf417-example.png){: .center-image alt="generate PDF417 barcode C# example output"} + +## Tam kaynak kodu (kopyala‑yapıştır hazır) + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace Pdf417MacroDemo +{ + class Program + { + static void Main() + { + // Step 1: Create a Macro PDF417 barcode generator with the desired text + using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) + { + // Step 2: Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol + + // Step 3: Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; + + // Step 4: Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); + } + + Console.WriteLine("Macro PDF417 barcode generated successfully."); + } + } +} +``` + +### Sonucu nasıl doğrularsınız + +1. `ExtPDF417Meta.png` dosyasını herhangi bir görüntü görüntüleyicide açın. +2. Android/iOS üzerinde *Zebra Scanner* veya *BarCode Reader* gibi bir PDF417 tarayıcı uygulaması kullanın. +3. Çözülen yükün orijinal metni ve ayarladığınız macro alanları içeren JSON‑benzeri bir blok içerdiğini doğrulayın. + +## Yaygın sorular ve uç‑durum yönetimi + +| Soru | Cevap | +|------|-------| +| **PNG yerine vektör görüntüsü oluşturabilir miyim?** | Evet. `BarCodeImageFormat.Png` yerine `BarCodeImageFormat.Svg` kullanın. Kodun geri kalanı değişmeden kalır. | +| **Verilerim varsayılan kapasiteyi aşarsa ne olur?** | `Pdf417.Columns` değerini artırın veya `Pdf417.Rows` değerini manuel olarak ayarlayın. Daha büyük değerler, segment başına daha fazla kod sözcüğü (codeword) sağlar. | +| **Kodlanan metinde Unicode destekleniyor mu?** | Kesinlikle. Örnekte “Åspóse.Barcóde©” kullanılmıştır. Aspose.BarCode gerektiğinde otomatik olarak UTF‑8 kodlamasına geçer. | +| **Aspose.BarCode için bir lisans imzalamam gerekiyor mu?** | Üretim ortamında değerlendirme filigranını önlemek için lisans uygulamalısınız. `License license = new License(); license.SetLicense("Aspose.BarCode.lic");` kodunu oluşturucuya geçmeden önce çalıştırın. | +| **Dosyayı kaydederken hataları nasıl ele alırım?** | `Save` çağrısını bir try/catch bloğuna sarın ve sorun giderme için `IOException` veya `BarCodeException` kaydedin. | + +## Sonuç + +Artık Aspose.BarCode kullanarak **PDF417 barcode C#** oluşturmayı, tam Macro PDF417 meta verilerini gömmeyi ve sonucu yüksek‑kaliteli bir PNG görüntüsü olarak dışa aktarmayı biliyorsunuz. Oluşturucu oluşturma, görünümü ayarlama, meta verileri doldurma ve görüntüyü kaydetme adımları, faturalardan gönderi etiketlerine kadar zengin barkod verisi gerektiren her senaryoya uyarlanabilecek yeniden kullanılabilir bir desen oluşturur. + +### Sonraki adımlar + +- `EncodeTypes` değerini değiştirerek diğer barkod formatlarıyla (ör. QR, Code128) deneyin. +- Kötü aydınlatma koşullarında tarama güvenilirliğini artırmak için `Pdf417.ErrorCorrectionLevel` keşfedin. +- Oluşturulan görüntüyü uç‑uç belge otomasyonu için Aspose.PDF kullanarak bir PDF raporuna entegre edin. + +Meta veri alanlarını iş kurallarınıza göre değiştirmekten çekinmeyin; barkod oluşturma C# uygulamalarınızın sorunsuz bir parçası haline gelsin. İyi kodlamalar! + +## Sonraki Öğrenmeniz Gerekenler? + +Aşağıdaki öğreticiler, bu kılavuzda gösterilen tekniklere dayanarak yakından ilgili konuları kapsar. Her kaynak, ek API özelliklerini ustalaşmanız ve kendi projelerinizde alternatif uygulama yaklaşımlarını keşfetmeniz için adım‑adım açıklamalı tam çalışan kod örnekleri içerir. + +- [Barkod Oluşturma – Kompakt PDF417 Aspose.BarCode ile](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [Barkod Nasıl Oluşturulur – Kompakt PDF417 Aspose.BarCode ile](/barcode/german/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [java barkod kütüphanesi – Aspose kullanarak PDF'ye barkod ekleme](/barcode/english/java/barcode-basics/adding-barcode-to-pdf-document/) + +{{< /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/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md b/barcode/turkish/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md new file mode 100644 index 000000000..8b66cfc47 --- /dev/null +++ b/barcode/turkish/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md @@ -0,0 +1,187 @@ +--- +category: general +date: 2026-08-03 +description: C# kullanarak barkodu hızlı bir şekilde nasıl kaydedilir. MicroPDF417 + barkod oluşturmayı öğrenin, boyutları ayarlayın, sütunları seçin ve PNG olarak dışa + aktarın. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to save barcode +- MicroPDF417 barcode +- C# barcode generation +- barcode XDimension +- PDF417 columns +- barcode image format +language: tr +lastmod: 2026-08-03 +og_description: C# ile barkodu kaydetme, tam bir örnek. MicroPDF417 barkodu oluşturun, + boyutunu ayarlayın, sütunları belirleyin ve PNG olarak dışa aktarın. +og_image_alt: Screenshot showing a MicroPDF417 barcode saved as a PNG file +og_title: barkodu kaydetme – adım adım C# öğreticisi +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: how to save barcode quickly using C#. Learn MicroPDF417 barcode generation, + set dimensions, choose columns, and export to PNG. + headline: how to save barcode as an image – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- imaging +title: Barkodu Görüntü Olarak Kaydetme – Tam C# Rehberi +url: /tr/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# barkod nasıl kaydedilir – tam C# rehberi + +Bir .NET uygulamasında **barkod nasıl kaydedilir** ihtiyacınız varsa, bu öğretici size tam adımları gösterir. Bir MicroPDF417 barkod oluşturacak, boyutlarını ayarlayacak, sütun sayısını seçecek ve sonunda görüntüyü PNG dosyası olarak diske yazacaksınız. + +Barkod oluşturmak ve saklamak ağır bir kütüphane gerektirmez—sadece Aspose.BarCode for .NET paketindeki `BarcodeGenerator` sınıfı yeterlidir. Aşağıdaki bölümlerde her yapılandırma seçeneğini adım adım inceler, neden önemli olduğunu açıklarız ve size çalıştırmaya hazır bir kod örneği sunarız. + +## Önkoşullar + +- .NET 6.0 veya üzeri (API .NET Core ve .NET Framework ile çalışır) +- Aspose.BarCode for .NET (NuGet paketi `Aspose.BarCode`) +- Yazma izniniz olan bir klasör (**barkod nasıl kaydedilir** adımında kullanılır) + +## Adım 1: MicroPDF417 barkod üreteci oluşturma + +Herhangi bir **barkod nasıl kaydedilir** iş akışındaki ilk görev, istenen semboloji ve veriyle bir `BarcodeGenerator` örneği oluşturmaktır. MicroPDF417, küçük etiketler için ideal olan PDF417 matris barkodunun kompakt bir versiyonudur. + +```csharp +using Aspose.BarCode.Generation; + +// Create a MicroPDF417 barcode with sample text that includes Unicode characters. +BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, // Symbology + "Åspóse.Barcóde©"); // Data to encode +``` + +**Neden önemli:** +`EncodeTypes.MicroPdf417` kütüphaneye MicroPDF417 algoritmasını kullanmasını söyler; bu algoritma hata düzeltme ve veri kodlamasını otomatik olarak yönetir. Unicode metin sağlamak, üretecinin ASCII dışı karakterleri doğru işlediğini gösterir. + +## Adım 2: X‑boyutunu (modül boyutu) ayarlama + +X‑boyutu, tek bir barkod modülünün (piksel) genişliğini tanımlar. Daha küçük bir değer daha sıkı bir barkod üretirken, daha büyük bir değer taramayı kolaylaştırır. + +```csharp +// Set each module to 2 pixels wide. +barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +**Neden önemli:** +`barcode XDimension` ayarı, barkodun hedef etiket boyutuna uymasını sağlar. Bu adımı atlamanız durumunda, varsayılan boyut mobil ekranlar veya küçük baskılar için çok büyük olabilir. + +## Adım 3: PDF417 matrisinin sütun sayısını seçme + +MicroPDF417 1–4 sütunu destekler. Daha fazla sütun daha kare bir barkod üretirken, daha az sütun barkodu dikey olarak uzatır. + +```csharp +// Use the maximum of 4 columns for a compact, square shape. +barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; +``` + +**Neden önemli:** +**PDF417 sütunlarını** ayarlamak, okunabilirlik ile alan kısıtlamaları arasında denge kurmanızı sağlar. Çoğu tarama senaryosunda, 4 sütunlu düzen en iyi uzlaşmayı sunar. + +## Adım 4: Oluşturulan barkodu PNG görüntüsü olarak kaydetme + +Barkod artık yapılandırıldığına göre, artık “**barkod nasıl kaydedilir**” sorusuna bir dosyaya yazarak cevap verebilirsiniz. PNG, kayıpsız kaliteyi korur; bu da net tarama için gereklidir. + +```csharp +// Define the output path (ensure the directory exists). +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + +// Export the barcode to PNG. +barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + +Console.WriteLine($"Barcode saved to: {outputPath}"); +``` + +**Neden önemli:** +`barcode image format` kaydedilen dosyanın görsel doğruluğunu belirler. PNG, sıkıştırma artefaktları olmadan keskin kenarları koruduğu için çoğu UI ve baskı iş akışında tercih edilir. + +## Tam, çalıştırılabilir örnek + +Her şeyi bir araya getirdiğinizde, kopyalayıp yapıştırıp çalıştırabileceğiniz bağımsız bir program elde edersiniz. + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // 1️⃣ Create the barcode generator. + BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, + "Åspóse.Barcóde©"); + + // 2️⃣ Adjust module size. + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; + + // 3️⃣ Set column count (1‑4 allowed). + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; + + // 4️⃣ Define output location. + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + + // 5️⃣ Save as PNG. + barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"✅ Barcode saved to: {outputPath}"); + } +} +``` + +**Beklenen çıktı** + +Programı çalıştırdığınızda masaüstünüzde `MicroPdf417.png` dosyası oluşturulur. Dosyayı açtığınızda `Åspóse.Barcóde©` dizesini kodlayan net bir MicroPDF417 barkod görürsünüz. Herhangi bir standart barkod okuyucu ile tarandığında orijinal metin geri döner. + +## Yaygın sorular ve uç durumlar + +| Soru | Cevap | +|----------|--------| +| *PNG yerine JPEG kullanabilir miyim?* | Evet. `BarCodeImageFormat.Png` yerine `BarCodeImageFormat.Jpeg` kullanın. JPEG daha küçüktür ancak taramayı etkileyebilecek sıkıştırma artefaktları oluşturur. | +| *Verim MicroPDF417 kapasitesini aşarsa ne olur?* | MicroPDF417 en fazla 1 KB veri depolayabilir. Daha büyük yükler için tam `EncodeTypes.Pdf417`'e geçin. | +| *Barkod rengini nasıl değiştiririm?* | `barcodeGenerator.Parameters.Barcode.BarColor` ve `BackColor` kullanarak `Save` çağrısından önce ön/arka plan renklerini ayarlayın. | +| *X‑boyutu tam sayı piksel ile sınırlı mı?* | Özellik bir `float` değer kabul eder. `1.5f` gibi değerler kullanılabilir, ancak çoğu yazıcı tam piksel boyutlarıyla en iyi çalışır. | + +## Güvenilir **barkod nasıl kaydedilir** uygulamaları için profesyonel ipuçları + +- `Save` çağrısı öncesinde `Directory.Exists` ile **çıktı klasörünü doğrulayın** ve `IOException` oluşmasını önleyin. +- Bir döngüde çok sayıda barkod oluştururken **üreteci serbest bırakın** (`barcodeGenerator.Dispose()`) ve yerel kaynakları serbest bırakın. +- Kaydettikten sonra **gerçek tarayıcılarla test edin**; görsel inceleme üretim ortamları için yeterli değildir. +- **Kütüphaneyi güncel tutun**—yeni Aspose.BarCode sürümleri semboloji iyileştirmeleri ve hata düzeltmeleri ekler. + +## Sonuç + +Artık Aspose.BarCode kütüphanesini kullanarak C#'ta **barkod nasıl kaydedilir** görüntülerini biliyorsunuz. Bir MicroPDF417 barkod oluşturarak, **barcode XDimension**'ı yapılandırarak, uygun **PDF417 sütunlarını** seçerek ve PNG gibi bir **barcode image format**'ına dışa aktararak eksiksiz, üretime hazır bir çözüm elde ettiniz. + +Sonra **C# ile QR kodları için barkod üretimi**, **toplu barkod oluşturma** veya **PDF raporlarına barkod yerleştirme** gibi ilgili konuları keşfedin. Bunların her biri burada gösterilen aynı prensiplere dayanır ve görüntüleme araç setinizi güvenle genişletmenizi sağlar. + +## Sonra Ne Öğrenmelisiniz? + +Aşağıdaki öğreticiler, bu rehberde gösterilen tekniklere dayanan 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. + +- [How to Save PNG using DataMatrix C40 with Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-c40/) +- [How to Set Border for ITF-14 Barcode Customization](/barcode/english/net/itf-14-barcode-customization/) +- [How to generate Aztec barcode with custom aspect ratio using Aspose.BarCode for .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) + +{{< /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/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md b/barcode/turkish/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md new file mode 100644 index 000000000..987a09846 --- /dev/null +++ b/barcode/turkish/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md @@ -0,0 +1,216 @@ +--- +category: general +date: 2026-08-03 +description: C# BarCodeReader kullanarak bir görüntüden PDF417 barkodu okuyun – birden + fazla barkodu nasıl okuyacağınızı da gösteren eksiksiz bir barkod okuyucu örneği. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- read PDF417 barcode +- barcode reader example +- read multiple barcodes +- read barcodes image +language: tr +lastmod: 2026-08-03 +og_description: C# BarCodeReader örneğiyle PDF417 barkodunu hızlıca okuyun. Makro + PDF417'i çözmek ve bir görüntüden birden fazla barkodu okumak için bu adım adım + rehberi izleyin. +og_image_alt: Console output of a read PDF417 barcode example in C# +og_title: C#'ta PDF417 barkodu okuyun – tam barkod okuyucu örneği +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + headline: Read PDF417 barcode in C# – barcode reader example + type: TechArticle +- description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + name: Read PDF417 barcode in C# – barcode reader example + steps: + - name: '**Create a new console project**' + text: '**Create a new console project**' + - name: '**Add the barcode library**' + text: '**Add the barcode library**' + - name: '**Copy the barcode image**' + text: '**Copy the barcode image**' + type: HowTo +tags: +- barcode +- PDF417 +- C# +- .NET +title: C#'ta PDF417 barkodu oku – barkod okuyucu örneği +url: /tr/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#'ta PDF417 barkodunu okuyun – barkod okuyucu örneği + +Bir görüntüden PDF417 barkod verilerini okumanız gerekiyorsa, bu kılavuz C#'ta **BarCodeReader** sınıfını kullanarak nasıl yapacağınızı gösterir. Macro PDF417'ı da işleyen ve tek bir görüntüde birden fazla barkodu okuyabilen bir barkod okuyucu örneği öğreneceksiniz. + +Barkodlarla çalışmak genellikle farklı görüntü kaynakları, değişken aydınlatma koşulları ve bazen macro PDF417 segmentleri gibi birleşik verilerle uğraşmayı gerektirir. Bu öğreticide PDF417 barkodunu çözmek, genişletilmiş alanlarını çıkarmak ve aynı resimdeki birkaç barkodu işlemek için ihtiyacınız olan her şeyi bulacaksınız. Sonunda, bir görüntü dosyasından barkodları okuyup ayrıntılı bilgileri konsola yazdıran çalıştırılabilir bir konsol programına sahip olacaksınız. + +## Gereksinimler + +Başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun: + +* .NET 6.0 SDK veya daha yeni bir sürüm yüklü +* `BarCodeReader` ve `DecodeType.MacroPdf417` sağlayan **Aspose.BarCode for .NET** NuGet paketinin (veya uyumlu bir kütüphanenin) güncel bir sürümü +* PDF417 veya macro PDF417 barkodu içeren bir görüntü dosyası (örnek `ExtPDF417Meta.png` kullanır) +* Visual Studio 2022 gibi bir kod editörü veya IDE + +Ek hizmetler veya dış API'ler gerekmez. + +## Barkod okuma projesini kurma + +1. **Yeni bir konsol projesi oluşturun** + + ```bash + dotnet new console -n Pdf417ReaderDemo + cd Pdf417ReaderDemo + ``` + +2. **Barkod kütüphanesini ekleyin** + + ```bash + dotnet add package Aspose.BarCode --version 23.12 + ``` + +3. **Barkod görüntüsünü kopyalayın** + + `ExtPDF417Meta.png` dosyasını (veya PDF417 barkodu içeren herhangi bir görüntüyü) proje klasörüne yerleştirin. + Bu öğreticide dosyanın `YOUR_DIRECTORY/ExtPDF417Meta.png` konumunda olduğunu varsayıyoruz. + +Proje artık barkod okuyucu örneğini derleyip çalıştırmaya hazır. + +## BarCodeReader ile PDF417 barkodu nasıl okunur + +Çözümün çekirdeği, bir `BarCodeReader` örneği oluşturan, `DecodeType.MacroPdf417` belirten ve tespit edilen her barkodu döngüyle işleyen bir `using` bloğudur. Aşağıdaki kod, `Program.cs` dosyasına yapıştırabileceğiniz tam, bağımsız bir programdır. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.BarCodeRecognition; + +class Program +{ + static void Main() + { + // Path to the image that contains one or more PDF417 barcodes + const string imagePath = "YOUR_DIRECTORY/ExtPDF417Meta.png"; + + // Step 1: Create a BarCodeReader for a macro PDF417 image + using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.MacroPdf417)) + { + // Step 2: Read all barcodes from the image + foreach (BarCodeResult result in reader.ReadBarCodes()) + { + // Step 3: Output basic barcode information + Console.WriteLine($"CodeType: {result.CodeTypeName}"); + Console.WriteLine($"CodeText: {result.CodeText}"); + + // Step 4: Output macro PDF417 specific fields + Console.WriteLine($"Pdf417MacroFileID: {result.Extended.Pdf417.MacroPdf417FileID}"); + Console.WriteLine($"Pdf417MacroSegmentID: {result.Extended.Pdf417.MacroPdf417SegmentID}"); + Console.WriteLine($"Pdf417MacroSegmentsCount: {result.Extended.Pdf417.MacroPdf417SegmentsCount}"); + Console.WriteLine($"Pdf417MacroFileName: {result.Extended.Pdf417.MacroPdf417FileName}"); + Console.WriteLine($"Pdf417MacroChecksum: {result.Extended.Pdf417.MacroPdf417Checksum}"); + Console.WriteLine($"Pdf417MacroFileSize: {result.Extended.Pdf417.MacroPdf417FileSize}"); + Console.WriteLine($"Pdf417MacroTimeStamp: {result.Extended.Pdf417.MacroPdf417TimeStamp}"); + Console.WriteLine($"Pdf417MacroAddressee: {result.Extended.Pdf417.MacroPdf417Addressee}"); + Console.WriteLine($"Pdf417MacroSender: {result.Extended.Pdf417.MacroPdf417Sender}"); + Console.WriteLine($"MacroPdf417Terminator: {result.Extended.Pdf417.MacroPdf417Terminator}"); + Console.WriteLine(new string('-', 40)); + } + + // Pro tip: If no barcodes are found, ReadBarCodes() returns an empty collection. + // You can check reader.HasBarcodes for a quick boolean test. + if (!reader.HasBarcodes) + { + Console.WriteLine("No barcodes detected in the provided image."); + } + } + } +} +``` + +**Neden çalışır**: + +* `DecodeType.MacroPdf417` okuyucuya PDF417'nın macro uzantısını aramasını söyler; bu uzantı dosya kimliği, segment sayısı ve zaman damgaları gibi ek meta verileri taşır. +* `using` ifadesi, yönetilmeyen kaynakların (dosya tutamaçları, yerel çözüm tamponları) hızlı bir şekilde serbest bırakılmasını garanti eder. +* `foreach` döngüsü, görüntünün içerdiği **tüm** barkodları otomatik olarak işler ve *birden fazla barkodu okuma* gereksinimini karşılar. + +Programı (`dotnet run`) çalıştırdığınızda aşağıdakine benzer bir çıktı görmelisiniz: + +``` +CodeType: MacroPdf417 +CodeText: https://example.com/document.pdf +Pdf417MacroFileID: 12345 +Pdf417MacroSegmentID: 1 +Pdf417MacroSegmentsCount: 3 +Pdf417MacroFileName: document.pdf +Pdf417MacroChecksum: 0x1A2B +Pdf417MacroFileSize: 204800 +Pdf417MacroTimeStamp: 2024-07-15T10:25:00Z +Pdf417MacroAddressee: John Doe +Pdf417MacroSender: Acme Corp +MacroPdf417Terminator: True +---------------------------------------- +``` + +Görüntü birden fazla PDF417 barkodu içeriyorsa, döngü her barkod için ayrı bir blok yazdırır; böylece tek bir resimden **birden fazla barkodu okuma** gösterilmiş olur. + +## Tek bir görüntüden birden fazla barkod okuma + +Aynı `BarCodeReader` örneği birden fazla barkod tipini aynı anda çözebilir. Kapsamı yalnızca macro PDF417'dan tüm PDF417'lara (ve hatta QR, Code128 vb.) genişletmek için `DecodeType` bayrağını şu şekilde ayarlayın: + +```csharp +using (BarCodeReader reader = new BarCodeReader(imagePath, + DecodeType.Pdf417 | DecodeType.MacroPdf417 | DecodeType.QR | DecodeType.Code128)) +{ + // The rest of the code stays unchanged. +} +``` + +*`DecodeType`* bir bitmask'tir, bu yüzden desteklenen istediğiniz sayıda formatı birleştirebilirsiniz. Bu esneklik, ürün etiketleri, biletler veya kimlik kartları gibi çeşitli kullanım senaryoları için çalışan bir **barkod okuyucu örneği** oluşturur. + +## Macro PDF417 alanlarına güvenli erişim + +Macro PDF417, zengin bir genişletilmiş özellik kümesi ekler. Ancak, her barkod bu alanların tümünü içermez. Eksik bir özelliğe erişmek `NullReferenceException` fırlatabilir. En güvenli yol, her özelliği yazdırmadan önce doğrulamaktır: + +```csharp +var macro = result.Extended?.Pdf417; +if (macro != null) +{ + Console.WriteLine($"Pdf417MacroFileID: {macro.MacroPdf417FileID ?? "N/A"}"); + // Repeat for other fields... +} +``` + +*Neden önemli*: Gerçek dünya dağıtımlarında macro verisi içermeyen düz PDF417 barkodları alabilirsiniz. Savunmacı kontrol, uygulamanızın çökmeden çalışmaya devam etmesini sağlar. + +## Yaygın hatalar ve en iyi uygulamalar + +| Sorun | Neden ortaya çıkar | Önerilen çözüm | +|-------|--------------------|----------------| +| Görüntü yolu hatalı | `BarCodeReader` dosya bulunamadı hatası verir, çözüm başlamaz | `Path.Combine` kullanın ve `File.Exists` ile dosyanın varlığını doğrulayın | +| Düşük çözünürlüklü görüntü | Çözücü barkod kenarlarını bulamaz, tespit sıfır olur | Güvenilir sonuçlar için minimum 300 dpi çözünürlük sağlayın | +| Barkod 45°'den fazla döndürülmüş | Birçok kütüphane dik konumu varsayar | `reader.RecognitionOptions.RotateImage = true` özelliğini etkinleştirin eğer | + +## Sonraki Öğrenmeniz Gerekenler + +Aşağıdaki öğreticiler, bu kılavuzda gösterilen tekniklere dayanan ve yakından ilgili konuları kapsar. Her kaynak, adım adım açıklamalarla tam çalışan kod örnekleri içerir; böylece ek API özelliklerini ustalaşabilir ve kendi projelerinizde alternatif uygulama yaklaşımlarını keşfedebilirsiniz. + +- [How to Read DataMatrix Barcodes with Aspose.BarCode for .NET](/barcode/english/net/datamatrix-barcode-reading/) +- [Read DataMatrix barcode C# – Generate DataMatrix Mode (Auto)](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-auto/) +- [Read Barcode from Image – Mastering Barcode Region Extraction in Java with Aspose.BarCode](/barcode/english/java/advanced-settings-and-optimization/extracting-barcode-region-information/) + +{{< /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/net/compact-pdf417-encoding/_index.md b/barcode/vietnamese/net/compact-pdf417-encoding/_index.md index 8c0240726..a375efea6 100644 --- a/barcode/vietnamese/net/compact-pdf417-encoding/_index.md +++ b/barcode/vietnamese/net/compact-pdf417-encoding/_index.md @@ -84,6 +84,14 @@ Ngoài các kiến thức cơ bản, dưới đây là một số mẹo thực t ## Hướng dẫn Mã Hóa Compact PDF417 ### [Tạo Mã Vạch Compact PDF417](./compact-pdf417-basic-configuration/) Tìm hiểu cách tạo mã vạch Compact PDF417 bằng Aspose.BarCode cho .NET. Hướng dẫn chi tiết với các bước thực hiện và ví dụ mã nguồn. +### [Tạo mã vạch PDF417 trong C# – hướng dẫn từng bước](./create-pdf417-barcode-in-c-step-by-step-guide/) +Hướng dẫn chi tiết cách tạo mã vạch PDF417 bằng C# với Aspose.BarCode, bao gồm các bước thực hiện và ví dụ mã nguồn. +### [Tạo mã vạch PDF417 C# – hướng dẫn đầy đủ với Aspose.BarCode](./generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/) +Hướng dẫn chi tiết cách tạo mã vạch PDF417 bằng C# với Aspose.BarCode, bao gồm các bước và ví dụ mã nguồn. +### [Cách lưu mã vạch dưới dạng hình ảnh – hướng dẫn đầy đủ C#](./how-to-save-barcode-as-an-image-complete-c-guide/) +Hướng dẫn chi tiết cách lưu mã vạch dưới dạng hình ảnh trong C# bằng Aspose.BarCode, bao gồm các bước và ví dụ mã nguồn. +### [Đọc mã vạch PDF417 trong C# – ví dụ trình đọc mã vạch](./read-pdf417-barcode-in-c-barcode-reader-example/) +Hướng dẫn cách đọc mã vạch PDF417 bằng C# sử dụng Aspose.BarCode, kèm ví dụ thực tế. ## Câu hỏi thường gặp @@ -111,4 +119,4 @@ A: Không cần font bên ngoài; thư viện tự xử lý việc render nội {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/barcode/vietnamese/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md b/barcode/vietnamese/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md new file mode 100644 index 000000000..0bc251475 --- /dev/null +++ b/barcode/vietnamese/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/_index.md @@ -0,0 +1,225 @@ +--- +category: general +date: 2026-08-03 +description: Tạo mã vạch PDF417 trong C# nhanh chóng. Tìm hiểu cách tạo mã vạch PDF417 + và cách lưu hình ảnh mã vạch dưới dạng PNG với Aspose.Barcode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- create pdf417 barcode +- how to generate pdf417 barcode +- how to save barcode image +language: vi +lastmod: 2026-08-03 +og_description: Tạo mã vạch PDF417 trong C# với Aspose.Barcode. Tham khảo hướng dẫn + này để tạo mã vạch PDF417 và cách lưu ảnh mã vạch một cách hiệu quả. +og_image_alt: Screenshot of a generated compact PDF417 barcode saved as PNG +og_title: Tạo mã vạch PDF417 trong C# – hướng dẫn lập trình đầy đủ +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + headline: Create PDF417 barcode in C# – step‑by‑step guide + type: TechArticle +- description: Create PDF417 barcode in C# quickly. Learn how to generate PDF417 barcode + and how to save barcode image as PNG with Aspose.Barcode. + name: Create PDF417 barcode in C# – step‑by‑step guide + steps: + - name: Why this matters + text: '* **EncodeTypes.Pdf417** tells the library to use the PDF417 standard, + which supports large data payloads and error correction. * Providing Unicode + characters proves the generator handles non‑ASCII input without extra configuration.' + - name: Practical tip + text: If you need a taller barcode for limited horizontal space, increase `Columns`. + Setting `Truncate` to `true` reduces the overall height by removing quiet zones, + which is ideal for mobile screens. + - name: Expected result + text: Running the program creates `CompactPdf417.png` in the project folder. Opening + the file shows a compact PDF417 barcode that encodes the string *Åspóse.Barcóde©*. + The image can be embedded in HTML, PDF reports, or printed on labels. + - name: Verifying the output + text: 'After the program finishes, you can verify the file exists with a quick + command:' + type: HowTo +tags: +- barcode +- C# +- PDF417 +- image generation +title: Tạo mã vạch PDF417 bằng C# – hướng dẫn từng bước +url: /vi/net/compact-pdf417-encoding/create-pdf417-barcode-in-c-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tạo mã vạch PDF417 trong C# – hướng dẫn chi tiết + +Nếu bạn cần **tạo mã vạch PDF417** trong một ứng dụng .NET, hướng dẫn này sẽ chỉ cho bạn cách tạo mã vạch PDF417 và cách lưu hình ảnh mã vạch. Bạn sẽ có một tệp PNG có thể dùng trong báo cáo, vé, hoặc các ứng dụng quét di động. + +Bài học bao gồm mọi thứ từ thiết lập dự án đến tệp PNG cuối cùng. Không cần tài liệu bên ngoài; chỉ cần làm theo các bước và chạy mã. + +## Những gì bạn cần + +Trước khi bắt đầu, hãy chắc chắn bạn có: + +* .NET 6.0 SDK hoặc mới hơn (mã cũng hoạt động với .NET Framework 4.7+) +* Visual Studio 2022 hoặc bất kỳ IDE nào hỗ trợ C# +* Kết nối Internet để cài đặt gói NuGet **Aspose.Barcode for .NET** + +Các yêu cầu này đảm bảo mã biên dịch mà không cần cấu hình thêm. + +## Tạo mã vạch PDF417 – thiết lập dự án + +1. Mở command prompt và tạo một dự án console mới: + + ```bash + dotnet new console -n Pdf417Demo + cd Pdf417Demo + ``` + +2. Thêm thư viện Aspose.Barcode: + + ```bash + dotnet add package Aspose.Barcode + ``` + +3. Mở tệp `Program.cs` được tạo. Các câu lệnh `using` ở đầu sẽ cho phép bạn truy cập các lớp liên quan đến mã vạch: + + ```csharp + using System; + using Aspose.Barcode.Generation; + using Aspose.Barcode; + ``` + +Dự án đã sẵn sàng để **tạo mã vạch PDF417**. + +## Cách tạo mã vạch PDF417 với Aspose.Barcode + +Phần cốt lõi của việc tạo mã vạch nằm trong lớp `BarcodeGenerator`. Bạn chỉ định loại mã (`EncodeTypes.Pdf417`) và dữ liệu muốn mã hoá. + +```csharp +// Step 1: Initialise the generator with PDF417 symbology and sample text. +// The text includes Unicode characters to demonstrate full‑range support. +BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Pdf417, "Åspóse.Barcóde©"); +``` + +### Tại sao lại quan trọng + +* **EncodeTypes.Pdf417** báo cho thư viện sử dụng chuẩn PDF417, hỗ trợ khối lượng dữ liệu lớn và khả năng sửa lỗi. +* Việc cung cấp các ký tự Unicode chứng minh bộ tạo có thể xử lý đầu vào không phải ASCII mà không cần cấu hình thêm. + +## Cách cấu hình giao diện mã vạch + +Bạn có thể điều chỉnh kích thước mỗi mô-đun, số cột, và việc mã vạch có dùng chế độ compact (rút gọn) hay không. Những thiết lập này ảnh hưởng tới khả năng đọc và kích thước tệp. + +```csharp +// Step 2: Set the module (X) dimension – each barcode element will be 2 pixels wide. +generator.Parameters.Barcode.XDimension.Pixels = 2; + +// Step 3: Configure PDF417‑specific options. +generator.Parameters.Barcode.Pdf417.Columns = 3; // Number of columns (affects height) +generator.Parameters.Barcode.Pdf417.Truncate = true; // Enable compact mode +``` + +### Mẹo thực tế + +Nếu bạn cần một mã vạch cao hơn vì không gian ngang hạn chế, hãy tăng `Columns`. Đặt `Truncate` thành `true` sẽ giảm chiều cao tổng thể bằng cách loại bỏ các vùng yên lặng, rất phù hợp cho màn hình di động. + +## Cách lưu hình ảnh mã vạch dưới dạng PNG + +Sau khi cấu hình bộ tạo, gọi `Save` với đường dẫn tệp và định dạng ảnh mong muốn. Phương thức sẽ ghi ảnh trực tiếp lên đĩa. + +```csharp +// Step 4: Save the generated barcode as a PNG image. +string outputPath = @"./CompactPdf417.png"; +generator.Save(outputPath, BarCodeImageFormat.Png); +Console.WriteLine($"Barcode saved to {outputPath}"); +``` + +### Kết quả mong đợi + +Chạy chương trình sẽ tạo ra tệp `CompactPdf417.png` trong thư mục dự án. Mở tệp sẽ thấy một mã vạch PDF417 dạng compact mã hoá chuỗi *Åspóse.Barcóde©*. Hình ảnh có thể nhúng vào HTML, báo cáo PDF, hoặc in lên nhãn. + +## Toàn bộ mã nguồn + +Dưới đây là chương trình hoàn chỉnh, có thể chạy ngay. Sao chép vào `Program.cs` và thực thi `dotnet run`. + +```csharp +using System; +using Aspose.Barcode.Generation; +using Aspose.Barcode; + +namespace Pdf417Demo +{ + class Program + { + static void Main() + { + // Initialise the generator with PDF417 symbology and sample text. + BarcodeGenerator generator = new BarcodeGenerator( + EncodeTypes.Pdf417, + "Åspóse.Barcóde©"); + + // Set the module width to 2 pixels. + generator.Parameters.Barcode.XDimension.Pixels = 2; + + // Configure PDF417‑specific options. + generator.Parameters.Barcode.Pdf417.Columns = 3; + generator.Parameters.Barcode.Pdf417.Truncate = true; + + // Define the output file path. + string outputPath = @"./CompactPdf417.png"; + + // Save the barcode as a PNG image. + generator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"Barcode saved to {outputPath}"); + } + } +} +``` + +### Kiểm tra đầu ra + +Sau khi chương trình kết thúc, bạn có thể xác nhận tệp tồn tại bằng lệnh nhanh: + +```bash +dotnet run && ls -l CompactPdf417.png +``` + +Nếu tệp xuất hiện, quá trình **tạo mã vạch PDF417** đã thành công. + +## Các biến thể phổ biến và trường hợp đặc biệt + +| Tình huống | Điều chỉnh | +|-----------|------------| +| **Chuỗi dữ liệu dài hơn** | Tăng `Columns` hoặc đặt `Rows` để chứa thêm codewords. | +| **Định dạng ảnh khác** | Thay `BarCodeImageFormat.Png` bằng `Jpeg`, `Bmp`, hoặc `Gif`. | +| **Độ phân giải cao hơn** | Đặt `generator.Parameters.ImageResolution` trước khi gọi `Save`. | +| **Màu nền** | Sử dụng `generator.Parameters.Barcode.ImageBackgroundColor = Color.White;` | +| **Xử lý ngoại lệ** | Bao `generator.Save` trong khối `try/catch` để bắt lỗi I/O. | + +Các biến thể này cho phép bạn tùy chỉnh mã vạch cho các thiết bị hoặc yêu cầu thương hiệu cụ thể. + +## Kết luận + +Bây giờ bạn đã biết cách **tạo mã vạch PDF417** trong C# bằng Aspose.Barcode, cấu hình giao diện của nó, và **lưu hình ảnh mã vạch** dưới dạng tệp PNG. Ví dụ đầy đủ minh họa mọi bước cần thiết, từ thiết lập dự án đến xác minh, giúp bạn tích hợp việc tạo mã vạch vào bất kỳ giải pháp .NET nào. + +Tiếp theo, bạn có thể khám phá các chủ đề liên quan như **cách tạo mã QR**, **nhúng mã vạch vào tài liệu PDF**, hoặc **tùy chỉnh màu sắc mã vạch**. Mỗi chủ đề đều dựa trên cùng một API của bộ tạo, cho phép bạn mở rộng khả năng quét của ứng dụng với ít công sức. Chúc bạn lập trình vui vẻ! + +## Bạn nên học gì tiếp theo? + +Các hướng dẫn sau đây đề cập đến các chủ đề liên quan chặt chẽ, dựa trên các kỹ thuật đã trình bày trong hướng dẫn này. Mỗi tài nguyên bao gồm mã mẫu đầy đủ và giải thích chi tiết 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. + +- [Cách tạo mã vạch – PDF417 Compact với Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [Cách tạo mã DataMatrix (ECC 200) với Aspose.BarCode cho .NET](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-ecc-200-configuration/) +- [Cách tạo mã Aztec với tỷ lệ khung tùy chỉnh bằng Aspose.BarCode cho .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) + +{{< /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/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md b/barcode/vietnamese/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md new file mode 100644 index 000000000..5dd46c462 --- /dev/null +++ b/barcode/vietnamese/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/_index.md @@ -0,0 +1,240 @@ +--- +category: general +date: 2026-08-03 +description: Tạo mã vạch PDF417 C# bằng Aspose.BarCode. Học cách từng bước thêm siêu + dữ liệu Macro PDF417 và lưu dưới dạng PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- generate PDF417 barcode C# +- Macro PDF417 barcode +- Aspose.BarCode +- C# barcode generation +- PDF417 metadata +- barcode image PNG +language: vi +lastmod: 2026-08-03 +og_description: Tạo mã vạch PDF417 bằng C# với Aspose.BarCode. Hướng dẫn này cho thấy + cách nhúng siêu dữ liệu Macro PDF417 và xuất kết quả dưới dạng ảnh PNG. +og_image_alt: Screenshot of a generated PDF417 barcode created with C# +og_title: Tạo mã vạch PDF417 bằng C# – hướng dẫn chi tiết Aspose.BarCode +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + headline: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + type: TechArticle +- description: Generate PDF417 barcode C# using Aspose.BarCode. Learn step‑by‑step + how to add Macro PDF417 metadata and save as PNG. + name: Generate PDF417 barcode C# – complete guide with Aspose.BarCode + steps: + - name: Create a Macro PDF417 barcode generator + text: First, instantiate `BarcodeGenerator` with the `EncodeTypes.MacroPdf417` + enum. The constructor also accepts the text you want to encode – in this example + we use a string that contains Unicode characters to demonstrate full‑width support. + - name: Adjust basic barcode appearance + text: Next, define the visual size of the barcode. `XDimension.Pixels` controls + the width of a single module (the smallest black/white square), while `Pdf417.Columns` + influences the overall shape by setting the number of columns. + - name: Populate Macro PDF417 metadata + text: Macro PDF417 allows you to embed file‑level information that many back‑office + systems rely on (e.g., file ID, segment ID, timestamp). The following properties + illustrate the most common fields. + - name: Save the barcode image as PNG + text: Finally, call `Save` to write the barcode to disk. PNG is lossless, making + it ideal for high‑quality scanning. + - name: How to verify the result + text: 1. Open `ExtPDF417Meta.png` in any image viewer. 2. Use a PDF417 scanner + app (e.g., *Zebra Scanner* or *BarCode Reader* on Android/iOS). 3. Confirm that + the decoded payload includes the original text and a JSON‑like block with the + macro fields you set. + - name: Next steps + text: '- Experiment with other barcode formats (e.g., QR, Code128) by changing + `EncodeTypes`. - Explore `Pdf417.ErrorCorrectionLevel` to improve scan reliability + under poor lighting. - Integrate the generated image into a PDF report using + Aspose.PDF for end‑to‑end document automation.' + type: HowTo +tags: +- PDF417 +- C# +- Barcode +title: Tạo mã vạch PDF417 C# – hướng dẫn đầy đủ với Aspose.BarCode +url: /vi/net/compact-pdf417-encoding/generate-pdf417-barcode-c-complete-guide-with-aspose-barcode/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tạo mã vạch PDF417 C# – hướng dẫn đầy đủ + +Nếu bạn cần **tạo mã vạch PDF417 C#** cho hệ thống logistics hoặc quản lý tài liệu, hướng dẫn này sẽ chỉ cho bạn cách thực hiện bằng Aspose.BarCode. Bạn sẽ thấy cách cấu hình mã vạch, nhúng siêu dữ liệu Macro PDF417, và lưu kết quả dưới dạng ảnh PNG chỉ trong vài dòng mã. + +Việc tạo mã vạch PDF417 trong C# thường đồng nghĩa với việc xử lý các thông tin bổ sung như định danh tệp, số đoạn, hoặc dấu thời gian. Hướng dẫn này bao gồm những chi tiết đó, giúp bạn không phải tìm kiếm qua tài liệu rải rác. Khi đọc xong bài, bạn sẽ có một chương trình sẵn sàng chạy, tạo ra ảnh mã vạch Macro PDF417 tuân chuẩn. + +## Những gì bạn cần + +- .NET 6.0 trở lên (mã cũng hoạt động với .NET Framework 4.7+) +- Aspose.BarCode for .NET (v23.9 hoặc mới hơn) – cài đặt qua NuGet `Install-Package Aspose.BarCode` +- Môi trường phát triển như Visual Studio 2022 hoặc Visual Studio Code +- Kiến thức cơ bản về cú pháp C# + +> **Mẹo chuyên nghiệp:** Sử dụng phiên bản Aspose.BarCode mới nhất để được hưởng các bản sửa lỗi và hỗ trợ các thông số PDF417 mới nhất. + +## Cách tạo mã vạch PDF417 C# với Aspose.BarCode + +Quá trình gồm bốn bước logic. Mỗi bước được bọc trong một khối mã rõ ràng để bạn có thể sao chép, dán và chạy ngay lập tức. + +### Bước 1: Tạo trình tạo mã vạch Macro PDF417 + +Đầu tiên, khởi tạo `BarcodeGenerator` với enum `EncodeTypes.MacroPdf417`. Hàm khởi tạo cũng nhận chuỗi văn bản bạn muốn mã hoá – trong ví dụ này chúng ta dùng một chuỗi chứa ký tự Unicode để minh họa hỗ trợ toàn bộ chiều rộng. + +```csharp +using System; +using Aspose.BarCode.Generation; + +// Create a Macro PDF417 barcode generator with the desired text +using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) +{ + // Subsequent steps go inside this using block +``` + +*Lý do quan trọng*: Kiểu `MacroPdf417` thông báo cho Aspose.BarCode xử lý biểu tượng như một mã vạch macro, có thể chứa siêu dữ liệu ở mức tệp. Nếu không bật cờ này, các trường bổ sung bạn thiết lập sau sẽ bị bỏ qua. + +### Bước 2: Điều chỉnh giao diện cơ bản của mã vạch + +Tiếp theo, xác định kích thước hiển thị của mã vạch. `XDimension.Pixels` điều khiển độ rộng của một mô-đun (ô đen/trắng nhỏ nhất), trong khi `Pdf417.Columns` ảnh hưởng đến hình dạng tổng thể bằng cách đặt số cột. + +```csharp + // Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol +``` + +*Lý do quan trọng*: `XDimension` nhỏ hơn tạo ra ảnh có độ phân giải cao hơn, hữu ích khi mã vạch phải được quét từ màn hình. Thay đổi số cột có thể giúp mã vạch vừa vào không gian hạn chế mà không làm giảm khả năng chứa dữ liệu. + +### Bước 3: Điền siêu dữ liệu Macro PDF417 + +Macro PDF417 cho phép bạn nhúng thông tin ở mức tệp mà nhiều hệ thống back‑office dựa vào (ví dụ: ID tệp, ID đoạn, dấu thời gian). Các thuộc tính dưới đây minh họa các trường phổ biến nhất. + +```csharp + // Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; +``` + +*Lý do quan trọng*: Mỗi trường ánh xạ trực tiếp tới một phần của đặc tả mã vạch macro. Ví dụ, `MacroPdf417FileID` xác định duy nhất tệp logic, trong khi `MacroPdf417SegmentsCount` cho máy quét biết có bao nhiêu phần cần đọc. Cung cấp siêu dữ liệu chính xác giúp các hệ thống downstream tái tạo tài liệu gốc mà không gặp lỗi. + +### Bước 4: Lưu ảnh mã vạch dưới dạng PNG + +Cuối cùng, gọi `Save` để ghi mã vạch ra đĩa. PNG là định dạng không mất dữ liệu, lý tưởng cho việc quét chất lượng cao. + +```csharp + // Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); +} +``` + +*Lý do quan trọng*: Enum `BarCodeImageFormat.Png` đảm bảo file đầu ra chứa đúng dữ liệu pixel mà bạn đã cấu hình. Nếu cần định dạng vector để phóng to, thay `Png` bằng `Svg` – Aspose.BarCode hỗ trợ sẵn. + +#### Kết quả mong đợi + +Chạy chương trình đầy đủ sẽ tạo ra một file có tên **ExtPDF417Meta.png**. Ảnh hiển thị một biểu tượng PDF417 dày đặc, nhiều hàng, bao gồm văn bản “Åspóse.Barcóde©” và siêu dữ liệu macro bạn đã cung cấp. Khi quét mã vạch bằng trình đọc hỗ trợ PDF417, sẽ nhận được văn bản gốc cộng với một khối dữ liệu dạng JSON‑like chứa ID tệp, ID đoạn, dấu thời gian và các trường khác. + +![Ảnh chụp màn hình mã vạch PDF417 đã tạo](/images/pdf417-example.png){: .center-image alt="kết quả ví dụ tạo mã vạch PDF417 C#"} + +## Toàn bộ mã nguồn (sẵn sàng sao chép‑dán) + +```csharp +using System; +using Aspose.BarCode.Generation; + +namespace Pdf417MacroDemo +{ + class Program + { + static void Main() + { + // Step 1: Create a Macro PDF417 barcode generator with the desired text + using (BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MacroPdf417, + "Åspóse.Barcóde©")) + { + // Step 2: Adjust basic barcode appearance + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; // size of a single module + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 5; // number of columns in the symbol + + // Step 3: Populate Macro PDF417 metadata + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileID = 12345678; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentID = 12; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417SegmentsCount = 20; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileName = "file01"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Checksum = 1234; // CCITT‑16 example + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417FileSize = 400_000; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417TimeStamp = new DateTime(2019, 11, 1); + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Addressee = "street"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Sender = "aspose"; + barcodeGenerator.Parameters.Barcode.Pdf417.MacroPdf417Terminator = Pdf417MacroTerminator.Set; + + // Step 4: Save the barcode image as PNG + barcodeGenerator.Save("YOUR_DIRECTORY/ExtPDF417Meta.png", BarCodeImageFormat.Png); + } + + Console.WriteLine("Macro PDF417 barcode generated successfully."); + } + } +} +``` + +### Cách kiểm tra kết quả + +1. Mở `ExtPDF417Meta.png` bằng bất kỳ trình xem ảnh nào. +2. Sử dụng ứng dụng quét PDF417 (ví dụ: *Zebra Scanner* hoặc *BarCode Reader* trên Android/iOS). +3. Xác nhận rằng dữ liệu giải mã bao gồm văn bản gốc và một khối dữ liệu dạng JSON‑like với các trường macro bạn đã thiết lập. + +## Các câu hỏi thường gặp và xử lý các trường hợp đặc biệt + +| Câu hỏi | Trả lời | +|----------|--------| +| **Tôi có thể tạo ảnh vector thay vì PNG không?** | Có. Thay `BarCodeImageFormat.Png` bằng `BarCodeImageFormat.Svg`. Phần còn lại của mã không thay đổi. | +| **Nếu dữ liệu của tôi vượt quá dung lượng mặc định thì sao?** | Tăng `Pdf417.Columns` hoặc đặt `Pdf417.Rows` thủ công. Giá trị lớn hơn cho phép nhiều codeword hơn cho mỗi đoạn. | +| **Unicode có được hỗ trợ trong văn bản mã hoá không?** | Hoàn toàn có. Ví dụ sử dụng “Åspóse.Barcóde©”. Aspose.BarCode tự động chuyển sang mã hoá UTF‑8 khi cần. | +| **Tôi có cần cấp giấy phép cho Aspose.BarCode không?** | Đối với môi trường production, bạn nên áp dụng giấy phép để loại bỏ watermark đánh giá. Gọi `License license = new License(); license.SetLicense("Aspose.BarCode.lic");` trước khi tạo trình tạo. | +| **Làm sao xử lý lỗi khi lưu file?** | Bao bọc lệnh `Save` trong khối try/catch và ghi log `IOException` hoặc `BarCodeException` để khắc phục. | + +## Kết luận + +Bây giờ bạn đã biết cách **tạo mã vạch PDF417 C#** bằng Aspose.BarCode, nhúng siêu dữ liệu Macro PDF417 đầy đủ, và xuất kết quả dưới dạng ảnh PNG chất lượng cao. Bốn bước — tạo trình tạo, điều chỉnh giao diện, điền siêu dữ liệu, và lưu ảnh — tạo thành một mẫu có thể tái sử dụng cho hoá đơn, nhãn vận chuyển, hoặc bất kỳ trường hợp nào yêu cầu dữ liệu mã vạch phong phú. + +### Các bước tiếp theo + +- Thử nghiệm các định dạng mã vạch khác (ví dụ: QR, Code128) bằng cách thay đổi `EncodeTypes`. +- Khám phá `Pdf417.ErrorCorrectionLevel` để cải thiện độ tin cậy khi quét trong điều kiện ánh sáng kém. +- Tích hợp ảnh đã tạo vào báo cáo PDF bằng Aspose.PDF để tự động hoá tài liệu từ đầu tới cuối. + +Hãy tùy chỉnh các trường siêu dữ liệu cho phù hợp với quy tắc kinh doanh của bạn, và để việc tạo mã vạch trở thành một phần liền mạch trong các ứng dụng C# của bạn. Chúc lập trình vui! + +## Bạn nên học gì tiếp theo? + +Các hướng dẫn 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 các ví dụ mã hoàn chỉnh với 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 Create Barcode – Compact PDF417 with Aspose.BarCode](/barcode/english/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [So erstellen Sie einen Barcode – Kompaktes PDF417 mit Aspose.BarCode](/barcode/german/net/compact-pdf417-encoding/compact-pdf417-basic-configuration/) +- [java barcode library – Add barcode to PDF using Aspose](/barcode/english/java/barcode-basics/adding-barcode-to-pdf-document/) + +{{< /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/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md b/barcode/vietnamese/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md new file mode 100644 index 000000000..ae84a0465 --- /dev/null +++ b/barcode/vietnamese/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/_index.md @@ -0,0 +1,186 @@ +--- +category: general +date: 2026-08-03 +description: cách lưu mã vạch nhanh chóng bằng C#. Tìm hiểu cách tạo mã MicroPDF417, + đặt kích thước, chọn cột và xuất ra PNG. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- how to save barcode +- MicroPDF417 barcode +- C# barcode generation +- barcode XDimension +- PDF417 columns +- barcode image format +language: vi +lastmod: 2026-08-03 +og_description: cách lưu mã vạch trong C# với ví dụ đầy đủ. Tạo mã vạch MicroPDF417, + điều chỉnh kích thước, đặt số cột và xuất ra PNG. +og_image_alt: Screenshot showing a MicroPDF417 barcode saved as a PNG file +og_title: cách lưu mã vạch – hướng dẫn C# từng bước +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: how to save barcode quickly using C#. Learn MicroPDF417 barcode generation, + set dimensions, choose columns, and export to PNG. + headline: how to save barcode as an image – complete C# guide + type: TechArticle +tags: +- barcode +- C# +- imaging +title: cách lưu mã vạch dưới dạng hình ảnh – hướng dẫn C# đầy đủ +url: /vi/net/compact-pdf417-encoding/how-to-save-barcode-as-an-image-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# cách lưu mã vạch – hướng dẫn đầy đủ C# + +Nếu bạn cần **cách lưu mã vạch** trong một ứng dụng .NET, hướng dẫn này sẽ chỉ cho bạn các bước chính xác. Bạn sẽ tạo một mã vạch MicroPDF417, điều chỉnh kích thước của nó, chọn số cột, và cuối cùng ghi hình ảnh ra đĩa dưới dạng file PNG. + +Việc tạo và lưu trữ mã vạch không cần một thư viện nặng—chỉ cần lớp `BarcodeGenerator` từ bộ Aspose.BarCode cho .NET. Trong các phần dưới đây, chúng tôi sẽ hướng dẫn từng tùy chọn cấu hình, giải thích lý do quan trọng và cung cấp cho bạn một mẫu mã sẵn sàng chạy. + +## Yêu cầu trước + +- .NET 6.0 hoặc mới hơn (API hoạt động với .NET Core và .NET Framework) +- Aspose.BarCode cho .NET (gói NuGet `Aspose.BarCode`) +- Một thư mục bạn có quyền ghi (được sử dụng trong bước **cách lưu mã vạch**) + +## Bước 1: Tạo trình tạo mã vạch MicroPDF417 + +Nhiệm vụ đầu tiên trong bất kỳ quy trình **cách lưu mã vạch** nào là khởi tạo một `BarcodeGenerator` với ký hiệu và dữ liệu mong muốn. MicroPDF417 là phiên bản gọn gàng của mã vạch ma trận PDF417, lý tưởng cho các nhãn nhỏ. + +```csharp +using Aspose.BarCode.Generation; + +// Create a MicroPDF417 barcode with sample text that includes Unicode characters. +BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, // Symbology + "Åspóse.Barcóde©"); // Data to encode +``` + +**Tại sao điều này quan trọng:** +`EncodeTypes.MicroPdf417` cho thư viện biết sử dụng thuật toán MicroPDF417, tự động xử lý sửa lỗi và mã hoá dữ liệu. Việc cung cấp văn bản Unicode cho thấy trình tạo xử lý đúng các ký tự không phải ASCII. + +## Bước 2: Điều chỉnh X‑dimension (kích thước mô-đun) + +X‑dimension xác định chiều rộng của một mô-đun mã vạch duy nhất (pixel). Giá trị nhỏ hơn tạo ra mã vạch chặt hơn, trong khi giá trị lớn hơn giúp quét dễ dàng hơn. + +```csharp +// Set each module to 2 pixels wide. +barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; +``` + +**Tại sao điều này quan trọng:** +Đặt `barcode XDimension` đảm bảo mã vạch phù hợp với kích thước nhãn mục tiêu. Nếu bỏ qua bước này, kích thước mặc định có thể quá lớn đối với màn hình di động hoặc bản in nhỏ. + +## Bước 3: Chọn số cột cho ma trận PDF417 + +MicroPDF417 hỗ trợ 1–4 cột. Nhiều cột tạo ra mã vạch hình vuông hơn; ít cột làm mã vạch kéo dài theo chiều dọc. + +```csharp +// Use the maximum of 4 columns for a compact, square shape. +barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; +``` + +**Tại sao điều này quan trọng:** +Điều chỉnh **cột PDF417** cho phép bạn cân bằng độ đọc được với hạn chế không gian. Trong nhiều trường hợp quét, bố cục 4 cột mang lại sự cân bằng tốt nhất. + +## Bước 4: Lưu mã vạch đã tạo dưới dạng ảnh PNG + +Bây giờ mã vạch đã được cấu hình, bạn cuối cùng có thể trả lời “**cách lưu mã vạch**” bằng cách ghi nó vào một tệp. PNG giữ chất lượng không mất dữ liệu, điều này rất quan trọng cho việc quét sắc nét. + +```csharp +// Define the output path (ensure the directory exists). +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + +// Export the barcode to PNG. +barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + +Console.WriteLine($"Barcode saved to: {outputPath}"); +``` + +**Tại sao điều này quan trọng:** +`định dạng ảnh barcode` quyết định độ trung thực hình ảnh của tệp đã lưu. PNG được ưu tiên cho hầu hết các quy trình UI và in ấn vì nó giữ các cạnh sắc nét mà không có hiện tượng nén gây lỗi. + +## Ví dụ đầy đủ, có thể chạy + +Kết hợp tất cả lại với nhau sẽ cho bạn một chương trình tự chứa mà bạn có thể sao chép, dán và chạy. + +```csharp +using System; +using System.IO; +using Aspose.BarCode.Generation; + +class Program +{ + static void Main() + { + // 1️⃣ Create the barcode generator. + BarcodeGenerator barcodeGenerator = new BarcodeGenerator( + EncodeTypes.MicroPdf417, + "Åspóse.Barcóde©"); + + // 2️⃣ Adjust module size. + barcodeGenerator.Parameters.Barcode.XDimension.Pixels = 2; + + // 3️⃣ Set column count (1‑4 allowed). + barcodeGenerator.Parameters.Barcode.Pdf417.Columns = 4; + + // 4️⃣ Define output location. + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "MicroPdf417.png"); + + // 5️⃣ Save as PNG. + barcodeGenerator.Save(outputPath, BarCodeImageFormat.Png); + + Console.WriteLine($"✅ Barcode saved to: {outputPath}"); + } +} +``` + +**Kết quả mong đợi** + +Chạy chương trình sẽ tạo ra `MicroPdf417.png` trên desktop của bạn. Mở tệp sẽ hiển thị một mã vạch MicroPDF417 rõ ràng mã hoá chuỗi `Åspóse.Barcóde©`. Quét nó bằng bất kỳ máy quét mã vạch tiêu chuẩn nào sẽ trả về văn bản gốc. + +## Các câu hỏi thường gặp và trường hợp đặc biệt + +| Câu hỏi | Trả lời | +|----------|--------| +| *Tôi có thể dùng JPEG thay vì PNG không?* | Có. Thay `BarCodeImageFormat.Png` bằng `BarCodeImageFormat.Jpeg`. JPEG có kích thước nhỏ hơn nhưng tạo ra các artefact nén có thể ảnh hưởng đến việc quét. | +| *Nếu dữ liệu của tôi vượt quá khả năng của MicroPDF417 thì sao?* | MicroPDF417 có thể lưu tối đa 1 KB dữ liệu. Đối với tải trọng lớn hơn, chuyển sang `EncodeTypes.Pdf417` đầy đủ. | +| *Làm thế nào để thay đổi màu mã vạch?* | Sử dụng `barcodeGenerator.Parameters.Barcode.BarColor` và `BackColor` để đặt màu nền và màu chữ trước khi gọi `Save`. | +| *X‑dimension có giới hạn ở các pixel nguyên không?* | Thuộc tính chấp nhận kiểu `float`. Các giá trị như `1.5f` được phép, nhưng hầu hết máy in hoạt động tốt nhất với kích thước pixel nguyên. | + +## Mẹo chuyên nghiệp cho việc triển khai **cách lưu mã vạch** đáng tin cậy + +- **Xác thực thư mục đầu ra** bằng `Directory.Exists` trước khi gọi `Save` để tránh `IOException`. +- **Giải phóng trình tạo** (`barcodeGenerator.Dispose()`) khi bạn tạo nhiều mã vạch trong vòng lặp để giải phóng tài nguyên gốc. +- **Kiểm tra với máy quét thực tế** sau khi lưu; kiểm tra bằng mắt không đủ cho triển khai sản xuất. +- **Giữ thư viện luôn cập nhật**—các phiên bản Aspose.BarCode mới hơn bổ sung cải tiến ký hiệu và sửa lỗi. + +## Kết luận + +Bây giờ bạn đã biết **cách lưu mã vạch** dưới dạng hình ảnh trong C# bằng thư viện Aspose.BarCode. Bằng cách tạo một mã vạch MicroPDF417, cấu hình **XDimension của mã vạch**, chọn **cột PDF417** phù hợp, và xuất ra **định dạng ảnh mã vạch** như PNG, bạn đã có một giải pháp hoàn chỉnh, sẵn sàng cho sản xuất. + +Tiếp theo, khám phá các chủ đề liên quan như **tạo mã vạch C# cho QR codes**, **tạo mã vạch hàng loạt**, hoặc **nhúng mã vạch vào báo cáo PDF**. Mỗi chủ đề này dựa trên các nguyên tắc đã được trình bày ở đây, giúp bạn mở rộng bộ công cụ hình ảnh của mình một cách tự tin. + +## 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ẽ, dựa 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 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. + +- [Cách Lưu PNG bằng DataMatrix C40 với Aspose.BarCode](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-c40/) +- [Cách Đặt Viền cho Tùy Chỉnh Mã Vạch ITF-14](/barcode/english/net/itf-14-barcode-customization/) +- [Cách tạo mã vạch Aztec với tỷ lệ khung tùy chỉnh bằng Aspose.BarCode cho .NET](/barcode/english/net/aztec-barcode-encoding/aztec-aspect-ratio-customization/) + +{{< /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/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md b/barcode/vietnamese/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md new file mode 100644 index 000000000..0d017e52a --- /dev/null +++ b/barcode/vietnamese/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/_index.md @@ -0,0 +1,216 @@ +--- +category: general +date: 2026-08-03 +description: Đọc mã vạch PDF417 từ một hình ảnh bằng C# BarCodeReader – một ví dụ + hoàn chỉnh về trình đọc mã vạch, đồng thời cho thấy cách đọc nhiều mã vạch. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- read PDF417 barcode +- barcode reader example +- read multiple barcodes +- read barcodes image +language: vi +lastmod: 2026-08-03 +og_description: Đọc mã vạch PDF417 nhanh chóng với ví dụ BarCodeReader bằng C#. Thực + hiện theo hướng dẫn từng bước này để giải mã macro PDF417 và đọc nhiều mã vạch từ + một hình ảnh. +og_image_alt: Console output of a read PDF417 barcode example in C# +og_title: Đọc mã vạch PDF417 trong C# – ví dụ đầy đủ về trình đọc mã vạch +schemas: +- author: Aspose + dateModified: '2026-08-03' + description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + headline: Read PDF417 barcode in C# – barcode reader example + type: TechArticle +- description: Read PDF417 barcode from an image using C# BarCodeReader – a complete + barcode reader example that also shows how to read multiple barcodes. + name: Read PDF417 barcode in C# – barcode reader example + steps: + - name: '**Create a new console project**' + text: '**Create a new console project**' + - name: '**Add the barcode library**' + text: '**Add the barcode library**' + - name: '**Copy the barcode image**' + text: '**Copy the barcode image**' + type: HowTo +tags: +- barcode +- PDF417 +- C# +- .NET +title: Đọc mã vạch PDF417 bằng C# – ví dụ trình đọc mã vạch +url: /vi/net/compact-pdf417-encoding/read-pdf417-barcode-in-c-barcode-reader-example/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Đọc mã vạch PDF417 trong C# – ví dụ trình đọc mã vạch + +Nếu bạn cần đọc dữ liệu mã vạch PDF417 từ một hình ảnh, hướng dẫn này sẽ chỉ cho bạn cách thực hiện bằng lớp **BarCodeReader** trong C#. Bạn sẽ học một ví dụ trình đọc mã vạch cũng hỗ trợ macro PDF417 và có thể đọc nhiều mã vạch trong một hình ảnh duy nhất. + +Làm việc với mã vạch thường đồng nghĩa với việc phải xử lý các nguồn ảnh khác nhau, điều kiện ánh sáng thay đổi, và đôi khi dữ liệu tổng hợp như các đoạn macro PDF417. Hướng dẫn này bao phủ mọi thứ bạn cần để giải mã mã vạch PDF417, trích xuất các trường mở rộng, và xử lý nhiều mã vạch từ cùng một bức ảnh. Khi hoàn thành, bạn sẽ có một chương trình console có thể chạy được, đọc mã vạch từ tệp ảnh và in thông tin chi tiết ra console. + +## Những gì bạn cần + +Trước khi bắt đầu, hãy chắc chắn rằng bạn có: + +* .NET 6.0 SDK hoặc phiên bản mới hơn đã được cài đặt +* Phiên bản mới nhất của gói NuGet **Aspose.BarCode for .NET** (hoặc bất kỳ thư viện tương thích nào cung cấp `BarCodeReader` và `DecodeType.MacroPdf417`) +* Một tệp hình ảnh chứa mã vạch PDF417 hoặc macro PDF417 (ví dụ sử dụng `ExtPDF417Meta.png`) +* Một trình soạn thảo mã hoặc IDE như Visual Studio 2022 + +Không cần dịch vụ bổ sung hay API bên ngoài. + +## Cài đặt dự án để đọc mã vạch + +1. **Tạo một dự án console mới** + + ```bash + dotnet new console -n Pdf417ReaderDemo + cd Pdf417ReaderDemo + ``` + +2. **Thêm thư viện mã vạch** + + ```bash + dotnet add package Aspose.BarCode --version 23.12 + ``` + +3. **Sao chép hình ảnh mã vạch** + + Đặt `ExtPDF417Meta.png` (hoặc bất kỳ hình ảnh nào chứa mã vạch PDF417) vào thư mục dự án. + Đối với hướng dẫn này, chúng tôi giả định tệp nằm ở `YOUR_DIRECTORY/ExtPDF417Meta.png`. + +Dự án hiện đã sẵn sàng để biên dịch và chạy ví dụ trình đọc mã vạch. + +## Cách đọc mã vạch PDF417 với BarCodeReader + +Cốt lõi của giải pháp là một khối `using` tạo một thể hiện `BarCodeReader`, chỉ định `DecodeType.MacroPdf417`, và lặp qua mọi mã vạch được phát hiện. Đoạn mã dưới đây là một chương trình hoàn chỉnh, tự chứa, bạn có thể dán vào `Program.cs`. + +```csharp +using System; +using Aspose.BarCode; +using Aspose.BarCode.BarCodeRecognition; + +class Program +{ + static void Main() + { + // Path to the image that contains one or more PDF417 barcodes + const string imagePath = "YOUR_DIRECTORY/ExtPDF417Meta.png"; + + // Step 1: Create a BarCodeReader for a macro PDF417 image + using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.MacroPdf417)) + { + // Step 2: Read all barcodes from the image + foreach (BarCodeResult result in reader.ReadBarCodes()) + { + // Step 3: Output basic barcode information + Console.WriteLine($"CodeType: {result.CodeTypeName}"); + Console.WriteLine($"CodeText: {result.CodeText}"); + + // Step 4: Output macro PDF417 specific fields + Console.WriteLine($"Pdf417MacroFileID: {result.Extended.Pdf417.MacroPdf417FileID}"); + Console.WriteLine($"Pdf417MacroSegmentID: {result.Extended.Pdf417.MacroPdf417SegmentID}"); + Console.WriteLine($"Pdf417MacroSegmentsCount: {result.Extended.Pdf417.MacroPdf417SegmentsCount}"); + Console.WriteLine($"Pdf417MacroFileName: {result.Extended.Pdf417.MacroPdf417FileName}"); + Console.WriteLine($"Pdf417MacroChecksum: {result.Extended.Pdf417.MacroPdf417Checksum}"); + Console.WriteLine($"Pdf417MacroFileSize: {result.Extended.Pdf417.MacroPdf417FileSize}"); + Console.WriteLine($"Pdf417MacroTimeStamp: {result.Extended.Pdf417.MacroPdf417TimeStamp}"); + Console.WriteLine($"Pdf417MacroAddressee: {result.Extended.Pdf417.MacroPdf417Addressee}"); + Console.WriteLine($"Pdf417MacroSender: {result.Extended.Pdf417.MacroPdf417Sender}"); + Console.WriteLine($"MacroPdf417Terminator: {result.Extended.Pdf417.MacroPdf417Terminator}"); + Console.WriteLine(new string('-', 40)); + } + + // Pro tip: If no barcodes are found, ReadBarCodes() returns an empty collection. + // You can check reader.HasBarcodes for a quick boolean test. + if (!reader.HasBarcodes) + { + Console.WriteLine("No barcodes detected in the provided image."); + } + } + } +} +``` + +**Tại sao cách này hoạt động**: + +* `DecodeType.MacroPdf417` cho trình đọc biết tìm phần mở rộng macro của PDF417, chứa các siêu dữ liệu bổ sung như ID tệp, số đoạn và dấu thời gian. +* Câu lệnh `using` đảm bảo các tài nguyên không quản lý (bộ xử lý tệp, bộ đệm giải mã gốc) được giải phóng kịp thời. +* Vòng lặp `foreach` tự động xử lý **tất cả** các mã vạch mà hình ảnh chứa, đáp ứng yêu cầu *đọc nhiều mã vạch*. + +Khi bạn chạy chương trình (`dotnet run`), bạn sẽ thấy đầu ra tương tự như sau: + +``` +CodeType: MacroPdf417 +CodeText: https://example.com/document.pdf +Pdf417MacroFileID: 12345 +Pdf417MacroSegmentID: 1 +Pdf417MacroSegmentsCount: 3 +Pdf417MacroFileName: document.pdf +Pdf417MacroChecksum: 0x1A2B +Pdf417MacroFileSize: 204800 +Pdf417MacroTimeStamp: 2024-07-15T10:25:00Z +Pdf417MacroAddressee: John Doe +Pdf417MacroSender: Acme Corp +MacroPdf417Terminator: True +---------------------------------------- +``` + +Nếu hình ảnh chứa hơn một mã vạch PDF417, vòng lặp sẽ in một khối riêng cho mỗi mã vạch, qua đó minh họa cách **đọc nhiều mã vạch** từ một bức ảnh duy nhất. + +## Đọc nhiều mã vạch từ một hình ảnh + +Cùng một thể hiện `BarCodeReader` có thể giải mã nhiều loại mã vạch cùng lúc. Để mở rộng phạm vi từ chỉ macro PDF417 sang bất kỳ PDF417 nào (hoặc thậm chí QR, Code128, v.v.), điều chỉnh cờ `DecodeType`: + +```csharp +using (BarCodeReader reader = new BarCodeReader(imagePath, + DecodeType.Pdf417 | DecodeType.MacroPdf417 | DecodeType.QR | DecodeType.Code128)) +{ + // The rest of the code stays unchanged. +} +``` + +*`DecodeType`* là một bitmask, vì vậy bạn có thể kết hợp bất kỳ số lượng định dạng được hỗ trợ nào. Sự linh hoạt này biến đoạn mã thành một **ví dụ trình đọc mã vạch** hoạt động cho đa dạng trường hợp sử dụng, chẳng hạn như quét nhãn sản phẩm, vé, hoặc thẻ ID. + +## Truy cập các trường macro PDF417 một cách an toàn + +Macro PDF417 bổ sung một tập hợp phong phú các thuộc tính mở rộng. Tuy nhiên, không phải mọi mã vạch đều có đầy đủ các trường này. Việc truy cập một thuộc tính thiếu có thể gây ra `NullReferenceException`. Cách an toàn nhất là kiểm tra mỗi thuộc tính trước khi in: + +```csharp +var macro = result.Extended?.Pdf417; +if (macro != null) +{ + Console.WriteLine($"Pdf417MacroFileID: {macro.MacroPdf417FileID ?? "N/A"}"); + // Repeat for other fields... +} +``` + +*Lý do quan trọng*: Trong các triển khai thực tế, bạn có thể nhận được mã vạch PDF417 thuần không có dữ liệu macro. Kiểm tra phòng thủ đảm bảo ứng dụng của bạn tiếp tục chạy mà không bị sập. + +## Những vấn đề thường gặp và thực hành tốt nhất + +| Vấn đề | Nguyên nhân | Giải pháp đề xuất | +|-------|----------------|-----------------| +| Đường dẫn hình ảnh không đúng | `BarCodeReader` ném ngoại lệ file‑not‑found trước khi thực hiện giải mã nào | Sử dụng `Path.Combine` và kiểm tra tệp tồn tại bằng `File.Exists` | +| Hình ảnh độ phân giải thấp | Bộ giải mã không thể xác định các cạnh mã vạch, dẫn đến không phát hiện được | Cung cấp độ phân giải tối thiểu 300 dpi để có kết quả đáng tin cậy | +| Mã vạch bị quay > 45° | Nhiều thư viện giả định hướng thẳng đứng | Bật `reader.RecognitionOptions.RotateImage = true` nếu | + +## Bạn nên học gì tiếp theo? + +Các hướng dẫn 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ã đầ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. + +- [Cách đọc mã vạch DataMatrix với Aspose.BarCode cho .NET](/barcode/english/net/datamatrix-barcode-reading/) +- [Đọc mã vạch DataMatrix C# – Tạo chế độ DataMatrix (Tự động)](/barcode/english/net/datamatrix-barcode-configuration/datamatrix-encoding-mode-auto/) +- [Đọc mã vạch từ hình ảnh – Thành thạo việc trích xuất vùng mã vạch trong Java với Aspose.BarCode](/barcode/english/java/advanced-settings-and-optimization/extracting-barcode-region-information/) + +{{< /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