BARCODE IN XML PUBLISHER
1. Client Setup
·
Get the font IDAutomation font
from idautomation
·
Place the IDAutomation font
under c:\Windows\Fonts.
·
Select IDAutomation font for
Barcode fields in XML Publisher Template.
·
Calling encoder in the
template.(Only if vendor specific fonts and java encoder is used else ignore)
·
Add following expression in
your template, It can be added directly to template or as a value to Form
Field.
<?register-barcode-vendor:'oracle.apps.xdo.template.rtf.util.barcoder.BarcodeUtilaaa';'XMLPBarVendor'?>
·
Add format-barcode syntax to
barcode field. Replace BARCODE in below syntax with your xml field.
*<?format-barcode:BARCODE;'code128a';'XMLPBarVendor'?>*
2. Server Setup -- Only needed if you have vendor specific barcode
fonts else ignore.
If vendor specific fonts
are used, java encoder will be provided along with font which will be
recognized by external device.
Below imports have to be
added to the vendor provided java encoder.
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 hastable 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;
}
}
/** Add Vendor Method for
Code128a */
public static final String
code128a( String DataToEncode )
{
return Printable_string;
}
}
Generate class file from java code and place
it under OA_JAVA/oracle/apps/xdo/template/rtf/util/barcoder. If barcoder
directory doesn't exist create one.
$ cd
$OA_JAVA/oracle/apps/xdo/template/rtf/util
$ mkdir barcoder
Change permissions of the barcoder directory
to 777/755.
3.
XML Publisher Font Setup
No longer XML publisher
fonts needed to be placed on the server. They can be uploaded and used from XML
publisher font file and font mappings.
Navigate to XML Publisher responsibility.
Go to Administration Tab.
Click on Font Files and
create font file
HERE THE FONT IS IDAutomationSHcC128M
Font Name: IDAutomationSHcC128M
File: Select IDAutomationSHcC128M.ttf
from your saved location.
Click Apply.
Click on Font Mappings.
Click “Create Font Mapping Set”.
Mapping Name: IDAutomationSHcC128M
Mapping Code: IDAutomationSHcC128M
Type: FO To Pdf
Click Apply.
Click on Create Font
Mapping. Fill the values as below screen shot.
Font Family: IDAutomationSHcC128M
Font Value: IDAutomationSHcC128M
Click Apply.
In the next page enter
Click on Administration
Tab
Expand FO Processing and
enter Barcodes as Font Mapping Set value.
No comments:
Post a Comment