プレゼンテーションのプロパティ

PowerPointの文書プロパティ

Microsoft PowerPoint 2007では、プレゼンテーションファイルの文書プロパティを管理できます。すべてやるべきことは、以下に示すように、Officeアイコンをクリックし、その後準備 | プロパティ | 詳細プロパティメニュー項目を選択することです。

詳細プロパティメニュー項目の選択 ** 
todo:image_alt_text  
詳細プロパティメニュー項目を選択すると、以下の図に示すように、PowerPointファイルの文書プロパティを管理するためのダイアログが表示されます。
プロパティダイアログ ** 
todo:image_alt_text  
上記のプロパティダイアログには、一般要約統計内容カスタムといった多くのタブページがあることがわかります。これらすべてのタブページは、PowerPointファイルに関連するさまざまな種類の情報を構成するために使用されます。カスタムタブは、PowerPointファイルのカスタムプロパティを管理するために使用されます。

Aspose.Slides for Android via Javaを使用した文書プロパティの操作

以前に説明したように、Aspose.Slides for Android via Javaはビルトインおよびカスタムプロパティという2種類の文書プロパティをサポートしています。したがって、開発者はAspose.Slides for Android via Java APIを使用して両方の種類のプロパティにアクセスできます。Aspose.Slides for Android via Javaは、Presentation.DocumentPropertiesプロパティを介してプレゼンテーションファイルに関連付けられた文書プロパティを表すクラスIDocumentPropertiesを提供します。

開発者は、以下に説明するように、Presentationオブジェクトによって公開されたIDocumentPropertiesプロパティを使用して、プレゼンテーションファイルの文書プロパティにアクセスできます。

ビルトインプロパティへのアクセス

IDocumentPropertiesオブジェクトによって公開されるこれらのプロパティには、Creator(著者)、DescriptionKeywordsCreated(作成日)、Modified(最終更新日)、Printed(最終印刷日)、LastModifiedByKeywordsSharedDoc(異なるプロデューサ間で共有されていますか?)、PresentationFormatSubjectTitleが含まれます。

// プレゼンテーションクラスのインスタンスを作成します
Presentation pres = new Presentation("Presentation.pptx");
try {
    // プレゼンテーションに関連するIDocumentPropertiesオブジェクトへの参照を作成します
    IDocumentProperties dp = pres.getDocumentProperties();
    
    // ビルトインプロパティを表示します
    System.out.println("Category : " + dp.getCategory());
    System.out.println("Current Status : " + dp.getContentStatus());
    System.out.println("Creation Date : " + dp.getCreatedTime());
    System.out.println("Author : " + dp.getAuthor());
    System.out.println("Description : " + dp.getComments());
    System.out.println("KeyWords : " + dp.getKeywords());
    System.out.println("Last Modified By : " + dp.getLastSavedBy());
    System.out.println("Supervisor : " + dp.getManager());
    System.out.println("Modified Date : " + dp.getLastSavedTime());
    System.out.println("Presentation Format : " + dp.getPresentationFormat());
    System.out.println("Last Print Date : " + dp.getLastPrinted());
    System.out.println("Is Shared between producers : " + dp.getSharedDoc());
    System.out.println("Subject : " + dp.getSubject());
    System.out.println("Title : " + dp.getTitle());
} finally {
    if (pres != null) pres.dispose();
}

ビルトインプロパティの変更

プレゼンテーションファイルのビルトインプロパティを変更するのは、それらにアクセスするのと同じくらい簡単です。任意のプロパティに文字列値を割り当てるだけで、そのプロパティの値が変更されます。以下の例では、Aspose.Slides for Android via Javaを使用して、プレゼンテーションファイルのビルトイン文書プロパティを変更する方法を示しています。

