uses Windows, SysUtils, Variants, Forms, ComObj, OleServer, WordXP;

 

...

...

...

 

 

 

function GetPowerPointText(fName: String): String;
var
  PP, PRE, SLI: OleVariant;
  i, j: Integer;


begin
  Result:='';

 

  // 파워포인트 어플리케이션 생성
  try
    PP:=CreateOleObject('PowerPoint.Application');
  except
    MessageBox(0,'PowerPoint가 설치되어 있지 않습니다.','Error',MB_OK);
    Exit;
  end;

 

  // 읽어올 파일이 있는지 체크
  if not FileExists(fName) then begin
    MessageBox(0,'파일이 없습니다.','Error',MB_OK);
    Exit;
  end;

 

  // 생성한 파워포인트 어플리케이션에서 파일을 읽음 = 프리젠테이션을 Open
  PRE:=PP.Presentations.Open(fName,False,True,False);

 

  // 슬라이드 하나하나 검사
  for i:=1 to PRE.Slides.Count do begin
    SLI:=PRE.Slides.Item(i);

    // 하나의 슬라이드를 다시 프레임별로 나눠 검사
    for j:=1 to SLI.Shapes.Count do begin
      // 만약 해당 프레임이 텍스트를 가지고 있다면 추출
      if (SLI.Shapes.Item(j).HasTextFrame) then
        Result:=Result+#13#10+SLI.Shapes.Item(j).TextFrame.TextRange.Text;

      Application.ProcessMessages;
    end; // for j
  end; // for i

 

  // 해제
  SLI:=Unassigned;
  PRE:=Unassigned;
  PP.Quit;
  PP:=Unassigned;
end;





Posted by bloodguy
,