나는이 작업을 마침내 얻을 수있었습니다. OUr 문제는 Word 2003에 PDF 변환기가 없다는 것입니다. 우리는 지금 Office 2010의 평가판을 사용하여 종료했습니다 (모든 것이 올바르게 작동한다고 가정하면 정식 버전을 구입할 예정입니다). Word 2007도 효과가있었습니다. 아래 코드는이 코드를 사용하여 작동합니다.
//Word Doc to PDF using Com
ini_set("com.allow_dcom","true");
try{
$word = new com('word.application') or die('MS Word could not be loaded');
}
catch (com_exception $e)
{
$nl = "<br />";
echo $e->getMessage() . $nl;
echo $e->getCode() . $nl;
echo $e->getTraceAsString();
echo $e->getFile() . " LINE: " . $e->getLine();
$word->Quit();
$word = null;
die;
}
$word->Visible = 0;
$word->DisplayAlerts = 0;
try{
$doc = $word->Documents->Open(DOC_LOCATION. 'test_image.docx');
}
catch (com_exception $e)
{
$nl = "<br />";
echo $e->getMessage() . $nl;
echo $e->getCode() . $nl;
echo $e->getFile() . " LINE: " . $e->getLine();
$word->Quit();
$word = null;
die;
}
echo "doc opened";
try{
$doc->ExportAsFixedFormat(DOC_LOCATION . "test_image.pdf", 17, false, 0, 0, 0, 0, 7, true, true, 2, true, true, false);
}
catch (com_exception $e)
{
$nl = "<br />";
echo $e->getMessage() . $nl;
echo $e->getCode() . $nl;
echo $e->getTraceAsString();
echo $e->getFile() . " LINE: " . $e->getLine();
$word->Quit();
$word = null;
die;
}
echo "created pdf";
$word->Quit();
$word = null;
몇 달 전에 PowerShell을 사용하여이 작업을 수행했습니다. 기본적으로 누군가 PDF로 저장하는 것을 시뮬레이트하는 배치 스크립트입니다. 들여다 볼 가치가 있습니다. – BIOSTALL
Com을 사용하려는 이유가 있습니까? –
@Jowierun 필자는 자신의 시스템에 새로운 스크립팅 언어 (예 : Python)를 도입 할 수 없기 때문에 Com을 사용하고 있습니다. 이것은 내가 명령 줄 도구의 일종없이 PHP 외부의 응용 프로그램과 상호 작용할 수있는 유일한 방법입니다. – Mike