Login   Register  
PHP Classes
elePHPant
Icontem

File: wordconvert.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of alain samoun  >  MS files converter  >  wordconvert.php  >  Download  
File: wordconvert.php
Role: ???
Content type: text/plain
Description: wordconvert Class
Class: MS files converter
Convert any document that can be read by MS Word
Author: By
Last change:
Date: 2001-11-19 12:58
Size: 3,848 bytes
 

Contents

Class file image Download
<?php
/* Class to convert any document, that can be read by MS Word, to another format supported by Word.
	 * © Alain M. Samoun 10/2001.
 	* alain@samoun.com
	* Gnu GPL code (see www.fsf.org for more information).
	* Tested on win98 + Apache1.3  PHP 4.8 dev as CGI  - Word 2000
	* This file should be saved in the PHP's include directory.
	*If you try to use COM in XP/win2k or NT, you need to 
         set-up permissions to the application
 	with the program DCOMCNFG.EXE : 
	Run DCOMCNFG.exe, select the application and add permissions
        in Security:
	- Custom Access Permissions: “Allow” 
	Then Edit / Add
	- the “IUSR_<servername>” user access to the object.- The user
          account to run the application: “The interactive user” 
	And close.
	* Usage:
	<?php
		require ("wordconvert.php");
		new wordconvert($filename,$convert_to,$visible);
	?>
	* Conversion time example: Convert a 33 pages rtf document (133KB)
          to an htm file (268KB)in 6 sec. (300MHz processor). Not a speed 
          daemon, but will work for small files on servers
	  with low hits number (Intranet...).
*/
	class wordconvert
	{

      	  /* variables */
	var $filename;	# Original File name with optional path.
			# If no path provided, will be looked for in 
                        # My Documents.
	var $convert_to=0;  	
                       # Extension (as a string) or number (See Doc on 
                       # SaveAs method below),doc extension is the default.
	var $visible=0;# 0=Hidden, 1= Visible, hidden is the default.
	
     	 /* Constructor */

     		function wordconvert($filename,$convert_to=0,$visible=0) 
       		{
       			if (!file_exists($filename))
			{
				echo "File $filename doesn't exist";
				exit();
			}

       			$filename_path=  substr($filename,0,-4);
			
			if (is_string ($convert_to))
			{
				$convert_to= strtolower($convert_to);
			
				 switch ($convert_to) 
				 {
     					case "doc":
     						$convert_to=0;
     						Break;
     					case "dot":
     						$convert_to=1;
     						Break;
     					case "txt":
     						$convert_to=2;
     						Break;
     					case "rtf":
     						$convert_to=6;
     						Break;
     					case "htm":
     						$convert_to=8;
     						Break;
     					case "html":
     						$convert_to=8;
     						Break;
     					case "asc":
     						$convert_to=9;
     						Break;
     					case "wri":
      						$convert_to=13;
     						Break;
     					case "wps":
      						$convert_to=28;
     						Break;
     					default:
     						$convert_to=0;
     				}
     			}
			# Instantiate MSWord
 			$word=new COM("Word.Application") or die("Cannot start MS Word");
 	
 			$word->visible = $visible ;
 	
			#Open the original file in word.
			$word->Documents->Open($filename)or die("Cannot find file to convert");

/* 
Doc on SaveAs method:
 expression.SaveAs(FileName, FileFormat, LockComments, Password, AddToRecentFiles, WritePassword, ReadOnlyRecommended, EmbedTrueTypeFonts, SaveNativePictureFormat, SaveFormsData, SaveAsAOCELetter)
 Only the two first parameters are supported in this class.
File save format number to use ( WdSaveFormat prop. ):
  wdFormatDocument = 0;  wdFormatTemplate = 1;  wdFormatText = 2;  wdFormatTextLineBreaks = 3;
  wdFormatDOSText = 4;  wdFormatDOSTextLineBreaks = 5;  wdFormatRTF = 6;  wdFormatUnicodeText = 7;
  Extensions=number: doc=0,dot =1,txt=2,htm=8,asc=9,wri=13,doc(word perfect DOS)=24,wps(works)=28
*/


			#Save the new file
			$word->ActiveDocument->SaveAs($filename_path,$convert_to); 

 /*
 Doc on quit method:
 expression.Quit(SaveChanges, Format, RouteDocument)
 */
 
			$word->quit(0); #0: Quit without saving
			# print "done!";
	
		}#End of func
	
	}#End of class
?>