Správa kreslicích vodítek v prezentacích v JavaScriptu

Přehled

Kreslicí vodítka jsou nastavitelná horizontální a vertikální čáry, které uživatelům pomáhají konzistentně zarovnávat tvary při úpravě prezentace v PowerPointu. Jsou zvláště užitečná, když aplikace generuje prezentaci, která bude později ručně upravována: aplikace může uložit stejné pomůcky pro zarovnání, které by měli autoři dodržovat při přidávání či přesouvání obsahu.

Kreslicí vodítka jsou pomůcky pro úpravy, nikoli obsah snímku. Neobjeví se v režimu prezentace ani v renderovaném výstupu. Aspose.Slides for Node.js via Java je zpřístupňuje pomocí třídy DrawingGuidesCollection. Vodítko je reprezentováno třídou DrawingGuide a má orientaci, pozici a barvu.

Pozice se měří v bodech od levého horního rohu příslušného snímku nebo mistra. Vertikální vodítko používá horizontální souřadnici, typicky mezi nulou a šířkou snímku. Horizontální vodítko používá vertikální souřadnici, typicky mezi nulou a výškou snímku.

Přidání vodítek do zobrazení snímku

Použijte CommonSlideViewProperties.getDrawingGuides ke správě vodítek zobrazených při úpravě běžných snímků. Zavolejte DrawingGuidesCollection.add s hodnotou Orientation a pozicí v bodech.

Následující příklad přidá jedno vertikální vodítko vpravo od středu snímku a jedno horizontální vodítko pod něj:

const slides = require("aspose.slides.via.java");