Presentation pres = new Presentation("Presentation.pptx");
try {
    // プレゼンテーションに関連するIDocumentPropertiesオブジェクトへの参照を作成します
    IDocumentProperties dp = pres.getDocumentProperties();
    
    // ビルトインプロパティを設定します
    dp.setAuthor("Aspose.Slides for Android via Java");
    dp.setTitle("プレゼンテーションプロパティの変更");
    dp.setSubject("Asposeのテーマ");
    dp.setComments("Asposeの説明");
    dp.setManager("Asposeマネージャ");
    
    // プレゼンテーションをファイルに保存します
    pres.save("DocProps.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

この例は、以下に示すように、変更後に表示されるプレゼンテーションのビルトインプロパティを変更します。

変更後のビルトイン文書プロパティ ** 
todo:image_alt_text  

カスタム文書プロパティの追加

Aspose.Slides for Android via Javaは、開発者がプレゼンテーションの文書プロパティに対してカスタム値を追加することも許可します。以下に示す例は、プレゼンテーションのカスタムプロパティを設定する方法を示しています。

Presentation pres = new Presentation();
try {
    // 文書プロパティを取得する
    IDocumentProperties dProps = pres.getDocumentProperties();
    
    // カスタムプロパティを追加
    dProps.set_Item("New Custom", 12);
    dProps.set_Item("My Name", "Mudassir");
    dProps.set_Item("Custom", 124);
    
    // 特定のインデックスにあるプロパティ名を取得
    String getPropertyName = dProps.getCustomPropertyName(2);
    
    // 選択されたプロパティを削除
    dProps.removeCustomProperty(getPropertyName);
    
    // プレゼンテーションを保存
    pres.save("CustomDemo.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}
追加されたカスタム文書プロパティ ** 
todo:image_alt_text  

カスタムプロパティにアクセスして変更する

Aspose.Slides for Android via Javaは、開発者がカスタムプロパティの値にアクセスすることも許可します。以下に示す例は、プレゼンテーションのこれらすべてのカスタムプロパティにアクセスして変更する方法を示しています。

Presentation pres = new Presentation("Presentation.pptx");
try {
    // プレゼンテーションに関連するDocumentPropertiesオブジェクトへの参照を作成します
    IDocumentProperties dp = pres.getDocumentProperties();
    
    // カスタムプロパティにアクセスして変更する
    for (int i = 0; i < dp.getCountOfCustomProperties(); i++) {
        // カスタムプロパティの名前と値を表示
        System.out.println("Custom Property Name : " + dp.getCustomPropertyName(i));
        System.out.println("Custom Property Value : " + dp.get_Item(dp.getCustomPropertyName(i)));
    
        // カスタムプロパティの値を変更
        dp.set_Item(dp.getCustomPropertyName(i), "New Value " + (i + 1));
    }
    
    // プレゼンテーションをファイルに保存します
    pres.save("CustomDemoModified.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

この例は、PPTX プレゼンテーションのカスタムプロパティを変更します。以下の図は、変更前と変更後のプレゼンテーションのカスタムプロパティを示しています。

変更前のカスタムプロパティ ** 
todo:image_alt_text  
変更後のカスタムプロパティ ** 
todo:image_alt_text  

高度な文書プロパティ

新しいメソッドReadDocumentPropertiesおよびUpdateDocumentPropertiesIPresentationInfoインターフェースに追加されました。これらは文書プロパティへの迅速なアクセスを提供し、プレゼンテーション全体を読み込まずにプロパティを変更および更新することを可能にします。

典型的なシナリオでは、プロパティを読み込み、一部の値を変更し、文書を更新します。次のように実装できます。

// プレゼンテーションの情報を読み取る
IPresentationInfo info = PresentationFactory.getInstance().getPresentationInfo("presentation.pptx");

// 現在のプロパティを取得
IDocumentProperties props = info.readDocumentProperties();

// 著者とタイトルフィールドの新しい値を設定
props.setAuthor("New Author");
props.setTitle("New Title");

// 新しい値でプレゼンテーションを更新
info.updateDocumentProperties(props);
info.writeBindedPresentation("presentation.pptx");

特定のプレゼンテーションのプロパティをテンプレートとして使用して他のプレゼンテーションのプロパティを更新するもう1つの方法があります。

IPresentationInfo info = PresentationFactory.getInstance().getPresentationInfo("template.pptx");
DocumentProperties template = (DocumentProperties) info.readDocumentProperties();

template.setAuthor("Template Author");
template.setTitle("Template Title");
template.setCategory("Template Category");
template.setKeywords("Keyword1, Keyword2, Keyword3");
template.setCompany("Our Company");
template.setComments("Created from template");
template.setContentType("Template Content");
template.setSubject("Template Subject");

updateByTemplate("doc1.pptx", template);
updateByTemplate("doc2.odp", template);
updateByTemplate("doc3.ppt", template);
private static void updateByTemplate(String path, IDocumentProperties template) 
{
    IPresentationInfo toUpdate = PresentationFactory.getInstance().getPresentationInfo(path);
    toUpdate.updateDocumentProperties(template);
    toUpdate.writeBindedPresentation(path);
}

新しいテンプレートをゼロから作成し、その後、複数のプレゼンテーションを更新するために使用することも可能です。

DocumentProperties template = new DocumentProperties();\

template.setAuthor("Template Author");
template.setTitle("Template Title");
template.setCategory("Template Category");
template.setKeywords("Keyword1, Keyword2, Keyword3");
template.setCompany("Our Company");
template.setComments("Created from template");
template.setContentType("Template Content");
template.setSubject("Template Subject");

updateByTemplate("doc1.pptx", template);
updateByTemplate("doc2.odp", template);
updateByTemplate("doc3.ppt", template);
private static void updateByTemplate(String path, IDocumentProperties template) 
{
    IPresentationInfo toUpdate = PresentationFactory.getInstance().getPresentationInfo(path);
    toUpdate.updateDocumentProperties(template);
    toUpdate.writeBindedPresentation(path);
}

プレゼンテーションが変更されたかどうかの確認

Aspose.Slides for Android via Javaは、プレゼンテーションが変更されたか作成されたかを確認する機能を提供します。以下に示す例は、プレゼンテーションが作成されたか変更されたかを確認する方法を示しています。

IPresentationInfo info=PresentationFactory.getInstance().getPresentationInfo("props.pptx");

IDocumentProperties props = info.readDocumentProperties();
String app = props.getNameOfApplication();
String ver = props.getAppVersion();

System.out.println("Application Name: " + app);
System.out.println("Application Version: " + ver);

校正言語の設定

Aspose.Slidesは、PowerPoint文書の校正言語を設定できるLanguageIdプロパティ(PortionFormatクラスによって公開)を提供します。校正言語は、PowerPointで綴りや文法がチェックされる言語です。

このJavaコードは、PowerPointの校正言語を設定する方法を示しています:xxx なぜLanguageIdがJavaのPortionFormatクラスに欠けているのか?

Presentation pres = new Presentation(pptxFileName);
try {
    AutoShape autoShape = (AutoShape)pres.getSlides().get_Item(0).getShapes().get_Item(0);

    IParagraph paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
    paragraph.getPortions().clear();

    Portion newPortion = new Portion();

    IFontData font = new FontData("SimSun");
    IPortionFormat portionFormat = newPortion.getPortionFormat();
    portionFormat.setComplexScriptFont(font);
    portionFormat.setEastAsianFont(font);
    portionFormat.setLatinFont(font);

    portionFormat.setLanguageId("zh-CN"); // 校正言語のIdを設定します

    newPortion.setText("1。");
    paragraph.getPortions().add(newPortion);
} finally {
    if (pres != null) pres.dispose();
}

デフォルト言語の設定

このJavaコードは、PowerPointプレゼンテーション全体のデフォルト言語を設定する方法を示しています。

LoadOptions loadOptions = new LoadOptions();
loadOptions.setDefaultTextLanguage("en-US");

Presentation pres = new Presentation(loadOptions);
try {
    // テキストを持つ新しい長方形形状を追加します
    IAutoShape shp = pres.getSlides().get_Item(0).getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 150, 50);
    shp.getTextFrame().setText("新しいテキスト");

    // 最初の部分の言語を確認します
    System.out.println(shp.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().getLanguageId());
} finally {
    if (pres != null) pres.dispose();
}