Klonowanie slajdów prezentacji na Androidzie
Wprowadzenie
Klonowanie jest procesem tworzenia dokładnej kopii lub repliki czegoś. Aspose.Slides for Android via Java umożliwia również stworzenie kopii lub klonu dowolnego slajdu, a następnie wstawienie tego sklonowanego slajdu do bieżącej lub innej otwartej prezentacji. Proces klonowania slajdu tworzy nowy slajd, który może być modyfikowany przez programistów bez zmiany oryginalnego slajdu. Istnieje kilka możliwych sposobów klonowania slajdu:
- Klonowanie na końcu w obrębie prezentacji.
- Klonowanie w innej pozycji w obrębie prezentacji.
- Klonowanie na końcu w innej prezentacji.
- Klonowanie w innej pozycji w innej prezentacji.
- Klonowanie w określonej pozycji w innej prezentacji.
W Aspose.Slides for Android via Java (kolekcja obiektów ISlide ) udostępniona przez obiekt Presentation zapewnia metody addClone i insertClone, które umożliwiają wykonanie powyższych typów klonowania slajdów.
Klonowanie slajdu na końcu prezentacji
Jeśli chcesz sklonować slajd i następnie użyć go w tym samym pliku prezentacji na końcu istniejących slajdów, użyj metody addClone zgodnie z poniższymi krokami:
- Utwórz instancję klasy Presentation.
- Zainicjuj klasę ISlideCollection odwołując się do kolekcji Slides udostępnionej przez obiekt Presentation.
- Wywołaj metodę addClone udostępnioną przez obiekt ISlideCollection i przekazując slajd do sklonowania jako parametr do metody addClone.
- Zapisz zmodyfikowany plik prezentacji.
W poniższym przykładzie sklonowaliśmy slajd (znajdujący się na pierwszej pozycji – indeks zerowy – prezentacji) na koniec prezentacji.
import com.aspose.slides.*;
// Tworzy klasę Presentation, która reprezentuje plik prezentacji
Presentation pres = new Presentation("CloneWithinSamePresentationToEnd.pptx");
try {
// Sklonuj wybrany slajd na koniec kolekcji slajdów w tej samej prezentacji
ISlideCollection slds = pres.getSlides();
slds.addClone(pres.getSlides().get_Item(0));
// Zapisz zmodyfikowaną prezentację na dysk
pres.save("Aspose_CloneWithinSamePresentationToEnd_out.pptx", SaveFormat.Pptx);
} finally {
pres.dispose();
}
Klonowanie slajdu w innej pozycji w obrębie prezentacji
Jeśli chcesz sklonować slajd i następnie użyć go w tym samym pliku prezentacji, ale w innej pozycji, użyj metody insertClone:
- Utwórz instancję klasy Presentation.
- Zainicjuj klasę, odwołując się do kolekcji Slides udostępnionej przez obiekt Presentation.
- Wywołaj metodę insertClone udostępnioną przez obiekt ISlideCollection , przekazując slajd do sklonowania razem z indeksem nowej pozycji jako parametr do metody insertClone.
- Zapisz zmodyfikowaną prezentację jako plik PPTX.
W poniższym przykładzie sklonowaliśmy slajd (znajdujący się na indeksie 1 – pozycja 2 – prezentacji) na indeks 2 – pozycja 3 – prezentacji.
import com.aspose.slides.*;
// Tworzy klasę Presentation, która reprezentuje plik prezentacji
Presentation pres = new Presentation("CloneWithInSamePresentation.pptx");
try {
// Pobiera kolekcję slajdów w tej samej prezentacji
ISlideCollection slds = pres.getSlides();
// Klonuje wybrany slajd do określonego indeksu w tej samej prezentacji
slds.insertClone(2, pres.getSlides().get_Item(1));
// Zapisuje zmodyfikowaną prezentację na dysk
pres.save("Aspose_CloneWithInSamePresentation_out.pptx", SaveFormat.Pptx);
} finally {
pres.dispose();
}
Klonowanie slajdu na końcu innej prezentacji
Jeśli potrzebujesz sklonować slajd z jednej prezentacji i użyć go w pliku innej prezentacji, na końcu istniejących slajdów:
- Utwórz instancję klasy Presentation zawierającej prezentację, z której slajd zostanie sklonowany.
- Utwórz instancję klasy Presentation zawierającej docelową prezentację, do której slajd zostanie dodany.
- Zainicjuj klasę ISlideCollection odwołując się do kolekcji Slides udostępnionej przez obiekt Presentation docelowej prezentacji.
- Wywołaj metodę addClone udostępnioną przez obiekt ISlideCollection , przekazując slajd z prezentacji źródłowej jako parametr do metody addClone.
- Zapisz zmodyfikowany plik docelowej prezentacji.
W poniższym przykładzie sklonowaliśmy slajd (z pierwszego indeksu prezentacji źródłowej) na koniec docelowej prezentacji.
import com.aspose.slides.*;
// Tworzy klasę Presentation, aby wczytać plik prezentacji źródłowej
Presentation srcPres = new Presentation("CloneAtEndOfAnother.pptx");
try {
// Tworzy klasę Presentation dla docelowego pliku PPTX (gdzie slajd będzie klonowany)
Presentation destPres = new Presentation();
try {
// Klonuje wybrany slajd z prezentacji źródłowej na koniec kolekcji slajdów w prezentacji docelowej
ISlideCollection slds = destPres.getSlides();
slds.addClone(srcPres.getSlides().get_Item(0));
// Zapisuje docelową prezentację na dysk
destPres.save("Aspose2_out.pptx", SaveFormat.Pptx);
} finally {
destPres.dispose();
}
} finally {
srcPres.dispose();
}
Klonowanie slajdu w innej pozycji w innej prezentacji
Jeśli potrzebujesz sklonować slajd z jednej prezentacji i użyć go w pliku innej prezentacji, w określonej pozycji:
- Utwórz instancję klasy Presentation zawierającej prezentację źródłową, z której slajd zostanie sklonowany.
- Utwórz instancję klasy Presentation zawierającej prezentację, do której slajd zostanie dodany.
- Zainicjuj klasę ISlideCollection odwołując się do kolekcji Slides udostępnionej przez obiekt Presentation docelowej prezentacji.
- Wywołaj metodę insertClone udostępnioną przez obiekt ISlideCollection , przekazując slajd z prezentacji źródłowej wraz z żądaną pozycją jako parametr do metody insertClone.
- Zapisz zmodyfikowany plik docelowej prezentacji.
W poniższym przykładzie sklonowaliśmy slajd (z indeksu zerowego prezentacji źródłowej) na indeks 1 (pozycja 2) docelowej prezentacji.
import com.aspose.slides.*;
// Tworzy klasę Presentation, aby wczytać plik prezentacji źródłowej
Presentation srcPres = new Presentation("CloneAtEndOfAnother.pptx");
try {
// Tworzy klasę Presentation dla docelowego pliku PPTX (gdzie slajd ma być klonowany)
Presentation destPres = new Presentation();
try {
// Klonuje wybrany slajd z prezentacji źródłowej do określonego indeksu w prezentacji docelowej
ISlideCollection slds = destPres.getSlides();
slds.insertClone(1, srcPres.getSlides().get_Item(0));
// Zapisuje docelową prezentację na dysk
destPres.save("Aspose2_out.pptx", SaveFormat.Pptx);
} finally {
destPres.dispose();
}
} finally {
srcPres.dispose();
}
Klonowanie slajdu w określonej pozycji w innej prezentacji
Jeśli potrzebujesz sklonować slajd razem z master slajdem z jednej prezentacji i użyć go w innej prezentacji, najpierw musisz sklonować żądany master slajd z prezentacji źródłowej do docelowej. Następnie użyj tego master slajdu do klonowania slajdu z masterem. Metoda addClone(ISlide, IMasterSlide, boolean) oczekuje master slajdu z docelowej prezentacji, a nie z źródłowej. Aby sklonować slajd z masterem, postępuj zgodnie z poniższymi krokami:
- Utwórz instancję klasy Presentation zawierającej prezentację źródłową, z której slajd zostanie sklonowany.
- Utwórz instancję klasy Presentation zawierającej docelową prezentację, do której slajd zostanie sklonowany.
- Uzyskaj dostęp do slajdu, który ma być sklonowany, wraz z master slajdem.
- Zainicjuj klasę IMasterSlideCollection odwołując się do kolekcji Masters udostępnionej przez obiekt Presentation docelowej prezentacji.
- Wywołaj metodę addClone udostępnioną przez obiekt IMasterSlideCollection , przekazując master z pliku PPTX źródłowego do sklonowania jako parametr do metody addClone.
- Zainicjuj klasę ISlideCollection , ustawiając odwołanie do kolekcji Slides udostępnionej przez obiekt Presentation docelowej prezentacji.
- Wywołaj metodę addClone udostępnioną przez obiekt ISlideCollection , przekazując slajd z prezentacji źródłowej do sklonowania oraz master slajd jako parametr do metody addClone.
- Zapisz zmodyfikowany plik docelowej prezentacji.
W poniższym przykładzie sklonowaliśmy slajd z masterem (znajdujący się na indeksie zerowym prezentacji źródłowej) na koniec docelowej prezentacji, używając mastera ze slajdu źródłowego.
import com.aspose.slides.*;
// Tworzy klasę Presentation, aby wczytać plik prezentacji źródłowej
Presentation srcPres = new Presentation("CloneToAnotherPresentationWithMaster.pptx");
try {
// Tworzy klasę Presentation dla prezentacji docelowej (gdzie slajd ma być klonowany)
Presentation destPres = new Presentation();
try {
// Tworzy obiekt ISlide z kolekcji slajdów w prezentacji źródłowej wraz z
// slajdem master
ISlide SourceSlide = srcPres.getSlides().get_Item(0);
IMasterSlide SourceMaster = SourceSlide.getLayoutSlide().getMasterSlide();
// Klonuje wybrany slajd master z prezentacji źródłowej do kolekcji masterów w
// prezentacji docelowej
IMasterSlideCollection masters = destPres.getMasters();
IMasterSlide iSlide = masters.addClone(SourceMaster);
// Klonuje wybrany slajd z prezentacji źródłowej wraz z wybranym masterem na koniec
// kolekcji slajdów w prezentacji docelowej
ISlideCollection slds = destPres.getSlides();
slds.addClone(SourceSlide, iSlide, true);
// Zapisuje prezentację docelową na dysk
destPres.save("CloneToAnotherPresentationWithMaster_out.pptx", SaveFormat.Pptx);
} finally {
destPres.dispose();
}
} finally {
srcPres.dispose();
}
Klonowanie slajdu na końcu określonej sekcji
Jeśli chcesz sklonować slajd i następnie użyć go w tym samym pliku prezentacji, ale w innej sekcji, użyj metody addClone udostępnionej przez interfejs ISlideCollection. Aspose.Slides for Android via Java umożliwia sklonowanie slajdu z pierwszej sekcji i wstawienie tego sklonowanego slajdu do drugiej sekcji tej samej prezentacji.
Poniższy fragment kodu pokazuje, jak sklonować slajd i wstawić sklonowany slajd do określonej sekcji.
import com.aspose.slides.*;
IPresentation presentation = new Presentation();
try {
presentation.getSlides().get_Item(0).getShapes().addAutoShape(ShapeType.Rectangle, 200, 50, 300, 100);
presentation.getSections().addSection("Section 1", presentation.getSlides().get_Item(0));
ISection section2 = presentation.getSections().appendEmptySection("Section 2");
presentation.getSlides().addClone(presentation.getSlides().get_Item(0), section2);
// Zapisz docelową prezentację na dysk
presentation.save("CloneSlideIntoSpecifiedSection.pptx", SaveFormat.Pptx);
} finally {
if (presentation != null) presentation.dispose();
}
Upewnij się, że rozmiar slajdu jest zgodny
Podczas klonowania slajdów do innej prezentacji, upewnij się, że prezentacja docelowa ma taki sam rozmiar slajdu jak źródłowa. Jeśli rozmiary slajdów się różnią, Aspose.Slides nie przeskaluje automatycznie sklonowanych kształtów — ich pierwotne współrzędne i wymiary zostają zachowane, co może spowodować, że treść będzie nieprawidłowo wyrównana lub wyjdzie poza granice slajdu.
Możesz ustawić rozmiar slajdu prezentacji docelowej tak, aby odpowiadał rozmiarowi slajdu źródłowego przed sklonowaniem mastera i slajdu:
Dimension2D sourceSize = sourcePresentation.getSlideSize().getSize();
targetPresentation.getSlideSize().setSize(
sourceSize.getWidth(), sourceSize.getHeight(), SlideSizeScaleType.DoNotScale);
Zrób to przed sklonowaniem mastera i slajdu.
FAQ
Czy notatki prelegenta i komentarze recenzentów są klonowane?
Tak. Strona z notatkami i komentarze recenzentów są uwzględniane w klonie. Jeśli ich nie chcesz, usuń je po wstawieniu.
Jak obsługiwane są wykresy i ich źródła danych?
Obiekt wykresu, formatowanie i osadzone dane są kopiowane. Jeśli wykres był połączony z zewnętrznym źródłem (np. skoroszytem osadzonym jako OLE), to połączenie jest zachowane jako obiekt OLE. Po przeniesieniu między plikami sprawdź dostępność danych i zachowanie odświeżania.
Czy mogę kontrolować pozycję wstawiania i sekcje dla klonu?
Tak. Możesz wstawić klon na określony indeks slajdu i umieścić go w wybranej sekcji. Jeśli docelowa sekcja nie istnieje, najpierw ją utwórz, a potem przenieś slajd do niej.