JavaでPowerPointをPDFに変換

概要

PowerPointドキュメントを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に変換しようとします。

以下のJavaコードは、PowerPointをPDFに変換する方法を示しています:

// PowerPointファイルを表すPresentationクラスのインスタンスを生成
Presentation pres = new Presentation("PowerPoint.ppt");
try {
    // プレゼンテーションをPDFとして保存
    pres.save("PPT-to-PDF.pdf", SaveFormat.Pdf);
} finally {
    if (pres != null) pres.dispose();
}

オプションを使用したPowerPointからPDFへの変換

Aspose.Slidesはカスタムオプションを提供しており、PdfOptionsクラスのプロパティを使用して、PDF(変換プロセスの結果)をカスタマイズしたり、パスワードでPDFをロックしたり、変換プロセスを制御したりすることができます。

カスタムオプションを使用したPowerPointからPDFへの変換

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

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

// PdfOptionsクラスのインスタンスを生成
PdfOptions pdfOptions = new PdfOptions();

// JPG画像の品質を設定
pdfOptions.setJpegQuality((byte)90);

// 画像のDPIを設定
pdfOptions.setSufficientResolution(300);

// メタファイルの処理方法を設定
pdfOptions.setSaveMetafilesAsPng(true);

// テキスト内容の圧縮レベルを設定
pdfOptions.setTextCompression(PdfTextCompression.Flate);

// PDFの準拠モードを定義
pdfOptions.setCompliance(PdfCompliance.Pdf15);

// PowerPointドキュメントを表すPresentationクラスのインスタンスを生成
Presentation presentation = new Presentation("PowerPoint.pptx");
try {
    // プレゼンテーションをPDFドキュメントとして保存
    presentation.save("PowerPoint-to-PDF.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

非表示のスライドを含むPowerPointからPDFへの変換

プレゼンテーションに非表示のスライドが含まれている場合、カスタムオプションであるShowHiddenSlidesプロパティを使用して、Aspose.Slidesに結果のPDFに非表示のスライドをページとして含めるよう指示できます。

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

// PowerPointファイルを表すPresentationクラスのインスタンスを生成
Presentation pres = new Presentation("PowerPoint.pptx");
try {
    // PdfOptionsクラスのインスタンスを生成
    PdfOptions pdfOptions = new PdfOptions();
    
    // 非表示のスライドを追加
    pdfOptions.setShowHiddenSlides(true);
    
    // プレゼンテーションをPDFとして保存
    pres.save("PowerPoint-to-PDF.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    if (pres != null) pres.dispose();
}

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

このJavaコードは、PowerPointをパスワード保護されたPDFに変換する方法を示しています(PdfOptionsクラスの保護パラメータを使用):

// PowerPointファイルを表すPresentationオブジェクトのインスタンスを生成
Presentation pres = new Presentation("PowerPoint.pptx");
try {
    // PdfOptionsクラスのインスタンスを生成
    PdfOptions pdfOptions = new PdfOptions();
    
    // PDFのパスワードとアクセス権限を設定
    pdfOptions.setPassword("password");
    pdfOptions.setAccessPermissions(PdfAccessPermissions.PrintDocument | PdfAccessPermissions.HighQualityPrint);
    
    // プレゼンテーションをPDFとして保存
    pres.save("PPTX-to-PDF.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    if (pres != null) pres.dispose();
}

フォント置換を検出する

Aspose.Slidesは、SaveOptionsクラスのgetWarningCallbackメソッドを提供しており、プレゼンテーションをPDFに変換するプロセスでフォント置換を検出することができます。

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

public void main(String[] args)
{
    LoadOptions loadOptions = new LoadOptions();
    FontSubstSendsWarningCallback warningCallback = new FontSubstSendsWarningCallback();
    loadOptions.setWarningCallback(warningCallback);

    Presentation pres = new Presentation("pres.pptx", loadOptions);
    try {
        
    } finally {
        if (pres != null) pres.dispose();
    }
}

private class FontSubstSendsWarningCallback implements IWarningCallback
{
    public int warning(IWarningInfo warning)
    {
        if (warning.getWarningType() == WarningType.CompatibilityIssue)
            return ReturnAction.Continue;

        if (warning.getWarningType() == WarningType.DataLoss &&
                warning.getDescription().startsWith("Font will be substituted"))
        {
            System.out.println("フォント置換の警告: " + warning.getDescription());
        }

        return ReturnAction.Continue;
    }
}

PowerPointで選択したスライドをPDFに変換する

このJavaコードは、PowerPointプレゼンテーション内の特定のスライドをPDFに変換する方法を示しています:

// PowerPointファイルを表すPresentationオブジェクトのインスタンスを生成
Presentation pres = new Presentation("PowerPoint.pptx");
try {
    // スライドの位置の配列を設定
    int[] slides = { 1, 3 };
    
    // プレゼンテーションをPDFとして保存
    pres.save("PPTX-to-PDF.pdf", slides, SaveFormat.Pdf);
} finally {
    if (pres != null) pres.dispose();
}

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

このJavaコードは、スライドサイズが指定されたPowerPointをPDFに変換する方法を示しています:

// PowerPointファイルを表すPresentationオブジェクトのインスタンスを生成 
Presentation pres = new Presentation("SelectedSlides.pptx");
try {
    Presentation outPres = new Presentation();
    try {
        ISlide slide = pres.getSlides().get_Item(0);

        outPres.getSlides().insertClone(0, slide);
        
        // スライドのタイプとサイズを設定 
        outPres.getSlideSize().setSize(612F, 792F, SlideSizeScaleType.EnsureFit);
        
        PdfOptions pdfOptions = new PdfOptions();
        INotesCommentsLayoutingOptions options = pdfOptions.getNotesCommentsLayouting();
        options.setNotesPosition(NotesPositions.BottomFull);

        outPres.save("PDFnotes_out.pdf", SaveFormat.Pdf, pdfOptions);
    } finally {
        if (pres != null) pres.dispose();
    }
} finally {
    if (pres != null) pres.dispose();
}

メモスライドビューでPowerPointをPDFに変換する

このJavaコードは、PowerPointをメモとしてPDFに変換する方法を示しています:

// PowerPointファイルを表すPresentationクラスのインスタンスを生成
Presentation pres = new Presentation("SelectedSlides.pptx");
try {
    PdfOptions pdfOptions = new PdfOptions();
    INotesCommentsLayoutingOptions options = pdfOptions.getNotesCommentsLayouting();
    options.setNotesPosition(NotesPositions.BottomFull);

    pres.save("Pdf_With_Notes.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    if (pres != null) pres.dispose();
}

PDFのアクセシビリティと準拠基準

Aspose.Slidesを使用すると、Webコンテンツアクセシビリティガイドライン(WCAGに準拠した変換手順を使用できます。PowerPoint文書を、PDF/A1aPDF/A1bPDF/UAのいずれかの準拠基準を使用してPDFにエクスポートできます。

以下のJavaコードは、異なる準拠基準に基づいて複数のPDFを取得するPowerPointからPDFへの変換操作を示します:

Presentation pres = new Presentation("pres.pptx");
try {
    PdfOptions pdfOptions = new PdfOptions();
    
    pdfOptions.setCompliance(PdfCompliance.PdfA1a);
    pres.save("pres-a1a-compliance.pdf", SaveFormat.Pdf, pdfOptions);

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

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