PHP의 COM 조작은 "어셈블리"내에서 "클래스"를 인스턴스화해야합니다. 우리의 경우, 우리는 단어로 작동해야합니다. 우리가 보여준 첫 번째 스크린 샷을 반영하면 PIA라는 단어의 전체 서명을 구성 할 수 있습니다.
"이름", "버전", "공개 키 토큰"은 모두 "C : WindowsAssembly"로 탐색 할 때 표시된 정보에서 가져온 것입니다. 우리가 호출 해야하는 클래스는 항상 어셈블리의 이름과“.applicationClass”. 입니다.
이 두 매개 변수를 설정하면 단어 객체를 인스턴스화 할 수 있습니다.
이 객체는 백그라운드에 머무를 수 있거나 눈에 보이는 속성을 True로 설정하여 전경으로 가져올 수 있습니다.
다음으로 처리 할 문서를 열고 "문서"인스턴스를 $ D 변수에 할당합니다.
이 문서에서 HTML 양식의 입력을 기반으로 컨텐츠를 작성하려면 몇 가지 옵션이 있습니다.
가장 바람직하지 않은 방법은 PHP의 모든 내용을 하드 코드 한 다음 Word 문서로 출력하는 것입니다. 다음과 같은 이유로 인해 이것을 강력하게 낙담시킵니다
유연성은 없습니다. 출력의 변경 사항은 PHP 스크립트를 수정해야합니다. -
는 제어와 프리젠 테이션 사이의 분리를 위반합니다.
문서 내용 (정렬, 글꼴, 스타일 등)에 스타일을 적용하려면 코드 줄을 크게 증가시킵니다. 프로그래밍 방식으로 변화하는 스타일은 너무 번거 롭습니다
-
또 다른 방법은 "Search-Replace"를 수행하는 것입니다. PHP는이 작업을 수행하는 데 강력한 내장 기능이 있습니다. 우리는 자리 표시 자 컨텐츠 주위에 교체 할 특별한 구분자를 넣는 단어 문서를 만들 수 있습니다. 예를 들어, 우리는 다음과 같은 내용을 포함하는 문서를 만들 수 있습니다.
{{name}}
및 PHP에서는 이것을 양식 제출에서 검색 한 "이름"값으로 간단히 바꿀 수 있습니다.
이것은 간단하며 첫 번째 옵션의 모든 단점을 피합니다. 우리는 단지 올바른 구분 기호를 찾아야하며,이 경우 사용 된 템플릿이 Word 문서라는 점을 제외하고 템플릿 렌더링을하는 것과 비슷합니다. - .
세 번째 옵션은 내 권장 사항이며 Word의 고급 주제입니다. 당사는 필드를 사용하여 자리 표시자를 나타냅니다. PHP 코드에서는 각각의 양식 값으로 필드를 직접 업데이트합니다.
이 접근법은 유연하고 빠르며 Word의 모범 사례를 준수합니다. 또한 문서의 전문 검색을 피하면 성능이 도움이됩니다. 이 옵션에는 단점이 있습니다.
Word는 데뷔 이후로 필드에 대한 지수를 지원 한 적이 없습니다. Word 문서에서 만든 필드의 이름을 제공하더라도 각 필드에 액세스하려면 숫자 구독을 사용해야합니다. 또한 필드 인덱스와 양식 필드의 이름 사이의 수동 매핑을 수행하기 위해 전용 기능 (SetupFields)을 사용해야하는 이유를 설명합니다.
단어 문서에 필드를 삽입하는 방법을 배우려면 (기성품 버전을 보려면 여기를 클릭하십시오) 관련 단어 도움말 주제 및 매뉴얼을 참조하십시오. 이 데모에는 5 개의 Mergefield 필드가있는 문서가 있습니다. 또한 문서를 쉽게 액세스 할 수 있도록 PHP 스크립트와 동일한 디렉토리에 문서를 배치했습니다.
필드 프린트 데이트에는 해당 양식 필드가 없습니다. 그렇기 때문에 우리는 $ 입력 배열에 더미 인쇄 데이트 키를 추가했습니다. 이 없으면 스크립트는 여전히 실행될 수 있지만 인덱스 인쇄물이 $ 입력 배열에 표시되지 않는다는 통지가있을 것입니다.
형식 값으로 필드를 업데이트 한 후 다음을 사용하여 문서를 인쇄합니다.
인쇄용 방법에는 몇 가지 선택적 매개 변수가 있으며 가장 간단한 형태를 사용하고 있습니다. 이렇게하면 Windows 시스템에 연결된 기본 프린터에 하나의 사본이 인쇄됩니다.
우리는 또한 문서를 인쇄하기로 결정하기 전에 printpreview를 사용하여 출력을 살펴 보도록 선택할 수 있습니다. 순전히 자동화 된 환경에서는 물론 인쇄물을 대신 사용할 것입니다. 인쇄 작업을 완전히 스풀링하는 데 시간이 필요하기 때문에 단어 응용 프로그램을 종료하기 전에 몇 초 동안 기다려야합니다. 지연없이 (3), $ W-> 종료는 즉시 실행되고 인쇄 작업도 죽습니다.
마지막으로, 우리는 PHP 스크립트에서 호출 한 단어 응용 프로그램을 닫기 위해 $ w-> Quit (false)를 호출합니다. 여기에 제공된 유일한 매개 변수는 종료하기 전에 변경 사항을 저장하려는 경우를 지정하는 것입니다. 우리는 문서를 변경했지만 다른 사용자의 입력을위한 깨끗한 템플릿을 유지하기 때문에 문서를 저장하고 싶지 않습니다.
코드를 완료 한 후 양식 페이지를로드하고 일부 값을 입력하고 양식을 제출할 수 있습니다. 아래 이미지는 PHP 스크립트의 출력과 업데이트 된 Word 문서를 보여줍니다.
코딩 속도 향상 및 PIA
이것은 우리의 개발 속도를 크게 느리게 할 것입니다. 더 빨리 만들기 위해 먼저 C#의 함수를 개발 한 다음 코드를 PHP로 다시 마이그레이션하는 것이 좋습니다. 추천 할 무료 C# IDE는 "#Develop"이라고하며 여기에서 다운로드 할 수 있습니다. #develop은 더 작고 깨끗하며 빠르기 때문에 이것을 VS 시리즈보다 선호합니다.
C# 코드를 PHP로 마이그레이션하는 것은 전혀 무섭지 않습니다. C# 코드의 줄을 보여 드리겠습니다 :
우리는 c# 코드가 이전에 보여준 PHP 코드와 거의 동일하다는 것을 알 수 있습니다. C#은 강력하게 입력되어 몇 가지 유형의 캐스팅 문을 볼 수 있으며 변수에 유형을 명시 적으로 제공해야합니다.
는 가변 유형이 주어지면 코드 통찰력 및 코드 완료를 즐기면 개발 속도가 훨씬 빠릅니다.
PHP 개발 속도를 높이는 또 다른 방법은 단어 매크로를 탭하는 것입니다. 우리는 우리가해야 할 동일한 작업을 수행하고 매크로로 기록합니다. 매크로는 Visual Basic에 있으며 Php로 쉽게 변환 할 수 있습니다.
가장 중요한 것은 Office PIA에 대한 Microsoft의 공식 문서, 특히 각 사무실 응용 프로그램에 대한 네임 스페이스 문서는 항상 가장 자세한 참조 자료입니다. 대부분 사용되는 세 가지 응용 프로그램은 다음과 같습니다
Excel 2013 : http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel (v = Office.15) .aspx -
<: :> Word 2013
PowerPoint 2013 : http://msdn.microsoft.com/en-us/library/microsoft.office.interop.powerpoint (v = Office.15) .aspx
-
결론
이 기사에서는 PHP COM 라이브러리와 Microsoft Office Interop 기능을 사용하여 워드 문서를 채우는 방법을 보여주었습니다. -
창문과 사무실은 일상 생활에서 널리 사용됩니다. PHP Windows 프로그래머에게는 사무실/창과 PHP의 힘에 대한 지식을 갖는 것이 필수적입니다.
PHP의 COM 확장 으로이 조합을 마스터하는 도어가 열립니다.
이 프로그래밍 영역에 관심이 있으시면 의견을 남겨 주시면이 주제에 대한 더 많은 기사가있는 것을 고려할 것입니다. 이 접근법을 사용하여 더 많은 실제 응용 프로그램이 개발되기를 기대합니다.
php 로 Microsoft Word 문서 작성에 대한 자주 묻는 질문 (FAQ)
php를 사용하여 Word 문서에 이미지를 추가 할 수 있습니까? PHP를 사용하여 Word 문서에 이미지 추가는 간단한 프로세스입니다. Phpword 라이브러리에서 제공하는 addimage () 함수를 사용할 수 있습니다. 이 기능을 사용하면 추가하려는 이미지 파일의 경로를 지정할 수 있습니다. 또한 너비, 높이 및 정렬과 같은 추가 매개 변수를 지정하여 문서에서 이미지의 모양을 사용자 정의 할 수 있습니다. Word 문서에 이미지가 올바르게 해석되고 표시되는지 확인하기 위해 PHP 스크립트에 필요한 헤더를 포함해야합니다. PHP를 사용하여 Word 문서에서 테이블을 만들 수 있습니까? PHP를 사용하여 Word 문서에서 테이블을 만듭니다. PHPWORD 라이브러리는 문서에서 테이블을 작성하는 데 사용할 수있는 addTable ()라는 기능을 제공합니다. 그런 다음 addrow () 및 addcell () 함수를 사용하여 테이블에 행과 열을 추가 할 수 있습니다. 또한 테이블과 셀의 너비, 높이 및 정렬을 지정하여 모양을 사용자 정의 할 수 있습니다.
PHP를 사용하여 내 Word 문서에 스타일을 적용 할 수 있습니까? PHPWORD 라이브러리에서는 PHP를 사용하여 Word 문서에서 문자를 보내려면 쉽습니다. AddText () 함수를 사용하여 문서에 텍스트를 추가 할 수 있으며이 기능의 두 번째 매개 변수로 스타일 배열을 지정할 수 있습니다. 이 스타일 배열에는 글꼴 크기, 글꼴 색상, 대담한, 이탤릭체, 밑줄 등과 같은 속성이 포함될 수 있습니다. AddTitlestyle () 또는 addparagraphStyle () 함수를 사용하여 스타일 객체를 만들고 텍스트에 적용 할 수도 있습니다. php를 사용하여 HTML을 Word 문서로 변환 할 수 있습니까? 예, HTML을 PHP를 사용하여 Word 문서로 변환 할 수 있습니다. PHPWORD 라이브러리는 문서에 HTML 컨텐츠를 추가하는 데 사용할 수있는 addhtml ()라는 기능을 제공합니다. 이 함수는 HTML 컨텐츠를 구문 분석하고 Word 문서에 표시 될 수있는 형식으로 변환합니다. 그러나 모든 HTML 태그가 지원되는 것은 아니며 일부 복잡한 HTML 구조가 올바르게 변환되지 않을 수 있습니다.
PHP를 사용하여 내 Word 문서를 특정 위치에 저장하는 방법? PHP를 사용하여 Word 문서를 작성하면 PHPWord 라이브러리에서 제공 한 Save () 함수를 사용하여 특정 위치에 저장할 수 있습니다. 이 기능은 문서를 매개 변수로 저장하려는 위치로의 경로를 취합니다. 지정된 위치가 존재하지 않으면 함수가 생성을 시도합니다. 함수가 위치를 만들거나 문서를 저장할 수 없으면 예외가 발생합니다. Php를 사용하여 Word 문서에 헤더와 바닥 글을 추가 할 수 있습니까? PHP를 사용하여 Word 문서의 헤더 및 바닥 글. PHPWORD 라이브러리는 addHeader () 및 addfooter ()라는 기능을 제공하여 문서에 헤더와 바닥 글을 추가하는 데 사용할 수 있습니다. 그런 다음 addText () 함수를 사용하여 헤더 및 바닥 글에 텍스트를 추가 할 수 있습니다. 질문 3에 설명 된 것과 동일한 방법을 사용하여 헤더 및 바닥 글에 스타일을 적용 할 수 있습니다.
php를 사용하여 내 Word 문서에 페이지 브레이크를 추가 할 수 있습니까? PHPWORD 라이브러리에서 제공하는 AddPageBreak () 함수를 사용하여 PHP를 사용하여 Word 문서에. 이 함수는 문서의 현재 위치에 페이지 브레이크를 삽입하여 새 페이지에 모든 후속 컨텐츠가 나타납니다. Php를 사용하여 템플릿에서 Word 문서를 만들 수 있습니까? , php를 사용하여 템플릿에서 Word 문서를 만들 수 있습니다. PHPWORD 라이브러리는 Word Document 템플릿을로드하는 데 사용할 수있는 LoadTemplate ()라는 기능을 제공합니다. 그런 다음 setValue () 함수를 사용하여 템플릿의 자리 표시 자 텍스트를 자신의 컨텐츠로 바꿀 수 있습니다.
php를 사용하여 내 Word 문서에 하이퍼 링크를 추가 할 수 있습니까?
하이퍼 링크를 추가 할 수 있습니다. PHPWORD 라이브러리에서 제공 한 addLink () 함수를 사용하여 PHP를 사용하는 Word 문서. 이 함수는 문서의 현재 위치에서 하이퍼 링크를 만듭니다. 하이퍼 링크의 URL과 하이퍼 링크로 표시 될 텍스트를 지정할 수 있습니다. Php를 사용하여 Word 문서에 목록을 추가 할 수 있습니까? PHP를 사용한 문서. Phpword 라이브러리는 문서에 목록 항목을 추가하는 데 사용할 수있는 addlistitem ()이라는 함수를 제공합니다. 목록 항목의 텍스트와 목록의 항목 깊이를 지정할 수 있습니다. 질문 3에 설명 된 것과 동일한 방법을 사용하여 목록 항목에 스타일을 적용 할 수도 있습니다.