223 lines
5.5 KiB
Plaintext
223 lines
5.5 KiB
Plaintext
unit umain;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
StdCtrls, ExtCtrls, ieview, imageenview, ComCtrls, imageenio, hyieutils, iexBitmaps,
|
|
hyiedefs, iesettings, iexLayers, iexRulers;
|
|
|
|
type
|
|
TMainForm = class(TForm)
|
|
PageControl1: TPageControl;
|
|
TabSheet1: TTabSheet;
|
|
rgpFormat: TRadioGroup;
|
|
Label3: TLabel;
|
|
TabSheet2: TTabSheet;
|
|
Label1: TLabel;
|
|
edtFilename: TEdit;
|
|
Label4: TLabel;
|
|
cmbPaperSize: TComboBox;
|
|
Label5: TLabel;
|
|
cmbCompression: TComboBox;
|
|
TabSheet3: TTabSheet;
|
|
ImageEnView1: TImageEnView;
|
|
Label2: TLabel;
|
|
btnNewFile: TButton;
|
|
TabSheet4: TTabSheet;
|
|
Page1Next: TButton;
|
|
Page2Next: TButton;
|
|
Page3Next: TButton;
|
|
btnRestart: TButton;
|
|
btnNewAcquire: TButton;
|
|
Label6: TLabel;
|
|
lblCreated: TLabel;
|
|
btnOpen: TButton;
|
|
chkBandW: TCheckBox;
|
|
procedure btnOpenClick(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure rgpFormatClick(Sender: TObject);
|
|
procedure FormActivate(Sender: TObject);
|
|
procedure Page1NextClick(Sender: TObject);
|
|
procedure Page2NextClick(Sender: TObject);
|
|
procedure Page3NextClick(Sender: TObject);
|
|
procedure btnRestartClick(Sender: TObject);
|
|
procedure btnNewFileClick(Sender: TObject);
|
|
procedure btnNewAcquireClick(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
public
|
|
{ Public declarations }
|
|
procedure AddPage;
|
|
end;
|
|
|
|
var
|
|
MainForm: TMainForm;
|
|
|
|
implementation
|
|
|
|
uses
|
|
iexWindowsFunctions;
|
|
|
|
{$R *.DFM}
|
|
{$R WindowsXP.RES}
|
|
|
|
|
|
procedure TMainForm.FormCreate(Sender: TObject);
|
|
begin
|
|
rgpFormatClick( nil );
|
|
end;
|
|
|
|
|
|
// Change file type
|
|
procedure TMainForm.rgpFormatClick(Sender: TObject);
|
|
var
|
|
a: TIOPDFPaperSize;
|
|
begin
|
|
cmbPaperSize.Clear;
|
|
if rgpFormat.ItemIndex = 0 then
|
|
begin
|
|
edtFilename.Text := IncludeTrailingBackslash( ExtractFilePath( Application.ExeName )) + 'Test.pdf';
|
|
for a := Low(TIOPDFPaperSize) to iepAuto do
|
|
cmbPaperSize.Items.Add(IEPaperSizeToStr(a));
|
|
end
|
|
else
|
|
begin
|
|
edtFilename.Text := IncludeTrailingBackslash( ExtractFilePath( Application.ExeName )) + 'Test.ps';
|
|
for a := Low(TIOPDFPaperSize) to iepTabloid do { iepAuto not supported for PS }
|
|
cmbPaperSize.Items.Add(IEPaperSizeToStr(a));
|
|
end;
|
|
cmbPaperSize.ItemIndex := 4;
|
|
end;
|
|
|
|
procedure TMainForm.FormActivate(Sender: TObject);
|
|
begin
|
|
cmbCompression.ItemIndex := 0;
|
|
PageControl1.Pages[1].TabVisible := false;
|
|
PageControl1.Pages[2].TabVisible := false;
|
|
PageControl1.Pages[3].TabVisible := false;
|
|
PageControl1.ActivePage := TabSheet1;
|
|
end;
|
|
|
|
// Page 1 Next
|
|
procedure TMainForm.Page1NextClick(Sender: TObject);
|
|
begin
|
|
PageControl1.Pages[0].TabVisible := false;
|
|
PageControl1.Pages[1].TabVisible := true;
|
|
PageControl1.ActivePage := TabSheet2;
|
|
end;
|
|
|
|
// Page 2 Next
|
|
procedure TMainForm.Page2NextClick(Sender: TObject);
|
|
begin
|
|
PageControl1.Pages[1].TabVisible := false;
|
|
PageControl1.Pages[2].TabVisible := true;
|
|
PageControl1.ActivePage := TabSheet3;
|
|
// create file
|
|
case rgpFormat.ItemIndex of
|
|
0:
|
|
begin
|
|
// Adobe PDF
|
|
|
|
// SET SIZE
|
|
ImageEnView1.IO.Params.PDF_PaperSize := IEStrToPaperSize(cmbPaperSize.Text, iepA4);
|
|
|
|
// SAVE IT
|
|
ImageEnView1.IO.CreatePDFFile( edtFilename.Text );
|
|
end;
|
|
1:
|
|
begin
|
|
// PostScript (PS)
|
|
|
|
// SET SIZE
|
|
ImageEnView1.IO.Params.PS_PaperSize := IEStrToPaperSize(cmbPaperSize.Text, iepA4);
|
|
|
|
// SAVE IT
|
|
ImageEnView1.IO.CreatePSFile( edtFilename.Text );
|
|
end;
|
|
end;
|
|
//
|
|
ImageEnView1.Blank;
|
|
end;
|
|
|
|
// Page 3 Next
|
|
procedure TMainForm.Page3NextClick(Sender: TObject);
|
|
begin
|
|
PageControl1.Pages[2].TabVisible := false;
|
|
PageControl1.Pages[3].TabVisible := true;
|
|
PageControl1.ActivePage := TabSheet4;
|
|
//
|
|
case rgpFormat.ItemIndex of
|
|
0:
|
|
// Adobe PDF
|
|
ImageEnView1.IO.ClosePDFFile;
|
|
1:
|
|
// PostScript (PS)
|
|
ImageEnView1.IO.ClosePSFile;
|
|
end;
|
|
end;
|
|
|
|
// Another page
|
|
procedure TMainForm.btnRestartClick(Sender: TObject);
|
|
begin
|
|
PageControl1.Pages[3].TabVisible := false;
|
|
PageControl1.Pages[0].TabVisible := true;
|
|
PageControl1.ActivePage := TabSheet1;
|
|
end;
|
|
|
|
// Add current image to the PDF/PS
|
|
procedure TMainForm.AddPage;
|
|
const
|
|
PDFCompression: array[0..3] of TIOPDFCompression = (ioPDF_RLE, ioPDF_G3FAX2D, ioPDF_G4FAX, ioPDF_JPEG);
|
|
PSCompression: array[0..3] of TIOPSCompression = (ioPS_RLE, ioPS_G3FAX2D, ioPS_G4FAX, ioPS_JPEG);
|
|
begin
|
|
case rgpFormat.ItemIndex of
|
|
0:
|
|
begin
|
|
// Adobe PDF
|
|
ImageEnView1.IO.Params.PDF_Compression := PDFCompression[cmbCompression.ItemIndex];
|
|
ImageEnView1.IO.SaveToPDF;
|
|
end;
|
|
1:
|
|
begin
|
|
// PostScript (PS)
|
|
ImageEnView1.IO.Params.PS_Compression := PSCompression[cmbCompression.ItemIndex];
|
|
ImageEnView1.IO.SaveToPS;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TMainForm.btnOpenClick(Sender: TObject);
|
|
begin
|
|
WindowsLaunchFile( Handle, edtFilename.Text );
|
|
end;
|
|
// New Page
|
|
procedure TMainForm.btnNewFileClick(Sender: TObject);
|
|
var
|
|
filename: string;
|
|
begin
|
|
filename := ImageEnView1.IO.ExecuteOpenDialog('', '', false, 1, '');
|
|
if filename <> '' then
|
|
begin
|
|
ImageEnView1.IO.LoadFromFile(filename);
|
|
if chkBandW.checked then
|
|
begin
|
|
// Convert the image to black/white
|
|
ImageEnView1.proc.ConvertToBWOrdered;
|
|
imageenview1.io.params.BitsPerSample:=1;
|
|
imageenview1.io.params.SamplesPerPixel:=1;
|
|
end;
|
|
AddPage;
|
|
end;
|
|
end;
|
|
|
|
// New page from scanner
|
|
procedure TMainForm.btnNewAcquireClick(Sender: TObject);
|
|
begin
|
|
if ImageEnView1.IO.SelectAcquireSource and ImageEnView1.IO.Acquire then
|
|
AddPage;
|
|
end;
|
|
|
|
end.
|
|
|