Ενσωμάτωση γραμματοσειρών σε παρουσιάσεις σε .NET

Εισαγωγή

Η ενσωμάτωση γραμματοσειρών στο PowerPoint εξασφαλίζει ότι η παρουσίασή σας διατηρεί την προβλεπόμενη εμφάνιση σε διάφορα συστήματα. Είτε χρησιμοποιείτε μοναδικές γραμματοσειρές για δημιουργικότητα είτε τυπικές, η ενσωμάτωση γραμματοσειρών αποτρέπει τη διαταραχή του κειμένου και της διάταξης.

Αν χρησιμοποιήσατε μια γραμματοσειρά τρίτου μέρους ή μη τυπική γραμματοσειρά επειδή ήσασταν δημιουργικοί στην εργασία σας, τότε έχετε ακόμη περισσότερους λόγους να την ενσωματώσετε. Διαφορετικά (χωρίς ενσωματωμένες γραμματοσειρές), τα κείμενα ή οι αριθμοί στις διαφάνειές σας, η διάταξη, η μορφοποίηση κ.λπ. μπορεί να αλλάξουν ή να μετατραπούν σε συγκεχυμένα ορθογώνια.

Χρησιμοποιήστε τις κλάσεις FontsManager, FontData, και Compress για να διαχειριστείτε τις ενσωματωμένες γραμματοσειρές.

Απόκτηση και Κατάργηση Ενσωματωμένων Γραμματοσειρών

Ανακτήστε ή καταργήστε τις ενσωματωμένες γραμματοσειρές από μια παρουσίαση εύκολα με τις μεθόδους GetEmbeddedFonts και RemoveEmbeddedFont.

Αυτός ο κώδικας C# σας δείχνει πώς να αποκτήσετε και να καταργήσετε τις ενσωματωμένες γραμματοσειρές από μια παρουσίαση:

using (Presentation presentation = new Presentation("EmbeddedFonts.pptx"))
{
    ISlide slide = presentation.Slides[0];

    // Απεικονίζει μια διαφάνεια που περιέχει ένα πλαίσιο κειμένου που χρησιμοποιεί την ενσωματωμένη "FunSized"
    using (IImage image = slide.GetImage(new Size(960, 720)))
    {
        image.Save("picture1_out.png", ImageFormat.Png);
    }

    IFontsManager fontsManager = presentation.FontsManager;

    IFontData[] embeddedFonts = fontsManager.GetEmbeddedFonts();

    // Βρίσκει τη γραμματοσειρά "Calibri"
    IFontData funSizedEmbeddedFont = Array.Find(embeddedFonts, delegate (IFontData data)
    {
        return data.FontName == "Calibri";
    });

    // Αφαιρεί τη γραμματοσειρά "Calibri"
    fontsManager.RemoveEmbeddedFont(funSizedEmbeddedFont);

    // Απεικονίζει την παρουσίαση· η γραμματοσειρά "Calibri" αντικαθίσταται με μια υπάρχουσα
    using (IImage image = slide.GetImage(new Size(960, 720)))
    {
        image.Save("picture2_out.png", ImageFormat.Png);
    }

    // Αποθηκεύει την παρουσίαση χωρίς την ενσωματωμένη γραμματοσειρά "Calibri" στο δίσκο
    presentation.Save("WithoutManageEmbeddedFonts_out.ppt", SaveFormat.Ppt);
}

Προσθήκη Ενσωματωμένων Γραμματοσειρών

Χρησιμοποιώντας την απαρίθμηση EmbedFontCharacters και τις δύο υπερφορτώσεις της μεθόδου AddEmbeddedFont, μπορείτε να επιλέξετε τον προτιμώμενο κανόνα (ενσωμάτωσης) για την ενσωμάτωση των γραμματοσειρών σε μια παρουσίαση. Αυτός ο κώδικας C# σας δείχνει πώς να ενσωματώσετε και να προσθέσετε γραμματοσειρές σε μια παρουσίαση:

// Φορτώνει την παρουσίαση
Presentation presentation = new Presentation("Fonts.pptx");

IFontData[] allFonts = presentation.FontsManager.GetFonts();
IFontData[] embeddedFonts = presentation.FontsManager.GetEmbeddedFonts();
foreach (IFontData font in allFonts)
{
    if (!embeddedFonts.Contains(font))
    {
        presentation.FontsManager.AddEmbeddedFont(font, EmbedFontCharacters.All);
    }
}

// Αποθηκεύει την παρουσίαση στο δίσκο
presentation.Save("AddEmbeddedFont_out.pptx", SaveFormat.Pptx);

Συμπίεση Ενσωματωμένων Γραμματοσειρών

Βελτιστοποιήστε το μέγεθος του αρχείου συμπιέζοντας τις ενσωματωμένες γραμματοσειρές χρησιμοποιώντας την CompressEmbeddedFonts.

Παράδειγμα κώδικα για τη συμπίεση:

using (Presentation pres = new Presentation("pres.pptx"))
{
    Aspose.Slides.LowCode.Compress.CompressEmbeddedFonts(pres);
    pres.Save("pres-out.pptx", SaveFormat.Pptx);
}

Συχνές Ερωτήσεις

Πώς μπορώ να καταλάβω εάν μια συγκεκριμένη γραμματοσειρά στην παρουσίαση θα αντικατασταθεί κατά τη απόδοση παρά την ενσωμάτωση;

Ελέγξτε τις πληροφορίες αντικατάστασης στο διαχειριστή γραμματοσειρών και τους κανόνες εναλλακτικού/αντικατάστασης: εάν η γραμματοσειρά δεν είναι διαθέσιμη ή είναι περιορισμένη, θα χρησιμοποιηθεί εναλλακτική.

Αξίζει να ενσωματώσετε τις «συστημικές» γραμματοσειρές όπως Arial/Calibri;

Συνήθως όχι—είναι σχεδόν πάντα διαθέσιμες. Ωστόσο, για πλήρη φορητότητα σε «λεία» περιβάλλοντα (Docker, ένας διακομιστής Linux χωρίς προεγκατεστημένες γραμματοσειρές), η ενσωμάτωση συστημικών γραμματοσειρών μπορεί να εξαλείψει τον κίνδυνο μη αναμενόμενων αντικαταστάσεων.