2012-01-04 42 views
7

Tôi thấy một số câu hỏi tương tự trên diễn đàn này nhưng tất cả những người đã cho nền tảng .NET vì vậy xin vui lòng không đóng nó như là bản sao. Tôi có một hệ thống Linux và tôi muốn chuyển đổi slide sang hình ảnh thông qua php hoặc shell script (ít thích hợp hơn). lệnh convert có thể chuyển đổi pdf sang jpg nhưng không chuyển đổi thành ppt.Làm thế nào để chuyển đổi ppt slide sang jpeg hình ảnh trong php

Mọi trợ giúp đều tuyệt vời.

+0

Bạn có thể thử kịch bản OpenOffice Impress, vì nó có thể đọc (một số) PPT và hiển thị chúng, nhưng nhận được kết quả tương tự như những gì Powerpoint chính nó sẽ sản xuất sẽ bị đánh/bỏ lỡ. –

+0

Vui lòng làm rõ: * .ppt (có thể doable) hoặc * .pptx (gần như không thể) –

Trả lời

1

Tôi không nghĩ rằng có thể. Sử dụng .NET có nghĩa là người dùng đang tạo một cá thể của một ứng dụng powerpoint và yêu cầu nó in một trang trình bày cụ thể sang JPG hoặc PDF nhưng trong trường hợp PHP tôi không nghĩ rằng nó có thể thực hiện được từ một hệ thống Linux.

Trong trường hợp bạn có thể truy cập máy chủ Windows, bạn có thể sử dụng giao diện COM của PHP để tạo ứng dụng COM và khởi động ứng dụng PowerPoint đã cài đặt và thực hiện điều tương tự miễn là thành phần COM hiển thị các phương thức cần thiết (có thể là iN())

Chúc may mắn

+0

hmmm. Tôi đoán sau đó tôi cần yêu cầu người dùng trang web của tôi tải lên bản pdf được chuyển đổi trước. – prongs

2

http://code.google.com/p/jodconverter/ dường như có tất cả các khối xây dựng tại chỗ, thậm chí còn có một webapp mẫu.

Chúng tôi đã sử dụng phiên bản cũ tại http://sourceforge.net/projects/jodconverter/ thành công một thời gian trước đây, nhưng tôi thực sự không thể nhớ chi tiết.

+0

Bạn nói pptx không thể? dự án này làm gì? – prongs

+0

Nó sử dụng Văn phòng [Mở | Libre], không thực sự có thể tải tệp .pptx đáng tin cậy –

0

hi bạn cần phải kích hoạt COM trong php.ini sau đó bạn có thể thử này ra

<?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

Từ một kịch bản shell bạn có thể sử dụng Unoconv mà là một dòng lệnh wrapper đơn giản để LibreOffice cho phép bạn chuyển đổi thành chất lượng hợp lý.

Để có giải pháp với đầu ra chất lượng cao hơn có thể được gọi trực tiếp từ PHP (và trên Linux), bạn có thể sử dụng API chuyển đổi tệp chuyên dụng chẳng hạn như Zamzar.

Mã nộp một tập tin PPT (hoặc PPTX) để quy đổi ra JPEG sẽ như sau (thông tin thêm trong 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); 
?> 
Các vấn đề liên quan