📄 faxconv.pas
字号:
unit Faxconv;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, IniFiles,
Forms, Dialogs, StdCtrls, FileCtrl, OoMisc, AdFaxCvt, ExtCtrls, AdMeter,
Mask, ComCtrls, RichEdit2,jpeg;
type
TFaxConversionForm = class(TForm)
btnOK: TButton;
ApdFaxConverter1: TApdFaxConverter;
btnConvert: TButton;
GroupBox2: TGroupBox;
cbxEnhTextEnabled: TCheckBox;
btnEnhFont: TButton;
FontDialog1: TFontDialog;
Label3: TLabel;
Label4: TLabel;
rgpResolution: TRadioGroup;
RadioGroup2:TRadioGroup;
Label5: TLabel;
rgpWidth: TRadioGroup;
Label6: TLabel;
GroupBox3: TGroupBox;
cbxCenterImage: TCheckBox;
cbxYield: TCheckBox;
cbxYieldOften: TCheckBox;
lblFontName: TLabel;
lblFontSize: TLabel;
edtLeftMargin: TMaskEdit;
edtTopMargin: TMaskEdit;
edtLinesPerPage: TMaskEdit;
edtTabStop: TMaskEdit;
GroupBox1: TGroupBox;
Label2: TLabel;
edtOutFileName: TEdit;
Label1: TLabel;
edtFileName: TEdit;
btnBrowseInFile: TButton;
Button2: TButton;
OpenDialog1: TOpenDialog;
RadioGroup1: TRadioGroup;
Label7: TLabel;
CheckBox1: TCheckBox;
RichEdit981: TRichEdit98;
RichEdit982: TRichEdit98;
Image2: TImage;
Image1: TImage;
procedure FormCreate(Sender: TObject);
procedure btnConvertClick(Sender: TObject);
procedure ApdFaxConverter1Status(F: TObject; Starting, Ending: Boolean;
PagesConverted, LinesConverted: Integer; BytesConverted,
BytesToConvert: Longint; var Abort: Boolean);
procedure btnEnhFontClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure cbxCenterImageClick(Sender: TObject);
procedure cbxYieldClick(Sender: TObject);
procedure cbxYieldOftenClick(Sender: TObject);
procedure rgpResolutionClick(Sender: TObject);
procedure rgpWidthClick(Sender: TObject);
procedure edtLeftMarginExit(Sender: TObject);
procedure edtTopMarginExit(Sender: TObject);
procedure edtLinesPerPageExit(Sender: TObject);
procedure edtTabStopExit(Sender: TObject);
procedure btnBrowseInFileClick(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure RadioGroup2Click(Sender: TObject);
procedure edtFileNameExit(Sender: TObject);
procedure btnOKClick(Sender: TObject);
private
{ Private declarations }
Meter: TApdMeter;
public
{ Public declarations }
Cancelled : Boolean;
LastInDir,
LastOutDir: String;
end;
const
IniName = 'TCom3.ini';
crHand = 1;
var
FaxConversionForm: TFaxConversionForm;
//选择内容
implementation
uses Faxcnvid, RotateUnit,CovertBmp, FDConvrt;
{$R *.DFM}
procedure TFaxConversionForm.FormCreate(Sender: TObject);
var
Ini: TIniFile;
begin
Meter := TApdMeter.Create(Self);
Meter.Parent := Self;
Meter.Top := btnConvert.Top;
Meter.Left := GroupBox1.Left;
Meter.Width := btnConvert.Left - GroupBox1.Left - 8;
Meter.Height := btnConvert.Height;
Meter.Visible := True;
Cancelled := False;
Ini := TIniFile.Create(IniName);
try
LastInDir := Ini.ReadString('FaxConvert', 'LastInDir', ExtractFilePath(Application.ExeName));
LastOutDir := Ini.ReadString('FaxConvert', 'LastOutDir', ExtractFilePath(Application.ExeName));
cbxEnhTextEnabled.Checked := Ini.ReadBool('FaxConvert', 'EnhTextEnabled', True);
ApdFaxConverter1.EnhFont.Name := Ini.ReadString('FaxConvert', 'EnhFont.Name', Font.Name);
ApdFaxConverter1.EnhFont.Size := Ini.ReadInteger('FaxConvert', 'EnhFont.Size', Font.Size);
ApdFaxConverter1.LeftMargin := Ini.ReadInteger('FaxConvert', 'LeftMargin', 50);
ApdFaxConverter1.TopMargin := Ini.ReadInteger('FaxConvert', 'TopMargin', 0);
ApdFaxConverter1.LinesPerPage := Ini.ReadInteger('FaxConvert', 'LinesPerPage', 60);
ApdFaxConverter1.TabStop := Ini.ReadInteger('FaxConvert', 'TabStop', 4);
ApdFaxConverter1.Options := [];
if Ini.ReadBool('FaxConvert', 'Options.DoubleWidth', True) then
ApdFaxConverter1.Options := ApdFaxConverter1.Options + [coDoubleWidth];
if Ini.ReadBool('FaxConvert', 'Options.HalfHeight', False) then
ApdFaxConverter1.Options := ApdFaxConverter1.Options + [coHalfHeight];
if Ini.ReadBool('FaxConvert', 'Options.CenterImage', True) then
ApdFaxConverter1.Options := ApdFaxConverter1.Options + [coCenterImage];
if Ini.ReadBool('FaxConvert', 'Options.Yield', True) then
ApdFaxConverter1.Options := ApdFaxConverter1.Options + [coYield];
if Ini.ReadBool('FaxConvert', 'Options.YieldOften', False) then
ApdFaxConverter1.Options := ApdFaxConverter1.Options + [coYieldOften];
ApdFaxConverter1.Resolution := TFaxResolution(Ini.ReadInteger('FaxConvert', 'Resolution', Ord(frNormal)));
ApdFaxConverter1.Width := TFaxWidth(Ini.ReadInteger('FaxConvert', 'Width', Ord(fwNormal)));
lblFontName.Caption := ApdFaxConverter1.EnhFont.Name;
lblFontSize.Caption := 'Size: ' + IntToStr(ApdFaxConverter1.EnhFont.Size);
edtLeftMargin.Text := IntToStr(ApdFaxConverter1.LeftMargin);
edtTopMargin.Text := IntToStr(ApdFaxConverter1.TopMargin);
edtLinesPerPage.Text := IntToStr(ApdFaxConverter1.LinesPerPage);
edtTabStop.Text := IntToStr(ApdFaxConverter1.TabStop);
cbxCenterImage.Checked := coCenterImage in ApdFaxConverter1.Options;
cbxYield.Checked := coYield in ApdFaxConverter1.Options;
cbxYieldOften.Checked := coYieldOften in ApdFaxConverter1.Options;
rgpResolution.ItemIndex := Ord(ApdFaxConverter1.Resolution);
rgpWidth.ItemIndex := Ord(ApdFaxConverter1.Width);
btnEnhFont.Enabled := cbxEnhTextEnabled.Checked;
finally
Ini.Free;
end;
RadioGroup1.ItemIndex:=0;
end;
procedure TFaxConversionForm.btnConvertClick(Sender: TObject);
var
Ext,s: String;
RotImage1:TRotImage;
i:integer;
h:integer;
begin
Ext:=LowerCase(ExtractFileExt(edtFileName.text));
if btnConvert.Caption = '取消' then begin
Cancelled := True;
btnConvert.Caption := '转换';
Exit;
end else begin
Cancelled := False;
btnConvert.Caption := '取消';
end;
if (Ext='.bmp') or (Ext='.jpg') or (Ext='.jpeg')
or (Ext='.pcx') or (Ext='.dcx')
or (Ext='.tif') then
begin
if (CheckBmp(image1,edtfileName.text)=2)or(Ext='.jpg')or(Ext='.jpeg') then
edtFileName.text:=ConvertToBmp(Image1,edtFileName.text);
if RadioGroup1.ItemIndex=1 then
begin
RotImage1:=TRotImage.Create(self);
RotImage1.Picture.LoadFromFile(edtFileName.text);
RotImage1.RotateBitmap(TRotationType(0));
Rotimage1.Picture.SaveToFile(edtFileName.text);
end;
Ext:=LowerCase(ExtractFileExt(edtFileName.text));
end else if (Ext='.txt') then
begin
if CheckBox1.Checked then
begin
RichEdit981.Font.Assign(FontDialog1.font);
// RichEdit981.Visible:=false;
RichEdit981.WordWrap:=true;
RichEdit981.Width:=Trunc(210*GetDeviceCaps(Canvas.Handle, LOGPIXELSX) * 25.4);
RichEdit981.Height:=Trunc(297*GetDeviceCaps(Canvas.Handle, LOGPIXELSX) * 25.4);
RichEdit982.WordWrap:=true;
RichEdit982.Width:=Trunc(210*GetDeviceCaps(Canvas.Handle, LOGPIXELSX) * 25.4);
RichEdit982.Height:=Trunc(297*GetDeviceCaps(Canvas.Handle, LOGPIXELSX) * 25.4);
Try
RichEdit981.Lines.LoadFromFile(edtFileName.text);
RichEdit982.lines:=RichEdit981.lines;
except
end;
h:=filecreate(edtFileName.text);
if h=-1 then exit;
For i:=1 to RichEdit982.lines.count do
begin
Application.ProcessMessages;
s:=RichEdit982.lines[i]+#$0d+#$0a;
FileWrite(h,s[1],length(s));
s:='';
end;
FileClose(h);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -