⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 faxconv.pas

📁 将图像转换为传真文件
💻 PAS
📖 第 1 页 / 共 2 页
字号:
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 + -