各位高手:
   我想用DELPHI控制好WORD的页面,并实现预览功能,请问在DELPHI里能不能做到。
   问题解决就结贴

解决方案 »

  1.   


    调用word的页面设置
    uses ComObj;
    procedure PageSetup(const DocFileName: string);
    const
      wdAlertsNone = $00000000;
      wdDialogFilePageSetup = $000000B2;
    var
      Doc: OleVariant;
    begin
      try
        try
          Doc:= CreateOleObject('Word.Application');
          Doc.DisplayAlerts := wdAlertsNone;
          Doc.Documents.Open(DocFileName);
          Doc.Dialogs.Item(wdDialogFilePageSetup).Show;
          Doc.Visible := True;
          Doc.ActiveDocument.Save;
        except
        end;
      finally
      end;
    end;
      

  2.   

    [code=Delphi(Pascal)][procedure   Word.Normalize;   
      begin   
          //MsWord.ActiveDocument.PageSetup.LineNumbering.Active   :=   False;   
          //MsWord.ActiveDocument.PageSetup.Orientation   :=0;//   wdOrientPortrait;   
          MsWord.ActiveDocument.PageSetup.TopMargin   :=   CentimetersToPoints(0.75);   
          MsWord.ActiveDocument.PageSetup.BottomMargin   :=   CentimetersToPoints(0.2);   
          MsWord.ActiveDocument.PageSetup.LeftMargin   :=   CentimetersToPoints(0.5);   
          MsWord.ActiveDocument.PageSetup.RightMargin   :=   CentimetersToPoints(0.5);   
          MsWord.ActiveDocument.PageSetup.Gutter   :=   CentimetersToPoints(0);   
          MsWord.ActiveDocument.PageSetup.HeaderDistance   :=   CentimetersToPoints(1.27);   
          MsWord.ActiveDocument.PageSetup.FooterDistance   :=   CentimetersToPoints(1.27);   
          //MsWord.ActiveDocument.PageSetup.PageWidth   :=   CentimetersToPoints(21);   
          //MsWord.ActiveDocument.PageSetup.PageHeight   :=   CentimetersToPoints(29.7);   
          //MsWord.ActiveDocument.PageSetup.FirstPageTray   :=0;//   wdPrinterDefaultBin;   
          //MsWord.ActiveDocument.PageSetup.OtherPagesTray   :=0;//   wdPrinterDefaultBin;   
          //MsWord.ActiveDocument.PageSetup.SectionStart   :=2;//   wdSectionNewPage;   
          //MsWord.ActiveDocument.PageSetup.OddAndEvenPagesHeaderFooter   :=   False;   
          //MsWord.ActiveDocument.PageSetup.DifferentFirstPageHeaderFooter   :=   False;   
          //MsWord.ActiveDocument.PageSetup.VerticalAlignment   :=0;//   wdAlignVerticalTop;   
          //MsWord.ActiveDocument.PageSetup.SuppressEndnotes   :=   False;   
          //MsWord.ActiveDocument.PageSetup.MirrorMargins   :=   False;   
          //MsWord.ActiveDocument.PageSetup.TwoPagesOnOne   :=   False;   
          //MsWord.ActiveDocument.PageSetup.GutterPos   :=0;//   wdGutterPosLeft;   
      end;  /code]
      

  3.   

    procedure   Word.Normalize;   
      begin   
          //MsWord.ActiveDocument.PageSetup.LineNumbering.Active   :=   False;   
          //MsWord.ActiveDocument.PageSetup.Orientation   :=0;//   wdOrientPortrait;   
          MsWord.ActiveDocument.PageSetup.TopMargin   :=   CentimetersToPoints(0.75);   
          MsWord.ActiveDocument.PageSetup.BottomMargin   :=   CentimetersToPoints(0.2);   
          MsWord.ActiveDocument.PageSetup.LeftMargin   :=   CentimetersToPoints(0.5);   
          MsWord.ActiveDocument.PageSetup.RightMargin   :=   CentimetersToPoints(0.5);   
          MsWord.ActiveDocument.PageSetup.Gutter   :=   CentimetersToPoints(0);   
          MsWord.ActiveDocument.PageSetup.HeaderDistance   :=   CentimetersToPoints(1.27);   
          MsWord.ActiveDocument.PageSetup.FooterDistance   :=   CentimetersToPoints(1.27);   
          //MsWord.ActiveDocument.PageSetup.PageWidth   :=   CentimetersToPoints(21);   
          //MsWord.ActiveDocument.PageSetup.PageHeight   :=   CentimetersToPoints(29.7);   
          //MsWord.ActiveDocument.PageSetup.FirstPageTray   :=0;//   wdPrinterDefaultBin;   
          //MsWord.ActiveDocument.PageSetup.OtherPagesTray   :=0;//   wdPrinterDefaultBin;   
          //MsWord.ActiveDocument.PageSetup.SectionStart   :=2;//   wdSectionNewPage;   
          //MsWord.ActiveDocument.PageSetup.OddAndEvenPagesHeaderFooter   :=   False;   
          //MsWord.ActiveDocument.PageSetup.DifferentFirstPageHeaderFooter   :=   False;   
          //MsWord.ActiveDocument.PageSetup.VerticalAlignment   :=0;//   wdAlignVerticalTop;   
          //MsWord.ActiveDocument.PageSetup.SuppressEndnotes   :=   False;   
          //MsWord.ActiveDocument.PageSetup.MirrorMargins   :=   False;   
          //MsWord.ActiveDocument.PageSetup.TwoPagesOnOne   :=   False;   
          //MsWord.ActiveDocument.PageSetup.GutterPos   :=0;//   wdGutterPosLeft;   
      end;