Chuyển đổi PPT và PPTX sang PDF trong Java [Bao gồm các tính năng nâng cao]

Tổng quan

Việc chuyển đổi các bản trình bày PowerPoint (PPT, PPTX, ODP, v.v.) sang định dạng PDF trong Java mang lại một số lợi ích, bao gồm khả năng tương thích trên các thiết bị khác nhau và giữ nguyên bố cục cũng như định dạng của bài thuyết trình. Hướng dẫn này trình bày cách chuyển đổi bản trình bày sang tài liệu PDF, sử dụng các tùy chọn khác nhau để kiểm soát chất lượng hình ảnh, bao gồm các slide ẩn, bảo mật PDF bằng mật khẩu, phát hiện thay thế phông chữ, chọn các slide cụ thể để chuyển đổi và áp dụng các tiêu chuẩn tuân thủ cho tài liệu đầu ra.

Chuyển đổi PowerPoint sang PDF

  • PPT
  • PPTX
  • ODP

Để chuyển đổi một bản trình bày sang PDF, truyền tên tệp làm đối số cho lớp Presentation , sau đó lưu bản trình bày dưới dạng PDF bằng phương thức save . Lớp Presentation cung cấp phương thức save thường được sử dụng để chuyển đổi bản trình bày sang PDF.

Aspose.Slides cho phép bạn chuyển đổi:

  • Toàn bộ bản trình bày sang PDF
  • Các slide cụ thể từ một bản trình bày sang PDF

Aspose.Slides xuất bản trình bày sang PDF, đảm bảo các PDF kết quả gần như khớp với bản trình bày gốc. Các yếu tố và thuộc tính được hiển thị chính xác trong quá trình chuyển đổi, bao gồm:

  • Hình ảnh
  • Hộp văn bản và hình dạng
  • Định dạng văn bản
  • Định dạng đoạn văn
  • Liên kết
  • Đầu trang và chân trang
  • Dấu đầu dòng
  • Bảng

Chuyển đổi PowerPoint sang PDF

Quá trình chuyển đổi chuẩn từ PowerPoint sang PDF sử dụng các tùy chọn mặc định. Trong trường hợp này, Aspose.Slides cố gắng chuyển đổi bản trình bày đã cung cấp sang PDF bằng các cài đặt tối ưu ở mức chất lượng tối đa.

Ví dụ sau tải một bản trình bày và lưu tất cả các slide hiển thị sang PDF bằng cài đặt xuất mặc định.

import com.aspose.slides.*;

Presentation presentation = new Presentation("PowerPoint.ppt");
try {
    presentation.save("PPT-to-PDF.pdf", SaveFormat.Pdf);
} finally {
    presentation.dispose();
}

Chuyển đổi PowerPoint sang PDF với các tùy chọn

Aspose.Slides cung cấp các tùy chọn tùy chỉnh—các thuộc tính dưới lớp PdfOptions—cho phép bạn tùy biến PDF kết quả, khóa PDF bằng mật khẩu, hoặc chỉ định cách thức tiến hành quá trình chuyển đổi.

Chuyển đổi PowerPoint sang PDF với các tùy chọn tùy chỉnh

Sử dụng các tùy chọn chuyển đổi tùy chỉnh, bạn có thể xác định thiết lập chất lượng mong muốn cho hình raster, chỉ định cách xử lý metafile, đặt mức nén cho văn bản, cấu hình DPI cho hình ảnh, và nhiều hơn nữa.

Ví dụ sau xuất một bản trình bày sang PDF 1.5 với chất lượng JPEG đặt ở 90, độ phân giải hình ảnh là 300 DPI, metafile được lưu dưới dạng PNG, và nén văn bản Flate.

import com.aspose.slides.*;

PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setJpegQuality((byte)90);
pdfOptions.setSufficientResolution(300);
pdfOptions.setSaveMetafilesAsPng(true);
pdfOptions.setTextCompression(PdfTextCompression.Flate);
pdfOptions.setCompliance(PdfCompliance.Pdf15);

Presentation presentation = new Presentation("PowerPoint.pptx");

