在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
unit paswordtopdf; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, OleCtnrs, PDF, WinSkinData, ComCtrls, Jpeg, ImgList, ToolWin; type TFrmwordtopdf = class(TForm) PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; TabSheet3: TTabSheet; RadioGroup1: TRadioGroup; GroupBox3: TGroupBox; TrackBar1: TTrackBar; Button2: TButton; Button3: TButton; GBPDF: TGroupBox; edtpdffileName: TEdit; btnsavepdf: TButton; gbSelectWord: TGroupBox; edtdocFilename: TEdit; btnselword: TButton; btnexit: TButton; SkinData1: TSkinData; btnreg: TButton; Button6: TButton; TabSheet4: TTabSheet; GroupBox6: TGroupBox; edtpic: TEdit; Button13: TButton; GroupBox8: TGroupBox; edtpicpdf: TEdit; Button15: TButton; Panel1: TPanel; rgpage: TRadioGroup; BitBtn1: TBitBtn; btnhelp: TBitBtn; BitBtn2: TBitBtn; lbltime: TLabel; btnWordtoPDF: TBitBtn; BitBtn7: TBitBtn; BitBtn8: TBitBtn; SetWaterMark: TBitBtn; Button1: TButton; Button4: TButton; Button5: TButton; ToolBar1: TToolBar; ImageList1: TImageList; tbWordToPDF: TToolButton; tbPPtTOPDF: TToolButton; tbPICTOPDF: TToolButton; tbSetWaterMak: TToolButton; tbAbout: TToolButton; tbHelp: TToolButton; ToolButton9: TToolButton; sbregistered: TToolButton; ToolButton11: TToolButton; ToolButton12: TToolButton; TbBuy: TToolButton; Panel2: TPanel; StatusBar1: TStatusBar; ImageList2: TImageList; pnlConvert: TPanel; Image1: TImage; lblFileName: TLabel; lblFileSize: TLabel; LbLFileType: TLabel; edtUser: TEdit; ckbopen: TCheckBox; tbMainPage: TSpeedButton; SpeedButton2: TSpeedButton; Panel4: TPanel; GroupBox4: TGroupBox; edtpptFilename: TEdit; Button8: TButton; GroupBox5: TGroupBox; edtpptpdf: TEdit; Button9: TButton; gbpptnum: TGroupBox; cbpptnum: TComboBox; Panel3: TPanel; GBRight: TGroupBox; btnConvert: TSpeedButton; Panel5: TPanel; Image2: TImage; Label1: TLabel; Panel6: TPanel; Image3: TImage; Label2: TLabel; Panel7: TPanel; Image4: TImage; Label3: TLabel; SpeedButton1: TSpeedButton; procedure btnexpClick(Sender: TObject); procedure btnselwordClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure btnsavepdfClick(Sender: TObject); procedure btnexitClick(Sender: TObject); procedure RadioGroup1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure TrackBar1Change(Sender: TObject); procedure Button8Click(Sender: TObject); procedure Button9Click(Sender: TObject); procedure Button13Click(Sender: TObject); procedure Button15Click(Sender: TObject); procedure btnpicpdfClick(Sender: TObject); procedure Button12Click(Sender: TObject); procedure btnregClick(Sender: TObject); procedure btnhelpClick(Sender: TObject); procedure Button14Click(Sender: TObject); procedure btnBackClick(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure btnWordtoPDFClick(Sender: TObject); procedure Image1Click(Sender: TObject); procedure lbltimeClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure Button4Click(Sender: TObject); procedure tbWordToPDFClick(Sender: TObject); procedure StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel; const Rect: TRect); procedure Button11Click(Sender: TObject); procedure tbSetWaterMakClick(Sender: TObject); procedure tbHelpClick(Sender: TObject); procedure sbregisteredClick(Sender: TObject); procedure tbAboutClick(Sender: TObject); procedure TbBuyClick(Sender: TObject); procedure tbMainPageClick(Sender: TObject); private { Private declarations } Convertidx: integer; function setistrue(var wordFilename, pdfFileName: string): Boolean; //拷贝为图像 procedure CopyAsPicture(); //抓屏的方法 procedure scanscreen(); //获得信息 procedure GetFileInfo(FileName: string); public { Public declarations } end; var Frmwordtopdf : TFrmwordtopdf; implementation uses utMyword, utygpub, utylstream, PasERegPass, utEYLpass, utmyPPt, About, PasSetWatermark, utMyProgress, IdGlobal, utPPtToPDF; const Mycaption = 'PDFScan Converter '; Maxnum : integer = 10; function BlockInput(fFreezeInput: Boolean): DWord; stdcall; external 'user32.DLL'; {$R *.dfm} var url : string ='';// 'http://www.pdfgolds.com'; function GetFileSize(FileName: string): integer; begin result := FileSizeByName(FileName); end; function TFrmwordtopdf.setistrue(var wordFilename, pdfFileName: string): Boolean; var str : string; begin result := false; wordFilename := edtdocFilename.Text; if wordFilename = '' then begin raise exception.Create('Word doc file can''t for empty'); end; if not fileexists(wordFilename) then begin raise exception.CreateFmt('%s Document file does not exist', [wordFilename]); end; pdfFileName := edtpdffileName.Text; if pdfFileName = '' then begin raise exception.Create('pdfFiles can''t for empty'); end; str := Format('%sFile already exists, is deleted?', [pdfFileName]); if fileexists(pdfFileName) then begin if not ansker_showmessage(str, str) then exit; if not deletefile(pdfFileName) then raise exception.CreateFmt('%s Document file already exists, cannot be removed', [pdfFileName]); end; CompressionQuality := TrackBar1.Position; result := True; end; //抓屏的方法 procedure TFrmwordtopdf.scanscreen(); var MyWord : TMyWord; wordFilename, pdfFileName : string; begin if not setistrue(wordFilename, pdfFileName) then exit; MyWord := TMyWord.Create(True); BlockInput(True); self.Visible := false; try MyWord.openFile(edtdocFilename.Text); MyWord.outpdfbyScreenShot(pdfFileName); finally BlockInput(false); self.Visible := True; MyWord.Free; end; end; //拷贝为图像 procedure TFrmwordtopdf.CopyAsPicture(); var MyWord : TMyWord; wordFilename, pdfFileName : string; begin if not setistrue(wordFilename, pdfFileName) then exit; MyWord := TMyWord.Create(false); try MyWord.openFile(edtdocFilename.Text); MyWord.openPDF := self.ckbopen.Checked; MyWord.outpdfbyCopyPicture(pdfFileName); finally MyWord.Free; end; end; //获得信息 procedure TFrmwordtopdf.GetFileInfo(FileName: string); var ExtFilename : string; begin lblFileSize.Caption := 'FileSize : ' + Inttostr(GetFileSize(FileName) div 1024) + 'KB'; lblFileName.Caption := 'FileName:' + ExtractFileName(FileName); ExtFilename := uppercase(ExtractFileExt(FileName)); if ExtFilename = '.DOC' then begin LbLFileType.Caption := 'FileType: Word'; end else if ExtFilename = '.PPT' then begin LbLFileType.Caption := 'FileType: PowerPoint'; end else begin LbLFileType.Caption := 'FileType: Picture'; end; end; procedure TFrmwordtopdf.btnselwordClick(Sender: TObject); var pdfFileName : string; begin selectfile(edtdocFilename, '*.doc|*.doc'); pdfFileName := edtdocFilename.Text; edtpdffileName.Text := ChangeFileExt(pdfFileName, '.pdf'); GetFileInfo(pdfFileName); end; procedure TFrmwordtopdf.FormCreate(Sender: TObject); //判断密码是否正确 function isok(): Boolean; begin result := getisok(); sbregistered.Visible := result; TbBuy.Visible:=self.sbregistered.Visible; end; begin ylparam := 'E299'; isok(); if getisok() then begin Caption := Mycaption + ' V2.0' + getVerInfo(application.ExeName) + ' (unregistered)'; end else begin Caption := Mycaption + ' V2.0' + getVerInfo(application.ExeName); end; Convertidx := 1; self.PageControl1.ActivePageIndex := 1; end; procedure TFrmwordtopdf.FormClose(Sender: TObject; var Action: TCloseAction); begin AppSaveSet(); end; procedure TFrmwordtopdf.btnsavepdfClick(Sender: TObject); begin savefile(edtpdffileName, '*.pdf|*.pdf', '.pdf'); end; procedure TFrmwordtopdf.btnexitClick(Sender: TObject); begin close(); end; procedure TFrmwordtopdf.RadioGroup1Click(Sender: TObject); begin Convertidx := RadioGroup1.ItemIndex; end; procedure TFrmwordtopdf.Button2Click(Sender: TObject); var MyWord : TMyWord; begin CompressionQuality := 100; MyWord := TMyWord.Create(false); try MyWord.openFile(edtdocFilename.Text); //MyWord.SavePicture('c:\temp\'); MyWord.GetAllTable('c:\temp\'); finally MyWord.Free; end; end; procedure createwortoword(pdfFileName: string); var List : TstringList; i, num : integer; FileName : string; var MyWord : TMyWord; begin MyWord := TMyWord.Create(false); List := TstringList.Create; try MyWord.newDocument(); SearchTabFiles(TempPath, List, '.jpg', false); num := List.Count; //initProgressBar(num, '正在扫描'); if getisok() then begin if num > Maxnum then begin num := Maxnum; end; end; for i := 1 to num do begin FileName := TempPath + Inttostr(i) + '.jpg'; MyWord.AddPicture(FileName); MyWord.MoveEnd(); //MyWord.setbackpicture(FileName); // deletefile(pchar(FileName)); //if ProgressStep() then // Break; end; //FDoc.ActiveWindow.View.FullScreen:=True; MyWord.Save(pdfFileName); finally MyWord.Free(); List.Free(); // FreeProgressStep(); end; end; procedure TFrmwordtopdf.Button3Click(Sender: TObject); var MyWord : TMyWord; wordFilename, pdfFileName : string; begin if not setistrue(wordFilename, pdfFileName) then exit; killtask('winword.exe'); MyWord := TMyWord.Create(false); try MyWord.openFile(edtdocFilename.Text); MyWord.outjpgbyCopyPicture(pdfFileName); finally MyWord.Free; end; //createwortoword('c:\1.doc'); end; procedure TFrmwordtopdf.TrackBar1Change(Sender: TObject); begin GroupBox3.Caption := Format('Export pictures PDF quality(%d', [TrackBar1.Position]) + '%)'; end; procedure TFrmwordtopdf.Button8Click(Sender: TObject); var pdfFileName : string; begin selectfile(edtpptFilename, '*.ppt|*.ppt'); pdfFileName := edtpptFilename.Text; edtpptpdf.Text := ChangeFileExt(pdfFileName, '.pdf'); GetFileInfo(pdfFileName); end; procedure TFrmwordtopdf.Button9Click(Sender: TObject); begin savefile(edtpptpdf, '*.pdf|*.pdf', '.pdf'); end; procedure TFrmwordtopdf.Button13Click(Sender: TObject); var pdfFileName : string; begin selectfile(edtpic, '*.jpg|*.jpg|*.bmp|*.bmp|*.wmf|*.wmf|*.emf|*.emf'); pdfFileName := edtpic.Text; GetFileInfo(pdfFileName); edtpicpdf.Text := ChangeFileExt(pdfFileName, '.pdf'); end; procedure TFrmwordtopdf.Button15Click(Sender: TObject); begin savefile(edtpicpdf, '*.pdf|*.pdf', '.pdf'); end; procedure TFrmwordtopdf.btnpicpdfClick(Sender: TObject); function picsetistrue(var wordFilename, pdfFileName: string): Boolean; var str : string; begin result := false; wordFilename := edtpic.Text; if wordFilename = '' then begin raise exception.Create('Picture files can''t for empty'); end; if not fileexists(wordFilename) then begin raise exception.CreateFmt('%sPicture file does not exist', [wordFilename]); end; pdfFileName := edtpicpdf.Text; if pdfFileName = '' then begin raise exception.Create('pdfFiles can''t for empty'); end; str := Format('%s File already exists, is deleted?', [pdfFileName]); if fileexists(pdfFileName) then begin if not ansker_showmessage(str, str) then exit; if not deletefile(pdfFileName) then raise exception.CreateFmt('%sDocument file already exists, cannot be removed!', [pdfFileName]); end; CompressionQuality := TrackBar1.Position; result := True; end; var pdfFileName, wordFilename : string; idx : integer; begin if not picsetistrue(wordFilename, pdfFileName) then exit; //btnpicpdf.Enabled := false; try idx := rgpage.ItemIndex; onePICTOPDF(idx, wordFilename, pdfFileName); finally //btnpicpdf.Enabled := True; end; end; procedure TFrmwordtopdf.Button12Click(Sender: TObject); begin self.PageControl1.ActivePageIndex := 0; end; procedure TFrmwordtopdf.btnregClick(Sender: TObject); var FrmRegPass : TFrmRegPass; begin FrmRegPass := TFrmRegPass.Create(nil); self.btnreg.Visible := not (FrmRegPass.showmodal = mrok); if not self.btnreg.Visible then begin end; FrmRegPass.Free; end; procedure TFrmwordtopdf.btnhelpClick(Sender: TObject); begin //runfile(ChangeFileExt(application.ExeName, '.chm'), 'open'); runfile(url, ''); end; procedure TFrmwordtopdf.Button14Click(Sender: TObject); begin self.PageControl1.ActivePageIndex := 0; end; procedure TFrmwordtopdf.btnBackClick(Sender: TObject); begin self.PageControl1.ActivePageIndex := 0; end; procedure TFrmwordtopdf.Timer1Timer(Sender: TObject); begin if (lbltime.Font.Color = clwhite) then begin lbltime.Font.Color := clred; end else begin lbltime.Font.Color := clwhite; end; end; procedure TFrmwordtopdf.btnWordtoPDFClick(Sender: TObject); var tag : integer; begin tag := (Sender as TBitBtn).tag; self.PageControl1.ActivePageIndex := tag; //scaleZoom:=StrTofloat(edit1.Text); end; procedure TFrmwordtopdf.Image1Click(Sender: TObject); begin runfile(url, ''); end; procedure TFrmwordtopdf.lbltimeClick(Sender: TObject); begin runfile(url, ''); end; procedure TFrmwordtopdf.FormShow(Sender: TObject); function GetmyComputerName(): string; var ComputerName : array[0..MAX_COMPUTERNAME_LENGTH + 1] of char; sComputerName : string; lpSize : DWord; begin lpSize := MAX_COMPUTERNAME_LENGTH + 1; if GetComputerName(@ComputerName, lpSize) then begin sComputerName := ComputerName; end else begin sComputerName := ''; end; // Result := sResult ; result := sComputerName; end; begin AppgetSet(); edtUser.Text := GetmyComputerName(); TempPath := GetTemPath() + 'gisoracle\'; //showmessage(TempPath); end; procedure TFrmwordtopdf.Button4Click(Sender: TObject); begin showmessage(GetWindowsVersion()); end; procedure TFrmwordtopdf.tbWordToPDFClick(Sender: TObject); var tag : integer; begin tag := (Sender as TToolButton).tag; self.PageControl1.ActivePageIndex := tag; GBRight.Parent := self.PageControl1.Pages[tag]; //scaleZoom:=StrTofloat(edit1.Text); end; {var progressBarRect : TRect; // 进度条组件的尺寸} procedure TFrmwordtopdf.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel; const Rect: TRect); begin // progressBarRect := Rect; utMyProgress.progressBarRect := Rect; utMyProgress.StatusBar1 := StatusBar1; end; procedure TFrmwordtopdf.Button11Click(Sender: TObject); var i : integer; begin utMyProgress.initProgressBar(10000); for i := 1 to 10000 do begin utMyProgress.ProgressStep() end; MessageDlg('演示操作已经完成!', mtInformation, [mbOK], 0); utMyProgress.FreeProgressStep(); end; procedure TFrmwordtopdf.tbSetWaterMakClick(Sender: TObject); begin FrmSetWaterMark.Show(); end; procedure TFrmwordtopdf.tbHelpClick(Sender: TObject); begin // //runfile('http://www.pdfgolds.com/help', ''); runfile('',''); end; procedure TFrmwordtopdf.sbregisteredClick(Sender: TObject); var FrmRegPass : TFrmRegPass; begin FrmRegPass := TFrmRegPass.Create(nil); self.sbregistered.Visible := not (FrmRegPass.showmodal = mrok); TbBuy.Visible:=self.sbregistered.Visible; if not self.btnreg.Visible then begin end; FrmRegPass.Free; end; procedure TFrmwordtopdf.tbAboutClick(Sender: TObject); var FrmAboutBox : TFrmAboutBox; begin FrmAboutBox := TFrmAboutBox.Create(nil); FrmAboutBox.showmodal; FrmAboutBox.Free; end; procedure TFrmwordtopdf.TbBuyClick(Sender: TObject); var str : string; begin str := 'http://www.pdfgolds.com/register.html'; str:=''; runfile(str, ''); end; procedure TFrmwordtopdf.btnexpClick(Sender: TObject); procedure Runword(); begin if exe_is_running('winword.exe') then begin 全部评论
专题导读
热门推荐
热门话题
阅读排行榜
|
请发表评论