@sherifeweis
I append multiple word documents in PHP using Aspose.Words REST API without any problem. Please note appendDocument API method appends document from cloud storage and saves the output to cloud storage. I am unable to test your code due to incomplete code. However, please check the following working code. It uploads files from a folder in the current working directory to cloud storage, append the document and download the output file. Hopefully, it will help you to accomplish the task.
Steps to Merge Word Files in PHP
- Get aspose.cloud credentials
- Install Aspose.Words Cloud SDK for PHP package from PIP
- Create a script file for PHP code and add reference to Aspose.Words Cloud SDK for PHP
- Initiate WordsApi object with credentials
- Upload source Word files to cloud storage using UploadFile API method
- Create requestDocumentListDocumentEntries Array to merge word files
- Use AppenDocumentRequest method to set desired properties
- Merge Word files with appendDocument method and save output to cloud storage
Combine Word Files in PHP
<?php
require_once('D:\xampp\htdocs\aspose-words-cloud-php-master\vendor\autoload.php');
//TODO: Get your ClientId and ClientSecret at https://dashboard.aspose.cloud (free registration is required).
$ClientId="xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx";
$ClientSecret="xxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$wordsApi = new Aspose\Words\WordsApi($ClientId,$ClientSecret);
try {
$remoteDataFolder = "Temp";
$localFile = "data/02_pages.docx";
$remoteFileName = "02_pages.docx";
$localFile1 = "data/Test.docx";
$remoteFileName1 = "Test.docx";
$outputFileName = "TestAppendDocument.docx";
$uploadRequest = new Aspose\Words\Model\Requests\UploadFileRequest($localFile,$remoteDataFolder."/".$remoteFileName,null);
$wordsApi->uploadFile($uploadRequest);
$uploadRequest1 = new Aspose\Words\Model\Requests\UploadFileRequest($localFile1,$remoteDataFolder."/".$remoteFileName1,null);
$wordsApi->uploadFile($uploadRequest1);
$requestDocumentListDocumentEntries0 = new Aspose\Words\Model\DocumentEntry(array(
"href" => $remoteDataFolder . "/" . $remoteFileName1,
"import_format_mode" => "KeepSourceFormatting",
));
$requestDocumentListDocumentEntries = [
$requestDocumentListDocumentEntries0,
];
$requestDocumentList = new Aspose\Words\Model\DocumentEntryList(array(
"document_entries" => $requestDocumentListDocumentEntries,
));
$request = new Aspose\Words\Model\Requests\AppendDocumentRequest(
$remoteFileName,
$requestDocumentList,
$remoteDataFolder,
NULL,
NULL,
NULL,
$remoteDataFolder . "/" . $outputFileName,
NULL,
NULL
);
$result = $wordsApi->appendDocument($request);
##Download file
$request = new Aspose\Words\Model\Requests\DownloadFileRequest($remoteDataFolder."/".$outputFileName,NULL,NULL);
$result = $wordsApi->downloadFile($request);
copy($result->getPathName(),"data/AppendOutput.docx");
print_r($result);
} catch (Exception $e) {
echo "Something went wrong: ", $e->getMessage(), "\n";
PHP_EOL;
}
?>