2010-01-28 39 views
19

Có ai biết bất kỳ API nào (thương mại hoặc nguồn mở) có thể tạo/chỉnh sửa bản trình bày PowerPoint 2007/2010 thông qua Java hay không. Tôi có một mẫu ở định dạng PowerPoint 2007/2010 mà tôi yêu cầu chỉnh sửa/cập nhật. Cho đến nay tôi đã chuyển đổi tệp .pptx thành xml và sau đó chỉnh sửa và lưu trữ tệp đó dưới dạng .pptx. Nhưng tập tin bị hỏng trong khi mở.Tạo tệp PowerPoint 2007/2010 bằng cách sử dụng Java

Có ai biết về bất kỳ phương pháp hoặc API nào khác thực hiện điều này trong Java không?

+0

Tôi giả định rằng * thực sự * bị hỏng trong khi lưu và bạn nhận được thông báo khi mở. Điều đó nói rằng, OpenOffice.org dựa trên Java ... –

Trả lời

5

Có. Kiểm tra này ra http://poi.apache.org/, họ vừa phát hành phiên bản 3.6 mà bây giờ hỗ trợ các tài liệu định dạng Office 2007. Phần tốt nhất là nó hoàn toàn miễn phí!

7

docx4j (giấy phép apache) hiện bao gồm thành phần pptx4j, có thể mở/chỉnh sửa/lưu tài liệu pptx.

9

Chúng tôi đã thực hiện nó theo chương trình (nguồn đóng tại thời điểm này, xin lỗi) để có thể trợ giúp, nhưng hãy cẩn thận với một vài gotchas.

Một là dự án POI (ít nhất là khi chúng tôi xem xét nó vào năm ngoái), khá hoàn toàn. Nó không làm Biểu đồ PPTX - đó là một tính năng mà chúng tôi muốn. Infact các trang web POI có thể không được cập nhật, nhưng họ không xuất hiện để hỗ trợ định dạng PowerPoint 20087 (http://poi.apache.org/slideshow/index.html). Mọi người đều đề xuất dự án này, nhưng đánh giá của chúng tôi là nó vô dụng khi tạo ra các tệp PowerPoint 2007 thông qua Java. Milage của bạn có thể khác nhau.

Apose cũng có một số hạn chế đáng kể khi chúng tôi xem xét; không làm Biểu đồ trong PowerPoint 2007 là vấn đề chặn đối với chúng tôi.

Một vấn đề khác là PowerPoint 2007 có thể khá là lỗi. Chúng tôi đã có một số tệp PPT được sản xuất progammatically gây ra khóa, nhưng khi thử nghiệm, chúng tôi thấy rằng chúng tôi có thể repro treo và khóa up bằng các tài liệu PPTX đơn giản được tạo trong PowerPoint 2007 - tức là không phải mã của chúng tôi.

Cuối cùng, chúng tôi đã làm như sau: Giải nén tệp mẫu 'mẫu' PowerPoint sang một thư mục, sau đó theo yêu cầu, điền mẫu XML với các giá trị mới, nén nó lên, đổi tên các thành phần khác nhau & phân phối cho người dùng PPTX hợp lệ. Hoạt động OK, ngoại trừ sự cố PowerPoint kỳ lạ khi mọi người chỉnh sửa tệp. Nếu có một thị trường cho nó, tôi đoán chúng tôi có thể đóng gói mã như một webservice (ví dụ xml/csv -> PPTX) hoặc đặt cùng một gói thương mại, nhưng chúng tôi sẽ không làm điều đó miễn phí.

0

Để tạo bản trình bày PowerPoint từ tệp mẫu, bạn có thể sử dụng PPT Templates.

Thư viện này cung cấp một API thông thạo để thay thế các biến bên trong mẫu PPT:

try(FileOutputStream out = new FileOutputStream("generated.pptx")) { 
    new PptMapper() 
    .text("variable", "Hello") 
    .text("other_variable", "World!") 
    .processTemplate(PptTemplateDemo.class.getResourceAsStream("/title.pptx")) 
    .write(out); 
} 

Với thư viện này, bạn có thể xử lý văn bản và hình ảnh trong mẫu.

Các vấn đề liên quan