2012-06-20 5 views
0

지역 자선 단체를위한 웹 사이트 응용 프로그램을 만들고 있는데, 잘되고 있습니다. 대부분의 문제를 극복 한 것 같지만, 이것은 큰 문제입니다. 그것이 가능한지 아십시오.자바 스크립트를 통한 MS Word 개체 모델 : 편지 병합

사용자가 단추를 클릭하여 텍스트 파일과 미리 작성된 템플릿 (dotx) 파일을 병합하여 메일로 Microsoft Word 파일을 출력 할 수있게하려는 것입니다. 둘 다 서버쪽에 있습니다. 텍스트 파일에는 mySQL 데이터베이스에서 가져 와서 PHP를 통해 생성 된 레코드 하나만 포함됩니다.

문서 zip에서 문서 파일을 수정하는 데 XSLT를 사용하는 것에 대해 알고 있지만 자선 서버에서 php.ini에 액세스 할 수는 없으며 어쨌든 간단하다는 점을 고려하면 조금 복잡해 보입니다. 매크로를 편지 병합으로 작성하십시오.

Word 개체 모델을 사용하려고 할 때 자바 스크립트를 사용해야하지만 대부분의 사용자는 Firefox 또는 Chrome을 사용하므로 예를 들어 그렇게됩니다. 해당 브라우저에서 var oApplication = new ActiveXObject("Application.Word");을 사용할 수 있습니까? 아니면 단순히 = new Object("Application.Word");을 사용할 수 있습니까?

또한 자바 스크립트의 개체가 VBA의 함수 이름과 매개 변수와 동일한 함수 이름과 매개 변수를 가지는지 확인할 수 있습니다. 자바 스크립트를 통해 Word를 사용 해 본 적이 없지만 VBA와 동일하면 정상이어야합니다. 내 개발을위한 로컬 호스트 및 파일 구조를 사용하고

은 다음과 같습니다

  • 템플릿 \ conformation.docx
  • 템플릿 data.txt로는 생성 된 PHP는 \의 data.txt로

데이터베이스에서 가져온 데이터의 CSV

답변

2

Internet Explorer에서만 ActiveX/COM 자동화 (word.application에 액세스해야 함)가 지원되며 다른 브라우저에서는 지원하지 않습니다.

인 경우 여전히 클라이언트 내에서 서버의 Word 파일과 쉽게 상호 작용할 수 없습니다.

서버에 설치된 Word의 실제 인스턴스와 프로그래밍 방식으로 상호 작용해야하는 Word 자체에 실제로 포함 된 기능 (예 : 편지 병합)에 액세스 할 수 있지만 서버에서 파일을 생성 할 수 있습니다 (Generating word documents with PHP). PHP/COM/word.application)를 사용하여이를 제어하려면이 문제를 방지하려면 수동으로 편지 병합을 수행하십시오.

또 다른 대안은 출력 문서를 생성하기 위해 PHP 웹 서비스와 상호 작용하는 VBA 코드가 포함 된 Word 문서를 갖는 것입니다.

0

응용 프로그램에 웹 서비스가 있습니까? 그렇다면 Docmosis를 살펴보십시오. 문서 템플릿을 업로드 한 다음 데이터가 포함 된 요청을 보내서 편지 병합을 수행하면 MS 단어를 포함한 다양한 옵션을 사용하여 결과를 출력 할 수 있습니다.

관련 문제