B4J Tutorial Creating 1D and 2D Barcodes using inline Java Code and the ITEXT library

Johan Schoeman

Expert
Licensed User
The attached project uses inline Java code and the ITEXT library to create various types of 1D and 2D barcodes. The barcodes are store in a PDF file(s). Change the code in the B4J class or add additional classes in the attached project to create separate PDF files for each of the different 1D and 2D barcodes.

Notice that I have commented the majority of code in the class module so that the project will only create PDF417, Datamatrix, and QR Codes - they are stored in Belinda.pdf that you will find in directory ItextBarcodes of the B4J project - see the code in the class module if you for eg want to save it to the /Files folder of the B4J project.

Sure you will figure out the rest. Browse the web - it is mighty helpful...

1.png


Posting the B4J project and the required library files that you should download from HERE (CLICK HERE)

Sample Code (Main Activity):

B4X:
#Region  Project Attributes
    #MainFormWidth: 800
    #MainFormHeight: 600
    #AdditionalJar: javase-2.2
    #AdditionalJar: itextpdf-5.5.6

#End Region

Sub Process_Globals
    Private fx As JFX
    Private MainForm As Form
  
    Dim itl As itextlib
  
End Sub

Sub AppStart (Form1 As Form, Args() As String)
    MainForm = Form1
    MainForm.SetFormStyle("UNIFIED")
    MainForm.RootPane.LoadLayout("main") 'Load the layout file.
    MainForm.Show
    MainForm.BackColor = fx.Colors.ARGB(100,0,0,255)
  
    itl.Initialize
                
    'change the call here to add variables that you can pass to the class
    'such as for eg the string to encode...It is hard coded in the class at present
    'Also surf the web to find some other possibilities that you can add the the existing B4J class or by adding new classes
    'Use something like "jd-gui" to explore "itextpdf-5.5.6.jar" for other possiblilities
    itl.createPdf
  
End Sub
Code in the project class module:

B4X:
'Class module
Sub Class_Globals

    Private nativeMe As JavaObject

End Sub

'Initializes the object. You can add parameters to this method if needed.
Public Sub Initialize

nativeMe = Me

End Sub

Public Sub createPdf()

Dim fn As String = "Belinda.pdf"
nativeMe.RunMethod("createPdf", Array(fn))

End Sub

#If Java


import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Image;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.Barcode;
import com.itextpdf.text.pdf.Barcode128;
import com.itextpdf.text.pdf.Barcode39;
import com.itextpdf.text.pdf.BarcodeCodabar;
import com.itextpdf.text.pdf.BarcodeDatamatrix;
import com.itextpdf.text.pdf.BarcodeEAN;
import com.itextpdf.text.pdf.BarcodeEANSUPP;
import com.itextpdf.text.pdf.BarcodeInter25;
import com.itextpdf.text.pdf.BarcodePDF417;
import com.itextpdf.text.pdf.BarcodePostnet;
import com.itextpdf.text.pdf.BarcodeQRCode;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfWriter;

import com.google.zxing.client.j2se.MatrixToImageWriter;

import java.io.File;
import java.io.FileOutputStream;


   public void createPdf(String filename) throws IOException, DocumentException {
 
        String configFilePath = new File(System.getProperty("user.dir")).getParent() + "/ItextBarcodes/";
      
        // step 1
        Document document = new Document(new Rectangle(340, 842));
        // step 2
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(configFilePath + filename));
        // step 3
        document.open();
        // step 4
        PdfContentByte cb = writer.getDirectContent();
