Nano Hash - криптовалюты, майнинг, программирование

Штрих-код с текстом под с использованием ItextSharp

Я использую iTextSharp в своем приложении для создания штрих-кода. Хотя все работает так, как я хотел, мне нужно отобразить значение штрих-кода под штрих-кодом, как показано на прикрепленном изображении. Образец штрих-кода

Ниже приведен код С#, который я использую:

Barcode39 barcodeImg = new Barcode39();
barcodeImg.Code = barcodeValue.ToString();
barcodeImg.CreateDrawingImage(System.Drawing.Color.Black, System.Drawing.Color.White).Save(stream, ImageFormat.Png);
07.02.2011

  • Может ли помочь это? 07.02.2011

Ответы:


1

Это код, который я нашел при поиске в сети. Надеюсь, это решит вашу проблему:

string prodCode = context.Request.QueryString.Get("code");
context.Response.ContentType = "image/gif";
if (prodCode.Length > 0)
{
  Barcode128 code128          = new Barcode128();
  code128.CodeType            = Barcode.CODE128;
  code128.ChecksumText        = true;
  code128.GenerateChecksum    = true;
  code128.StartStopText       = true;
  code128.Code                = prodCode;
  System.Drawing.Bitmap bm    = new System.Drawing.Bitmap(code128.CreateDrawingImage(System.Drawing.Color.Black, System.Drawing.Color.White));
  bm.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif);            
} 
07.02.2011
  • Извините, текст по-прежнему не отображается под штрих-кодом. Спасибо за попытку помочь. 07.02.2011
  • Ржу не могу! этот фрагмент выглядит точно так же, как в моем блоге! jphellemons.nl/post/ 19.10.2011

  • 2

    Нет прямого способа отобразить текст под изображением штрих-кода с помощью iTextSharp dll. Я пробовал то же самое, и у меня был обходной путь для отображения текста. Это не прямое решение, но оно обеспечит вывод, аналогичный ожидаемому от изображения штрих-кода.

    Чтобы сгенерировать изображение штрих-кода, я использовал входные данные, которыми поделился JP Hellemons в своем блоге. Спасибо JP Hellemons! http://www.jphellemons.nl/post/Make-a-code128-barcode-with-C-sharp-and-iTextSharp.aspx

    Код, который я использовал:

    Barcode128 code128 = new Barcode128();
    code128.CodeType = iTextSharp.text.pdf.Barcode.CODE128;
    code128.ChecksumText = true;
    code128.GenerateChecksum = true;
    code128.StartStopText = false;
    code128.Code = <<Barcode value>>;
    
    // Create a blank image 
    System.Drawing.Bitmap bmpimg = new Bitmap(120,35); // provide width and height based on the barcode image to be generated. harcoded for sample purpose
    
    Graphics bmpgraphics = Graphics.FromImage(bmpimg);
    bmpgraphics.Clear(Color.White); // Provide this, else the background will be black by default
    
    // generate the code128 barcode
    bmpgraphics.DrawImage(code128.CreateDrawingImage(System.Drawing.Color.Black, System.Drawing.Color.White), new Point(0, 0));
    
     //generate the text below the barcode image. If you want the placement to be dynamic, calculate the point based on size of the image
    bmpgraphics.DrawString(<<Barcode value>>, new System.Drawing.Font("Arial", 8, FontStyle.Regular), SystemBrushes.WindowText, new Point(15, 24));
    
    // Save the output stream as gif. You can also save it to external file
    bmpimg.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif);
    

    Поправьте меня, если я ошибся..

    Если у кого-то из вас есть прямое или более простое решение, поделитесь им.

    09.02.2012

    3

    Ах. Вам нужно установить шрифт. Я рекомендую использовать FontFactory.registerDirectories() и FontFactory.getFont( name ).

    registerDirectories() будет перечислять все каталоги, которые ОС, как известно, используют для хранения шрифтов. Windows (любой версии) не проблема. Как только это будет сделано, вы можете легко получить шрифты с завода. Все символы штрих-кода, о которых я знаю, не должны иметь проблем с кодировкой по умолчанию, поэтому вам действительно нужно просто запросить базовое имя шрифта, а не знать путь. FontFactory отслеживает всю информацию о пути для вас. Удобно.

    08.02.2011
  • Отметьте, что это не тот шрифт. Я ищу отображение значения под штрих-кодом, как показано на прикрепленном изображении. Спасибо 04.03.2011
  • Верно. И чтобы указать штрих-коду отображать его текст, вы устанавливаете шрифт. Об этом прямо сказано в JavaDoc для Barcode.setFont(). Странная грамматика, но идея есть. Как ни странно, конструктор по умолчанию для Barcode128 инициализирует шрифт Helvetica/WinAnsiEncoding. Какую версию iText вы используете и какой текст пытаетесь отобразить? 04.03.2011
  • Я не думаю, что это возможно... Я перепробовал все возможные варианты и не смог получить желаемого результата... если кому-то удастся заставить это работать, реальный ответ был бы замечательным... (@Mark Storer — это не iText, это iTextSharp — порт на .NET) 18.07.2011
  • Они практически взаимозаменяемы. получает часто, но не всегда становится свойством, и все имена функций начинаются с заглавных букв. Повторюсь, какую версию iTextSHARP вы используете и какой текст пытаетесь отобразить? 18.07.2011

  • 4

    код128.Размер=10;

    code128.Baseline = code128.Size; введите здесь описание изображения

    EAN13 введите здесь описание изображения

    05.02.2021

    5
  • Пожалуйста, не предоставляйте ответы только по коду, но также объясните, как и почему ваше решение решает проблему. 03.04.2017
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..