The fax4j is a Java fax library.
This library enables Java applications to invoke fax actions such as submitting fax jobs.
You can get the latest version from here
|
|
The fax4j library enables to integrate with fax services via many different SPI (service provider interface) implementations.
Currently fax4j supports the following fax integration:
Windows native fax API (requires windows fax/tapi component installed)
Windows COM fax API (via VBS called from the Java layer, requires windows fax/tapi component installed)
Email (via email server that enable to send fax message based on incoming email messages)
HTTP
External Processes
Linux native fax API (requires linux efax utility)
Mac native fax API
HylaFax (via gnu-hylafax library)
And more...
|
|
//get new instance of a fax client (based on internal + external fax4j.properties file data)
FaxClient faxClient=FaxClientFactory.createFaxClient();
//create a new fax job
FaxJob faxJob=faxClient.createFaxJob();
//set fax job values
faxJob.setFile(new File("./my_document.txt"));
faxJob.setPriority(FaxJobPriority.HIGH_PRIORITY);
faxJob.setTargetAddress("555-555");
faxJob.setTargetName("YourName");
faxJob.setSenderEmail("myemail@mycompany.com");
faxJob.setSenderName("MyName");
//submit fax job
faxClient.submitFaxJob(faxJob);
//print submitted fax job ID (may not be supported by all SPIs)
System.out.println("Fax job submitted, ID: "+faxJob.getID());
You can see more examples and a tutorial at: javadoc
|
|
Please checkout the forums for any questions, comments, bugs, suggestions and so on.
User testimonials are always welcome.
You can also go to the tutorial at: javadoc
|
|
The fax4j library comes with an ant script which can be used to build the Java layer of the library.
However some SPI implementations which have dependencies on commercial products. These libraries can not be distributed
with the fax4j library, therefore, in order to build the library you must remove these SPIs or download these libraries independently.
|
|
Each SPI has it's requirements.
See the SPI javadoc for more information (each SPI javadoc contains the information relevant for it specifically).
You can also go to the tutorial at: javadoc
|
|
Each SPI has it's installation/setup requirements.
See the SPI javadoc for more information (each SPI javadoc contains the information relevant for it specifically).
You can also go to the tutorial at: javadoc
|
|
Right now the focus is more on testing and fixing bugs.
There are no new features planned.
Suggestions are always welcome.
|
|
The fax4j library is distributed under the LGPL license which means that it is possible to distribute this library also
in commercial closed source products.
See fax4j.license for more info. |
|
Version 0.29 4-Dec-2011
-New efax SPI implementation.
-Few documentation fixes.
Version 0.28 23-Nov-2011
-Few documentation fixes.
Version 0.27 28-Mar-2011
-Enable to extract fax job status via process output handler.
-Added JDK logger to enable easy integration with existing logger frameworks.
Version 0.26 27-Mar-2011
-Enable to define a process output validator for the Process and Linux SPIs.
-Added the NONE log level and set it as the default to disable all logging.
Version 0.25 23-Mar-2011
-Enable to define a process output handler for the Process and Linux SPIs.
-Minor C++ changes (linker options, removed unneeded files).
Version 0.24 22-Mar-2011
-Minor C++ compilation changes.
Version 0.23 22-Mar-2011
-Fixed issues in Windows SPI.
-Windows SPI is now set to be the default SPI for windows OS.
Version 0.22 21-Mar-2011
-Windows SPI now enables to invoke external fax4j executable in addition of using JNI.
-Minor internal API and documentation changes.
Version 0.21f 24-Jan-2011
-Minor internal API and documentation changes.
Version 0.21e 23-Jan-2011
-New External Process SPI implementation.
-New Linux SPI implementation (requires linux efax utility)
-New Mac SPI implementation
Version 0.21d 17-Jan-2011
-Minor documentation changes.
Version 0.21c 17-Jan-2011
-A new tutorial written. It is located in the javadocs
-New send2fax SPI implementation.
-Updated VBS SPI error messasge to hold VBS script text line that failed.
-Minor documentation changes.
Version 0.21b 28-Aug-2009
-Added support to extract the fax job status (currently only VBS and Windows SPIs support it).
Version 0.21a 10-July-2009
-Added template based HTTP SPI implementation.
-Fixed abstract HTTP SPI javadoc.
Version 0.20c 18-June-2009
-The FaxEvent source is now the FaxJob and not FaxClientSpi to prevent the SPI from being misused.
-Redesign of HTTP SPI to enable better flexibility.
-Added HTTP proxy support for HTTP SPI.
-Added validation of return http response status code (in case status code is >=400 an error will be thrown).
Version 0.20b 14-June-2009
-Added support for fax event listeners to be registered.
Version 0.20a 13-June-2009
-Fixed the VBS SPI documentation.
Version 0.19d 13-June-2009
-The Windows SPI now fully supports all FaxClientSpi operations.
Version 0.19c 31-May-2009
-All SPIs now validate that the provided fax file is not empty.
-The VBS SPI formats all fax job data to ensure VBS script does not break due to invalid script structure.
-The VBS SPI error message is updated in case the fax server active X is not installed to better explain the problem.
-Win2000 VBS will check if input is provided before setting the relevant fax field.
Version 0.19b 22-May-2009
-The VBS SPI now fully supports all FaxClientSpi operations when using the windows 2000 VBS API.
-If the org.fax4j.spi.vbs.always.use.win2000.api property is not set the VBS SPI will default the value to true.
-fax4j.properties updated. Property org.fax4j.spi.vbs.always.use.win2000.api is now set to true.
Version 0.18 19-May-2009
-FaxClientSpiProxy can be enabled/disabled based on new fax4j configuration: org.fax4j.proxy.enabled (enabled by default)
-Adapter fax client SPI can override fax4j configuration for internal SPI, see javadoc for more info.
-postMethodInvocation method in FaxClientSpiInterceptor now also receives the method output.
Version 0.17 18-May-2009
-New Provider interface.
-Updated FaxClient and FaxClientSpi to enable access to the SPI provider.
-New FaxClientSpiProxy interface used to
proxy all fax client SPI method invocations to interceptors.
-New FaxClientSpiInterceptor interface used to
define fax client SPI method invocation interceptors. These interceptors enable to invoke custom logic before and after the fax client SPI method invocations (such as logging)
-VBS script exceptions will contain the script output.
Version 0.16 16-May-2009
-VBS SPI will validate script execution output for errors.
-Adapter SPI now supports 'stable' condition (automatically validated for all SPIs), see javadoc for more info.
-Every SPI has a new predefined property to support the new 'stable' condition.
Version 0.15 14-May-2009
-Updated Read Me.
Version 0.13 14-May-2009
-Updated documentation (including a limitations and dependencies for each SPI).
Version 0.12 13-May-2009
-Version and build numbers are also defined in MANIFEST file.
-Updated documentation (including a configuration table for each SPI).
Version 0.11 12-May-2009
-Compiled with Java 5 instead of Java 6
-Updated build script to compile source=1.5 and target=1.5
-Move org.faxj4.FaxJobImpl to org.fax4j.spi package.
-Updated internal org.fax4j.spi.adapter.internal.spi.types property to -mail;http;vbs;windows;hylafax;interfax;rfax
-Updated documentation.
Version 0.1 11-May-2009
-Initial Release
|