PHPでPPTおよびPPTXをPDFに変換(高度な機能を含む)

概要

PowerPoint プレゼンテーション(PPT、PPTX、ODP など)を PHP で PDF 形式に変換すると、さまざまなデバイス間での互換性や、プレゼンテーションのレイアウト・書式を保持できるといった利点があります。このガイドでは、プレゼンテーションを PDF に変換する方法、画像品質の制御オプション、非表示スライドの含め方、PDF のパスワード保護、フォント置換の検出、変換対象スライドの選択、コンプライアンス基準の適用方法を示します。

PowerPoint から PDF への変換

Aspose.Slides を使用すると、次の形式のプレゼンテーションを PDF に変換できます。

  • PPT
  • PPTX
  • ODP

プレゼンテーションを PDF に変換するには、ファイル名を Presentation クラスの引数として渡し、save メソッドで PDF として保存します。Presentation クラスは、通常 PDF への変換に使用される save メソッドを提供します。

Aspose.Slides は次の変換をサポートします。

  • プレゼンテーション全体を PDF に変換
  • プレゼンテーション内の特定スライドを PDF に変換

Aspose.Slides はプレゼンテーションを PDF にエクスポートし、元のプレゼンテーションに極めて近い PDF を生成します。変換時に正確にレンダリングされる要素と属性は次のとおりです。

  • 画像
  • テキストボックスとシェイプ
  • テキスト書式
  • 段落書式
  • ハイパーリンク
  • ヘッダーとフッター
  • 箇条書き

PowerPoint を PDF に変換

標準の PowerPoint から PDF への変換プロセスはデフォルトオプションを使用します。この場合、Aspose.Slides は最高品質レベルで最適な設定を使用してプレゼンテーションを PDF に変換しようとします。

以下のコードは、プレゼンテーション(PPT、PPTX、ODP など)を PDF に変換する方法を示しています。

# PowerPointまたはOpenDocumentファイルを表すPresentationクラスのインスタンスを作成します。
$presentation = new Presentation("PowerPoint.pptx");
try {
    # プレゼンテーションをPDFとして保存します。
    $presentation->save("PPT-to-PDF.pdf", SaveFormat::Pdf);
} finally {
    $presentation->dispose();
}

オプション付きで PowerPoint を PDF に変換

