PayPal Verified
FaxAmatic
ElectraSoft's Fax Software Solutions
PayPal Verified

ElectraSoft try before you buy FaxAmatic software. Send and receive fax from a single computer or network, single fax modem or multiple modems. Send and forward fax using modem, email, Internet.

FaxAmatic
Interface Computer to Fax Machines
Interface Fax Machines to Computer
Interface your Computer to all the Fax Machines in the World via fax modem. Send fax with modem, email, Internet.

All the Fax Machines in the world are your printers with ElectraSoft's FaxAmatic software.

by ElectraSoft

This faxing software includes Vista 64 bit fax, Vista 32 bit fax, Windows XP fax, Windows 7 fax, and all other Windows 32 bit and 64 bit fax drivers. The 64 bit print to fax supports all 64-bit and 32 bit Windows operating systems includes x86, x64, EM64T, amd64 and ia64.

FaxAmatic Screen Shots
FaxAmatic Tutorial.
FaxAmatic Frequently Asked Questions.
[Fax software programs - Select a fax program] - [Testimonials and good reasons to buy from ElectraSoft]
Drive/Directory security issues
More information on FaxAmatic Install FaxAmatic on your computer Buy FaxAmatic
Options include: Send faxes via the Internet, send faxes by email, send faxes by fax modem, and the ability to forward all incoming fax to an email address in TIFF or PDF format.
Send fax via your Internet connection using our built in fax API. If your fax recipient has an email address, this fax software program will fax email it to them by attaching the fax to an email and do an email fax to them in TIFF or PDF format.

Testimonial from a satisfied customer:
I work away from the office a lot. I can access email but not fax. I have orders which are faxed to me. ElectraSoft's fax software forwards these faxes to my email account where I can access them as PDF or TIF files. PDF is Portable Document Format (PDF) and can be read with Adobe Reader and many other Windows software applications. TIF is Tagged Image File Format (TIFF or TIF) and can be read with most Windows software applications.


About: FaxAmatic

FaxAmatic is popular with oil companies because it handles downhole well log image faxing.

Imagine being able to sit down at your computer in the morning and use it just as you would on a regular day, knowing that it is sending faxes for everyone in your entire office.

Now, this is a reality with FaxAmatic.

Let me show you just how it works...
  • FaxAmatic will send and receive fax with single computer and modem or network with multiple modems.
  • Install FaxAmatic on your computer and it will use your modem(s) to send and receive faxes, in the background, as you work on other projects.
  • Single Computer and One Modem Support: The first screen of the install has two options. [Single Computer, Beginners, Quick and Easy] and [Multiple Modems, Multiple Workstations, Custom Step by Step]. You want to select the [Single Computer, Beginners, Quick and Easy] option.
  • Network Support: When installing, you will want to select the [Multiple Modems, Multiple Workstations, Custom Step by Step] option. Now you can assign any one of your many workstations to be the fax server. Once established all the workstations on the Network running FaxAmatic can send faxes from their own computer, with the same ease and reliability that FaxAmatic has become famous for. Then, and here's the good part, the person who is using the workstation that has been designated the fax server can let it run in the background, while he or she goes about business as usual. No need for a dedicated fax server. You just need a Workstation with at least one fax modem.
  • FaxAmatic does everything the current ElectraSoft fax program does and then some. It will send and receive fax with single computer and modem or network with multiple modems. FaxAmatic will add a fax generating print driver to your system, giving you the ability to generate a fax from any document and send to any and all fax machines in the world. This means that if you are sending a fax to a group of people, you can send four times faster. Compared to the other ElectraSoft fax programs, FaxAmatic has a new interface with a little different look and feel. You can configure FaxAmatic to not interfere with the functionality of your modem while FaxAmatic is running. You can import your FaxBooks from any other ElectraSoft fax program into FaxAmatic.
  • If you are using our fax software with 1 modem, we recommend fax modems made by ZyXel. Go to ZyXel for a good fax modem.
  • If you want to send faxes out on more than one phone line at a time, you can do that now with our new fax program, FaxAmatic! With FaxAmatic, you can take advantage of using more than one modem at a time, on one computer. You can either have up to 4 modems on one computer or you can get a 4-in-one modem card, that can support 4 phone lines. Here are a couple of sites that have 4 port/line modems available. Mainpine and Perle If you use one of these modems, please share your experience with us.
  • Start your office toward an edge in productivity. Become one of the well equipped workplaces of the future. Do it today!
