Διαχείριση Αντικειμένων Μελάνης Παρουσίασης σε Android

Εισαγωγή

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

Η Aspose.Slides παρέχει τους τύπους που χρειάζονται για εργασία με αντικείμενα μελάνης. Για παράδειγμα, η διεπαφή IInk αντιπροσωπεύει ένα αντικείμενο μελάνης σε μια διαφάνεια.

Διαφορές μεταξύ Κανονικών Αντικειμένων και Αντικειμένων Μελάνης

Τα αντικείμενα σε μια διαφάνεια PowerPoint συνήθως εκπροσωπούνται από αντικείμενα σχήματος. Στην πιο απλή μορφή του, ένα σχήμα είναι ένας περιέκτης που ορίζει την περιοχή του ίδιου του αντικειμένου (το πλαίσιό του) μαζί με ιδιότητες όπως το μέγεθος, το σχήμα και το φόντο του περιέκτη. Για περισσότερες πληροφορίες, δείτε το Shape Layout Format.

Ωστόσο, όταν το PowerPoint διαχειρίζεται ένα αντικείμενο μελάνης, αγνοεί όλες τις ιδιότητες του πλαισίου του αντικειμένου (περιέκτη) εκτός από το μέγεθός του. Το μέγεθος της περιοχής του περιέκτη καθορίζεται από τις τυπικές μεθόδους IShape.getWidth και IShape.getHeight .

ink_powerpoint1

Ίχνη Μελάνης

Ένα ίχνος μελάνης είναι ένα βασικό στοιχείο που χρησιμοποιείται για την καταγραφή της τροχιάς ενός στυλό καθώς ο χρήστης γράφει ψηφιακή μελάνη. Ένα ίχνος αποθηκεύει μια ακολουθία συνδεδεμένων σημείων.

Η πιο απλή μορφή κωδικοποίησης καθορίζει τις συντεταγμένες X και Y κάθε σημείου δείγματος. Όταν όλα τα συνδεδεμένα σημεία αποδοθούν, παράγουν μια εικόνα όπως αυτή:

ink_powerpoint2

Ιδιότητες Πινέλου για Σχέδιο

Ένα πινέλο χρησιμοποιείται για τη σχεδίαση γραμμών που συνδέουν τα σημεία ενός ίχνους μελάνης. Το πινέλο έχει το δικό του χρώμα και μέγεθος, τα οποία αντιπροσωπεύονται από τις μεθόδους IInkBrush.getColor και IInkBrush.getSize .

Ορισμός Χρώματος Πινέλου Μελάνης

Αυτός ο κώδικας Java δείχνει πώς να ορίσετε το χρώμα ενός πινέλου μελάνης:

import android.graphics.Color;
import com.aspose.slides.*;

Presentation presentation = new Presentation("pres.pptx");
try {
    ISlide slide = presentation.getSlides().get_Item(0);
    IInk ink = (IInk) slide.getShapes().get_Item(0);
    IInkBrush brush = ink.getTraces()[0].getBrush();
    brush.setColor(Color.RED);
} finally {
    presentation.dispose();
}

Ορισμός Μεγέθους Πινέλου Μελάνης

Αυτός ο κώδικας Java δείχνει πώς να ορίσετε το μέγεθος ενός πινέλου μελάνης:

import com.aspose.slides.*;
import com.aspose.slides.android.SizeF;

Presentation presentation = new Presentation("pres.pptx");
try {
    ISlide slide = presentation.getSlides().get_Item(0);
    IInk ink = (IInk) slide.getShapes().get_Item(0);
    IInkBrush brush = ink.getTraces()[0].getBrush();
    SizeF brushSize = new SizeF(5, 10);
    brush.setSize(brushSize);
} finally {
    presentation.dispose();
}

Γενικά, το πλάτος και το ύψος ενός πινέλου δεν ταιριάζουν, έτσι το PowerPoint δεν εμφανίζει το μέγεθος του πινέλου (η αντίστοιχη ενότητα δεδομένων είναι ασαπτή). Όταν το πλάτος και το ύψος του πινέλου ταιριάζουν, το PowerPoint εμφανίζει το μέγεθός του με αυτόν τον τρόπο:

ink_powerpoint3

Για σαφήνεια, ας αυξήσουμε το ύψος του αντικειμένου μελάνης και να εξετάσουμε τις σημαντικές διαστάσεις:

ink_powerpoint4

Ο περιέκτης (πλαίσιο) δεν λαμβάνει υπόψη το μέγεθος των πινέλων — υποθέτει πάντα ότι το πάχος της γραμμής είναι μηδέν (δείτε την προηγούμενη εικόνα).

Επομένως, για να προσδιοριστεί η ορατή περιοχή ολόκληρου του αντικειμένου μελάνης, πρέπει να ληφθεί υπόψη το μέγεθος του πινέλου των ιχνών του. Εδώ, το αντικείμενο-στόχος (το ίχνος χειρόγραφου κειμένου) έχει κλιμακωθεί στο μέγεθος του περιέκτη (πλαισίου). Όταν το μέγεθος του περιέκτη αλλάζει, το μέγεθος του πινέλου παραμένει σταθερό, και αντίστροφα.

ink_powerpoint5

Το PowerPoint χρησιμοποιεί παρόμοια συμπεριφορά για αντικείμενα κειμένου:

ink_powerpoint6

Έλεγχος Εμφάνισης Μελάνης Κατά την Εξαγωγή και Απόδοση

Η Aspose.Slides παρέχει τη διεπαφή IInkOptions για να ελέγξει πώς εμφανίζονται τα αντικείμενα μελάνης στην εξαγόμενη ή αποδοθείσα έξοδο. Μπορείτε να χρησιμοποιήσετε τις ιδιότητές της για να αποκρύψετε πλήρως τη μελάνη ή να αλλάξετε τον τρόπο ερμηνείας των λειτουργιών μάσκας πινέλου μελάνης.

Ink options are available through the export or rendering options for several output types:

Έξοδος Ιδιότητα επιλογών μελάνης
PDF PdfOptions.getInkOptions
HTML HtmlOptions.getInkOptions
SVG SVGOptions.getInkOptions
TIFF TiffOptions.getInkOptions
Εικόνα διαφάνειας RenderingOptions.getInkOptions

Οι παρακάτω μέθοδοι του IInkOptions εκθέτουν τις ίδιες δύο ρυθμίσεις:

  • IInkOptions.getHideInk καθορίζει αν τα αντικείμενα μελάνης περιλαμβάνονται στην έξοδο. Η προεπιλεγμένη τιμή είναι false.
  • IInkOptions.getInterpretMaskOpAsOpacity καθορίζει αν μια λειτουργία μάσκας ερμηνεύεται ως αδιαφάνεια κατά την απόδοση ενός πινέλου μελάνης. Η προεπιλεγμένη τιμή είναι true; καλέστε το IInkOptions.setInterpretMaskOpAsOpacity με false για να χρησιμοποιήσετε την ενέργεια ROP αντ' αυτού.

Απόκρυψη Αντικειμένων Μελάνης στην Εξαγωγή PDF

Από προεπιλογή, τα αντικείμενα μελάνης παραμένουν ορατά κατά την εξαγωγή. Για να δημιουργήσετε μια καθαρή έξοδο χωρίς χειρόγραφες σημειώσεις ή άλλο περιεχόμενο μελάνης, καλέστε το IInkOptions.setHideInk με true.

Το παρακάτω παράδειγμα Java εξάγει μια παρουσίαση σε PDF ενώ αποκρύπτει όλα τα αντικείμενα μελάνης:

import com.aspose.slides.*;

