Overview
-Introduction
-Features
-Example Usage
-Support
-Building from Sources
-Requirements
-Installation/Setup
-Road Map
-License
-Change Log
Documentation
-Client Javadoc
-Full Javadoc

Get fax4j - java fax API at SourceForge.net. Fast, secure and Free Open Source software downloads

fax4j

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

Features

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 COM fax API (via VBS called from the Java layer, requires windows fax/tapi component installed)
Windows native fax API (requires windows fax/tapi component installed)
Email (via email server that enable to send fax message based on incoming email messages)
HylaFax (via gnu-hylafax library)
HTTP
And more...

Example Usage

//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());

Support

Please checkout the forums for any questions, comments, bugs, suggestions and so on.

Building from Sources

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.

Requirements

Each SPI has it's requirements.
See the SPI javadoc for more information (each SPI javadoc contains the information relevant for it specifically).

Installation/Setup

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).

Road Map

There is a lot more to do in the fax4j library, the below lists the more urgent tasks:
-Tutorial for each fax SPI usage.

License

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.

Change Log

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