2012-01-04 13 views
7

Ho visto alcune domande simili su questo forum ma tutte quelle erano per la piattaforma .NET quindi per favore non chiuderla come duplicata. Ho un sistema linux e voglio convertire la diapositiva in immagini tramite script php o shell (meno preferibile). il comando convert può convertire pdf in jpg ma non in ppt.Come convertire la diapositiva ppt in immagini jpeg in php

Qualsiasi aiuto sarebbe fantastico.

+0

Si può provare scripting OpenOffice Impress, come si può leggere (un po ') PPT e renderli, ma ottenere risultati simili a quelli che Powerpoint stesso produrrà sarà hit/miss. –

+0

Si prega di chiarire: * .ppt (forse fattibile) o * .pptx (quasi impossibile) –

risposta

1

Non penso sia possibile. L'utilizzo di .NET significherebbe che l'utente sta creando un'istanza di un'applicazione powerpoint e chiedendo di stampare una diapositiva specifica su un file JPG o PDF, ma nel caso di PHP non penso sia possibile da un sistema Linux.

Nel caso in cui si può andare su server Windows, quindi è possibile utilizzare l'interfaccia COM di PHP per creare un'applicazione COM e avviare un'applicazione di PowerPoint installata e fare la stessa cosa purché il componente COM esponga i metodi necessari (probabilmente STAMPA())

Buona fortuna

+0

hmmm. Immagino quindi di dover chiedere agli utenti del mio sito di caricare un pdf pre-convertito. – prongs

2

http://code.google.com/p/jodconverter/ sembra avere tutti i blocchi di costruzione in atto, c'è anche una webapp campione.

Abbiamo usato la vecchia versione http://sourceforge.net/projects/jodconverter/ con successo qualche tempo fa, ma non riesco davvero a ricordare i dettagli.

+0

Hai detto pptx impossibile? cosa fa questo progetto? – prongs

+0

Utilizza [Open | Libre] Office, che non è veramente in grado di caricare in modo affidabile file .pptx –

0

hi è necessario attivare COM in php.ini allora si può provare questo fuori

<?php 

$ppApp = new COM("PowerPoint.Application"); 
$ppApp->Visible = True; 
$strPath = realpath(basename(getenv($_SERVER["SCRIPT_NAME"]))); // C:/AppServ/www/myphp 
$ppName = "MySlides.ppt"; 
$FileName = "MyPP"; 
//*** Open Document ***// 
$ppApp->Presentations->Open(realpath($ppName)); 
//*** Save Document ***// 
$ppApp->ActivePresentation->SaveAs($strPath."/".$FileName,17); //'*** 18=PNG, 19=BMP **' 
//$ppApp->ActivePresentation->SaveAs(realpath($FileName),17); 
$ppApp->Quit; 
$ppApp = null; 

?>

0

Da uno script di shell è possibile utilizzare Unoconv che è una semplice riga di comando wrapper per LibreOffice che ti consentirebbe di convertire in una qualità ragionevole.

Per una soluzione con output di qualità superiore che può essere richiamata direttamente da PHP (e su Linux) è possibile utilizzare un'API di conversione file dedicata come Zamzar.

Il codice per inviare un file PPT (o PPTX) per la conversione in JPEG sarà il seguente (maggiori informazioni nella documentation):

<?php 
// Build request 
$endpoint = "https://api.zamzar.com/v1/jobs"; 
$apiKey = "YOUR_KEY"; 
$sourceFilePath = "/tmp/my.ppt"; // Or PPTX 
$targetFormat = "jpg"; 

$sourceFile = curl_file_create($sourceFilePath);  
$postData = array(
    "source_file" => $sourceFile, 
    "target_format" => $targetFormat 
); 

// Send request 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $endpoint); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); 
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_USERPWD, $apiKey . ":"); 
$body = curl_exec($ch); 
curl_close($ch); 

// Process response (with link to converted files) 
$response = json_decode($body, true); 
print_r($response); 
?> 
Problemi correlati