2008-10-27 87 views
7

我正在研究一个小应用程序,可以生成条形码列表。我的电脑上安装了正确的字体。现在我将它们直接打印到网页上,并且可以在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 /等的东西。

+0

如果这是个人项目,为什么它需要跨浏览器工作? – eyelidlessness 2008-10-27 19:59:42

+0

跨浏览器肯定不是必需的。但是,我主要使用Firefox,并不明白为什么这是唯一给我带来问题的浏览器。 – 2008-10-27 20:17:25

+0

以前,我通过http://www.barcoderesource.com发现了[@Font Face Barcode Web Fonts](http://www.barcoderesource.com/barcodewebfont.shtml)的这个集合。 – 2012-01-13 06:20:29

回答

3

更简单的解决方案可能是生成图像服务器端来生成条形码。这样你就不必依赖于安装了字体的用户,也不必访问html中的字体。

2

在网页上使用非标准字体是一个很大的麻烦。为了更容易,您可以使用sIFR或新的typeface.js

编辑:这是有效的4年前,当它被张贴,但不再是。我会留在这里作为后代,但不要把它当作正确的答案。

+0

这是对的,但它不是rodey体验的问题。他说他的电脑上安装了这种字体,这个问题使得他所做的测试看起来是在他的本地机器上进行的。 – hangy 2008-10-27 18:31:24

3

在我现在工作的公司,我们使用了lesnikowski.com的BarCode.dll。 它生成条形码图像。它不依赖于字体是否安装在客户端PC上,并且可以与所有浏览器一起使用。

希望这会有所帮助。

1

我们在我的公司有同样的问题。幸运的是,只有1-2人需要使用条形码字体。

我们发现,当他们收到新的PC时,字体无法通过任何浏览器。他们必须打开一个客户端应用程序(如Word),选择一个条形码字体,然后进行一些打字以“初始化”该字体。

我认为最好的解决方案是在服务器上按需创建条形码图像。这个解决方案的问题可能是清理旧图像。在我看来,这种解决方案需要更多的前期工作,但与客户端解决方案相比,更少的持续问题和维护带来了回报。

6

有几种条形码格式。有些很简单,有些可能会非常复杂。最容易使用的一种,如果它适合您的应用程序,则是9条形码中的3个。它没有压缩,并且与条形码中的字符有1:1的关系。有两种变体,仅限数字和包含alpha的扩展集。我会继续推测你可以使用这种格式。 (从你的示例代码,它看起来就是你正在使用的)为了最简单的实现,只使用数字。然后,你只需要十一个字符(0-9和astrisk)。看一下现有的3种9字体的定义。 (对于非商业用途,请搜索名为FREE3OF9的字体,您可以将其用作应用程序的基础...)

接下来,繁琐的部分 - 为您提供更多的工作,但几乎可以在任何浏览器中显示。如果您找不到任何联机,请为每个字符创建一个GIF(或BMP或PNG)图像。 (记住要在字符的右侧包含适当的空白区域,以便与下一个字符一致!)它只需要一个像素高。当显示条形码时,将字符串连接在一起作为<IMG>,它们彼此相邻。 9中的3个要求条形码中的字符在每一端都用星号(它是FREE3OF9字体中的星号)包围或包裹。将<IMG>的高度设置为适合打印输出的高度。

这样,客户端不需要安装字体,但大多数条形码解码器都可以读取生成的图形。

你的榜样(*574656*)可能是这样的: 574656 http://img390.imageshack.us/img390/9168/574656vx9.png

(当然,不完全是这样的 - 它是一个坚实的图形,而不是几个内嵌单个图形组成,但你的想法)

个人数字图形看起来就像这样: (虽然,这些都不是 “清理” 了)

**

00 http://img390.imageshack.us/img390/9618/3o9bc_0.png

1 http://img390.imageshack.us/img390/4474/3o9bc_1.png1

22 http://img390.imageshack.us/img390/4571/3o9bc_2.png

33 http://img390.imageshack.us/img390/4702/3o9bc_3.png

44 http://img390.imageshack.us/img390/8272/3o9bc_4.png

55 http://img390.imageshack.us/img390/9127/3o9bc_5.png

66 http://img390.imageshack.us/img390/3672/3o9bc_6.png

77 http://img390.imageshack.us/img390/7348/3o9bc_7.png

88 http://img390.imageshack.us/img390/2807/3o9bc_8.png

99 http://img390.imageshack.us/img390/2862/3o9bc_9.png

和代码的变化可能是这样的:

<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日的条码字符是如何被格式化的记忆。这些图形最初来自该网站。