Java Fax - Fetch the Image of a Submitted Fax
The GetFaxImage method, demonstrated in the following Java fax API snippet, retrieves the image of a previously-submitted, outbound fax.
The GetFaxImage code sample is also available as part of the ZIP file above (see the green 'Download' box), under the path interfaxJavaSamples > src > GetStatusWithFaxStatusEx.
This Java fax example retrieves the image of an outbound fax:
import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import net.interfax.outbound.GetFaxImage; import net.interfax.outbound.GetFaxImageResponse; import net.interfax.outbound.TestUtils; public class FetchFaxImage { /******** Begin settings ********/ static String USERNAME = ""; // Enter your Interfax username here static String PASSWORD = ""; // Enter your Interfax password here static int TRANSACTION_ID = 123266916; // Enter the transaction ID for which data // is to be retrieved, or "999999999" for // the most recent transaction(s) /******** End settings ********/ public static void main(String[] anArgs) { try { net.interfax.outbound.InterFaxSoapStub theBinding = (net.interfax.outbound.InterFaxSoapStub)new net.interfax.outbound.InterFaxLocator().getInterFaxSoap(); theBinding.setTimeout(60000); // Send a simple text fax using the InterFax sendFax() web service method. System.out.println("Retrieving Fax using getFaxImage()."); GetFaxImage params = new GetFaxImage(USERNAME, PASSWORD, TRANSACTION_ID, null // byte[] for image ); GetFaxImageResponse response = theBinding.getFaxImage(params); response.getGetFaxImageResult(); System.out.println("getFaxImage() call returned with code: " + response.getGetFaxImageResult()); System.out.println("Image size: " + response.getImage().length); String filename = Integer.toString( TRANSACTION_ID ) + ".tif"; TestUtils.writeFile(filename,response.getImage()); } catch(Exception theE) { theE.printStackTrace(); } } /** * Helper method for writing a byte[] to a local file. */ public static void writeFile(String aFilename, byte[] aFileData) throws Exception { if(null==aFilename) { throw new NullPointerException("aFilename is null"); } if(null==aFileData) { throw new NullPointerException("aFileData is null"); } File theFile = new File(aFilename); theFile.createNewFile(); InputStream theIs = new BufferedInputStream(new ByteArrayInputStream(aFileData)); OutputStream theOs = new FileOutputStream(theFile); byte theBuffer[] = new byte[1024]; int theBytesRead; try { while((theBytesRead=theIs.read(theBuffer)) != -1) { if( theBytesRead < 1024 ) { byte theSlice[] = new byte[theBytesRead]; System.arraycopy(theBuffer, 0, theSlice, 0, theBytesRead); theOs.write(theSlice); } else { theOs.write(theBuffer); } } } finally { theIs.close(); theOs.close(); } System.out.println("Fax image saved to file: " + theFile.getAbsolutePath()); } }