Aspose.Slides は、PdfOptions クラス(https://reference.aspose.com/slides/php-java/aspose.slides/PdfOptions)配下のカスタムオプション(プロパティ)を提供し、結果の PDF をカスタマイズしたり、パスワードでロックしたり、変換プロセスの動作を指定したりできます。

カスタムオプション付きで PowerPoint を PDF に変換

カスタム変換オプションを使用すると、ラスタ画像の品質設定、メタファイルの処理方法、テキストの圧縮レベル、画像の DPI などを指定できます。

以下のコード例は、複数のカスタムオプションを使用して PowerPoint プレゼンテーションを PDF に変換する方法を示しています。

# PdfOptionsクラスのインスタンスを作成します。
$pdfOptions = new PdfOptions();

# JPG画像の品質を設定します。
$pdfOptions->setJpegQuality(90);

# 画像のDPIを設定します。
$pdfOptions->setSufficientResolution(300);

# メタファイルの動作を設定します。
$pdfOptions->setSaveMetafilesAsPng(true);

# テキストコンテンツの圧縮レベルを設定します。
$pdfOptions->setTextCompression(PdfTextCompression::Flate);

# PDFコンプライアンスモードを定義します。
$pdfOptions->setCompliance(PdfCompliance::Pdf15);

# PowerPointまたはOpenDocumentファイルを表すPresentationクラスのインスタンスを作成します。
$presentation = new Presentation("PowerPoint.pptx");
try {
    # プレゼンテーションをPDFドキュメントとして保存します。
    $presentation->save("PowerPoint-to-PDF.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

非表示スライドを含めて PowerPoint を PDF に変換

プレゼンテーションに非表示スライドが含まれている場合、PdfOptions クラス(https://reference.aspose.com/slides/php-java/aspose.slides/pdfoptions/#setShowHiddenSlides) の setShowHiddenSlides メソッドを使用して、非表示スライドを結果の PDF のページとして含めることができます。

以下のコードは、非表示スライドを含めて PowerPoint プレゼンテーションを PDF に変換する方法を示しています。

# PowerPointまたはOpenDocumentファイルを表すPresentationクラスのインスタンスを作成します。
$presentation = new Presentation("PowerPoint.pptx");
try {
    # PdfOptionsクラスのインスタンスを作成します。
    $pdfOptions = new PdfOptions();

    # 非表示スライドを追加します。
    $pdfOptions->setShowHiddenSlides(true);

    # プレゼンテーションをPDFとして保存します。
    $presentation->save("PowerPoint-to-PDF.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

パスワード保護された PDF に PowerPoint を変換

以下のコードは、PdfOptions クラス(https://reference.aspose.com/slides/php-java/aspose.slides/pdfoptions/) の保護パラメーターを使用して、PowerPoint プレゼンテーションをパスワード保護された PDF に変換する方法を示しています。

# PowerPointまたはOpenDocumentファイルを表すPresentationクラスのインスタンスを作成します。
$presentation = new Presentation("PowerPoint.pptx");
try {
    # PdfOptionsクラスのインスタンスを作成します。
    $pdfOptions = new PdfOptions();

    # PDFのパスワードとアクセス許可を設定します。
    $pdfOptions->setPassword("password");
    $pdfOptions->setAccessPermissions(PdfAccessPermissions::PrintDocument | PdfAccessPermissions::HighQualityPrint);

    # プレゼンテーションをPDFとして保存します。
    $presentation->save("PPTX-to-PDF.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

フォント置換の検出

Aspose.Slides は、PdfOptions クラス(https://reference.aspose.com/slides/php-java/aspose.slides/pdfoptions/) の setWarningCallback メソッド(https://reference.aspose.com/slides/php-java/aspose.slides/saveoptions/#setWarningCallback) を提供し、プレゼンテーションから PDF への変換プロセス中にフォント置換を検出できます。

以下のコードは、フォント置換を検出する方法を示しています。

class FontSubstitutionHandler {
    function warning($warning)
    {
        if (java_values($warning->getWarningType()) == WarningType::DataLoss &&
        $warning->getDescription()->startsWith("Font will be substituted")) {
            echo("Font substitution warning: " . $warning->getDescription());
        }

        return ReturnAction::Continue;
    }
}

// PDFオプションで警告コールバックを設定します。
$pdfOptions = new PdfOptions();
$warningCallback = java_closure(new FontSubstitutionHandler(), null, java("com.aspose.slides.IWarningCallback"));
$pdfOptions->setWarningCallback($warningCallback);

// プレゼンテーションをPDFとして保存します。
$presentation = new Presentation("sample.pptx");
try {
    // Save the presentation as a PDF.
    $presentation->save("output.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

選択したスライドだけを PDF に変換

以下のコードは、PowerPoint プレゼンテーションの特定スライドだけを PDF に変換する方法を示しています。

# PowerPointまたはOpenDocumentファイルを表すPresentationクラスのインスタンスを作成します。
$presentation = new Presentation("PowerPoint.pptx");
try {
    # スライド番号の配列を設定します。
    $slides = array(1, 3);

    # プレゼンテーションをPDFとして保存します。
    $presentation->save("PPTX-to-PDF.pdf", $slides, SaveFormat::Pdf);
} finally {
    $presentation->dispose();
}

カスタムスライドサイズで PowerPoint を PDF に変換

以下のコードは、指定したスライドサイズで PowerPoint プレゼンテーションを PDF に変換する方法を示しています。

$slideWidth = 612.0;
$slideHeight = 792.0;

# PowerPointまたはOpenDocumentファイルを表すPresentationクラスのインスタンスを作成します。
$presentation = new Presentation("SelectedSlides.pptx");

# スライドサイズを調整した新しいプレゼンテーションを作成します。
$resizedPresentation = new Presentation();

try {
    # カスタムスライドサイズを設定します。
    $resizedPresentation->getSlideSize()->setSize($slideWidth, $slideHeight, SlideSizeScaleType::EnsureFit);

    # 元のプレゼンテーションから最初のスライドをクローンします。
    $slide = $presentation->getSlides()->get_Item(0);
    $resizedPresentation->getSlides()->insertClone(0, $slide);

    # リサイズされたプレゼンテーションをノート付きPDFとして保存します。
    $resizedPresentation->save("PDFnotes_out.pdf", SaveFormat::Pdf);
} finally {
    $resizedPresentation->dispose();
    $presentation->dispose();
}

ノートスライドビューで PowerPoint を PDF に変換

以下のコードは、ノートを含む PDF を生成するために PowerPoint プレゼンテーションを変換する方法を示しています。

# PowerPointまたはOpenDocumentファイルを表すPresentationクラスのインスタンスを作成します。
$presentation = new Presentation("SelectedSlides.pptx");
try {
    # ノートレイアウトでPDFオプションを設定します。
    $notesOptions = new NotesCommentsLayoutingOptions();
    $notesOptions->setNotesPosition(NotesPositions::BottomFull);
    $pdfOptions = new PdfOptions();
    $pdfOptions->setSlidesLayoutOptions($notesOptions);

    # プレゼンテーションをノート付きPDFとして保存します。
    $presentation->save("PDF_with_notes.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

PDF のアクセシビリティとコンプライアンス標準

Aspose.Slides は、Web Content Accessibility Guidelines (WCAG) に準拠した変換手順を使用できます。次のコンプライアンス標準のいずれかで PDF をエクスポートできます:PDF/A1aPDF/A1bPDF/UA

以下のコードは、異なるコンプライアンス標準に基づいて複数の PDF を生成する PowerPoint から PDF への変換プロセスを示しています。

$presentation = new Presentation("pres.pptx");
try {
    $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();
}

FAQ

複数の PowerPoint ファイルを一括で PDF に変換できますか?

はい、Aspose.Slides は複数の PPT または PPTX ファイルをバッチ変換して PDF にすることをサポートします。ファイルをループ処理し、プログラムから変換プロセスを適用できます。

変換後の PDF にパスワードを設定できますか?

もちろんです。PdfOptions クラス(https://reference.aspose.com/slides/php-java/aspose.slides/pdfoptions/) を使用して、変換中にパスワードとアクセス権限を設定できます。

PDF に非表示スライドを含めるにはどうすればよいですか?

PdfOptions クラス(https://reference.aspose.com/slides/php-java/aspose.slides/pdfoptions/) の setShowHiddenSlides メソッドを使用して、結果の PDF に非表示スライドを含めます。

Aspose.Slides は PDF の画像品質を高く保てますか?

はい、PdfOptions クラスの setJpegQualitysetSufficientResolution などのメソッドを利用して、PDF 内の画像を高品質に保つことができます。

Aspose.Slides は PDF/A コンプライアンス標準をサポートしていますか?

はい、Aspose.Slides は PDF/A1a、PDF/A1b、PDF/UA などの各種標準に準拠した PDF のエクスポートをサポートし、アクセシビリティとアーカイブ要件を満たすことができます。

追加リソース