//        // EAN 13
//        document.add(new Paragraph("Barcode EAN.UCC-13"));
//        BarcodeEAN codeEAN = new BarcodeEAN();
//        codeEAN.setCode("4512345678906");
//        document.add(new Paragraph("default:"));
//        document.add(codeEAN.createImageWithBarcode(cb, null, null));
//        codeEAN.setGuardBars(false);
//        document.add(new Paragraph("without guard bars:"));
//        document.add(codeEAN.createImageWithBarcode(cb, null, null));
//        codeEAN.setBaseline(-1f);
//        codeEAN.setGuardBars(true);
//        document.add(new Paragraph("text above:"));
//        document.add(codeEAN.createImageWithBarcode(cb, null, null));
//        codeEAN.setBaseline(codeEAN.getSize());
//
//        // UPC A
//        document.add(new Paragraph("Barcode UCC-12 (UPC-A)"));
//        codeEAN.setCodeType(Barcode.UPCA);
//        codeEAN.setCode("785342304749");
//        document.add(codeEAN.createImageWithBarcode(cb, null, null));
//
//        // EAN 8
//        document.add(new Paragraph("Barcode EAN.UCC-8"));
//        codeEAN.setCodeType(Barcode.EAN8);
//        codeEAN.setBarHeight(codeEAN.getSize() * 1.5f);
//        codeEAN.setCode("34569870");
//        document.add(codeEAN.createImageWithBarcode(cb, null, null));
//
//        // UPC E
//        document.add(new Paragraph("Barcode UPC-E"));
//        codeEAN.setCodeType(Barcode.UPCE);
//        codeEAN.setCode("03456781");
//        document.add(codeEAN.createImageWithBarcode(cb, null, null));
//        codeEAN.setBarHeight(codeEAN.getSize() * 3f);
//
//        // EANSUPP
//        document.add(new Paragraph("Bookland"));
//        document.add(new Paragraph("ISBN 0-321-30474-8"));
//        codeEAN.setCodeType(Barcode.EAN13);
//        codeEAN.setCode("9781935182610");
//        BarcodeEAN codeSUPP = new BarcodeEAN();
//        codeSUPP.setCodeType(Barcode.SUPP5);
//        codeSUPP.setCode("55999");
//        codeSUPP.setBaseline(-2);
//        BarcodeEANSUPP eanSupp = new BarcodeEANSUPP(codeEAN, codeSUPP);
//        document.add(eanSupp.createImageWithBarcode(cb, null, BaseColor.BLUE));
//
//        // CODE 128
//        document.add(new Paragraph("Barcode 128"));
//        Barcode128 code128 = new Barcode128();
//        code128.setCode("0123456789 hello");
//        document.add(code128.createImageWithBarcode(cb, null, null));
//        code128.setCode("0123456789\uffffMy Raw Barcode (0 - 9)");
//        code128.setCodeType(Barcode.CODE128_RAW);
//        document.add(code128.createImageWithBarcode(cb, null, null));
//
//        // Data for the barcode :
//        String code402 = "24132399420058289";
//        String code90 = "3700000050";
//        String code421 = "422356";
//        StringBuffer data = new StringBuffer(code402);
//        data.append(Barcode128.FNC1);
//        data.append(code90);
//        data.append(Barcode128.FNC1);
//        data.append(code421);
//        Barcode128 shipBarCode = new Barcode128();
//        shipBarCode.setX(0.75f);
//        shipBarCode.setN(1.5f);
//        shipBarCode.setSize(10f);
//        shipBarCode.setTextAlignment(Element.ALIGN_CENTER);
//        shipBarCode.setBaseline(10f);
//        shipBarCode.setBarHeight(50f);
//        shipBarCode.setCode(data.toString());
//        document.add(shipBarCode.createImageWithBarcode(cb, BaseColor.BLACK,
//                BaseColor.BLUE));
//
//        // it is composed of 3 blocks whith AI 01, 3101 and 10
//        Barcode128 uccEan128 = new Barcode128();
//        uccEan128.setCodeType(Barcode.CODE128_UCC);
//        uccEan128.setCode("(01)00000090311314(10)ABC123(15)060916");
//        document.add(uccEan128.createImageWithBarcode(cb, BaseColor.BLUE,
//                BaseColor.BLACK));
//        uccEan128.setCode("0191234567890121310100035510ABC123");
//        document.add(uccEan128.createImageWithBarcode(cb, BaseColor.BLUE,
//                BaseColor.RED));
//        uccEan128.setCode("(01)28880123456788");
//        document.add(uccEan128.createImageWithBarcode(cb, BaseColor.BLUE,
//                BaseColor.BLACK));
//
//        // INTER25
//        document.add(new Paragraph("Barcode Interleaved 2 of 5"));
//        BarcodeInter25 code25 = new BarcodeInter25();
//        code25.setGenerateChecksum(true);
//        code25.setCode("41-1200076041-001");
//        document.add(code25.createImageWithBarcode(cb, null, null));
//        code25.setCode("411200076041001");
//        document.add(code25.createImageWithBarcode(cb, null, null));
//        code25.setCode("0611012345678");
//        code25.setChecksumText(true);
//        document.add(code25.createImageWithBarcode(cb, null, null));
//
//        // POSTNET
//        document.add(new Paragraph("Barcode Postnet"));
//        BarcodePostnet codePost = new BarcodePostnet();
//        document.add(new Paragraph("ZIP"));
//        codePost.setCode("01234");
//        document.add(codePost.createImageWithBarcode(cb, null, null));
//        document.add(new Paragraph("ZIP+4"));
//        codePost.setCode("012345678");
//        document.add(codePost.createImageWithBarcode(cb, null, null));
//        document.add(new Paragraph("ZIP+4 and dp"));
//        codePost.setCode("01234567890");
//        document.add(codePost.createImageWithBarcode(cb, null, null));
//
//        document.add(new Paragraph("Barcode Planet"));
//        BarcodePostnet codePlanet = new BarcodePostnet();
//        codePlanet.setCode("01234567890");
//        codePlanet.setCodeType(Barcode.PLANET);
//        document.add(codePlanet.createImageWithBarcode(cb, null, null));
//
//        // CODE 39
//        document.add(new Paragraph("Barcode 3 of 9"));
//        Barcode39 code39 = new Barcode39();
//        code39.setCode("ITEXT IN ACTION");
//        document.add(code39.createImageWithBarcode(cb, null, null));
//
//        document.add(new Paragraph("Barcode 3 of 9 extended"));
//        Barcode39 code39ext = new Barcode39();
//        code39ext.setCode("iText in Action");
//        code39ext.setStartStopText(false);
//        code39ext.setExtended(true);
//        document.add(code39ext.createImageWithBarcode(cb, null, null));
//
//        // CODABAR
//        document.add(new Paragraph("Codabar"));
//        BarcodeCodabar codabar = new BarcodeCodabar();
//        codabar.setCode("A123A");
//        codabar.setStartStopText(true);
//        document.add(codabar.createImageWithBarcode(cb, null, null));
        // PDF417
        document.add(new Paragraph("Barcode PDF417"));
        BarcodePDF417 pdf417 = new BarcodePDF417();
        String text = "Hi. This was created by Johan Schoeman - just for the fun of it. "
            + "You can use it or you can loose it - it is up to you. "
            + "I suggest you search the internet for other examples of how to use the ITEXT library. "
            + "It might open up a whole new world of possibilities. - so, enjoy it and have some fun!";
        pdf417.setText(text);
        Image img = pdf417.getImage();
        img.scalePercent(50, 50 * pdf417.getYHeight());
        document.add(img);
        // Datamatrix
        document.add(new Paragraph("Barcode Datamatrix"));
        BarcodeDatamatrix datamatrix = new BarcodeDatamatrix();
        datamatrix.generate(text);
        img = datamatrix.createImage();
        document.add(img);
        //QR Code
        document.add(new Paragraph("Barcode QRCode"));
        BarcodeQRCode qrcode = new BarcodeQRCode(text, 1, 1, null);
        img = qrcode.getImage();
        document.add(img);
        // step 5
        document.close();
      
  
}