try {
    presentation.save("PowerPoint-to-PDF.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

Bảo tồn các tệp OLE nhúng dưới dạng tệp đính kèm PDF

Nếu một bản trình bày chứa một sách Excel được nhúng, bạn có thể muốn người nhận PDF truy cập dữ liệu của sách Excel cùng với việc xem các slide. Gọi setIncludeOleData với true để bảo tồn các tệp OLE nhúng dưới dạng tệp đính kèm trong PDF kết quả.

Giá trị mặc định là false: hình ảnh hoặc biểu tượng xem trước của đối tượng OLE được hiển thị trên trang PDF, nhưng tệp nhúng không được bao gồm như một tệp đính kèm. Đặt tùy chọn thành true sẽ bổ sung dữ liệu tệp. Bản xem trước vẫn là biểu diễn hình ảnh; tệp đính kèm cho phép người nhận mở hoặc lưu tệp nhúng riêng biệt. Đối tượng OLE không trở thành một bảng tính Excel tương tác trên trang PDF.

Ví dụ sau tải một bản trình bày đã chứa sẵn một sách Excel nhúng và xuất nó sang PDF có đính kèm sách Excel.

import com.aspose.slides.*;

PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setIncludeOleData(true);

Presentation presentation = new Presentation("presentation.pptx");
try {
    presentation.save("presentation.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

Để kiểm tra kết quả:

  1. Mở PDF đã xuất trong một trình xem hỗ trợ tệp đính kèm, chẳng hạn Adobe Acrobat Reader.
  2. Mở bảng Attachments của trình xem và tìm sách Excel nhúng.
  3. Lưu tệp đính kèm và mở nó trong Excel để kiểm tra dữ liệu, hoặc mở trực tiếp nếu trình xem cho phép. Bản xem trước trên trang PDF là riêng biệt so với tệp đính kèm.

Chuyển đổi PowerPoint sang PDF với các slide ẩn

Nếu một bản trình bày chứa các slide ẩn, bạn có thể sử dụng phương thức setShowHiddenSlides từ lớp PdfOptions để bao gồm các slide ẩn dưới dạng trang trong PDF kết quả.

Ví dụ sau xuất một bản trình bày sang PDF, bao gồm cả các slide ẩn.

import com.aspose.slides.*;

Presentation presentation = new Presentation("PowerPoint.pptx");
try {
    PdfOptions pdfOptions = new PdfOptions();
    pdfOptions.setShowHiddenSlides(true);

    presentation.save("PowerPoint-to-PDF.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

Chuyển đổi PowerPoint sang PDF bảo mật bằng mật khẩu

Ví dụ sau xuất một bản trình bày sang PDF yêu cầu mật khẩu password để mở. Các quyền truy cập cho phép in, bao gồm in chất lượng cao.

import com.aspose.slides.*;

Presentation presentation = new Presentation("PowerPoint.pptx");
try {
    PdfOptions pdfOptions = new PdfOptions();
    pdfOptions.setPassword("password");
    pdfOptions.setAccessPermissions(PdfAccessPermissions.PrintDocument | PdfAccessPermissions.HighQualityPrint);

    presentation.save("PPTX-to-PDF.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

Phát hiện thay thế phông chữ

Aspose.Slides cung cấp phương thức setWarningCallback dưới lớp PdfOptions , cho phép bạn phát hiện việc thay thế phông chữ trong quá trình chuyển đổi bản trình bày sang PDF.

Ví dụ sau xuất một bản trình bày sang PDF và in các cảnh báo thay thế phông chữ ra bảng điều khiển. Cảnh báo chỉ được in khi một phông chữ không có sẵn bị thay thế trong quá trình xuất.

import com.aspose.slides.*;

class FontSubstitutionHandler implements IWarningCallback {
    public int warning(IWarningInfo warning) {
        if (warning.getWarningType() == WarningType.DataLoss && warning.getDescription().startsWith("Font will be substituted")) {
            System.out.println("Font substitution warning: " + warning.getDescription());
        }
        return ReturnAction.Continue;
    }
}

PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setWarningCallback(new FontSubstitutionHandler());

Presentation presentation = new Presentation("sample.pptx");
try {
    presentation.save("output.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

Xử lý phông chữ không có kiểu chữ đậm riêng

Một bản trình bày có thể áp dụng định dạng đậm cho văn bản ngay cả khi phông chữ của nó không có kiểu chữ đậm riêng. Văn bản vẫn có thể hiện ra đậm thông qua việc tạo đậm tổng hợp, làm dày các glyph thông thường. Khi văn bản đó trông quá nặng hoặc khác so với mong muốn trong PDF, hãy thử gọi PdfOptions.setRasterizeUnsupportedFontStyles với true. Tùy chọn này sẽ hiển thị văn bản bị ảnh hưởng dưới dạng bitmap trong quá trình xuất PDF và có thể cải thiện diện mạo của nó cho một số phông chữ. Giá trị mặc định là false.

Bản trình bày mẫu chứa hai hộp văn bản: một với văn bản thường và một với định dạng đậm được áp dụng cho cùng một phông chữ, nhưng không có kiểu chữ đậm riêng. Ví dụ sau tải bản trình bày, bật rasterization cho các kiểu phông chữ không được hỗ trợ, và xuất nó sang PDF:

import com.aspose.slides.PdfOptions;
import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;

PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setRasterizeUnsupportedFontStyles(true);

Presentation presentation = new Presentation("unsupported-bold.pptx");
try {
    presentation.save("rasterized.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

Các bản xem trước sau đây hiển thị đầu ra khi tùy chọn bị tắt và khi bật. Trong ví dụ này, văn bản đậm có nét dày hơn khi tùy chọn tắt. Khi bật, nét của nó nhẹ hơn; văn bản thường không thay đổi. Hãy so sánh kết quả trước khi chọn cài đặt cho bản trình bày của bạn.

Tùy chọn tắt (false, mặc định) Tùy chọn bật (true)
PDF với rasterization kiểu phông chữ không hỗ trợ bị tắt PDF với rasterization kiểu phông chữ không hỗ trợ được bật

Trong ví dụ này, bật tùy chọn sẽ biến chỉ văn bản đậm thành bitmap: không thể chọn, sao chép hoặc tìm kiếm dưới dạng văn bản mà không có OCR, và các cạnh của nó trông mềm hơn ở mức phóng 800%. Văn bản thường vẫn có thể tìm kiếm. Khi tùy chọn bị tắt, cả hai chuỗi vẫn là văn bản.

Tùy chọn này rasterizes văn bản được định dạng đậm khi phông chữ không có kiểu chữ đậm riêng. Thay thế phông chữ thay vào đó sẽ chọn một phông chữ khác khi phông chữ gốc không có sẵn.

Chuyển đổi các slide được chọn từ PowerPoint sang PDF

Ví dụ sau xuất các slide 1 và 3 từ một bản trình bày sang PDF. Các số slide trong mảng này bắt đầu từ 1, và bản trình bày đầu vào phải chứa ít nhất ba slide.

import com.aspose.slides.*;

Presentation presentation = new Presentation("PowerPoint.pptx");
try {
    int[] slides = { 1, 3 };
    presentation.save("PPTX-to-PDF.pdf", slides, SaveFormat.Pdf);
} finally {
    presentation.dispose();
}

Chuyển đổi PowerPoint sang PDF với kích thước slide tùy chỉnh

Ví dụ sau sao chép slide đầu tiên từ một bản trình bày vào một bản trình bày mới với kích thước slide 612 × 792 điểm (8.5 × 11 inch). Nó thu phóng nội dung slide để vừa và xuất slide duy nhất này sang PDF.

import com.aspose.slides.*;

float slideWidth = 612;
float slideHeight = 792;

Presentation presentation = new Presentation("SelectedSlides.pptx");
Presentation resizedPresentation = new Presentation();

try {
    resizedPresentation.getSlideSize().setSize(slideWidth, slideHeight, SlideSizeScaleType.EnsureFit);
    
    ISlide slide = presentation.getSlides().get_Item(0);
    resizedPresentation.getSlides().insertClone(0, slide);

    // Xóa slide trống mà bản trình bày mới tạo ra.
    resizedPresentation.getSlides().removeAt(1);

    resizedPresentation.save("PDF_with_custom_slide_size.pdf", SaveFormat.Pdf);
} finally {
    resizedPresentation.dispose();
    presentation.dispose();
}

Chuyển đổi PowerPoint sang PDF ở chế độ xem ghi chú slide

Ví dụ sau xuất một bản trình bày sang PDF, đặt ghi chú người nói của mỗi slide dưới slide tương ứng. Sử dụng một bản trình bày có ghi chú người nói để xem kết quả.

import com.aspose.slides.*;

Presentation presentation = new Presentation("SelectedSlides.pptx");
try {
    NotesCommentsLayoutingOptions notesOptions = new NotesCommentsLayoutingOptions();
    notesOptions.setNotesPosition(NotesPositions.BottomFull);
    
    PdfOptions pdfOptions = new PdfOptions();
    pdfOptions.setSlidesLayoutOptions(notesOptions);

    presentation.save("PDF_with_notes.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

Tiêu chuẩn truy cập và tuân thủ cho PDF

Aspose.Slides cho phép bạn sử dụng quy trình chuyển đổi tuân thủ các Hướng dẫn Truy cập Nội dung Web (WCAG) . Bạn có thể xuất tài liệu PowerPoint sang PDF bằng bất kỳ tiêu chuẩn tuân thủ nào sau: PDF/A1a, PDF/A1b, và PDF/UA.

Mã này minh họa quy trình chuyển đổi PowerPoint sang PDF tạo ra nhiều PDF dựa trên các tiêu chuẩn tuân thủ khác nhau:

import com.aspose.slides.*;

Presentation presentation = new Presentation("pres.pptx");
try {
    PdfOptions pdfOptions = new PdfOptions();

    pdfOptions.setCompliance(PdfCompliance.PdfA1a);
    presentation.save("pres-a1a-compliance.pdf", SaveFormat.Pdf, pdfOptions);

    pdfOptions.setCompliance(PdfCompliance.PdfA1b);
    presentation.save("pres-a1b-compliance.pdf", SaveFormat.Pdf, pdfOptions);

    pdfOptions.setCompliance(PdfCompliance.PdfUa);
    presentation.save("pres-ua-compliance.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

Lưu ý: Khi xuất sang PDF/UA, Aspose.Slides xem các đồ họa phức tạp như SmartArt, biểu đồ và công thức như một hình duy nhất. Các phần tử đường dẫn riêng lẻ không được giữ lại như nội dung riêng và có thể được đánh dấu là lỗi; văn bản thay thế chỉ được cung cấp cho toàn bộ hình.

Câu hỏi thường gặp

Tôi có thể chuyển đổi nhiều tệp PowerPoint sang PDF hàng loạt không?

Đúng vậy, Aspose.Slides hỗ trợ chuyển đổi hàng loạt nhiều tệp PPT hoặc PPTX sang PDF. Bạn có thể duyệt qua các tệp của mình và áp dụng quy trình chuyển đổi bằng cách lập trình.

Có thể bảo mật PDF đã chuyển đổi bằng mật khẩu không?

Đúng vậy. Sử dụng lớp PdfOptions để đặt mật khẩu và xác định quyền truy cập trong quá trình chuyển đổi.

Làm sao để bao gồm các slide ẩn trong PDF?

Gọi setShowHiddenSlides với true trong lớp PdfOptions để bao gồm các slide ẩn trong PDF kết quả.

Aspose.Slides có thể duy trì chất lượng hình ảnh cao trong PDF không?

Đúng vậy, bạn có thể kiểm soát chất lượng hình ảnh bằng các phương thức như setJpegQuality và setSufficientResolution trong lớp PdfOptions để đảm bảo hình ảnh chất lượng cao trong PDF của bạn.

Aspose.Slides có hỗ trợ các tiêu chuẩn tuân thủ PDF/A không?

Đúng vậy, Aspose.Slides cho phép bạn xuất PDF tuân theo các tiêu chuẩn khác nhau , bao gồm PDF/A1a, PDF/A1b và PDF/UA, đảm bảo tài liệu của bạn đáp ứng các yêu cầu về truy cập và lưu trữ.

Tài nguyên bổ sung