Ανακοινώσεις και μορφές
Ανακοινώσεις και μορφές
Aspose.PDF FOSS for .NET gives you full read/write access to PDF annotations και διαδραστικά πεδία AcroForm. το κύριο σημείο εισόδου για τις αναφορές είναι Page.Annotations (Αν AnnotationCollection( ) ενώ τα πεδία μορφής είναι προσβάσιμα Μέσα από Document.Form.Και τα δύο υποσυστήματα λειτουργούν εντελώς στη μνήμη και δεν απαιτούν Αξιοθέτηση κλειδιού.
Προσθήκη αναρτήσεων
AnnotationCollection Εμφάνιση τυποποιημένων μεθόδων βοηθού για κάθε πρότυπο Η μέθοδος αυτή είναι η οποία κάθε μέσο αποδέχεται ένα Rectangle Ορισμός της αναφοράς θέση στη σελίδα plus ειδικές παραμέτρους τύπου.
using var doc = Document.Open(pdfBytes);
var page = doc.Pages[1];
// Text (sticky-note) annotation
page.Annotations.AddTextAnnotation(
new Rectangle(72, 720, 200, 740),
contents: "Review this paragraph",
title: "Editor",
open: true);
// Highlight annotation
page.Annotations.AddHighlightAnnotation(
new Rectangle(72, 680, 300, 700),
quadPoints: null,
color: new double[] { 1, 1, 0 });
// Free-text annotation (rendered directly on the page)
page.Annotations.AddFreeTextAnnotation(
new Rectangle(72, 640, 350, 660),
contents: "Inline note",
fontName: "Helvetica",
fontSize: 10,
color: new double[] { 0, 0, 0 });
using var ms = new MemoryStream();
doc.Save(ms);Link αναφορές και δράσεις
Η αλληλεπίδραση συνδυάζει ένα κλικ-αποκλειστικό ορθόγωνα με μια PdfAction.Η βιβλιοθήκη υποστηρίζει URI, GoTo, JavaScript, Named και Λάινγκ δράσεις.
using var doc = Document.Open(pdfBytes);
var page = doc.Pages[1];
// URI link
var uriAction = PdfAction.CreateUri("https://aspose.com");
page.Annotations.AddLinkAnnotation(
new Rectangle(50, 700, 200, 720), uriAction);
// GoTo link (jump to page 3)
page.Annotations.AddLinkAnnotation(
new Rectangle(50, 660, 200, 680),
destinationPage: 3,
destRect: new Rectangle(0, 0, 612, 792));
// JavaScript link
var jsAction = PdfAction.CreateJavaScript("app.alert('Hello');");
page.Annotations.AddLinkAnnotation(
new Rectangle(50, 620, 200, 640), jsAction);
doc.Save("links.pdf");Για να διαβάσετε ένα σύνδεσμο πίσω μετά το άνοιγμα ενός αποθηκευμένου PDF, βάλτε την αναφορά στο LinkAnnotation και να ελέγξει την Uri - την ιδιοκτησία ή να επιλύσει τη δράση Η λεξιλόγια μέσω PdfAction.Create.
Σημειώσεις και σχήματα αναρτήσεων
Σημειώσεις σήμανσης (υψηλό, υπογραμμική, strikeout) σήμα υφιστάμενη κείμενο. σχήμα σημείωση (κλάση, κύκλο, γραμμή, εντύπωση) χτυπήσει γεωμετρία στη σελίδα.
var page = doc.Pages[1];
// Underline
page.Annotations.AddUnderlineAnnotation(
new Rectangle(72, 600, 300, 620),
quadPoints: null,
color: new double[] { 1, 0, 0 });
// Square
page.Annotations.AddSquareAnnotation(
new Rectangle(72, 540, 200, 580),
borderColor: new double[] { 0, 0, 1 },
fillColor: null,
lineWidth: 1.5);
// Line
page.Annotations.AddLineAnnotation(
new Rectangle(72, 500, 300, 520),
x1: 72, y1: 510, x2: 300, y2: 510,
color: new double[] { 0, 0.5, 0 },
lineWidth: 2);
// Ink (freehand)
page.Annotations.AddInkAnnotation(
new Rectangle(72, 440, 200, 480),
inkPaths: new[] { new double[] { 80, 450, 120, 470, 160, 450 } },
color: new double[] { 0.5, 0, 0.5 },
lineWidth: 1);Σημειώσεις Stamp
Οι σημειώσεις εκτύπωσης ξεπερνούν μια εικόνα ή ένα προεπιλεγμένο εικονίδιο σε μια σελίδα.
var stamp = new StampAnnotation(doc);
// Configure stamp properties, then add to page
page.Annotations.Add(stamp);Σπασμένα αναρτήματα
Κλήση Flatten() σε οποιαδήποτε αναφορά για να καίει την οπτική του εμφάνιση στη σελίδα Το περιεχόμενο ροής και αφαιρέστε το από τη λίστα διαδραστικών σημειώσεων.
foreach (var annot in doc.Pages[1].Annotations)
{
annot.Flatten();
}Το πρότυπο του επισκέπτη με AnnotationSelector
AnnotationSelector Εφαρμόστε το πρότυπο επισκέπτη για να μπορείτε να φιλτράρετε Ετικέτες χωρίς χειροκίνητο σήμα.
var selector = new AnnotationSelector();
doc.Pages[1].Accept(selector);
// selector.Selected now contains all annotations on page 1
foreach (var annot in selector.Selected)
{
// Process each annotation by type
}Πληκτρολογήστε μια τυποποιημένη περίπτωση αναφοράς στον κατασκευαστή για να φιλτράρετε μόνο για αυτόν τον τύπο:
var linkFilter = new AnnotationSelector(new LinkAnnotation(page, Rectangle.Empty));
page.Accept(linkFilter);
// linkFilter.Selected contains only LinkAnnotation instancesΔιαδραστικά σχήματα πεδία
Εισαγωγή στο AcroForm μέσω Document.Form.Η Form Εκθέσεις Κλάσης Το πεδίο-επίπεδο διαβάζει/ γράφει τις λειτουργίες και υποστηρίζει την εξαγωγή JSON.
using var doc = Document.Open(pdfBytes);
// Enumerate all fields
foreach (var field in doc.Form.Fields)
{
Console.WriteLine($"{field.FullName}: {field.Value}");
}Οι υποκλάσεις περιλαμβάνουν TextBoxField, CheckboxField, RadioButtonField, ComboBoxField, ListBoxField, ChoiceField,και SignatureField.
Εξαγωγή δεδομένων φόρμας σε JSON
WidgetAnnotation Παρέχει ExportToJson Υπερφόρτωση για την εκτύπωση δεδομένων πεδίου σε ένα ρεύμα ή αρχείο δρόμο. μια επιλογή ExportFieldsToJsonOptions Παραμέτρων Ελέγχεται η διατύπωση.
using var doc = Document.Open(pdfBytes);
var widget = (WidgetAnnotation)doc.Pages[1].Annotations[1];
using var jsonStream = new MemoryStream();
widget.ExportToJson(jsonStream);Συμβουλές και βέλτιστες πρακτικές
- Πάντα να προσδιορίζεις ρητά
Rectangleσυντονισμοί σε μονάδες χώρου χρήστη PDF (1/72 ίντσες). - Χρησιμοποιήστε
AddLinkAnnotationΜε το APdfActionΓια μέγιστη ευελιξία – URI, GoTo, JavaScript και Όνομα δράσεις υποστηρίζονται. - Κλήση
Flatten()πριν από τη διανομή ενός PDF, εάν θέλετε να εμφανιστούν σημειώσεις σε μη αλληλεπιδραστικούς προβολείς. - Η πρόσβαση σε πεδία μέσω
Document.Form.FieldsΑντί να ιταρίσει τις σημειώσεις σελίδας - η συλλογή φόρμας χειρίζεται τη διασυνδεόμενη ομάδα πεδίων. - Αποθηκεύστε και ανοίξτε ξανά το έγγραφο για να επαληθευτεί η πιστότητα της αναφοράς, ειδικά για προσαρμοσμένες ενέργειες.
κοινά ζητήματα
| Θέμα | Αιτία | ΦΙΛΕΞΗ |
|---|---|---|
| Η αναφορά δεν είναι ορατή μετά την αποθήκευση | Το Rectangle έχει μηδενική περιοχή ή είναι εκτός των ορίων σελίδας. | Ελέγξτε τις συντονιστικές πτώσεις μέσα στη σελίδα MediaBox |
LinkAnnotation.Uri Επιστροφή 0 | Το Link χρησιμοποιεί μια δράση GoTo ή JavaScript, όχι μια ενέργεια URI. | Διαβάστε το λεξικό δράσης μέσω PdfAction.Create και ελέγξτε ActionType |
| Η τιμή του πεδίου φόρμας είναι άδειο σήμα | Το πεδίο υπάρχει, αλλά δεν υπάρχει. /V Εισαγωγή | Ελέγξτε field.Value Δεν είναι μηδέν πριν από την επεξεργασία |
Flatten() Πυροβολισμοί | Η αναφορά δεν έχει /P (Παράκτορα) Αναφοράς | Η αναφορά προστέθηκε μέσω της Page.Annotations |
FAQ
Πώς μπορώ να προσθέσω ένα υπερσύνδεσμο σε μια σελίδα PDF;?
Χρησιμοποιήστε page.Annotations.AddLinkAnnotation(rect, PdfAction.CreateUri(url)) Για να Δημιουργήστε ένα κλικ-αποδεκτό σύνδεσμο URI στο καθορισμένο ορθό.
Μπορώ να διαβάσω τιμές πεδίου φόρμας από ένα υπάρχον PDF;?
Ναι. Ανοίξτε το έγγραφο με Document.Open,Στη συνέχεια, ιταλικά Document.Form.Fields Και διαβάστε το Value ιδιοκτησία σε κάθε Field.
Ποια είδη αναρτήσεων υποστηρίζει η βιβλιοθήκη;?
Η βιβλιοθήκη υποστηρίζει κείμενο, ελεύθερο κείμενό σας, σύνδεση, αναφορά, υπογραμμική γραμμή, απεργία, τετράγωνο, κύκλος, γραμμή, εντέρου, σφραγίδας, καρέτ, συσχετισμός αρχείων, ήχος, πολυγώνιο, Πολυλίνη, widget, watermark και 3D αναφορές. όλα τα είδη είναι διαθέσιμα μέσω AnnotationCollection Μέθοδοι βοήθειας ή άμεσης κατασκευής.
Πώς μπορώ να φιλτράρισα τις αναφορές ανά τύπο;?
Χρησιμοποιήστε AnnotationSelector με ένα τυποποιημένο πρότυπο αναφοράς. κάλεσε page.Accept(selector) και να ελέγξει selector.Selected για να ταιριάζει με τις αναφορές.
Μπορώ να γράψω μόνο συγκεκριμένες αναφορές;?
Ναι, καλέστε Flatten() Σε ατομικά Annotation Αντί να μιλάμε αντί να ιταλώνουμε ολόκληρη τη συλλογή.
Συνοπτική αναφορά API
| Κλάση / Μέθοδος | Περιγραφή |
|---|---|
AnnotationCollection | Ετικέτες συλλογή σε κάθε Page;· παρέχει Add* Βοηθός για όλους τους τύπους αναρτήσεων |
AnnotationCollection.AddTextAnnotation | Προσθέστε μια αναφορά Sticky-Note |
AnnotationCollection.AddLinkAnnotation | Προσθήκη σύνδεσης με URI, προορισμό σελίδας ή προσαρμοσμένη δράση |
AnnotationCollection.AddHighlightAnnotation | Προσθήκη κειμένου-υψηλής φωτεινότητας |
AnnotationCollection.AddInkAnnotation | Προσθήκη ελεύθερου χεριού αναρτήσεων |
AnnotationCollection.AddSquareAnnotation | Προσθέστε μια ορθογώνια μορφή αναφοράς |
AnnotationCollection.AddCircleAnnotation | Προσθέστε μια ελίτ μορφή αναφοράς |
AnnotationCollection.AddLineAnnotation | Προσθέστε μια γραμμή αναφοράς |
Annotation.Flatten | Πυρκαγιά αναφοράς εμφάνιση σε περιεχόμενο σελίδας |
Annotation.Accept | Διαβίβαση σε τυποποιημένο AnnotationSelector.Visit Υπερφόρτωση |
AnnotationSelector | Επισκέπτης που συλλέγει αναφορές ανά τύπο |
LinkAnnotation | Αναφορά υποκλάσης που φέρει URI ή δράση |
TextAnnotation | Στυλ-Μέρο Αναφοράς |
InkAnnotation | Φωτεινή αναφορά με μονοπάτια εγκεφαλικού επεισοδίου |
StampAnnotation | Εικόνα ή εικονική αναφορά |
WidgetAnnotation.ExportToJson | Σειρά δεδομένων πεδίου φόρμας στο JSON |
Form | AcroForm φασάδος; καταγράφει και χειρίζεται τα πεδία |
Field | Η βάση των κλάσεων (TextBoxField, CheckboxField,κλπ) |
CheckboxField | Ετικέτες checkbox form field |
TextBoxField | Ενιαίο/πολλαπλό κείμενο εισόδου πεδίου |
ComboBoxField | Το πεδίο επιλογής Drop-down |
RadioButtonField | Ραδιοφωνικό πεδίο ομάδας |
AnnotationType | ΕΝΟΜΙΣΗ ΤΩΝ ΤΡΟΠΩΝ ΑΝΤΟΤΑΣΗΣ |
PdfAction.CreateUri | Φάκτρα για URI σύνδεση δράσεις |
PdfAction.CreateJavaScript | Εργοστάσιο για δράσεις JavaScript |