Wymagania systemowe
Wprowadzenie
Aspose.Slides dla .NET jest biblioteką samodzielną: nie wymaga Microsoft PowerPoint ani Microsoft Office. Jest publikowana jako dwa pakiety NuGet, Aspose.Slides.NET i Aspose.Slides.NET6.CrossPlatform. Oba dostarczają te same przestrzenie nazw i klasy Aspose.Slides; różnią się docelowymi frameworkami oraz sposobem rysowania slajdów, co decyduje o tym, gdzie działają i czego potrzebują.
Ten artykuł wymienia wersje .NET i platformy obsługiwane przez każdy pakiet oraz biblioteki systemowe i czcionki wymagane przez Linux, a kończy się krótkim programem sprawdzającym konfigurację. Aby dodać pakiet do projektu, zobacz Installation.
Obsługiwane wersje .NET
Każdy pakiet zawiera jedną kompilację Aspose.Slides dla każdego docelowego frameworka, a NuGet wybiera kompilację pasującą do docelowego frameworka Twojego projektu.
| Pakiet | Frameworki docelowe w pakiecie | Twój projekt może celować w |
|---|---|---|
| Aspose.Slides.NET | net462, net6.0, netstandard2.0 |
.NET Framework 4.6.2 lub nowszy; .NET 6 lub nowszy, w tym .NET 8, .NET 9 i .NET 10 |
| Aspose.Slides.NET6.CrossPlatform | net6.0 |
.NET 6 lub nowszy, w tym .NET 8, .NET 9 i .NET 10 |
Komponent netstandard2.0 pozwala bibliotece klas .NET Standard 2.0 odwoływać się do Aspose.Slides.NET. Aplikacja korzystająca z takiej biblioteki uruchamia kompilację pasującą do własnego docelowego frameworka: aplikacja .NET 8, na przykład, uruchamia kompilację net6.0.
Obsługiwane systemy operacyjne i procesory
Aspose.Slides.NET zawiera wyłącznie kod zarządzany niezależny od procesora (AnyCPU), więc działa na architekturze procesora środowiska .NET, które go ładuje. Rysuje slajdy przy użyciu biblioteki System.Drawing.Common firmy Microsoft, którą Microsoft obsługuje tylko w systemie Windows. W systemie Linux Aspose.Slides.NET wymaga więc biblioteki libgdiplus oraz przełącznika startowego, opisanego w sekcji Linux. Działa na dystrybucjach Linuxa, które dostarczają libgdiplus, takich jak Debian, Ubuntu i Alpine Linux.
Aspose.Slides.NET6.CrossPlatform rysuje slajdy własnym silnikiem graficznym. Silnik jest natywną biblioteką, którą pakiet zawiera w jednej kompilacji na każdą platformę, więc pakiet działa wyłącznie na następujących platformach:
| System operacyjny | Procesory | Uwagi |
|---|---|---|
| Windows | x86, x64 | Windows na ARM64 nie jest obsługiwany. |
| Linux | x64, ARM64 | Wymaga glibc 2.23 lub nowszego na x64 oraz glibc 2.39 lub nowszego na ARM64. |
| macOS | x64 (Intel), ARM64 (Apple silicon) |
Aspose.Slides.NET6.CrossPlatform nie działa na Alpine Linux ani na innych dystrybucjach opartych na musl zamiast glibc, ani na dystrybucjach z starszą wersją glibc, takiej jak CentOS 7. W takich systemach użyj Aspose.Slides.NET.
Natywna biblioteka Aspose.Slides.NET6.CrossPlatform używa środowiska uruchomieniowego Microsoft Visual C++ (MSVCP140.dll i VCRUNTIME140.dll, plus VCRUNTIME140_1.dll na x64). Jeśli te pliki są nieobecne na docelowym komputerze, zainstaluj Microsoft Visual C++ Redistributable.
Linux
Oba pakiety wymagają dodatkowych bibliotek systemowych w systemie Linux. Bez nich pierwszy przykład w sekcji Create Presentations kończy się wyjątkiem zamiast zapisać plik. Poniższe polecenia dotyczą Debiana i Ubuntu; w tych dystrybucjach każda biblioteka dodatkowo instaluje czcionki DejaVu (fonts-dejavu-core), więc tekst jest renderowany bez dodatkowych pakietów czcionek.
Aspose.Slides.NET6.CrossPlatform
Biblioteka Linux tego pakietu wymaga biblioteki fontconfig:
sudo apt-get update && sudo apt-get install -y libfontconfig1
Bez niej tworzenie Presentation kończy się TypeInitializationException, którego wewnętrzny DllNotFoundException informuje, że nie można otworzyć libfontconfig.so.1.
Minimalne obrazy bazowe mogą również nie zawierać fontconfig. Na przykład obraz bazowy AWS Lambda dla .NET 8 nie zawiera ani fontconfig, ani żadnych czcionek. W obrazie kontenera zbudowanym na tym obrazie uruchom dnf install -y fontconfig, co dodatkowo zainstaluje czcionki Noto Sans.
Aspose.Slides.NET
Pakiet wymaga dwóch rzeczy w systemie Linux:
-
Biblioteki
libgdiplus:sudo apt-get update && sudo apt-get install -y libgdiplus -
Przełącznika
System.Drawing.EnableUnixSupport, włączanego na początku aplikacji przed jakimkolwiek wywołaniem Aspose.Slides. W pliku Program.cs z instrukcjami poziomu top-level, umieść go po dyrektywachusing:System.AppContext.SetSwitch("System.Drawing.EnableUnixSupport", true);
Bez libgdiplus zapisywanie prezentacji kończy się TypeInitializationException, którego wewnętrzny DllNotFoundException informuje, że nie można załadować libgdiplus. Bez przełącznika wewnętrzny wyjątek to PlatformNotSupportedException: System.Drawing.Common is not supported on non-Windows platforms.
Warning
Przełącznik działa tylko z System.Drawing.Common 6, wersją, od której zależy Aspose.Slides.NET. Microsoft usunął go w System.Drawing.Common 7. Jeśli Twój projekt odwołuje się do System.Drawing.Common 7 lub nowszej, bezpośrednio lub poprzez inny pakiet, Aspose.Slides.NET nie działa w systemie Linux i zgłaszaPlatformNotSupportedException nawet przy zainstalowanym libgdiplus i włączonym przełączniku. W takim przypadku użyj Aspose.Slides.NET6.CrossPlatform.
Alpine Linux
Na Alpine Linux użyj Aspose.Slides.NET z opisanym wyżej przełącznikiem. Obrazy Alpine zazwyczaj nie zawierają czcionek, a sam libgdiplus nie instaluje żadnych, więc zainstaluj libgdiplus wraz z co najmniej jednym pakietem czcionek. Bez czcionek zapisywanie prezentacji kończy się tym błędem:
System.ArgumentException: Font '?' cannot be found.
Opcja 1: czcionki DejaVu
Zalecaną opcją jest pakiet ttf-dejavu:
RUN apk add --no-cache \
libgdiplus \
ttf-dejavu
Na bieżących wydaniach Alpine, ttf-dejavu instaluje pakiet font-dejavu, który również instaluje fontconfig oraz narzędzia czcionkowe, od których zależy.
Opcja 2: czcionki podstawowe Microsoft
Jeśli Twoje prezentacje używają czcionek Microsoft takich jak Arial, Times New Roman, Courier New lub Verdana, zainstaluj zamiast tego czcionki podstawowe Microsoft. Krok update-ms-fonts pobiera czcionki podczas budowania obrazu, więc budowanie wymaga dostępu do internetu:
RUN apk add --no-cache \
libgdiplus \
fontconfig \
msttcorefonts-installer \
&& update-ms-fonts \
&& fc-cache -fv
Wsparcie internacjonalizacji
Oba pakiety potrzebują wsparcia internacjonalizacji .NET, które .NET na Linuxie zapewnia poprzez biblioteki ICU. W globalization-invariant mode tworzenie Presentation kończy się CultureNotFoundException: Only the invariant culture is supported in globalization-invariant mode.
Niektóre obrazy kontenerowe włączają ten tryb. Obrazy środowiska uruchomieniowego .NET dla Alpine Linux (runtime-deps, runtime i aspnet) na przykład ustawiają DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true i nie zawierają ICU. W obrazie zbudowanym na nich zainstaluj ICU i wyłącz tryb:
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false
RUN apk --no-cache add icu-libs
Upewnij się również, że plik projektu nie ustawia właściwości InvariantGlobalization na true.
Sprawdź swoją konfigurację
Aby sprawdzić, czy pakiet i jego wymagania są spełnione, uruchom program, który zapisuje prezentację i renderuje slajd jako obraz. Zapis i renderowanie używają biblioteki graficznej oraz czcionek, które zapewniają powyższe wymagania Linuxa.
Utwórz aplikację konsolową i dodaj pakiet zgodnie z opisem w sekcji Installation, zamień zawartość Program.cs na kod poniżej i uruchom dotnet run. Jeśli używasz Aspose.Slides.NET w systemie Linux, dodaj instrukcję przełącznika System.Drawing.EnableUnixSupport pokazanej w sekcji Linux po dyrektywach using. Program używa instrukcji top-level oraz deklaracji using, które wymagają C# 9 lub nowszego. Projekty targetujące .NET 6 lub nowszy używają domyślnie nowszej wersji C#, w projekcie targetującym .NET Framework dodaj <LangVersion>latest</LangVersion> do PropertyGroup w pliku projektu.
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 400, 100);
shape.TextFrame.Text = "Hello, Aspose.Slides!";
presentation.Save("hello.pptx", SaveFormat.Pptx);
using var image = slide.GetImage(1f, 1f);
image.Save("hello.png", ImageFormat.Png);
Program dodaje prostokąt z tekstem do pierwszego slajdu i zapisuje prezentację jako hello.pptx przy użyciu metody Save. Następnie renderuje slajd za pomocą GetImage i zapisuje wynik jako hello.png przy użyciu IImage.Save w formacie ImageFormat.Png. Skalowanie równe 1 renderuje jeden piksel na punkt, więc domyślny slajd 720 × 540 punktów staje się obrazem 720 × 540 pikseli, z tekstem widocznym we wnętrzu prostokąta. Bez licencji oba pliki zawierają znak wodny oceny; zobacz Licensing. Jeśli brakuje któregoś wymogu, program zatrzyma się jednym z wyjątków opisanych w sekcji Linux.
Narzędzia programistyczne
Możesz budować aplikacje korzystające z Aspose.Slides przy użyciu dowolnego narzędzia obsługującego docelowy framework Twojego projektu: .NET SDK i jego interfejs wiersza poleceń dotnet na Windows, Linux i macOS, lub Visual Studio na Windows. Installation opisuje oba rozwiązania.
FAQ
Czy potrzebuję zainstalowanego Microsoft PowerPoint do konwersji i renderowania?
Nie, PowerPoint nie jest wymagany. Aspose.Slides jest samodzielnym silnikiem do tworzenia, modyfikacji, konwersji oraz renderowania prezentacji.
Który pakiet powinienem używać?
Używaj Aspose.Slides.NET na Windows oraz Aspose.Slides.NET6.CrossPlatform na Linuxie i macOS. Na Alpine Linux, na systemach Linux z starszym glibc niż wymienione powyżej wersje oraz w projektach targetujących .NET Framework, użyj Aspose.Slides.NET. Do projektu dodaj tylko jeden z tych dwóch pakietów.
Jakie czcionki są potrzebne do prawidłowego renderowania?
Czcionki użyte w prezentacji, lub odpowiednie zamienniki, muszą być dostępne w systemie operacyjnym. Na Linuxie i macOS zainstaluj pakiety czcionek potrzebne Twoim prezentacjom, aby uzyskać spójne renderowanie. Na Alpine Linux zainstaluj co najmniej jeden pakiet czcionek oprócz libgdiplus, jak opisano w sekcji Alpine Linux.
Dlaczego własna czcionka jest renderowana jako zastępcza lub brakujący tekst w Linuxie?
Jeśli plik czcionki ma niespójne lub uszkodzone wpisy w tabeli nazw, stos dopasowywania czcionek w Linuxie (FreeType/fontconfig) może wybrać nieprawidłowy rekord, co powoduje, że czcionka jest nierozpoznana. Użycie wersji czcionki z poprawionymi rekordami w tabeli nazw lub zainstalowanie spójnego zamiennika rozwiązuje problem.