1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
////////////////////////////////////////////////////////////////////////////////////
// This example was designed to be used in Delphi 7 or higher.
//
// 1. Adobe Acrobat version 4.0 or higher should be installed and activated on your PC.
// Adobe Acrobat Reader does not have COM interface and cannot be used as COM-server
//
// 2. Universal Document Converter version 5.2 or higher should be installed as well
//
// 3. Add Universal Document Converter Type Library and
// Adobe Acrobat XX.0 Type Library type libraries to the project.
// XX is the Adobe Acrobat 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).
//
////////////////////////////////////////////////////////////////////////////////////
program PDFToJPEG;
{$APPTYPE CONSOLE}
uses
SysUtils,
Variants,
Windows,
Dialogs,
ActiveX,
ComObj,
UDC_TLB,
Acrobat_TLB;
procedure PrintPDFtoJPEG(PDFFilePath: string);
var
objUDC: IUDC;
Printer: IUDCPrinter;
Profile: IProfile;
AcroApp: Variant;
AVDoc: Variant;
PDDoc: Variant;
nPages: Integer;
nPSLevel, bBinaryOk, bShrinkToFit, bNoSave: Integer;
begin
//Create a UDC object and get its interfaces
objUDC := CoAPIWrapper.Create;
Printer := objUDC.get_Printers('Universal Document Converter');
Profile := Printer.Profile;
//Adobe Acrobat API allow to print only on the default printer
objUDC.DefaultPrinter := 'Universal Document Converter';
//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('PDF to JPEG.xml');
Profile.OutputLocation.Mode := LM_PREDEFINED;
Profile.OutputLocation.FolderPath := 'c:\UDC Output Files';
Profile.PostProcessing.Mode := PP_OPEN_FOLDER;
AcroApp := CreateOleObject('AcroExch.App');
AVDoc := AcroApp.GetActiveDoc;
//Open PDF document from file
AVDoc.Open(PDFFilePath, '');
PDDoc := AVDoc.GetPDDoc;
nPages := PDDoc.GetNumPages;
//Print all pages of the document
nPSLevel := 0;
bBinaryOk := 1; //true
bShrinkToFit := 1; //true
AVDoc.PrintPagesSilent(0, nPages - 1, nPSLevel, bBinaryOk, bShrinkToFit);
//Close the document
bNoSave := 1;
AVDoc.Close(bNoSave);
//Close Acrobat
AcroApp.Exit;
end;
var
TestFilePath: string;
begin
TestFilePath := ExtractFilePath(ParamStr(0)) + 'carrefour-family-day-4140.pdf';
try
CoInitialize(nil);
try
PrintPDFtoJPEG(TestFilePath);
finally
CoUninitialize;
end;
except
on E: Exception do
MessageDlg(E.ClassName + ' : ' + E.Message, mtError, [mbOK], 0);
end;
end. |
Partager