오늘은 재미난걸 소개해드리려 합니다.
바로 PHP 가 MS-WORD 를 실행해서 문서를 작성하는 건데요.
폰트크기를 지정하거나 밑줄을 긋기도 하고
심지어 문서를 열어 놓은채로 두거나 저장도 할 수 있습니다.
이를 위해 2가지 전제조건이 필요한데요.
첫째 윈도우 PC 환경에 XAMPP 를 설치하고,
둘째는 윈도우에 MS-WORD 가 설치되어 있어야 합니다.
XAMPP 설치는 아래 게시글을 참조해 주시면 됩니다.
https://itadventure.tistory.com/627
윈도우에 PHP 8 설치 + MYSQL 연결 예제 ( APM 설치 - 2023. 9. 1기준)
오늘은 윈도우에서의 PHP(피에이치피) 설치에 대해 알아보겠습니다. 2023. 9. 1 기준 최신 PHP 버전은 8.2 인데요. 8.3 버전이 있긴 한데 아직 알파 버전(실험 버전)이라 논외입니다. PHP 설치시 아래 2가
itadventure.tistory.com
extension 설정
PHP에서 MS-WORD 를 실행하려면 extension 설정을 해주어야 하는데요.
C:\xampp\php\php.ini 파일을 열어, 아래 내용을 추가해주어야 합니다.
extension=php_com_dotnet.dll
어디에 추가하냐구요? extension 들이 여럿 있는 곳이 있을텐데요. 중간이나 맨 아래 적당한 곳에 넣어 주시면 됩니다.
그리고 아파치 서버를 재시작해주시면 설정은 끝!
소스 실행
이제 아래와 같은 소스를 구성해서 웹에서 실행해 보세요.
<?php
$word = new COM("word.application", NULL, CP_UTF8);
$word->visible = true;
$word->Application->Activate();
$word->Documents->Add();
$document = $word->ActiveDocument;
$content = $document->Content;
$objSelection = $word->Selection;
$objSelection->Font->Size = 15;
$objSelection->Font->Underline = 1;
$objSelection->TypeText("일기\n");
$objSelection->Font->Size = 12;
$objSelection->Font->Underline = 0;
$objSelection->TypeText("2024년 6월 22일\n");
그러면 MS-WORD 가 자동 실행, 작업 표시줄에서 깜박이는 것을 확인할 수 있는데요.
선택하면 두둥! 이와 같이 문서가 작성된 것을 확인할 수 있습니다.
신기하지 않나요? :)
PHP는 이와 같이 MS-WORD 를 실행해 문서를 작성할 수 있는데요.
약간 응용하면 문서 자동화 같은걸 만들 수도 있을 것 같네요.
EXCEL도 비슷한 원리도 작동할 수 있습니다.
몇가지 팁을 더 드리자면 기존 MS-WORD 문서를 여는 명령은 아래와 같습니다.
$path = realpath("C:\Users\home\Documents\문서.docx");
$word->Documents->Open($path);
문서 저장 명령은 아래와 같고,
$document->SaveAs($path);
문서 닫기나
$document->Close(false);
MS-WORD 종료하는 명령어도 있습니다.
$word->Quit();
다만 PHP를 통해 이를 가이드하는 문서가 일부 검색이 됩니다.
이 게시글이 좀 내용이 들어 있는것 같군요.
https://www.php.net/manual/en/class.com.php
그 외 COM 객체에 대한 문서는 아래를 참조하시면 됩니다.
https://www.php.net/manual/en/book.com.php
그리고 MS-WORD 를 제어하는 구체적인 건 VBA 쪽이 도리어 자료가 많은데 그쪽 소스를 PHP용으로 바꿔서 적용해야 합니다. 실제로는 VBA 기술을 이용하는 것이니까요.
'vba ms-word' 로 검색해 보세요 :)
필요하신 분에게 도움이 되셨을지 모르겠습니다.
오늘도 방문하신 모든 분들께 감사드립니다!
'코딩과 알고리즘' 카테고리의 다른 글
사이드 프로젝트 : "유튜브 배경 영어학습" PHP + Jquery (0) | 2024.06.11 |
---|---|
자바 - 백앤드 학습 #3. 부스트코스 프로젝트 A 변형 제작 (0) | 2024.05.19 |
자바 - 백앤드 학습 #1. 톰캣, 이클립스, JDK설치 ( 2024. 5월 기준 ) (2) | 2024.05.16 |
파이썬 - 장고 - 투표하기 공식 튜토리얼 따라하기 #4 (0) | 2024.05.11 |
파이썬 - 장고, 초간단 웹서버 구축 (0) | 2024.05.04 |