#End If
 

Attachments

js1234

Member
Licensed User
I try this but get error:
B4X:
Program started.
itextlib._createpdf (java line: 68)
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at anywheresoftware.b4j.object.JavaObject.RunMethod(JavaObject.java:130)
    at b4j.example.itextlib._createpdf(itextlib.java:68)
    at b4j.example.main._appstart(main.java:61)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at anywheresoftware.b4a.BA.raiseEvent2(BA.java:93)
    at anywheresoftware.b4a.BA.raiseEvent(BA.java:84)
    at b4j.example.main.start(main.java:36)
    at com.sun.javafx.application.LauncherImpl$5.run(LauncherImpl.java:319)
    at com.sun.javafx.application.PlatformImpl$5.run(PlatformImpl.java:219)
    at com.sun.javafx.application.PlatformImpl$4$1.run(PlatformImpl.java:182)
    at com.sun.javafx.application.PlatformImpl$4$1.run(PlatformImpl.java:179)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl$4.run(PlatformImpl.java:179)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:76)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:17)
    at com.sun.glass.ui.win.WinApplication$3$1.run(WinApplication.java:67)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.FileNotFoundException: C:\Users\User1\Dropbox\microera\ITEXT_~1\BARCOD~1\ItextBarcodes\Belinda.pdf (The system cannot find the path specified)
    at java.io.FileOutputStream.open(Native Method)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:110)
    at b4j.example.itextlib.createPdf(itextlib.java:98)
    ... 25 more
