2013-11-27 3 views
0

저는 두통을 느끼고 있습니다.이 시점에서 나는 도움이 필요합니다.PHP 서버를 사용하여 클라이언트 컴퓨터의 Word Template에 데이터를 채 웁니다.

기본적으로 가지고있는 것은 내 컴퓨터에서 서버 (xampp) 설정입니다. 이 서버에는 사용자 입력뿐만 아니라 데이터베이스에서 검색된 데이터로 Word 2007 템플릿을 만들고 채우는 스크립트가 있습니다. 이 부분은 잘 작동합니다.

내 네트워크의 다른 컴퓨터로 이동하여 내 서버의 IP 주소를 입력하고 같은 프로세스를 통해 모든 데이터가 포함 된 Word 템플릿 파일을 만들면 문제가 발생합니다. 서버 컴퓨터가 아닌 클라이언트 컴퓨터. 아무도 이것을 해결하는 방법을 알고 있습니까?

말씀 템플릿 생성 페이지에 대한 코드입니다 :

<?php 
include_once 'core/classes/company.php'; 

$word = new COM("word.application") or die("Unable to start Word"); 
$word->visible=1; 
$template_file = 'C:/xampp/htdocs/portal/includes/templates/form1.dotx'; 
$word->Documents->Open($template_file); 
//Part Number 
$partNumBookMark = 'PartNum'; 
$objBookmark = $word->ActiveDocument->Bookmarks($partNumBookMark); 
$range = $objBookmark->Range; 
$range->Text = $part_num; 
//Part Name 
$partNameBookMark = 'PartName'; 
$objBookmark = $word->ActiveDocument->Bookmarks($partNameBookMark); 
$range = $objBookmark->Range; 
$range->Text = $part_name; 

$word=null; 
unset($word); 

COM 개체의 초기화에서, 나는 ('word.application', 'localhost)을 시도했지만 아무 소용했습니다. 다시 말하지만, 서버 컴퓨터에서 스크립트를 실행해도 정상적으로 작동하지만 최종 입력 및 저장을 위해 클라이언트 컴퓨터에 Word 문서를 표시 할 수 없습니다. 어떤 아이디어?

+1

당신의 HTTP 응답에 그 파일. 이 시점에서, 그것은 단지 정규 파일 다운로드입니다. PHP로 구현하는 방법에 대한 샘플을 쉽게 찾을 수있을 것이라고 확신합니다 (개인적으로 익숙하지는 않습니다). –

답변

0

는이 코드로 결국 그것은 네트워크의 다른 컴퓨터에서 문서를 열 지금 작동합니다

당신은 다음의 내용을 전송, 임시 파일에 문서를 저장 말씀을 말할 필요가
// Save document 
$filename = tempnam(sys_get_temp_dir(), "word"); 
$word->Documents[1]->SaveAs($filename); 

// Close and quit 
$word->Quit(); 
unset($word); 
header("Content-Length: ".filesize($filename)); 
//header("Content-Type: application/force-download"); 
header("Content-type: application/vnd.openxmlformats-officedocument.wordprocessingml.document"); 
header("Content-Disposition: attachment;Filename=document_name.docx"); 
header('Expires: 0'); 
header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
header('Pragma: public'); 

// Send file to browser 

readfile($filename); 
unlink($filename); 
관련 문제