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

Εισαγωγή

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

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

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

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

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

ink_powerpoint1

Ίχνη Μελάνης

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

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

ink_powerpoint2

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

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

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

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

const aspose = {
    slides: require("aspose.slides.via.java")
};
const java = require("java");

const presentation = new aspose.slides.Presentation("pres.pptx");
try {
    const slide = presentation.getSlides().get_Item(0);
    const ink = slide.getShapes().get_Item(0);
    const brush = ink.getTraces()[0].getBrush();
    const red = java.getStaticFieldValue("java.awt.Color", "RED");
    brush.setColor(red);
} finally {
    presentation.dispose();
}

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

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

const aspose = {
    slides: require("aspose.slides.via.java")
};
const java = require("java");

const presentation = new aspose.slides.Presentation("pres.pptx");
try {
    const slide = presentation.getSlides().get_Item(0);
    const ink = slide.getShapes().get_Item(0);
    const brush = ink.getTraces()[0].getBrush();
    const brushSize = java.newInstanceSync("java.awt.Dimension", 5, 10);
    brush.setSize(brushSize);
} finally {
    presentation.dispose();
}

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

ink_powerpoint3

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

ink_powerpoint4

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

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

ink_powerpoint5

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

ink_powerpoint6

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

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

Οι επιλογές μελάνης διατίθενται μέσω των επιλογών εξαγωγής ή απόδοσης για διάφορους τύπους εξόδου:

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

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

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

Απόκρυψη Αντικειμένων Μελάνης στην Έξοδο PDF

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

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

const aspose = {
    slides: require("aspose.slides.via.java")
};

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

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

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

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

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

const aspose = {
    slides: require("aspose.slides.via.java")
};

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

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

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

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

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

const aspose = {
    slides: require("aspose.slides.via.java")
};
const java = require("java");

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

    const outputStream = java.newInstanceSync("java.io.FileOutputStream", "slide.svg");
    try {
        const slide = presentation.getSlides().get_Item(0);
        slide.writeAsSvg(outputStream, svgOptions);
    } finally {
        outputStream.close();
    }
} finally {
    presentation.dispose();
}

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

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

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

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

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

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

Ναι. Πάρτε το ίχνος από Ink.getTraces και μετά αλλάξτε το InkTrace.getBrush. Καλέστε InkBrush.setColor ή InkBrush.setSize για να αλλάξετε το πινέλο.

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

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

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

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

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