Why? Where is a problem?
 

Johan Schoeman

Expert
Licensed User
I try this but get error:
B4X:
Program started.
itextlib._createpdf (java line: 68)
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at anywheresoftware.b4j.object.JavaObject.RunMethod(JavaObject.java:130)
    at b4j.example.itextlib._createpdf(itextlib.java:68)
    at b4j.example.main._appstart(main.java:61)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at anywheresoftware.b4a.BA.raiseEvent2(BA.java:93)
    at anywheresoftware.b4a.BA.raiseEvent(BA.java:84)
    at b4j.example.main.start(main.java:36)
    at com.sun.javafx.application.LauncherImpl$5.run(LauncherImpl.java:319)
    at com.sun.javafx.application.PlatformImpl$5.run(PlatformImpl.java:219)
    at com.sun.javafx.application.PlatformImpl$4$1.run(PlatformImpl.java:182)
    at com.sun.javafx.application.PlatformImpl$4$1.run(PlatformImpl.java:179)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl$4.run(PlatformImpl.java:179)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:76)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:17)
    at com.sun.glass.ui.win.WinApplication$3$1.run(WinApplication.java:67)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.FileNotFoundException: C:\Users\User1\Dropbox\microera\ITEXT_~1\BARCOD~1\ItextBarcodes\Belinda.pdf (The system cannot find the path specified)
    at java.io.FileOutputStream.open(Native Method)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:110)
    at b4j.example.itextlib.createPdf(itextlib.java:98)
    ... 25 more
Why? Where is a problem?
Did you change this line....
B4X:
Dim fn As String = "Belinda.pdf"
...to something else? A different path?
 

Johan Schoeman

Expert
Licensed User
m
What changes? I download this project and compile&run ...
http://www.b4x.com/android/forum/attachments/itext_barcodes-zip.39260/
It sees that your problem is somewhere here

Caused by: java.io.FileNotFoundException: C:\Users\User1\Dropbox\microera\ITEXT_~1\BARCOD~1\ItextBarcodes\Belinda.pdf (The system cannot find the path specified)

As far as what I remember the project writes to the internal Dir of the project. So not sure why you are getting this error...

If folder "ItextBarcodes" don't exist in your project then the app will crash. This folder needs to be on the save folder level as Files and Object of the B4J project.

If it is not in your project then just create it so that your folder structure looks like this

YourB4JProject
Files
Objects
ItextBarcodes <<<<<<--------------------------​
 
Last edited:

js1234

Member
Licensed User
I create:
C:\Users\User1\Dropbox\microera\ITEXT_BARCODES\BARCODES_TO_POST\ItextBarcodes\
but NOT working!
 

Johan Schoeman

Expert
Licensed User
I create:
C:\Users\User1\Dropbox\microera\ITEXT_BARCODES\BARCODES_TO_POST\ItextBarcodes\
but NOT working!
Here is my complete folder as what I am using it. Have not zipped it with with B4J but with Windows. See if that sorts it out for you.

1.png
 

Attachments

js1234

