HylaFAX The world's most advanced open source fax server

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

[hylafax-users] Revised version of MS Word macro for mailmerge with whfc



	I sent this to Uli, but he hasn't had a chance to respond to the
changes I made.  So in the meantime, I thought I would share this with all
of the other Hylafax/whfc users.

	Mike

	
----------------------------------------------------------------------------
------------------------------------

	Sub MergeFax()
	'
	' MergeFax Macro
	' Macro created 08/11/98 by Keith Gray
	' Modified for full-blown Mailmerge 10/30/00 by Michael DeWitt
	'
	' This version will create a mailmerge with output for each record
to be merged and produce a PS file suitable for Hylafax. The script
	' was tested with word97 sr-1.  Consider the first page of your
merge document to be the cover page. The number of pages might be able to
	'be determined in VBA, but I just type it into the body of the
document (since all of the faxes are the same length.
	' How to use this script:
	'1. Create your mailmerge document
	'2. Run the mailmerge script setting your main document and data
source.
	'3. Modify the line setting datafields("fax") to be the correct name
of the fax number field in your merge document.
	'4. Make sure that the merge document is the "active" document (if
you have other documents open in Word).
	'5. call your hylafax printer (created for WHFC) "hylafax" or modify
the name in the script below. (it needn't be this printer, but why create
another PS Printer?

	'It is important to note that the WHFC does not support killtime as
of yet and so if you are sending a lot of faxes, you may find that some of
them are are killed before
	'they even get a chance to be sent.  In a dual modem hylafax server,
sending a 6 page fax, 5-6 faxes were aborted before they had a chance to be
	'sent.

	Dim whfc As Object
	Dim OLE_Return As Long
	Dim faxnum As String
	Dim SpoolFile As String

	Dim Template As String
	Dim Tempfile As String
	Dim mergedfile As String
	Dim Title As String
	Dim WhfcPrinter As String
	Dim Default_Active_Printer As String
	Dim Box_Return As Integer
	' MsgBox ActiveDocument.Name
	ActiveDocument.MailMerge.ViewMailMergeFieldCodes = True
	ActiveDocument.MailMerge.DataSource.ActiveRecord = wdLastRecord
	Numb_Faxes = ActiveDocument.MailMerge.DataSource.ActiveRecord
	ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord
	Template = ActiveDocument.Name

	For I = 1 To Numb_Faxes

	SpoolFile = Environ("Temp") & "\fax" & I & ".ps"

	Title = "WHFC Mail Merge to Fax Macro( Version 1.1 )"

	faxnum = ActiveDocument.MailMerge.DataSource.DataFields("fax")
'<===Change "fax" to be the correct name of the fax number field


	With ActiveDocument.MailMerge
	    .DataSource.FirstRecord = I
	    .DataSource.LastRecord = I
	    .Destination = wdSendTofile
	    .SuppressBlankLines = True
	    .Execute
	End With


	' MsgBox ActiveDocument.Name
	Tempfile = ActiveDocument.Name
	WhfcPrinter = "Hylafax"
	Default_Active_Printer = ActivePrinter
	'MsgBox ActivePrinter
	ActivePrinter = WhfcPrinter$

	'Note: background must be false in order to work - this is do to
some kind of bug in VBA

	Application.PrintOut FileName:="", Range:=wdPrintAllDocument, _
	    Item:=wdPrintDocumentContent, Copies:=1, Pages:="", _
	    PageType:=wdPrintAllPages, Collate:=True, Background:=False, _
	    PrintToFile:=True, OutputFileName:=SpoolFile, Append:=False

	  Set whfc = CreateObject("WHFC.OleSrv")
	  OLE_Return = whfc.SendFax(SpoolFile, faxnum, True)
	  ' MsgBox OLE_Return 'if you activate this you will see the fax job
number from hylafax.
	  If OLE_Return <= 0 Then
	    Box_Return = MsgBox("Error sending file", 16, Title)
	  Else
	    'Box_Return = MsgBox(OLE_Return, 0, Title)
	  End If
	  Set whfc = Nothing
	  
	Documents(Tempfile).Close (False)
	Documents(Template).Activate
	ActiveDocument.MailMerge.DataSource.ActiveRecord = wdNextRecord
	Next I

	ActivePrinter = Default_Active_Printer$
	End Sub


____________________ HylaFAX(tm) Users Mailing List _______________________
 To unsub: mail -s unsubscribe hylafax-users-request@hylafax.org < /dev/null




Project hosted by iFAX Solutions