Веб-страницы и шрифты штрих-кода - PullRequest
7 голосов
/ 27 октября 2008

Я работаю над небольшим приложением, в котором я могу создать список штрих-кодов. На моем компьютере установлены правильные шрифты. Прямо сейчас я печатаю их прямо на веб-странице, и она работает должным образом в Chrome и IE 7, но не в Firefox. Кто-нибудь знает, что Firefox будет делать по-другому, чем IE и Chrome?

Вот мой код:

<html>
    <head>
        <title>Barcode Font Test</title>

        <style type="text/css" media="screen">
            .barcode { font-family: "wasp 39 m", verdana, calibri; font-size: 36pt; }
        </style>
    </head>

    <body>
        <div class="barcode">*574656*</div>
    </body>
</html>

EDIT: Я, наверное, должен был упомянуть, что в данный момент это больше личный проект, и он не предназначен для публикации в мире. Хотя я приму решение, которое работает, я хотел бы что-то, что не связано с Javascript / Flash / и т. Д.

Ответы [ 8 ]

8 голосов
/ 28 октября 2008

Существует несколько форматов штрих-кода. Некоторые из них простые, а некоторые могут быть очень сложными. Один из самых простых в использовании, если он подходит вашему приложению, - это штрих-код 3 из 9. Он не сжат, и в штрих-коде есть отношение 1 к 1 символам. Есть два варианта этого, только числовой и расширенный набор, который включает в себя альфа. Я продолжу с предположением, что вы можете использовать этот формат. (Из вашего примера кода, похоже, это то, что вы используете). Для простейшей реализации придерживайтесь только цифры. Тогда вам потребуется только одиннадцать символов (0-9 и астрик). Посмотрите на определение существующего шрифта 3 из 9. (Для некоммерческого использования найдите шрифт FREE3OF9. Вы можете использовать его в качестве основы для своего приложения ...)

Далее утомительная часть - больше работы для вас сразу, но отображается практически в любом браузере. Если вы не можете найти онлайн, создайте GIF (или BMP или PNG) изображение для каждого символа. (Помните, чтобы добавить правильное пустое пространство на правой стороне символа, чтобы дистанцировать его от следующего символа в строке!) Он должен иметь высоту всего один пиксель. Когда придет время отображать штрих-код, объедините символы в символы <IMG>, которые находятся рядом друг с другом. 3 из 9 требует, чтобы символы в штрих-коде были окружены или обернуты звездочкой (в любом случае это астриск шрифтом FREE3OF9) на каждом конце. Установите высоту <IMG> на что-нибудь достаточно высокое, чтобы соответствовать распечатке.

Таким образом, установка шрифта на клиенте не требуется, но большинство декодеров штрих-кода могут считывать полученную графику.

Ваш пример (*574656*) может выглядеть так: 574656

(ну, не совсем так - это сплошная графика вместо композиции из нескольких встроенных отдельных графических объектов, но вы поняли идею)

Отдельная цифровая графика выглядит следующим образом: (хотя они еще не "вычищены")

* *

0 0

1 1

2 2

3 3

4 4

5 5

6 6

7 7

8 8

9 9

и изменения кода могут выглядеть следующим образом:

<html>    
    <head>        
        <title>Barcode Font Test</title>        
    </head>    
    <body>   
        <img src="3o9cb_ast.png" alt="*"/>     
        <img src="3o9cb_5.png" alt="5"/>
        <img src="3o9cb_7.png" alt="7"/>
        <img src="3o9cb_4.png" alt="4"/>
        <img src="3o9cb_6.png" alt="6"/>
        <img src="3o9cb_5.png" alt="5"/>
        <img src="3o9cb_6.png" alt="6"/>
        <img src="3o9cb_ast.png" alt="*"/>
    </body>
</html>

Я использовал SearchFreeFonts.com в качестве ресурса, чтобы освежить мою память о том, как были отформатированы 3 из 9 символов штрих-кода. Эта графика изначально с этого сайта.

4 голосов
/ 27 октября 2008

Более простое решение может заключаться в создании изображений на стороне сервера для создания штрих-кодов. Таким образом, вам не нужно полагаться на пользователя, у которого установлен шрифт, и вам не нужно обращаться к шрифту в html.

4 голосов
/ 27 октября 2008

Разработчики Mozilla сделали выбор, чтобы шрифты символов не работали. Вы можете включить их в конфигурации, как описано в Как заставить шрифты символов работать в Mozilla Firefox

3 голосов
/ 27 октября 2008

В компании, в которой я сейчас работаю, мы используем BarCode.dll от lesnikowski.com. Он генерирует изображения штрих-кода. Это не зависит от того, установлен ли шрифт на клиентском ПК и работает ли он со всеми браузерами.

Надеюсь, это поможет.

2 голосов
/ 27 октября 2008

Использование нестандартных шрифтов на веб-страницах - большая боль в заднице. Чтобы сделать это проще, вы можете использовать sIFR или новый typeface.js .

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

1 голос
/ 26 января 2009

Шрифты, как правило, имеют проблемы, потому что для визуализации используется браузер. Изображение лучше. Я использую Morovia Barcode Active Lite для создания штрих-кодов из IIS.

пример штрихкода http://www.morovia.com/activex/active-demo/barcode.asp?Symbology=7&ShowHRText=1&NarrowBarWidth=20&BarHeight=750&Message=0+07+70007+07723

1 голос
/ 27 октября 2008

У нас такая же проблема в моей компании. К счастью, только 1-2 человека должны использовать шрифты штрих-кода.

Мы обнаружили, что когда они получили новый ПК, шрифты не работали через браузеры. Им пришлось открыть клиентское приложение (например, Word), выбрать шрифт штрих-кода и выполнить некоторые действия, чтобы «инициализировать» этот шрифт.

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

0 голосов
/ 17 мая 2016

Просто сделайте это: http://davidscotttufts.com/2009/03/31/how-to-create-barcodes-in-php/ Дэвид создал супер-простой способ реализации штрих-кодов. Вам понадобится библиотека GD, работающая в MySQL. (MAMP & LAMP уже должен быть установлен)

...