Presentation presentation = new Presentation("presentation.pptx");
try {
    PdfOptions pdfOptions = new PdfOptions();
    pdfOptions.getInkOptions().setHideInk(true);

    presentation.save("presentation_without_ink.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

Απόκρυψη Αντικειμένων Μελάνης Κατά την Απόδοση Διαφάνειας ως Εικόνας

Για να αποκρύψετε αντικείμενα μελάνης κατά την απόδοση διαφανειών ως εικόνες bitmap, διαμορφώστε το RenderingOptions.getInkOptions και περάστε τις επιλογές απόδοσης στη μέθοδο ISlide.getImage.

Το παρακάτω παράδειγμα Java αποδίδει την πρώτη διαφάνεια ως εικόνα PNG χωρίς αντικείμενα μελάνης:

import com.aspose.slides.*;

Presentation presentation = new Presentation("presentation.pptx");
try {
    RenderingOptions renderingOptions = new RenderingOptions();
    renderingOptions.getInkOptions().setHideInk(true);

    ISlide slide = presentation.getSlides().get_Item(0);
    IImage image = slide.getImage(renderingOptions);
    try {
        image.save("slide_without_ink.png", ImageFormat.Png);
    } finally {
        image.dispose();
    }
} finally {
    presentation.dispose();
}

Έλεγχος Απόδοσης Μάσκας Μελάνης

Η ρύθμιση IInkOptions.getInterpretMaskOpAsOpacity ελέγχει πώς ερμηνεύονται οι λειτουργίες μάσκας κατά την απόδοση πινέλων μελάνης. Η προεπιλεγμένη τιμή είναι true, που χρησιμοποιεί αδιαφάνεια. Για να χρησιμοποιήσετε την ενέργεια ROP αντί αυτού, καλέστε το IInkOptions.setInterpretMaskOpAsOpacity με false.

Το παρακάτω παράδειγμα Java εξάγει μια διαφάνεια σε SVG και χρησιμοποιεί απόδοση βάσει ROP για λειτουργίες μάσκας μελάνης:

import com.aspose.slides.*;
import java.io.FileOutputStream;

Presentation presentation = new Presentation("presentation.pptx");
try {
    SVGOptions svgOptions = new SVGOptions();
    svgOptions.getInkOptions().setInterpretMaskOpAsOpacity(false);

    ISlide slide = presentation.getSlides().get_Item(0);
    FileOutputStream stream = new FileOutputStream("slide.svg");
    try {
        slide.writeAsSvg(stream, svgOptions);
    } finally {
        stream.close();
    }
} finally {
    presentation.dispose();
}

Η ίδια ρύθμιση μπορεί να εφαρμοστεί μέσω του TiffOptions.getInkOptions όταν εξάγετε μια παρουσίαση ή αποδίδετε μια διαφάνεια σε TIFF.

Επιλέξτε Αν Θα Αποκρύψετε ή Να Διατηρήσετε τη Μελάνη

Όταν χρειάζεστε μια καθαρή έκδοση μιας σημειωμένης παρουσίασης για διανομή χωρίς σημεία αξιολόγησης, καλέστε το IInkOptions.setHideInk με true κατά την εξαγωγή.

Αφήστε το IInkOptions.getHideInk στην προεπιλεγμένη τιμή του false όταν οι σημειώσεις μελάνης αποτελούν μέρος του προοριζόμενου περιεχομένου, όπως σχόλια αξιολόγησης, χειρόγραφες σημειώσεις, επισημάνσεις ή σχέδια που πρέπει να παραμείνουν ορατά στο εξαγόμενο αποτέλεσμα. Αυτό επιτρέπει στις εφαρμογές να παράγουν ξεχωριστές εξόδους αξιολόγησης και τελικές εξόδους από την ίδια παρουσίαση χωρίς να τροποποιούν τα πηγαία αντικείμενα μελάνης.

ΣΥΧΝΑ ΕΡΩΤΗΜΑΤΑ

Μπορώ να αλλάξω το χρώμα ή το μέγεθος ενός υπάρχοντος στίγματος μελάνης;

Ναι. Λάβετε το ίχνος από το IInk.getTraces , στη συνέχεια αλλάξτε το IInkTrace.getBrush. Καλέστε το IInkBrush.setColor ή το IInkBrush.setSize για να αλλάξετε το πινέλο.

Αλλάζει η απόκρυψη της μελάνης την πηγαία παρουσίαση;

Όχι. Η κλήση του IInkOptions.setHideInk επηρεάζει μόνο το αποδοθέν ή εξαχθέν αποτέλεσμα· δεν αφαιρεί ή τροποποιεί τα αντικείμενα μελάνης στην πηγαία παρουσίαση.

Ποια μορφότυπα εξαγωγής υποστηρίζουν επιλογές μελάνης;

Μπορείτε να ρυθμίσετε τις επιλογές μελάνης για PDF, HTML, SVG, TIFF και εικόνες bitmap διαφανειών μέσω των αντίστοιχων επιλογών εξαγωγής ή απόδοσης που εμφανίζονται παραπάνω.

Περαιτέρω ανάγνωση