Ενεργοποίηση περιεχομένου
Ενεργοποίηση περιεχομένου
Οι σελίδες PDF παραδίδονται από μια σειρά φορέων που αποθηκεύονται σε ροή περιεχομένου. Aspose.PDF FOSS for .NET exposes these operators through OperatorCollection Σε κάθε Page,και παρέχει ContentStreamBuilder Για να χτίσει νέα Το περιεχόμενο είναι προγραμματισμένο.
Διαβάστε περισσότερα για Content-stream Operators
ΟΛΟΙ Page Έχει μια Contents Το ακίνητο που επιστρέφει ένα OperatorCollection. Να ελέγχει κάθε φορέα.
using var doc = Document.Open(pdfBytes);
var page = doc.Pages[1];
foreach (var op in page.Contents)
{
Console.WriteLine(op.ToString());
}Σύνθεση περιεχομένου Streams
ContentStreamBuilder παρέχει μια ομαλή API για την κατασκευή περιεχομένου-στρέμματος λειτουργικές ακολουθίες, συμπεριλαμβανομένης της διαχείρισης γραφικών-κράτους, του δρόμου κατασκευής, Η διαμόρφωση του κειμένου και οι ρυθμίσεις χρωμάτων.
var builder = new ContentStreamBuilder();
builder.SaveState();
builder.SetFillColor(1.0, 0.0, 0.0); // Red fill
builder.SetMatrix(1, 0, 0, 1, 72, 700); // Translate
// ... add drawing or text operators
builder.RestoreState();ΓΡΑΦΙΚΗ ΚΑΝΟΝΑ
GraphicsState παρακολουθεί τη σημερινή μετασχηματιστική μάρτυρα, την κατάσταση κειμένου και Χρώμα τιμών όταν εκτελείται από τους φορείς. Κλειδιά λειτουργιών:
var gs = new GraphicsState();
gs.Save();
gs.ConcatMatrix(new Matrix(1, 0, 0, 1, 100, 200));
gs.Restore();Χρώμα λειτουργίας
SetColor και SetColorStroke Κατεβάστε και γεμίστε τα χρώματα αντίστοιχα. Αποδέχονται RGB, CMYK ή γκρίζα συστατικά.
// RGB fill color (blue)
var fill = new SetColor(0, 0, 1);
// RGB stroke color (red)
var stroke = new SetColorStroke(1, 0, 0);Λέξεις για χειριστές
ShowText να κάνει μια γραμμή κειμένου στη τρέχουσα θέση κείμενου χρησιμοποιώντας το Τη σημερινή γραφή και το μέγεθος από τη κατάσταση γραφικών.
var textOp = new ShowText("Hello, PDF!");SetTextMatrix Θέσεις κειμένου με τον ορισμό μιας μετασχηματιστικής ματρίκας για το κείμενο Το διάστημα .
Επέκταση γραφικών κράτος
ExtGState ελέγχει προηγμένες ιδιότητες rendering όπως γεμίσεις και εγκεφαλικό επεισόδιο Alpha (διαφάνεια) και μείγμα τρόπος.
Συμβουλές και βέλτιστες πρακτικές
- Πάντα ζευγάρι
SaveState/RestoreState(ήq/Qγια να αποφύγει την διαφθορά του γραφικού κράτους. - Χρησιμοποιήστε
ContentStreamBuilderγια νέα περιεχόμενα αντί να κατασκευάζουν χειροκίνητα αντικείμενα του φορέα. - Ελέγχου
OperatorCollectionΔιαβάστε μόνο πριν από την τροποποίηση - απροσδόκητες ακολουθίες του χειριστή μπορεί να προκαλέσει προβλήματα με το rendering. - Οι φορείς εκμετάλλευσης χρωμάτων πρέπει να ταιριάζουν με το τρέχον χώρο χρώματος (RGB, CMYK ή γκρίζα κλίμακα).
- Χρησιμοποιήστε
SetAdvancedColorγια τα σχέδια και τους χώρους χρωμάτων βάσει ICC.
κοινά ζητήματα
| Θέμα | Αιτία | ΦΙΛΕΞΗ |
|---|---|---|
| Το κείμενο δεν είναι ορατό μετά την προσθήκη φορέων | Δεν υπάρχει κείμενο σε κατάσταση | Προσθέστε A SetFont Ο ΠΡΩΤΟΓΡΑΦΟΣ ShowText |
| Τα χρώματα φαίνονται λάθος | Χρώμα διαστήματος χρώματος (RGB vs CMYK) | Χρησιμοποιήστε τον χειριστή που ταιριάζει με το ενεργό χώρο χρώματος |
| ΓΡΑΦΙΚΕΣ ΣΤΑΚ ΠΕΡΙΠΛΗΡΩΣΕΙΣ | Ανεξισορροπημένη Save / Restore ζευγάρια | Να διασφαλίσει κάθε SaveState Έχει ένα matching RestoreState |
| Το περιεχόμενο εμφανίζεται σε λάθος θέση | Αδυναμία ή λάθος μετασχηματισμός της ματρίδας | Ελέγξτε SetMatrix ή ConcatMatrix Αξίες |
FAQ
Τι είναι ένα PDF Content Stream;?
Μια ροή περιεχομένου είναι μια σειρά από φορείς που περιγράφουν πώς να εκτελέσει μια σελίδα - σχεδιάζοντας μονοπάτια, τοποθετώντας κείμενο, ρυθμίζοντας τα χρώματα και διαχειρίζοντας τη κατάσταση γραφικών.
Μπορώ να προσθέσω νέο περιεχόμενο σε μια υπάρχουσα σελίδα;?
Ναι, πρόσβαση page.Contents προσθέστε νέους φορείς ή χρησιμοποιήστε ContentStreamBuilder Να δημιουργήσουμε μια σειρά και να την προσθέσουμε.
Πώς μπορώ να κάνω το κείμενο διαφανές;?
Χρησιμοποιήστε ExtGState Για να συμπληρώσετε το alpha (caΑξιολόγηση μεταξύ 0 (εξοικείωση) 1 και 1 (απόλυτα αόρατη).
Συνοπτική αναφορά API
| Κλάση / Μέθοδος | Περιγραφή |
|---|---|
OperatorCollection | Η σειρά των διαχειριστών περιεχομένου σε μια σελίδα |
ContentStreamBuilder | Fluent Builder για την κατασκευή των λειτουργικών ακολουθιών |
ContentStreamBuilder.SaveState | Πιέστε την τρέχουσα κατάσταση γραφικών στο σκάκι |
ContentStreamBuilder.RestoreState | Pop γραφικά κατάσταση από το σκάφος |
ContentStreamBuilder.SetFillColor | Ρυθμίστε το χρώμα στο τρέχον χώρο χρωμάτων |
ContentStreamBuilder.SetMatrix | Εφαρμόστε μια συντονισμένη μετασχηματιστική |
GraphicsState | Τάκους μετασχηματισμού ματρίτιδα, χρώμα και κατάσταση κειμένου |
SetColor | Ο χειριστής ρυθμίζει το μη-στρογγυλό (πλήρωτο) χρώμα |
SetColorStroke | Ο χειριστής ρυθμίζει το χρώμα του στρογγυλοποιημένου |
SetAdvancedColor | Δραστηριότητες για το πρότυπο / ICC-based χρωματιστές χώρους |
ShowText | Ο διαχειριστής που εκτελεί ένα κείμενο string |
SetTextMatrix | Ο χειριστής τοποθετεί το κείμενο μέσω μιας ματρίκας |
ExtGState | Επεκταμένη κατάσταση γραφικών (alpha, mix mode) |