////////////////////////////////////////////////////////////////////////////////////////////////////
// This example was designed for using in Delphi 7 or higher.
//
// 1. Microsoft Visio 2002 or above should be installed and activated on your PC.
//
// 2. Universal Document Converter 5.2 or above should be installed, too.
//
// 3. Add "Universal Document Converter Type Library" and "Microsoft Visio XX.0 Object Library" type libraries to the project.
// XX is the Microsoft Office version installed on your computer.
//
// Delphi 7:
// Use the Project | Import Type Library menu.
// Delphi 2006 or latter:
// Use the Component | Import Component menu.
//
// Clear the "Generate Component Wrapper" checkbox and click the "Create Unit" button (Delphi 7) or
// select the "Create Unit" option (Delphi 2006 or latter).
//
// 4. Notice that the number of Microsoft Visio's method parameters may depend on the Office version.
//
////////////////////////////////////////////////////////////////////////////////////////////////////
program VisioToTIFF;
{$APPTYPE CONSOLE}
uses
SysUtils,
Variants,
Windows,
Dialogs,
ActiveX,
UDC_TLB,
Visio_TLB;
procedure PrintVisioToTIFF(VisioFilePath: string);
var
objUDC: IUDC;
Printer: IUDCPrinter;
Profile: IProfile;
VisioApp: IVApplication;
Document: IVDocument;
Flags: SmallInt;
begin
//Create a UDC object and get its interfaces
objUDC := CoAPIWrapper.Create;
Printer := objUDC.get_Printers('Universal Document Converter');
Profile := Printer.Profile;
//Use Universal Document Converter API to change settings of converterd document//Load profile located in folder "%APPDATA%\UDC Profiles".//Value of %APPDATA% variable should be received using Windows API's SHGetSpecialFolderPath//or JCL's JclSysInfo.GetAppdataFolder function.//Or you can move default profiles into a folder you prefer.Profile.Load('Drawing to TIFF.xml');
Profile.OutputLocation.Mode := LM_PREDEFINED;
Profile.OutputLocation.FolderPath := 'c:\UDC Output Files';
Profile.PostProcessing.Mode := PP_OPEN_FOLDER;
//Run Microsoft Visio as COM-server
VisioApp := CoVisioApplication.Create;
VisioApp.Visible := True;
//Open document from file
Flags := visOpenRW or visOpenDontList or visOpenMacrosDisabled or visOpenHidden;
Document := VisioApp.Documents.OpenEx(VisioFilePath, Flags);
//Change document preferences for scaling it to page
Document.PrintCenteredH := True;
Document.PrintCenteredV := True;
Document.PrintFitOnPages := True;
//Print document
Document.Printer := 'Universal Document Converter';
Document.Print();
//Close document
Document.Saved := True;
Document.Close();
//Close Visio
VisioApp.Quit();
end;
var
TestFilePath: string;
begin
TestFilePath := ExtractFilePath(ParamStr(0)) + 'TestFile.vsd';
try
CoInitialize(nil);
try
PrintVisioToTIFF(TestFilePath);
finally
CoUninitialize;
end;
except
on E: Exception do
MessageDlg(E.ClassName + ' : ' + E.Message, mtError, [mbOK], 0);
end;
end.