Zarządzanie przewodnikami rysunkowymi w prezentacjach w PHP
Przegląd
Przewodniki rysunkowe to regulowane poziome i pionowe linie, które pomagają użytkownikom wyrównywać kształty konsekwentnie podczas edycji prezentacji w programie PowerPoint. Są szczególnie przydatne, gdy aplikacja generuje prezentację, która później zostanie ręcznie dopracowana: aplikacja może zapisać te same pomoce wyrównania, które autorzy powinni stosować przy dodawaniu lub przemieszczaniu treści.
Przewodniki rysunkowe są pomocą przy edycji, a nie treścią slajdu. Nie pojawiają się w pokazie slajdów ani w renderowanym wyjściu. Aspose.Slides for PHP via Java udostępnia je za pośrednictwem klasy DrawingGuidesCollection . Przewodnik jest reprezentowany przez DrawingGuide i posiada orientację, pozycję oraz kolor.
Pozycja jest mierzona w punktach od lewego górnego rogu odpowiedniego slajdu lub wzorca. Pionowy przewodnik używa współrzędnej poziomej, zazwyczaj pomiędzy zerem a szerokością slajdu. Poziomy przewodnik używa współrzędnej pionowej, zazwyczaj pomiędzy zerem a wysokością slajdu.
Dodawanie przewodników w widoku slajdu
Użyj CommonSlideViewProperties::getDrawingGuides aby zarządzać przewodnikami wyświetlanymi podczas edycji normalnych slajdów. Wywołaj DrawingGuidesCollection::add z wartością Orientation i pozycją w punktach.
Poniższy przykład dodaje jeden pionowy przewodnik po prawej stronie środka slajdu oraz jeden poziomy przewodnik pod nim:
use aspose\slides\Orientation;
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation();
try {
$slideSize = $presentation->getSlideSize()->getSize();
$slideWidth = java_values($slideSize->getWidth());
$slideHeight = java_values($slideSize->getHeight());
$guides = $presentation->getViewProperties()->getSlideViewProperties()->getDrawingGuides();
$guides->add(Orientation::Vertical, $slideWidth / 2 + 12.5);
$guides->add(Orientation::Horizontal, $slideHeight / 2 + 12.5);
$presentation->save("drawing-guides.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Dostęp do przewodników rysunkowych
Metody DrawingGuidesCollection::getCount i DrawingGuidesCollection::get_Item zapewniają dostęp do istniejących przewodników. Metody DrawingGuide::getOrientation, DrawingGuide::getPosition oraz DrawingGuide::getColor zwracają wartości, które można również zmienić przy użyciu odpowiednich metod ustawiających.
Poniższy przykład odczytuje przewodniki widoku slajdu z prezentacji utworzonej powyżej:
use aspose\slides\Presentation;
$presentation = new Presentation("drawing-guides.pptx");
try {
$guides = $presentation->getViewProperties()->getSlideViewProperties()->getDrawingGuides();
$guideCount = java_values($guides->getCount());
for ($index = 0; $index < $guideCount; $index++) {
$guide = $guides->get_Item($index);
$orientation = java_values($guide->getOrientation());
$position = java_values($guide->getPosition());
$color = java_values($guide->getColor()->toString());
echo sprintf("Guide %d: orientation = %d, position = %.2f, color = %s", $index, $orientation, $position, $color) . PHP_EOL;
}
} finally {
$presentation->dispose();
}
Dodawanie przewodników do wzorca i slajdów układu
Wzorzec slajdu i każdy z jego slajdów układu mogą mieć własne kolekcje przewodników rysunkowych. Użyj MasterSlide::getDrawingGuides dla slajdu wzorca oraz LayoutSlide::getDrawingGuides dla slajdu układu.
Poniższy przykład dodaje pionowy przewodnik do pierwszego slajdu wzorca oraz poziomy przewodnik do pierwszego slajdu układu:
use aspose\slides\Orientation;
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation();
try {
$slideSize = $presentation->getSlideSize()->getSize();
$slideWidth = java_values($slideSize->getWidth());
$slideHeight = java_values($slideSize->getHeight());
$masterGuides = $presentation->getMasters()->get_Item(0)->getDrawingGuides();
$layoutGuides = $presentation->getLayoutSlides()->get_Item(0)->getDrawingGuides();
$masterGuides->add(Orientation::Vertical, $slideWidth / 2 - 20);
$layoutGuides->add(Orientation::Horizontal, $slideHeight / 2 + 20);
$presentation->save("master-layout-drawing-guides.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Dodawanie przewodników do wzorców notatek i wersji roboczych
Wzorce notatek i wzorce wersji roboczych również obsługują przewodniki rysunkowe. Użyj MasterNotesSlide::getDrawingGuides i MasterHandoutSlide::getDrawingGuides aby uzyskać dostęp do ich kolekcji. Jeśli prezentacja nie zawiera jednego z tych wzorców, pobierz odpowiedni menedżer przy pomocy Presentation::getMasterNotesSlideManager lub Presentation::getMasterHandoutSlideManager, a następnie utwórz domyślny wzorzec przy użyciu setDefaultMasterNotesSlide lub setDefaultMasterHandoutSlide.
Poniższy przykład dodaje poziomy przewodnik do wzorca notatek oraz pionowy przewodnik do wzorca wersji roboczej:
use aspose\slides\Orientation;
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation();
try {
$notesSize = $presentation->getNotesSize()->getSize();
$notesWidth = java_values($notesSize->getWidth());
$notesHeight = java_values($notesSize->getHeight());
$notesMaster = $presentation->getMasterNotesSlideManager()->setDefaultMasterNotesSlide();
$handoutMaster = $presentation->getMasterHandoutSlideManager()->setDefaultMasterHandoutSlide();
$notesMaster->getDrawingGuides()->add(Orientation::Horizontal, $notesHeight / 2 + 50);
$handoutMaster->getDrawingGuides()->add(Orientation::Vertical, $notesWidth / 2 - 50);
$presentation->save("notes-handout-drawing-guides.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Usuwanie przewodników rysunkowych
Wywołaj DrawingGuidesCollection::clear aby usunąć wszystkie przewodniki z określonej kolekcji. Czyszczenie jednej kolekcji nie wpływa na przewodniki przechowywane w innej przestrzeni.
Poniższy przykład usuwa przewodniki widoku slajdu oraz wszystkie przewodniki na wzorcach slajdów, slajdach układu, wzorcu notatek i wzorcu wersji roboczej, nie tworząc brakujących wzorców:
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation("presentation-with-guides.pptx");
try {
$presentation->getViewProperties()->getSlideViewProperties()->getDrawingGuides()->clear();
$masterCount = java_values($presentation->getMasters()->size());
for ($index = 0; $index < $masterCount; $index++) {
$presentation->getMasters()->get_Item($index)->getDrawingGuides()->clear();
}
$layoutCount = java_values($presentation->getLayoutSlides()->size());
for ($index = 0; $index < $layoutCount; $index++) {
$presentation->getLayoutSlides()->get_Item($index)->getDrawingGuides()->clear();
}
$notesMaster = $presentation->getMasterNotesSlideManager()->getMasterNotesSlide();
if (!java_is_null($notesMaster)) {
$notesMaster->getDrawingGuides()->clear();
}
$handoutMaster = $presentation->getMasterHandoutSlideManager()->getMasterHandoutSlide();
if (!java_is_null($handoutMaster)) {
$handoutMaster->getDrawingGuides()->clear();
}
$presentation->save("presentation-without-guides.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
FAQ
Czy przewodniki rysunkowe pojawiają się w pokazie slajdów lub wyeksportowanych obrazach?
Nie. Przewodniki rysunkowe są pomocyami do wyrównywania podczas edycji i nie są renderowane jako treść prezentacji.
Czy można dodać przewodnik rysunkowy bezpośrednio do pojedynczego normalnego slajdu?
Przewodniki edycji normalnych slajdów są przechowywane w właściwościach widoku slajdu prezentacji. Oddzielne kolekcje przewodników są dostępne dla wzorców slajdów, slajdów układu, wzorców notatek i wersji roboczych.
Jakie jednostki są używane do określania pozycji przewodników?
Pozycje podawane są w punktach, gdzie 72 punkty to jeden cal. Pozycje pionowe mierzone są od lewej krawędzi, a pozycje poziome od górnej krawędzi.
Czy usunięcie przewodników rysunkowych usuwa kształty lub zmienia treść slajdu?
Nie. Metoda DrawingGuidesCollection::clear usuwa tylko przewodniki w wybranej kolekcji. Kształty i inne elementy slajdu pozostają niezmienione.