EBS条形码打印
Oracle 提供两种方式实现 128 码的编码
第一种方式是使用 Reports Builder 实现对 128 码编码, 在 Metalink 305090.1[1] 有
比较详尽的描述,其中的 IDAUTOMATION.PLL 中包含方法 Code128A, Code128B
及 Code128C 分别实现了 A,B,C 类 128 码的编码。具体的实现方法请参照 MetaLink
305090.1 。
第二种方法是通过 XML Publisher 实现 128 码的编码。因为超过 128 的 ASCII 码对
应的特殊字符在 PL/SQL 中无法显示,但是在 128 码中使用这些字符作为 128 码的
起始终止位以及校验位,编码的过程放在 PL/SQL 端实现并生成 XML 数据结合模板
生成条码较难实现。改变思路,我们把编码过程放在 JAVA 类中,通过在结合模板
时调用生成 128 码就可以实现条码的生成和打印。在《Oracle XML Publisher
Administration and Developer's Guide》中 Advanced Barcode Font Formatting
Implementation 中提供了这种方法的实现。在 Metalink 782809.1[2]中提供 JAVA 版
128 码编码实现类(BarcodeUtil.java)的下载,以及测试使用相应的模板文件
(TestBarcodeUtil.rtf)
以下内容以字体IDAutomationC128M 为演示
一.WINDOWS本地字体配置
下载条形码字体,复制到系统字体文件夹里,自动安装
二,上传java到服务器
1.查看java里路径 例如:package oracle.apps.xdo.template.rtf.util.barcoder;
上传java文件BarcodeUtil.java到目录 $JAVA_TOP/oracle/apps/xdo/template/rtf/util/barcoder 没有新建
编译java文件
java文件如下
/*
Code extracted from
Oracle?XML Publisher
Core Components Guide
Release 10.1.3.3
Pages 8-60 to 8-64
*/ package oracle.apps.xdo.template.rtf.util.barcoder; import java.util.Hashtable;
import java.lang.reflect.Method;
import oracle.apps.xdo.template.rtf.util.XDOBarcodeEncoder;
import oracle.apps.xdo.common.log.Logger; // This class name will be used in the register vendor
// field in the template. public class BarcodeUtil implements XDOBarcodeEncoder
// The class implements the XDOBarcodeEncoder interface
{
// This is the barcode vendor id that is used in the
// register vendor field and format-barcode fields
public static final String BARCODE_VENDOR_ID = "XMLPBarVendor"; // The hashtable is used to store references to
// the encoding methods
public static final Hashtable ENCODERS = new Hashtable(10); // The BarcodeUtil class needs to be instantiated
public static final BarcodeUtil mUtility = new BarcodeUtil(); // This is the main code that is executed in the class,
// it is loading the methods for the encoding into the hashtable.
// In this case we are loading the three code128 encoding
// methods we have created.
static {
try {
Class[] clazz = new Class[] { "".getClass() };
ENCODERS.put("code128a",mUtility.getClass().getMethod("code128a", clazz));
ENCODERS.put("code128b",mUtility.getClass().getMethod("code128b", clazz));
ENCODERS.put("code128c",mUtility.getClass().getMethod("code128c", clazz));
} catch (Exception e) {
// This is using the XML Publisher logging class to push
// errors to the XMLP log file.
Logger.log(e,5);
}
} // The getVendorID method is called from the template layer
// at runtime to ensure the correct encoding method are used
public final String getVendorID()
{
return BARCODE_VENDOR_ID;
} //The isSupported method is called to ensure that the
// encoding method called from the template is actually
// present in this class.
// If not then XMLP will report this in the log.
public final boolean isSupported(String s)
{
if(s != null)
return ENCODERS.containsKey(s.trim().toLowerCase());
else
return false;
} // The encode method is called to then call the appropriate
// encoding method, in this example the code128a/b/c methods.
public final String encode(String s, String s1)
{
if(s != null && s1 != null)
{
try
{
Method method = (Method)ENCODERS.get(s1.trim().toLowerCase());
if(method != null)
return (String)method.invoke(this, new Object[] { s });
else
return s;
}
catch(Exception exception)
{
Logger.log(exception,5);
}
return s;
} else {
return s;
}
} /** This is the complete method for Code128a */
public static final String code128a( String DataToEncode )
{
char C128_Start = (char)203;
char C128_Stop = (char)206;
String Printable_string = "";
char CurrentChar;
int CurrentValue=0;
int weightedTotal=0;
int CheckDigitValue=0;
char C128_CheckDigit='w';
DataToEncode = DataToEncode.trim(); weightedTotal = ((int)C128_Start) - 100;
for( int i = 1; i <= DataToEncode.length(); i++ )
{
//get the value of each character
CurrentChar = DataToEncode.charAt(i-1);
if( ((int)CurrentChar) < 135 )
CurrentValue = ((int)CurrentChar) - 32;
if( ((int)CurrentChar) > 134 )
CurrentValue = ((int)CurrentChar) - 100; CurrentValue = CurrentValue * i;
weightedTotal = weightedTotal + CurrentValue;
} //divide the WeightedTotal by 103 and get the remainder,
//this is the CheckDigitValue
CheckDigitValue = weightedTotal % 103;
if( (CheckDigitValue < 95) && (CheckDigitValue > 0) )
C128_CheckDigit = (char)(CheckDigitValue + 32);
if( CheckDigitValue > 94 )
C128_CheckDigit = (char)(CheckDigitValue + 100);
if( CheckDigitValue == 0 ){
C128_CheckDigit = (char)194;
} Printable_string = C128_Start + DataToEncode + C128_CheckDigit + C128_Stop + " ";
return Printable_string;
} /** This is the complete method for Code128b ***/
public static final String code128b( String DataToEncode )
{
char C128_Start = (char)204;
char C128_Stop = (char)206;
String Printable_string = "";
char CurrentChar;
int CurrentValue=0;
int weightedTotal=0;
int CheckDigitValue=0;
char C128_CheckDigit='w';
DataToEncode = DataToEncode.trim();
weightedTotal = ((int)C128_Start) - 100; for( int i = 1; i <= DataToEncode.length(); i++ )
{
//get the value of each character
CurrentChar = DataToEncode.charAt(i-1);
if( ((int)CurrentChar) < 135 )
CurrentValue = ((int)CurrentChar) - 32;
if( ((int)CurrentChar) > 134 )
CurrentValue = ((int)CurrentChar) - 100; CurrentValue = CurrentValue * i;
weightedTotal = weightedTotal + CurrentValue;
} //divide the WeightedTotal by 103 and get the remainder,
//this is the CheckDigitValue
CheckDigitValue = weightedTotal % 103;
if( (CheckDigitValue < 95) && (CheckDigitValue > 0) )
C128_CheckDigit = (char)(CheckDigitValue + 32);
if( CheckDigitValue > 94 )
C128_CheckDigit = (char)(CheckDigitValue + 100);
if( CheckDigitValue == 0 ){
C128_CheckDigit = (char)194;
} Printable_string = C128_Start + DataToEncode + C128_CheckDigit + C128_Stop + " ";
return Printable_string;
} /** This is the complete method for Code128c **/
public static final String code128c( String s )
{
char C128_Start = (char)205;
char C128_Stop = (char)206;
String Printable_string = "";
String DataToPrint = "";
String OnlyCorrectData = "";
int i=1;
int CurrentChar=0;
int CurrentValue=0;
int weightedTotal=0;
int CheckDigitValue=0;
char C128_CheckDigit='w';
DataToPrint = "";
s = s.trim(); for(i = 1; i <= s.length(); i++ )
{
//Add only numbers to OnlyCorrectData string
CurrentChar = (int)s.charAt(i-1);
if((CurrentChar < 58) && (CurrentChar > 47))
{
OnlyCorrectData = OnlyCorrectData + (char)s.charAt(i-1);
}
}
s = OnlyCorrectData; //Check for an even number of digits, add 0 if not even
if( (s.length() % 2) == 1 )
{
s = "0" + s;
} //<<<< Calculate Modulo 103 Check Digit and generate
// DataToPrint >>>>//Set WeightedTotal to the Code 128 value of
// the start character
weightedTotal = ((int)C128_Start) - 100;
int WeightValue = 1;
for( i = 1; i <= s.length(); i += 2 )
{
//Get the value of each number pair (ex: 5 and 6 = 5*10+6 =56)
//And assign the ASCII values to DataToPrint
CurrentChar = ((((int)s.charAt(i-1))-48)*10) + (((int)s.charAt(i))-48); if((CurrentChar < 95) && (CurrentChar > 0))
DataToPrint = DataToPrint + (char)(CurrentChar + 32);
if( CurrentChar > 94 )
DataToPrint = DataToPrint + (char)(CurrentChar + 100);
if( CurrentChar == 0)
DataToPrint = DataToPrint + (char)194; //multiply by the weighting character
//add the values together to get the weighted total
weightedTotal = weightedTotal + (CurrentChar * WeightValue);
WeightValue = WeightValue + 1;
} //divide the WeightedTotal by 103 and get the remainder,
//this is the CheckDigitValue
CheckDigitValue = weightedTotal % 103; if((CheckDigitValue < 95) && (CheckDigitValue > 0))
C128_CheckDigit = (char)(CheckDigitValue + 32);
if( CheckDigitValue > 94 )
C128_CheckDigit = (char)(CheckDigitValue + 100);
if( CheckDigitValue == 0 ){
C128_CheckDigit = (char)194;
} Printable_string = C128_Start + DataToPrint + C128_CheckDigit + C128_Stop + " ";
Logger.log(Printable_string,5);
return Printable_string;
}
} /*End BarcodeUtil class */
三,生成xml数据源
举例如下
<?xml version="1.0" encoding="UTF-8"?>
<RECEIPT_APPLIED>
<LINES>
<ITEM_CODE>F4990010010</ITEM_CODE>
<ITEM_NAME><![CDATA[财税通软件 V1.0]]></ITEM_NAME>
<BARCODE>912014266</BARCODE>
</LINES>
<LINES>
<ITEM_CODE>F4990010010</ITEM_CODE>
<ITEM_NAME><![CDATA[财税通软件 V1.0]]></ITEM_NAME>
<BARCODE>912014265</BARCODE>
</LINES>
</RECEIPT_APPLIED>
四.根据数据源制作模板
说明:REG里面 <?register-barcode-vendor:'oracle.apps.xdo.template.rtf.util.barcoder.BarcodeUtil';'XMLPBarVendor'?> 注册条码编码类
条码里 <?format-barcode:BARCODE;'Code128a';'XMLPBarVendor'?> 数据格式化
五.注册数据源,模板
略
六.上传字体
在XML Publisher Administrator职责下,首先上传字体文件
七.配置字体映射
在XML Publisher Administrator职责下,定义字体转换映射集
由于我们的模板使用的是RTF格式的,因此Type需要选择FO To PDF
在XML Publisher Administrator职责下,定义字体转换映射关系
输入Font Family,这个值可以打开字体文件来查看
根据模板中使用字体的情况来选择Style和Weight
如果需要根据Locale来决定使用字体映射,则填入Language和Territory,不填代表所有语音环境下都适用
八,模板和字体映射关联
定义好字体映射之后,修改BIP模板文件的配置
查询出BIP模板定义后,点击右上角的 Edit Configuration 按钮
查找模板
展开FO Processing部分,设置Font mapping set为上面定义好的字体映射集
最后提交请求,查看输出
附1:metalink
In this Document
APPLIES TO:JD Edwards EnterpriseOne Tools - Version 8.97 and later PURPOSEInformation This document outlines the steps to use barcode java handlers to add control characters to barcode content in reports produced by embedded BI Publisher for EnterpriseOne. SCOPEEmbedded BI Publisher for EnterpriseOne. DETAILSOverviewBarcodes are a representation of a string of data in a barcode font. In order to be readable by barcode scanners, data represented in barcode format need to be preceded and followed by their respective control characters. See external LimitationBarcode encoding will not work if using a PDF type template with Embedded BI Publisher for EnterpriseOne. This is because there is no way to add the necessary call to the java script to enable the start and stop control characters Steps to ImplementEnterpriseOne 8.98.3.0 and later (including 9.1):Since tools release 8.98.3.0 we include a newer BI Publisher core engine (10.1.3.4.1) which has built in support for barcode 128a,b,c. The barcode function can be invoked directly using te following command in your RTF template: <?format-barcode:FieldName;'code128b'?> Where FieldName is the name of the dynamic field you want to convert to Barcode 128b. You can use encodings 128a and 128c as well, for example: <?format-barcode:FieldName;'code128a'?> You may also want to try to use the barcode 128 font delivered with BI Publisher Desktop: 128R00.TTF. See article posted inhttps://blogs.oracle.com/xmlpublisher/entry/bundled_barcodes_batman_1 for EnterpriseOne 8.98.2.4 and older:The following steps layout all pieces necessary to embed readable barcode strings in reports produced by BI Publisher for EnterpriseOne 8.98.2.4 and older.
The implementation of this solution requires knowledge of BI Publisher for EnterpriseOne and java programming language.
Below is a screenshot showing the output obtained using the steps above on EnterpriseOne 9.0 with tools release 8.98.2.4:
Note 1:
The same result can be achieved with BI Publisher Desktop (MS Word Plug-in), using its own xdocore.jar and its fonts. These are usually located in"c:\Program Files\Oracle\BI Publisher\BI Publisher Desktop\Template Builder for Word", in the jlib and fonts subfolders. If the issue is duplicated with the Desktop Plugin, then it is not an EnterpriseOne integration problem, and the cause should be sought either in the encryptor class from the barcode provider, or in the way it was integrated in the BarcodeUtil.java.
Note 2:
There are many different types of barcodes. This document is specific to handling of 128a, 128b and 128c types. It is possible to integrate other dynamic barcode types to use with BI Publisher for EnterpriseOne, however these are considered to be out of the scope of EnterpriseOne support. If you have questions about using 2D barcode fonts you may like to consider the following links: https://blogs.oracle.com/xmlpublisher/entry/bundled_barcodes_batman_1 https://blogs.oracle.com/xmlpublisher/entry/2d_barcodes_cracked https://blogs.oracle.com/xmlpublisher/entry/2d_barcode_addendum http://www.idautomation.com/oracle/xml_publisher_barcode.html. Discussion and tips on how to incorporate QR barcodes: https://blogs.oracle.com/xmlpublisher/entry/quick_quips_on_qr_codes Enhancement bugs requesting enhanced support for barcodes: BUG 11047749 - SUPPORT 2D BARCODE PRINTING REFERENCESNOTE:652457.1 - E1: XMLP: Adding a Font to be Used with Embedded Publisher for EnterpriseOne |
|
|
- BarcodeUtil.java(9.08
KB) - TestBarcodeUtil.rtf(30.54
KB)
附2:report 实现
Oracle Reports Barcode Tutorial & FAQ
This IDAutomation tutorial should be used when implementing barcode generation in Oracle Reports with the IDAutomation PL/SQL Barcode Library and IDAutomation barcode fonts. The barcode library is a PLL file that formats data from fields in the report to create
an accurate barcode when combined with IDAutomation barcode fonts.
The library contains functions for Code 128, Code 39, GS1, Codabar, UCC/EAN 128, Interleaved 2 of 5, UPC and EAN barcodes.
IDAutomation also provides Java barcode generation for Oracle Reports, which is easier to implement
in for versions 9i, 10g and above, as well as in UNIX and Linux environments. Other solutions are also provided in the Oracle
Reports Barcode Integration Guide.
Note: Use of this pll, requires a Developer License or above. This font encoder is supplied with Purchase of Developer's License or above of any Barcode Font Package.
Oracle Barcode Font Implementation Tutorial
Step 1: Install the Barcode Fonts
IDAutomation offers many different barcode fonts for a variety of purposes. If unsure which to use, consider theUniversal
Barcode Font with the Code 128 function. The IDAutomation.pll is a Feature
Level 3 font encoder and cannot format data for the GS1-128 barcode standard. The IDAutomation_Universal.pll (compatible with Oracle 9i and above) can encode data for GS1-128 barcodes. To install these barcode fonts on Windows for Oracle Reports, run theInstall.exe file
included in the font package or follow the font installation procedures. Because of the complexities and variety
of UNIX and Linux system distributions, IDAutomation does not provide installation assistance for these systems. However, IDAutomation does provide two sets of installation instructions that may help as a guide:
If possible, consider using Java Barcoding for Oracle Reports for Unix and Linux environments.
Step 2: Install the Oracle Reports Barcode PLL Library
The Oracle Reports Barcode PLL Library is compatible with all versions of Oracle Reports that support attached libraries. The IDAutomation.pll was developed and tested against Reports 6i, and the IDAutomation_Universal.pll is
compatible with 10g and above. If used in the database itself, the version of the database would be any version that supports PL/SQL. PL/SQL source code is also provided for advanced Oracle developers in the IDAutomation.pkg file.
- Open Oracle Reports Builder.
- Open the report rdf file that will contain the barcodes.
- Select the attached libraries option.
- Press the create button (Green Plus symbol) on the left toolbar.
- In the dialog box, select the File System radio button, click on the Browse button.
- Included in the Developer Tool's folder of the licensed font package will be the Oracle Barcode Library Tool, which contains the IDAutomation.pll and IDAutomation_Universal.pll files.
After decompressing, save these files to an appropriate directory. - Select the IDAutomation.pll or the IDAutomation_Universal.pll file
and choose the Attach button. If not sure which to use, consider the IDAutomation_Universal.pll file
with the IDAutomation Universal Barcode Font. - A dialog box will appear asking to remove the path. If Yes is selected, the PL/SQL library will need to be reattached to the report every time the report is opened. If No is selected, it will always look for the path in the same location.
Leaving the library in the same directory as the report is encouraged. - The barcode functions in the library are now ready to be used in the report. After the library is attached, the Object Navigator should look similar to the screen shot below, which shows the attached IDAutomation_Universal.pll.
Step 3: Set Up the Function Call with the Barcode Font
- IDAutomation's barcode library contains many font functions for linear barcodes. Add a Formula
Column to the report by using the Data Model option of the Report Layout, clicking the Formula Column button on the toolbar, and sizing the column in the layout area.
- The newly added Formula Column properties need to be adjusted to call the PL/SQL function from theIDAutomation.pll library. Access the property page for the Formula Column by selecting the Formula
Column and pressing the F4 key. The following window will appear:
- Adjust the following properties:
- Name: Choose a descriptive name for the Formula Column because the columns will need to be referenced when designing the layout of the actual report.
- Datatype: This must be selected as Character from the drop-down menu.
- Width: Ensure the width of the field is large enough to hold all encoded characters.
- Click on the PL/SQL Formula button within the Property Inspector to call the appropriate barcode function. The following screen should appear:
- Insert the appropriate function call where the cursor is positioned within the report to add the appropriate start and stop characters, encode the data if necessary and add the check sum character, when required.
- In the above example, a constant value (Code128Test) was passed into this function. If necessary, the appropriate character field may be substituted from the database.
- Click Close in the above window and ensure the report has been saved.
- To add this Formula Column to the report, switch to Paper Layout mode for the report and add a Field object to the report by clicking the appropriate item in the toolbar and dragging into position on the report.
- Once the Field has been added to the report, link it to the Formula Column that was created earlier. To link theField to the Formula Column, select the field and hit the F4 button
to bring up the Property Inspector for the Field. The Property Inspector should look similar to the following:
- Adjust the following properties:
- Name: Choose a descriptive name for the field (optional).
- Source: Select the name of Formula Column that was created earlier (required).
- Modify the font of the field to the appropriate barcode font according to the Oracle Reports Barcode Font Functions chart below.
Oracle Reports Barcode Font Functions | ||
The methods listed below may only be used with IDAutomation.pll and the appropriate barcode font. IDAutomation strongly recommends using the Universal Barcode Font with the appropriate Universal Function when generating Code 128 or Interleaved 2 of 5 barcodes. |
||
Function | Font Name | Function Notes and Additional Information |
Code128 (DataToEncode, ReturnType) |
IDAutomationC128 * |
Automatically encodes text data from ASCII 1 to ASCII 127. Using the Universal Barcode Font with the Universal Font Methods in the following situations is recommended:
It may be necessary to use the optional ReturnType for special purposes: |
Code128a(DataToEncode) | IDAutomationC128 * | Formats output to the Code 128 barcode fonts, character set A. |
Code128b(DataToEncode) | IDAutomationC128 * | Returns codes formatted to the Code 128 character set B. Formats output to the Code 128 barcode fonts. |
Code128c(DataToEncode) | IDAutomationC128 * | Interleaves numbers into pairs for high density. |
I2of5 (DataToEncode) |
IDAutomationI25 * IDAutomationI25 * |
Interleaves numbers into pairs for high density without check digits, and formats the return string to the Interleaved 2 of 5 barcode fonts. |
I2of5Mod10(DataToEncode,ReturnType) |
IDAutomationI25 * IDAutomationI25 * |
(DataToEncode, 0) performs the mod10 checksum calculation for increased accuracy and formats the return string to the Interleaved 2 of 5 barcode fonts. (DataToEncode, 1) returns the human-readable data with the MOD10 check digit included. (DataToEncode, 2) returns the MOD10 check digit. |
* When using the IDAutomationC128 or IDAutomationI25 fonts outside of the USA or for GS1-128, consider using theUniversal Barcode Font with the appropriate Universal Function to avoid language and locale incompatibilities. |
||
Code39Mod43(DataToEncode,ReturnType) |
IDAutomationC39 IDAutomationC39 |
(DataToEncode, 0) performs the mod43 checksum calculation for increased accuracy and formats the output to print using Code 39 fonts. The mod43 checksum is usually required for LOGMARS and HIBC applications. (DataToEncode, 1) returns the human readable data with the check digit included. (DataToEncode, 2) returns only the check digit. |
Code93 (DataToEncode) |
IDAutomationC93 | Formats the output to print with the 2 required check digits using Code 93 fonts. |
Codabar(DataToEncode) | IDAutomationCB | Formats the output to print using Codabar fonts. |
EAN13 (DataToEncode) |
IDAutomationUPCEAN | A number string of 12, 13, 14, 15, 17 or 18 digits with or without a check digit. Formats output to the UPC/EAN fonts. Add-ons are supported. |
EAN8 (DataToEncode) |
IDAutomationUPCEAN | A number string of 7 or 8 characters (EAN-8 without the check digit). Formats output to the UPC/EAN fonts. Entering incorrect data will create a barcode containing all zeros. |
Postnet (DataToEncode, ReturnType) |
IDAutomationPOSTNET or IDAutomationPOSTNET |
Enter a single string of Zip, Zip + 4 or Zip + 4 + Delivery Point or any number of digits for the planet code. The DataToEncode must be a number and can include dashes and spaces. (DataToEncode, 0) formats output to the Postnet fonts. (DataToEncode, 1) returns the human-readable data with the check digit included. (DataToEncode, 2) returns only the check digit. |
UPCa (DataToEncode) |
IDAutomationUPCEAN | A UPC-A number string of 11, 12, 13, 14, 16 or 17 digits with or without a check digit. Formats output to the UPC/EAN fonts. Add-ons are supported. |
Oracle Reports Universal Barcode Font Functions | ||
These methods may only be used with IDAutomation_Universal.pll and the Universal Barcode Fonts. |
||
Function | Font Name | Function Notes |
Code128(DataToEncode,ApplyTilde) | IDAutomation_Uni |
Automatically encodes all text from ASCII 1 to ASCII 127. This method contains many options for encoding GS1-128 and includes tilde options to encode functions such as tabs and returns. |
Code128A(DataToEncode) | IDAutomation_Uni |
Formats output to set A of Code-128. Use caution with this option because any lowercase character creates a function. Use the letter "i" for a tab and "m" for a return. For most purposes, it is better to use the C128() function instead of this one. |
Code128B(DataToEncode) | IDAutomation_Uni |
Formats output to Code-128, character set B. For most purposes, it is better to use theC128() function instead of this one. |
Code128C(DataToEncode) | IDAutomation_Uni |
This code128 function "interleaves" even numbers into pairs for high density. An even number of digits is required. For most purposes, it is better to use the C128() functioninstead of this one. |
Code39 (DataToEncode, N_Dimension,IncludeCheckDigit) |
IDAutomation_Uni | Formats the output to Code 39 with the Universal barcode font. A MOD 43 checksum will be calculated if IncludeCheckDigit is true. |
Codabar(DataToEncode,N_Dimension, StartChar, StopChar) |
IDAutomation_Uni | Creates Codabar (aka NW7) with the Universal barcode font. StartChar and StopChar are also required as the start and stop characters. Valid start and stop characters are A, B, C and D. |
I2of5 (DataToEncode, N_Dimension,IncludeCheckDigit) |
IDAutomation_Uni | Interleaves numbers into pairs for high density without check digits, and formats the return string to the Universal font. An even number of digits is required. A MOD 10 checksum will be calculated if IncludeCheckDigit is true. |
Planet (DataToEncode,IncludeCheckDigit) |
IDAutomation_Uni |
This barcode type has a specific height requirement, and this function only works with the XS, S or M size of the Universal Font.
XS is the normal version, S has the bars narrow by 10% and the M font has the bars narrow by 20%. DataToEncode is a single string of Zip, Zip + 4 or Zip + 4 + Delivery Point. A MOD 10 checksum will be calculated |
Postnet (DataToEncode,IncludeCheckDigit) |
IDAutomation_Uni |
This barcode type has a specific height requirement, and this function only works with the XS, S or M size of the Universal Font. XS is the normal version, S has the bars narrow by 10% and the M font has the bars narrow by 20%. DataToEncode is a single string of Zip, Zip + 4 or Zip + 4 + Delivery Point. A MOD 10 checksum will be calculated if IncludeCheckDigit is true. |
Function Property Descriptions
- DataToEncode: A string value that represents the data being encoded.
- N_Dimension: Determines the width of the wide bars which is a multiple of the X dimension. Valid values are 2, 2.5 and 3. The default is 2. The X dimension
is determined by the font point size. - IncludeCheckDigit: A Boolean value that determines whether a check digit should be automatically calculated and included for the DataToEncode.
- ApplyTilde: If set to True, characters following the tilde may be used to perform
additional calculations or encode ASCII characters directly.
Related Links:
EBS条形码打印的更多相关文章
- 【小y设计】二维码条形码打印编辑器
条码打印,价格标签打印,需要对打印进行排版,于是设计了一个简单的编辑器 支持条码二维码打印进行编辑排版,支持文字.图片.条码.二维码.直线,能自由拖拉,删除,并可保存为模版. 界面如下 (下载Demo ...
- 如何使用Excel和Word编辑和打印条形码
本文介绍如何使用Microsoft Office Excel 2007和Microsoft Office Word 2007进行条形码的编辑后,通过普通的办公打印机将条形码打印出来. 对于少量,简单的 ...
- Web打印--Lodop API
Lodop是一款专业的WEB打印控件,其设计目标是简单易用.功能足够强大,开创WEB打印开发的新局面. Lodop设计者对WEB下的打印开发任务进行了分类汇总,高度抽象,设计出仅用几个功能函数,就可实 ...
- [原创]Lodop打印, 以及Lodop引用css文件控制打印样式的问题.
最近在做Lodop打印功能: 思路是: 用MasterPage搭个打印页面的框架, 然后在具体的页面中填入数据, 打印的样式由母版页和CSS来控制. 困扰了一天的问题是: 在打印的JS文件中, 引 ...
- c# 条形码(求指教)
因公司需要完成一条形码打印问题,所以在找到一些资料做了一个Demo 特请教! 不知道此条形码是否正确: 图: 源码: 代码 )); } g.Save(); ...
- C#调用Bartender打印
BarTender是一款优秀的条形码打印软件,可以支持很多种类型的条形码设计和打印,具体大家可参考他的官网(http://www.seagullscientific.com/aspx/products ...
- 打印函数 lodop
Lodop属性和方法详解 例子:LODOP.PRINT_INIT("打印任务名");LODOP.SET_PRINT_COPIES(2);bdhtml=window.document ...
- VB.Net条形码编程的方法
一.条形码的读取用过键盘口式的扫条码工具的朋友就知道,它就如同在鍵盘上按下数字鍵一样,基本不需任何编程和处理.但如果你使用的是其它接口的话,可能你就要为该设备编写通讯代码了.以下有一段简单的25针串口 ...
- Android打印机--小票打印格式及模板设置
小票打印就是向打印设备发送控制打印格式的指令集,而这些打印格式须要去查询相应打印机的API文档,这里我把经常使用的api给封装了一下 文字对齐方式 打印字体大小 字体是否加粗 打印二维码 打印条形码 ...
随机推荐
- Tomcat访问路径去掉发布项目的项目名称
需求: 把发布到Tomcat下的web项目,访问路径去掉项目名称 实现方式及原理: 方式一: 原理:Tomcat的默认根目录是ROOT,实际上ROOT这个项目在实际生产环境是没有用的,所以我们可以用我 ...
- Weblogic Exception in AppMerge flows' progression
原因:经过分析是web.xml配置的问题,有些servlet上面配置了'display-name',这个weblogic是不支持的. 解决:在web.xml中把'display-name'删除掉,工程 ...
- Mybatis自动生成实体类和实体映射工具
Mybatis Mysql生成实体类 用到的Lib包: mybatis-generator-core-1.3.2.jarmysql-connector-java-5.1.30.jar 1. 创建一个文 ...
- Mysql根据一个基库生成其他库与其不同的库升级脚本
今天研究了一下不同数据库之间如何做同步.弄了一个升级工具类,希望以后还能有所帮助. public class UpgradeDataBase { public static void main(Str ...
- C# 获取当前屏幕DPI
1.通过Graphics类获取 Graphics currentGraphics = Graphics.FromHwnd(new WindowInteropHelper(mainWindow).Han ...
- OpenCv error :unresolved external symbol(链接库没有加上)
Error 如下:Linking...: error LNK2001: unresolved external symbol _cvDestroyWindow: error LNK2001: unre ...
- python中删除某个元素的3种方法
python中关于删除list中的某个元素,一般有三种方法:remove.pop.del 1.remove: 删除单个元素,删除首个符合条件的元素,按值删除 举例说明: >>> st ...
- Kafka生产者-向Kafka中写入数据
(1)生产者概览 (1)不同的应用场景对消息有不同的需求,即是否允许消息丢失.重复.延迟以及吞吐量的要求.不同场景对Kafka生产者的API使用和配置会有直接的影响. 例子1:信用卡事务处理系统,不允 ...
- 详解BLE连接建立过程
同一款手机,为什么跟某些设备可以连接成功,而跟另外一些设备又连接不成功?同一个设备,为什么跟某些手机可以建立连接,而跟另外一些手机又无法建立连接?同一个手机,同一个设备,为什么他们两者有时候连起来很快 ...
- Node.js 全局对象介绍
全局对象 这些对象在所有模块里都可用.有些对象不是在全局作用域而是在模块作用域里,这些情况下面文档都会标注出来. global {Object} 全局命名空间对象. 浏览器里,全局作用域就是顶级域.如 ...