This ElectraSoft fax software includes the world famous ElectraSoft Print to Fax faxmaker, which lets you create faxes from any printable files such as documents, text, bitmaps, pictures, etc. The ElectraSoft Print to Fax faxmaker is the fastest fax creator converter in the world. Some people call it a fax maker, while others call it a fax creator, fax converter, or fax generator. With the ElectraSoft Print to Fax, all the fax machines in the world are your printers. If you can print, you can fax!

Who Uses ElectraSoft Software?

ElectraSoft software is used by many well known establishments including military, government, education, medical, business, and individuals.

Some users of ElectraSoft software include, United States Armed Forces, United States Senate, University of Utah, Central Iowa Health Care System, San Diego Health Department, IBM, and millions of small businesses and individuals.

More Information
FaxAmatic Readme, UpgradesFaxAmatic Readme, Upgrades
FaxAmatic TutorialFaxAmatic Tutorial
FaxAmatic Screen ShotFaxAmatic Screen Shots
FaxAmatic Manual, Fax APIFaxAmatic Manual, Fax API
Run FaxAmatic as an NT ServiceRun FaxAmatic as an NT Service
Read This Before Installing FaxAmaticRead This Before Installing FaxAmatic
FaxAmatic Frequently Asked QuestionsFaxAmatic Frequently Asked Questions
FaxAmatic Frequently Asked QuestionsFaxAmatic Q and A


Send Faxes Programmatically

Send Fax Programmatically Using Your Program's FaxBook system (API)

You can use our free fax API to send faxes programmatically from the programs that you write, by using the following [Fax API] source-code.

If you want to create your own send fax program the simple and easy way, just write your own simple fax program and let it take advantage of our free fax API. This API has over 30 man years of development.

In just a few minutes from now, you can write a send fax program that takes advantage of our powerful Fax API.

If you want to write a fax program using our [Fax API] with one of our fax programs, and want more help than what is included in this manual, you can buy our [Extended Fax API]. The [Extended Fax API] includes many easy to use functions and sophisticated source-code. Just call Jon Krahmer at 281-499-8246, or email him at eMail Jon Krahmer or eMail ElectraSoft and you will receive the [Extended Fax API] kit and personalized tech-support for only $499.99.

There are two methods to use this API...

Method 1, the simplest method: Read Item 12 - Faxing, [Convert/Forward Document to Fax and Send...]
    You will need to create a comma delimited file called:
    ?:\faxmatic\data\DocToFax.del
    Where the ? is the drive that you installed FaxAmatic on. The DocToFax.del
    file can have as many lines in it as you want. One for each recipient.
    Code example:
    LOOP:
    o CREATE the ?:\faxmatic\data\DocToFax.del file
    o Copy document into ?:\faxmatic\data\DocToFax
    o WAIT until FaxAmatic deletes document from
    ?:\faxmatic\data\DocToFax
    o If done EXIT else back to LOOP
    EXIT:
    