const presentation = new slides.Presentation();
try {
    const slideSize = presentation.getSlideSize().getSize();
    const guides = presentation.getViewProperties().getSlideViewProperties().getDrawingGuides();

    guides.add(slides.Orientation.Vertical, slideSize.getWidth() / 2 + 12.5);
    guides.add(slides.Orientation.Horizontal, slideSize.getHeight() / 2 + 12.5);

    presentation.save("drawing-guides.pptx", slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Přístup k vodítkům

Metody DrawingGuidesCollection.getCount a DrawingGuidesCollection.get_Item poskytují přístup k existujícím vodítkům. Metody DrawingGuide.getOrientation, DrawingGuide.getPosition a DrawingGuide.getColor vrací hodnoty, které lze také změnit odpovídajícími metodami pro nastavení.

Následující příklad čte vodítka zobrazení snímku z prezentace vytvořené výše:

const slides = require("aspose.slides.via.java");

const presentation = new slides.Presentation("drawing-guides.pptx");
try {
    const guides = presentation.getViewProperties().getSlideViewProperties().getDrawingGuides();

    for (let index = 0; index < guides.getCount(); index++) {
        const guide = guides.get_Item(index);
        console.log("Guide " + index + ": orientation = " + guide.getOrientation() + ", position = " + guide.getPosition() + ", color = " + guide.getColor());
    }
} finally {
    presentation.dispose();
}

Přidání vodítek do hlavního a rozložení snímků

Hlavní snímek a každý jeho rozložení snímků může mít své vlastní kolekce kreslicích vodítek. Použijte MasterSlide.getDrawingGuides pro hlavní snímek a LayoutSlide.getDrawingGuides pro rozložení snímku.

Následující příklad přidá vertikální vodítko na první hlavní snímek a horizontální vodítko na první rozložení snímku:

const slides = require("aspose.slides.via.java");

const presentation = new slides.Presentation();
try {
    const slideSize = presentation.getSlideSize().getSize();
    const masterGuides = presentation.getMasters().get_Item(0).getDrawingGuides();
    const layoutGuides = presentation.getLayoutSlides().get_Item(0).getDrawingGuides();

    masterGuides.add(slides.Orientation.Vertical, slideSize.getWidth() / 2 - 20);
    layoutGuides.add(slides.Orientation.Horizontal, slideSize.getHeight() / 2 + 20);

    presentation.save("master-layout-drawing-guides.pptx", slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Přidání vodítek do poznámkových a výtiskových hlavních snímků

Poznámkové mistry a výtiskové mistry také podporují kreslicí vodítka. Použijte MasterNotesSlide.getDrawingGuides a MasterHandoutSlide.getDrawingGuides k přístupu k jejich kolekcím. Pokud prezentace neobsahuje některý z těchto mistrů, MasterNotesSlideManager.setDefaultMasterNotesSlide nebo MasterHandoutSlideManager.setDefaultMasterHandoutSlide vytvoří výchozí mistr a vrátí jej.

Následující příklad přidá horizontální vodítko do poznámkového mistra a vertikální vodítko do výtiskového mistra:

const slides = require("aspose.slides.via.java");

const presentation = new slides.Presentation();
try {
    const notesSize = presentation.getNotesSize().getSize();
    const notesMaster = presentation.getMasterNotesSlideManager().setDefaultMasterNotesSlide();
    const handoutMaster = presentation.getMasterHandoutSlideManager().setDefaultMasterHandoutSlide();

    notesMaster.getDrawingGuides().add(slides.Orientation.Horizontal, notesSize.getHeight() / 2 + 50);
    handoutMaster.getDrawingGuides().add(slides.Orientation.Vertical, notesSize.getWidth() / 2 - 50);

    presentation.save("notes-handout-drawing-guides.pptx", slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Vymazání vodítek

Zavolejte DrawingGuidesCollection.clear k odebrání každého vodítka z konkrétní kolekce. Vymazání jedné kolekce neovlivní vodítka uložená v jiném rozsahu.

Následující příklad vymaže vodítka zobrazení snímku a všech vodítek na hlavních snímcích, rozložení snímcích, poznámkovém mistru i výtiskovém mistru, aniž by vytvářel chybějící mistry:

const slides = require("aspose.slides.via.java");

const presentation = new slides.Presentation("presentation-with-guides.pptx");
try {
    presentation.getViewProperties().getSlideViewProperties().getDrawingGuides().clear();

    for (let index = 0; index < presentation.getMasters().size(); index++) {
        presentation.getMasters().get_Item(index).getDrawingGuides().clear();
    }

    for (let index = 0; index < presentation.getLayoutSlides().size(); index++) {
        presentation.getLayoutSlides().get_Item(index).getDrawingGuides().clear();
    }

    const notesMaster = presentation.getMasterNotesSlideManager().getMasterNotesSlide();
    if (notesMaster !== null) {
        notesMaster.getDrawingGuides().clear();
    }

    const handoutMaster = presentation.getMasterHandoutSlideManager().getMasterHandoutSlide();
    if (handoutMaster !== null) {
        handoutMaster.getDrawingGuides().clear();
    }

    presentation.save("presentation-without-guides.pptx", slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Často kladené dotazy

Objevují se kreslicí vodítka ve slideshow nebo exportovaných obrázcích?

Ne. Kreslicí vodítka jsou pomůcky pro zarovnání při úpravách a nejsou vykreslována jako obsah prezentace.

Lze kreslicí vodítko přidat přímo k jednotlivému normálnímu snímku?

Vodítka pro úpravu normálních snímků jsou uložena ve vlastnostech zobrazení snímku prezentace. Samostatné kolekce vodítek jsou k dispozici pro hlavní snímky, rozložení snímků, poznámkové mistry i výtiskové mistry.

Jaké jednotky se používají pro pozice vodítek?

Pozice jsou udávány v bodech, kde 72 bodů odpovídá jedné palci. Vertikální pozice se měří od levého okraje a horizontální pozice od horního okraje.

Odstraňování kreslicích vodítek odstraňuje tvary nebo mění obsah snímku?

Ne. Metoda DrawingGuidesCollection.clear odstraňuje pouze vodítka ve vybrané kolekci. Tvary a další obsah snímku zůstávají beze změny.