최근 프로젝트가 워드프로세서 생성 기능을 필요로 하기 때문에 뒤척이기 시작하여 PHP로 word를 생성할 수 있는 클래스 라이브러리인 PhoWord를 찾기 시작하였고, PhpWord는 composer로 설치하면 사용할 수 있습니다.
한참 동안 일을 한 끝에 워드 문서가 생성되었으니, 지금 몇 가지 용법을 기록해서 모두가 참고할 수 있도록 하자
PhpWord 문서
좀 더 많은 기능을 하고 싶은학우는 문서를 자세히 참고할 수 있다.
https://phpword.readthedocs.io/en/ latest/intro.html
사용 환경
현재 ThinkPHP5.0.21에서 사용되고 있는 PhpWord로 다른 사용환경 도입방식이 조금 다를 수 있습니다.
composer를 이용하여 설치하고, 바로 아래 코드를 이용하여 관련 클래스 라이브러리를 도입한다
설치하다.
1. 명령줄을 열고 프로젝트 루트로 들어가 다음 명령을 실행합니다.
2,composer require phpoffice/phpword
사용 모드
1、코드로 직접 word 문서 작성
2、기존 word 템플릿을 읽고 관련 변수
템플릿 생성워드
사용 시나리오: 적합고정된 틀이 있는 한 가지, 단지 몇 가지 중요한 부분만 바꿔야 한다.
사용방법:다음코드 몇 줄을 소개하면 워드 전체를 교체할 수 있을 만큼 많은 기능이 문서를 참조할 필요가 있다
//템플릿의 경로, word 버전은 docx가 좋습니다. 그렇지 않으면 읽지 못할 수 있습니다. 자신의 템플릿 위치에 따라 조정하십시오
$path = 'public/letters/templates/word/letter1.docx';
//word 경로 생성, 자체 디렉터리에 맞게 조정
$filePath= 'public/letters/word/letter1.docx';
//템플릿 개체 선언, 템플릿 읽기
$templateProcessor = new \PhpOffice\PhpWord\TemplateProcessor($path);
//word에 해당하는 템플릿의 변수 바꾸기 ${test}
$test ="이것은 교체된 내용입니다";
$templateProcessor->setValue('test',$test);//팩스
//새로운 생성word
$templateProcessor->saveAs($filePath);
코드 워드
사용 시나리오: 필요보다 유연한 워드 생성
문법 소개: 소개일부 상용하고 필요한 기능은 불필요한 것도 소개하지 않는다.좀 더 직관적인 것이 중요합니다. 더 많은 기능이 문서를 참조해야 합니
//phpword 개체 선언
$phpWord = new \PhpOffice\PhpWord\PhpWord();
//페이지의 내용을 저장하는 페이지를 선언합니다. 컨테이너에 해당합니다
$section = $phpWord->addSection();
//단락 텍스트 추가
$section->addText('This is text');
//선언 일반 문자, 다른 단락 문자, 뒤에 추가 문자를 사용할 수 있습니다
$textrun = $section->addTextRun();
//텍스트 추가
$textrun->addText('This ');
//위에 내용 뒤에 글자를 추가한다
$textrun->addText('is');
//글자가 줄을 바꾸면, 파라미터는 줄을 바꾼 줄의 수를 제어할 수 있다
$textrun->addTextBreak(1);
//段글자가 줄을 바꾸면, 인수는 줄을 바꾸거나 단락을 바꾸거나, 인수는 줄을 바꾸거나 바꾸거나 하는 수를 제어할 수 있다
$section->addTextBreak(1);
//텍스트 스타일, 문서 글꼴 스타일을 참조할 수 있는 여러 가지 스타일을 지정할 수 있습니다
$textrun->addText('테스트',array('size'=>18,'bold'=>true,'name'=>'송체'));
//하나의 배열을 정의해서 전달할 수 있는데, 본질은 모두 하나의 배열이다
$fontStyle['size']=12;
$fontStyle['bold']=true;
$textrun->addText('测试',$fontStyle);
//워드 문서 생성
$filePath= 'public/letters/word/letter1.docx';
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$objWriter->save($filePath);
PS:
1.Phpword는 코드로 word를 생성할 수 있지만, 일부 텍스트 이미지의 위치 결정은 매우 번거롭고 제어가 불가능하다.
2. 가능한 한 템플릿을 사용합니다. 템플릿을 직접 변경하는 것이 더 편리합니다. 키워드만 바꾸면 됩니다.
3、템플릿을 사용할 때 word 포맷이 docx라면 doc를 사용하면 오류를 보고할 수 있다는 점에 유의해야 한다.
결어
이상 자신이 요 며칠 동안 Phpword를 사용할 때 조심해서 사용하였습니다. 여러분께서 시행착오를 덜 하시길 바랍니다. 또한 자신이 나중에 다시 사용할 때 복습할 수 있습니다. 만약 틀린 점이 있다면 지적해 주시기 바랍니다.
'개발 꿀팁 > PHP' 카테고리의 다른 글
eclipse php 플러그인 설치 및 환경 설정 (0) | 2022.07.11 |
---|---|
PHPWord를 사용하여 워드 문서 만들기 (0) | 2022.07.11 |
PHP를 사용하여 몇 가지 99 곱셈표를 쓰는 방식 (0) | 2022.07.11 |
docker php 환경 구축 웹 프로젝트 실행 (0) | 2022.07.09 |
PHP 디버깅 - 방식 (0) | 2022.07.09 |