Εργασία με Enums
Εργασία με Enums
Aspose.PDF FOSS για .NET χρησιμοποιεί έντονα-τυποποιημένα enums σε όλο το API του για να ρυθμίσει τη συμπεριφορά του εγγράφου, την εμφάνιση της σελίδας και τις μορφές μετατροπής. Αντί για μαγικές συμβολοσειρές ή ακέραιους, οι περισσότερες επιφάνειες διαμόρφωσης — από το πώς ένας προβολέας PDF ανοίγει ένα αρχείο μέχρι τη μορφή στην οποία ένα Document αποθηκεύεται ως — εκφράζονται ως τιμές enum. Αυτή η σελίδα παρουσιάζει τους τύπους enum που θα συναντήσετε πιο συχνά καθώς εργάζεστε με τη βιβλιοθήκη. Είναι μια επιμελημένη εισαγωγή, όχι ένας εξαντλητικός κατάλογος· για τον πλήρη κατάλογο των τύπων enum και κάθε τιμή μέλους, δείτε το API Reference.
Προβολή Σελίδας και Διάταξη
PageMode και PageLayout είναι ιδιότητες στο Document που ελέγχουν πώς ένας προβολέας PDF παρουσιάζει το έγγραφο όταν ανοίγει για πρώτη φορά — είτε εμφανίζει περιγράμματα, μικρογραφίες ή μια συγκεκριμένη διάταξη στηλών.
using var doc = Document.Open("input.pdf");
// Show the outline (bookmarks) panel when the document opens
doc.PageMode = PageMode.UseOutlines;
// Display pages in two columns, first page on the left
doc.PageLayout = PageLayout.TwoColumnLeft;
doc.Save("output.pdf");Μοντέλο Χρώματος Σελίδας
ColorType περιγράφει το χρωματικό μοντέλο μιας σελίδας — RGB, CMYK, κλίμακα του γκρι κ.λπ. Εμφανίζεται τόσο στο Page όσο και στο Color, επιτρέποντάς σας να διακλαδώνετε τη λογική ανάλογα με το πώς αποδίδεται το περιεχόμενο σε μια σελίδα.
using var doc = Document.Open("input.pdf");
var page = doc.Pages[1];
if (page.ColorType == ColorType.Grayscale)
{
// Apply grayscale-specific handling, e.g. skip color-profile conversion
}Alignment
Πολλές κλάσεις εκθέτουν το HorizontalAlignment και το VerticalAlignment για την τοποθέτηση του περιεχομένου στη σελίδα, ενώ οι κλάσεις σχολιασμού προσθέτουν το TextAlignment και το Justification για ευθυγράμμιση κειμένου μέσα σε ένα πλαίσιο. Το Table, για παράδειγμα, εκθέτει άμεσα και τους δύο άξονες ευθυγράμμισης.
var table = new Table();
table.HorizontalAlignment = HorizontalAlignment.Center;
table.VerticalAlignment = VerticalAlignment.Center;
page.Paragraphs.Add(table);FreeTextAnnotation (και ο βασικός τύπος Annotation) εκθέτει επιπλέον το Justification και το TextAlignment για το κείμενο μέσα στο σχόλιο:
if (page.Annotations[1] is FreeTextAnnotation freeText)
{
freeText.Justification = Justification.Center;
freeText.Alignment = TextAlignment.Right;
}Μορφές Φόρτωσης και Αποθήκευσης
LoadFormat προσδιορίζει τη μορφή προέλευσης πίσω από μια υποκλάση LoadOptions (για παράδειγμα, το HtmlLoadOptions.LoadFormat είναι πάντα LoadFormat.HTML), ενώ το SaveFormat επιλέγει τη μορφή εξόδου κατά την κλήση του Document.Save.
var loadOptions = new HtmlLoadOptions();
// loadOptions.LoadFormat == LoadFormat.HTML
using var doc = new Document("input.html", loadOptions);
doc.Save("output.html", SaveFormat.Html);Περιστροφή Σελίδας
Rotation περιγράφει τη γωνία περιστροφής μιας σελίδας και εκτίθεται μέσω του Page.Rotate.
var page = doc.Pages[1];
page.Rotate = Rotation.on90;Συμβουλές και Καλές Πρακτικές
- Προτιμήστε τις υπερφορτώσεις enum αντί για τις υπερφορτώσεις βασισμένες σε συμβολοσειρές ή ακέραιους όπου και οι δύο υπάρχουν — εντοπίζουν άκυρες τιμές κατά τη μεταγλώττιση.
- Ταιριάξτε το
SaveFormatμε την επέκταση αρχείου που περνάτε στοDocument.Save; μια ασυμφωνία παράγει ένα αρχείο με παραπλανητικό περιεχόμενο ή μη χρησιμοποιήσιμη επέκταση. - Χρησιμοποιήστε την υποκατηγορία
LoadOptionsπου αντιστοιχεί στη μορφή πηγής σας (π.χ.HtmlLoadOptionsγια HTML) αντί να βασίζεστε μόνο στην αυτόματη ανίχνευση μορφής. - Ορίστε τα
HorizontalAlignmentκαιVerticalAlignmentμαζί όταν τοποθετείτε πίνακες ή παραγράφους — η διατήρηση ενός από τα δύο στην προεπιλογή μπορεί να προκαλέσει απροσδόκητη τοποθέτηση. - Αντιμετωπίστε το
ColorTypeως περιγραφικό, όχι καθοδηγητικό: αναφέρει πώς το χρωματικό περιεχόμενο μιας σελίδας μοντελοποιείται αυτή τη στιγμή, όχι ως ρύθμιση που ενεργοποιείτε/απενεργοποιείτε για να μετατρέψετε χρωματικούς χώρους.
Κοινά Προβλήματα
| Πρόβλημα | Αιτία | Διόρθωση |
|---|---|---|
| Το αποθηκευμένο αρχείο έχει λανθασμένο περιεχόμενο για την επέκτασή του | Λανθασμένη τιμή SaveFormat που πέρασε στο Document.Save | Περάστε την τιμή SaveFormat που ταιριάζει με την επέκταση του αρχείου-στόχου |
| Το φορτωμένο HTML/XML/etc. περιεχόμενο εμφανίζεται λανθασμένα | Γενικό LoadOptions χρησιμοποιείται αντί της υποκατηγορίας ειδικής μορφής | Χρησιμοποιήστε την υποκατηγορία που ταιριάζει με τη μορφή προέλευσης, π.χ. HtmlLoadOptions |
| Ο πίνακας ή η σημείωση εμφανίζονται μη ευθυγραμμισμένα στη σελίδα | HorizontalAlignment/VerticalAlignment παραμένουν στις προεπιλογές τους | Ορίστε ρητά και τις δύο ιδιότητες πριν προσθέσετε το αντικείμενο στο Paragraphs |
| Το PDF ανοίγει με απροσδόκητη συμπεριφορά του προβολέα (χωρίς πίνακα περιεχομένων, λανθασμένη διάταξη στηλών) | Document.PageMode/Document.PageLayout δεν ορίζονται ποτέ | Ορίστε και τις δύο ιδιότητες πριν καλέσετε το Document.Save |
FAQ
Ποια είναι η διαφορά μεταξύ PageMode και PageLayout;
Το PageMode ελέγχει την κατάσταση του UI του προβολέα κατά το άνοιγμα (π.χ. αν το πλαίσιο περιγράμματος ή το πάνελ μικρογραφιών είναι ορατό), ενώ το PageLayout ελέγχει τον τρόπο διάταξης των σελίδων (μονή σελίδα, μία στήλη, δύο στήλες κ.λπ.).
Πώς ξέρω ποια τιμή SaveFormat να χρησιμοποιήσω;
Επιλέξτε την τιμή SaveFormat που ταιριάζει με τον τύπο αρχείου εξόδου που θέλετε — για παράδειγμα, SaveFormat.Html για έξοδο HTML ή SaveFormat.Pdf για επαναφόρτωση ως PDF.
Μπορώ να ορίσω και τα δύο HorizontalAlignment και VerticalAlignment στο ίδιο αντικείμενο;
Ναι. Κλάσεις όπως η Table εκθέτουν και τις δύο ιδιότητες ανεξάρτητα, ώστε να μπορείτε να τις συνδυάσετε για να τοποθετήσετε το περιεχόμενο σε οποιονδήποτε άξονα.
Μπορεί το ColorType να με επιτρέψει να μετατρέψω το χρωματικό χώρο μιας σελίδας;
Όχι. Το ColorType αναφέρει το χρωματικό μοντέλο που είναι επί του παρόντος συνδεδεμένο με μια σελίδα ή τιμή χρώματος; δεν εκτελεί μετατροπή.
Πού μπορώ να βρω κάθε enum και κάθε τιμή;
Αυτή η σελίδα καλύπτει τις πιο συχνά χρησιμοποιούμενες enums. Για το πλήρες σύνολο, συμπεριλαμβανομένων όλων των τιμών των μελών, δείτε το API Reference.
API Reference Περίληψη
| Enum | Περιγραφή |
|---|---|
PageMode | Πώς ο προβολέας PDF εμφανίζει το έγγραφο κατά το άνοιγμα (περιγράμματα, μικρογραφίες, πλήρης οθόνη κ.λπ.) |
PageLayout | Διάταξη σελίδας που χρησιμοποιείται όταν το έγγραφο εμφανίζεται (μονή σελίδα, στήλες κ.λπ.) |
ColorType | Χρωματικό μοντέλο σελίδας ή χρωματική τιμή (RGB, CMYK, κλίμακα του γκρι κ.λπ.) |
HorizontalAlignment | Οριζόντια στοίχιση παραγράφων, πινάκων ή σημειώσεων |
VerticalAlignment | Κατακόρυφη στοίχιση παραγράφων, πινάκων ή σχολίων |
TextAlignment | Οριζόντια στοίχιση κειμένου για τα πλαίσια κειμένου σχολίων |
Justification | Στοίχιση του περιεχομένου ελεύθερου κειμένου σχολίου |
LoadFormat | Επιλογέας μορφής πηγής που χρησιμοποιείται από τις υποκλάσεις του LoadOptions |
SaveFormat | Επιλογέας μορφής εξόδου που χρησιμοποιείται από Document.Save |
Rotation | Γωνία περιστροφής σελίδας, διατίθεται μέσω Page.Rotate |