Member
Licensed User
B4J version: 4.00
Parsing code. (0.00s)
Compiling code. (0.02s)
Compiling layouts code. (0.01s)
Compiling generated Java code. (0.66s)
Building jar file. Error
Could not find file 'C:\tmp\BARCODES_TO_POST\BARCODES_TO_POST\Files/Belinda.pdf'.
 

Johan Schoeman

Expert
Licensed User
B4J version: 4.00
Parsing code. (0.00s)
Compiling code. (0.02s)
Compiling layouts code. (0.01s)
Compiling generated Java code. (0.66s)
Building jar file. Error
Could not find file 'C:\tmp\BARCODES_TO_POST\BARCODES_TO_POST\Files/Belinda.pdf'.
I would suggest you browse the web and then change this line in the inline java code to see if you can sort out your problem

B4X:
String configFilePath = new File(System.getProperty("user.dir")).getParent() + "/ItextBarcodes/";
It is working as it is on my computer - not sure why it does not want to work on your computer.
 

js1234

Member
Licensed User
If you mean itexlib and line is unchanged and is as original:
String configFilePath = new File(System.getProperty("user.dir")).getParent() + "/ItextBarcodes/";

Now compiling is ok but get errors (see bellow)!

I update B4J to 4.0 but now error:

java.lang.ExceptionInInitializerError
Caused by: java.lang.RuntimeException: java.lang.NoClassDefFoundError: javafx/scene/control/Dialog
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:114)
at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:90)
at b4j.example.main.<clinit>(main.java:17)
Caused by: java.lang.NoClassDefFoundError: javafx/scene/control/Dialog
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:191)
at anywheresoftware.b4a.shell.Shell.getCorrectClassName(Shell.java:499)
at anywheresoftware.b4a.shell.Shell.createObject(Shell.java:486)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:243)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:158)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:93)
... 2 more
Caused by: java.lang.ClassNotFoundException: javafx.scene.control.Dialog
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 13 more
Exception in thread "main"

I don't need this code anymore but I'm angry because not work! :(
 

Johan Schoeman

Expert
Licensed User
If you mean itexlib and line is unchanged and is as original:
String configFilePath = new File(System.getProperty("user.dir")).getParent() + "/ItextBarcodes/";

Now compiling is ok but get errors (see bellow)!

I update B4J to 4.0 but now error:

java.lang.ExceptionInInitializerError
Caused by: java.lang.RuntimeException: java.lang.NoClassDefFoundError: javafx/scene/control/Dialog
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:114)
at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:90)
at b4j.example.main.<clinit>(main.java:17)
Caused by: java.lang.NoClassDefFoundError: javafx/scene/control/Dialog
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:191)
at anywheresoftware.b4a.shell.Shell.getCorrectClassName(Shell.java:499)
at anywheresoftware.b4a.shell.Shell.createObject(Shell.java:486)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:243)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:158)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:93)
... 2 more
Caused by: java.lang.ClassNotFoundException: javafx.scene.control.Dialog
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 13 more
Exception in thread "main"

I don't need this code anymore but I'm angry because not work! :(
Do you have these libraries enabled?

1.png
 

Johan Schoeman

Expert
Licensed User
yes...but not same version:
View attachment 39961
OK - then let's get the "doctors" involved. We need to get to the bottom of this and understand why this is happening. Let me just first update my B4J to the latest version and see if I then also have a problem or not. Just so that we all sing from the same hymn book...
 

Johan Schoeman

Expert
Licensed User

Johan Schoeman

Expert
Licensed User

Johan Schoeman

Expert
Licensed User
yes...but not same version:
View attachment 39961
Copy Belinda.pdf from the /ItextBarcodes folder to the /Files folder. Then run the project again. It will create an updated Belinda.pdf in the /ItextBarcodes folder. Why it wants Belinda.pdf to be in the /Files folder I don't know. But it is working that way for now. Funny thing is that once Belinda.pdf is in the /Files folder it never gets updated at all. Only Belinda.pdf in the /ItextBarcodes folder gets updated.
 

js1234

Member
Licensed User
This I try one time before and not working and I tray now: not working for me! I think Erel have solution... :)
 
Top