Веб-страницы и шрифты штрих-кода

Я работаю над небольшим приложением, в котором могу создать список штрих-кодов. На моем компьютере установлены правильные шрифты. Прямо сейчас я печатаю их прямо на веб-странице, и они правильно работают в 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>

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

Если это личный проект, зачем ему кроссбраузерность?

eyelidlessness 27.10.2008 22:59

Конечно, кроссбраузерность не является необходимостью. Однако я в основном использую Firefox и не понимаю, почему это единственный браузер, с которым у меня возникают проблемы.

Ryan Rodemoyer 27.10.2008 23:17

Я уже сталкивался с этой коллекцией @Font Face Barcode Веб-шрифты от barcoderesource.com ранее.

user1147075 13.01.2012 10:20
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
7
3
29 418
9
Перейти к ответу Данный вопрос помечен как решенный

Ответы 9

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

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

Верно, но это не та проблема, с которой сталкивается Родей. Он сказал, что этот шрифт установлен на его компьютере, и этот вопрос заставляет думать, что тесты, которые он провел, были выполнены на его локальной машине.

hangy 27.10.2008 21:31

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

eyelidlessness 27.10.2008 23:10

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

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

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

Это не работает для Firefox 3. Автор не указывает, для каких версий Firefox это работает.

Ryan Rodemoyer 27.10.2008 23:20

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

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

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

Ответ принят как подходящий

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

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

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

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

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

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

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

**

00

11

22

33

44

55

66

77

88

99

и изменения кода могут выглядеть так:

<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 символов штрих-кода. Эти изображения изначально взяты с этого сайта.

У шрифтов обычно возникают проблемы, потому что рендеринг выполняется через браузер. Изображение лучше. Я использую Штрих-код Morovia 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

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

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

Запустите приведенный ниже фрагмент кода, чтобы увидеть живой пример:

.barcode39 {
  font-family: 'Libre Barcode 39 Extended Text', cursive;
  font-size: 40px;
}
<link href = "https://fonts.googleapis.com/css2?family=Libre+Barcode+39+Extended+Text&display=swap" rel = "stylesheet">

<div class = "barcode39">
 *hello world*
</div>

Другие вопросы по теме