Method 2:
    You will need to create a comma delimited file called:
    ?:\faxmatic\tmpfiles\send2fax.del
    Where the ? is the drive that you installed FaxAmatic on. The send2fax.del
    file can have as many lines in it as you want. One for each recipient.
    DocToFax.del and send2fax.del Format:
    3, 5 or 6 field comma delimited file with the following format:
    "Y/N(header at top of fax)","Recipient","FaxNumber"
    or:
    "Y/N(header at top of fax)","Recipient","FaxNumber","Scheduled Date",
    "Scheduled Time"
    or:
    "Y/N(header at top of fax)","Recipient","FaxNumber","Scheduled Date",
    "Scheduled Time","Subject","Fax From Name"
    HeaderYN:
    A 1 character field consisting of either Y or N
    Recipient:
    A 31 character field consisting of the Recipient
    FaxNumber:
    A 46 character field consisting of a Fax Number
    The next 2 fields are optional...
    Scheduled Date:
    A 10 character field consisting of the day to send the Fax
    Scheduled Time:
    A 10 character field consisting of the time to send the Fax
    Example:
    "Y","Jon Krahmer","1-281-499-5939"
    or:
    "Y","Jon Krahmer","1-281-499-5939","07-15-2002","10:30:00am"
    or:
    "Y","Jon Krahmer","1-281-499-5939","07-15-2001","10:30:00am","Subject","Fax From Name"
    FaxAmatic must be running in the background. The
    ?:\faxmatic\tmpfiles\send2fax.del file must be create in the FaxAmatic
    directory. Print to the ElectraSoft Print to Fax. The ElectraSoft Print to
    Fax will create a ?:\esfax\fax file. FaxAmatic will see this file, convert
    it to a fax and call the Send Fax box. The Send Fax will see the
    ?:\faxmatic\tmpfiles\send2fax.del file and instead of it's normal routine,
    it will work invisibly to send the fax as per the
    ?:\faxmatic\tmpfiles\send2fax.del file and then delete
    ?:\faxmatic\tmpfiles\send2fax.del. The next time you load the Send Fax box,
    it will work as normal.
    Code example:
    LOOP:
    o CREATE the send2fax.del file
    o PRINT document to: ElectraSoft Print to Fax
    o WAIT until FaxAmatic deletes send2fax.del
    o If done EXIT else back to LOOP
    EXIT:
    //============================== StartData ==============================
    char szStr1024[1024];
    char szSend2Fax_Del[]={ "c:\\faxmatic\\tmpfiles\\send2fax.del"};
    char szFaxToThisRecipient1[1024]=
    {
    "\"Y\",\"ElectraSoft\",\"1-281-499-5939\""
    };
    char szFaxToThisRecipient2[1024]=
    {
    "\"Y\",\"ElectraSoft\",\"1-281-499-5939\",\"2001-06-15\",\"10:30:00am\""
    };
    char szFaxToThisRecipient3[1024]=
    {
    "\"Y\",\"ElectraSoft\",\"1-281-499-5939\",\"2001-06-15\",\"10:30:00am\"",\"Subject\""
    };
    int iNumOfDocsToFaxToThisRecipient=3;
    //=============================== EndData ===============================
    //=========================== StartPrototypes ===========================
    void MyProgramsFaxProc(void);
    BOOL PrintTheseDocsToElectraSoftPrintToFax(int iNumOfPrintJobs,
    char* pszFaxToThisRecipient);
    BOOL PrintJobToElectraSoftPrintToFax(int iJob);
    BOOL WaitForElectraSoftPrintToFax(void);
    BOOL CreateSend2Fax_Del(char *pszFaxToThisRecipient);
    void DelayMs(DWORD dwMs);
    //============================ EndPrototypes =============================
    //============================== StartCode ===============================
    //======================================================================
    //| Example of what a call to PrintTheseDocsToElectraSoftPrintToFax may
    //| look like.
    //======================================================================
    void MyProgramsFaxProc(void)
    {
    char szErrorMessageCption[]=
    {
    "MyProgramsFaxProc return value"
    };
    char szReturnedFalse[]=
    {
    "MyProgramsFaxProc returned FALSE"
    };
    char szReturnedTrue[]=
    {
    "MyProgramsFaxProc returned TRUE"
    };
    //======================================================================
    //| Remove comments and replace with your application specific
    //| source-code.
    //======================================================================
    //Init MyProgramsFaxProc() and get set vars.
    if(PrintTheseDocsToElectraSoftPrintToFax( iNumOfDocsToFaxToThisRecipient,
    szFaxToThisRecipient1)==TRUE)
    {
    ::MessageBox(GetForegroundWindow(),szReturnedTrue,
    szErrorMessageCption,MB_ICONSTOP|MB_OK);
    }
    else
    {
    ::MessageBox(GetForegroundWindow(),szReturnedFalse,
    szErrorMessageCption,MB_ICONSTOP|MB_OK);
    }
    }
    //========================================================================
    //| BOOL PrintTheseDocsToElectraSoftPrintToFax(int iNumOfPrintJobs,
    //|                                        char* pszFaxToThisRecipient);
    //|=--------------------------------------------------------------------=
    //| BOOL PrintTheseDocsToElectraSoftPrintToFax(int iNumOfPrintJobs,
    //|                                        char* pszFaxToThisRecipient);
    //| will send(put in SendQueue) 1 or more documents to
    //| pszFaxToThisRecipient.
    //|
    //| In this example, the FaxNumber is hard-coded to szFaxToThisRecipient1.
    //|
    //| You, as a programmer, will replace szFaxToThisRecipient1 with a
    //| variable. If sending 1 or more documents to a list of 1 or more
    //| FaxNumbers, incrementally set szFaxToThisRecipient1 to a different
    //| FaxNumber in the list, and call PrintTheseDocsToElectraSoftPrintToFax
    //| once for each FaxNumber that you want to send the fax/faxes to.
    //========================================================================
    BOOL PrintTheseDocsToElectraSoftPrintToFax(int iNumOfPrintJobs,
    char* pszFaxToThisRecipient)
    {
    BOOL bRet=TRUE;
    //====================================================================
    //| LOOP
    //====================================================================
    for(int iJob=1;iJob<=iNumOfPrintJobs;iJob++)
    {
    //====================================================================
    //| CREATE the send2fax.del file
    //====================================================================
    if(CreateSend2Fax_Del(pszFaxToThisRecipient)==FALSE)
    {
    bRet=FALSE;
    break;
    }
    //====================================================================
    //| PRINT document to: ElectraSoft Print to Fax
    //====================================================================
    if(PrintJobToElectraSoftPrintToFax(iJob)==FALSE)
    {
    bRet=FALSE;
    break;
    }
    //====================================================================
    //| WAIT until FaxAmatic deletes send2fax.del
    //====================================================================
    if(WaitForElectraSoftPrintToFax()==FALSE)
    {
    bRet=FALSE;
    break;
    }
    //====================================================================
    //| If done EXIT else back to LOOP
    //====================================================================
    }//End------for(int iJob=1;iJob<=iNumOfPrintJobs;iJob++)
    //====================================================================
    //| EXIT
    //====================================================================
    return(bRet);
    }
    BOOL CreateSend2Fax_Del(char *pszFaxToThisRecipient)
    {
    int iSend2Fax_Del;
    if((iSend2Fax_Del=_open(szSend2Fax_Del,_O_CREAT|_O_TRUNC|_O_BINARY|_O_RDWR,_S_IREAD|_S_IWRITE)) < 0)
    {
    sprintf(szStr1024,"Could not create:\n"
    "%s"
    ,szSend2Fax_Del);
    ::MessageBox(GetForegroundWindow(),
    szStr1024,szAppsMsgCaption,MB_OK | MB_ICONSTOP);
    return(FALSE);
    }
    if(_write(iSend2Fax_Del,pszFaxToThisRecipient,
    (WORD)strlen(pszFaxToThisRecipient)) !=
    (int)strlen(pszFaxToThisRecipient))
    {
    _close(iSend2Fax_Del);
    return(FALSE);
    }
    _close(iSend2Fax_Del);
    return(TRUE);
    }
    BOOL PrintJobToElectraSoftPrintToFax(int iJob)
    {
    //======================================================================
    //| Remove comments and replace with your application specific
    //| source-code.
    //======================================================================
    //if(Your Print Routine Fails)
    //{
    //  return(FALSE);
    //}
    return(TRUE);
    }
    BOOL WaitForElectraSoftPrintToFax(void)
    {
    for(int iWait=0;;iWait++)
    {
    if(_access(szSend2Fax_Del,0)!=0)
    {
    break;
    }
    //===============================================================
    //| 100 ms X 300 loops == 30000 ms == 30 seconds to time-out.
    //===============================================================
    DelayMs(100);
    if(iWait==300)
    {
    if(::MessageBox(GetForegroundWindow(),
    "Last print job not done."
    ,"Apps Caption"
    ,MB_DEFBUTTON1|MB_ICONQUESTION|MB_RETRYCANCEL)==IDCANCEL)
    {
    return(FALSE);
    }
    iWait=0;
    }
    }
    return(TRUE);
    }
    void DelayMs(DWORD dwMs)
    {
    MSG msg;
    struct _timeb timebCurTime;
    DWORD dwCurTime,dwStopTime,dwSleepTime;
    dwSleepTime=(dwMs/10);
    if(dwSleepTime<1) dwSleepTime = 1;
    if(dwSleepTime>100) dwSleepTime = 100;
    _ftime(&timebCurTime);
    dwStopTime=(((timebCurTime.time * 1000) + timebCurTime.millitm) + dwMs);
    do
    {
    Sleep(dwSleepTime);
    if(PeekMessage(&msg,NULL,0,0,PM_REMOVE)!=FALSE)
    {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
    }
    _ftime(&timebCurTime);
    dwCurTime=((timebCurTime.time*1000) + timebCurTime.millitm);
    if(iTimeChangeFg>0)
    {
    --iTimeChangeFg;
    break;
    }
    }while(dwCurTime < dwStopTime);
    }
    //=============================== EndCode ================================
    


Contact ElectraSoft

For assistance send email to ElectraSoft Send email to ElectraSoft
Stats

12568030

ElectraSoft Home Page