Oznake i oblici
Oznake i oblici
Aspose.PDF FOSS for .NET gives you full read/write access to PDF annotations Primarna ulazna točka za bilješke je: Page.Annotations (jedan) AnnotationCollection), dok se pristupom poljima obrazaca kroz Document.Form.Oba podsistema rade u potpunosti u memoriji i ne zahtijevaju nikakve informacije o tome kako se radi. Ključ za licencu.
Dodavanje bilješki
AnnotationCollection Izloženost tipiranih pomoćnih metoda za svaki standard Svaka metoda prihvaća oznaku. Rectangle utvrđivanje opisa U slučaju da se u skladu s člankom 7. stavku 1. točka (a) ne primjenjuje, mora se provesti:.
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);Odnos i radnje za povezivanje
Linkovi kombinuju klikni pravougaon s PdfAction.Biblioteka podržava: URI, GoTo, JavaScript, Nazvani i pokrenuti akcije.
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");Da biste pročitali link nakon otvaranja sačuvane PDF, stavite komentare na LinkAnnotation i provjeriti svoj Uri ili riješiti tužbu. rječnik preko PdfAction.Create.
Oznake o oznakama i oblikovima
Oznake o obliku (kvadrat, krug, crta, mastila) na stranici prikazuju geometriju.
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);Oznake na žigovima
Anotati žigova preklapaju sliku ili unaprijed definiranu ikonu na stranici.
var stamp = new StampAnnotation(doc);
// Configure stamp properties, then add to page
page.Annotations.Add(stamp);Prikazovi za ravnavanje
Zovi me. Flatten() na bilo koja anotiranje za spaljivanje svog vizualnog izgleda u stranicu U tom slučaju, u skladu s člankom 3. stavkom 1. točka (a) Uredbe (EU) br. 1071/2013 Komisija može oduzeti odluku o izmjeni ili ukidanju ove Direktive.
foreach (var annot in doc.Pages[1].Annotations)
{
annot.Flatten();
}Slika posjetitelja s AnnotationSelectorom
AnnotationSelector implementira obrazac posjetitelja tako da možete filtrirati U ovom slučaju, u skladu s člankom 16. stavkom 1. točkom (a) i podstavcima 2. i 3. ovog članka.
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
}Predajte konstruktoru datoteku tipizirane anotacije kako bi filtrirala samo za taj tip:
var linkFilter = new AnnotationSelector(new LinkAnnotation(page, Rectangle.Empty));
page.Accept(linkFilter);
// linkFilter.Selected contains only LinkAnnotation instancesInteraktivna polja obrasca
Pristup poljima AcroForm putem: Document.Form.-Ne, ne mogu. Form razredne izložbe U ovom slučaju, u skladu s člankom 15. stavkom 1. točkom (a) Uredbe (EU) br. 1071/2013 Komisija može utvrditi:.
using var doc = Document.Open(pdfBytes);
// Enumerate all fields
foreach (var field in doc.Form.Fields)
{
Console.WriteLine($"{field.FullName}: {field.Value}");
}Podsjeci polja uključuju: TextBoxField, CheckboxField, RadioButtonField, ComboBoxField, ListBoxField, ChoiceField, i SignatureField.
Izvoz podataka iz obrasca u JSON
WidgetAnnotation sadržava: ExportToJson Prekomjerna opterećenja za serijaliziranje podataka iz polja Opcionalna opcija je da se poveže s datotekama ili putem. ExportFieldsToJsonOptions parametar upravlja formiranjem izlaza.
using var doc = Document.Open(pdfBytes);
var widget = (WidgetAnnotation)doc.Pages[1].Annotations[1];
using var jsonStream = new MemoryStream();
widget.ExportToJson(jsonStream);Savjeti i najbolje prakse
- Uvijek navesti eksplicitno
Rectanglekoordinate u PDF jedinicama korisničkog prostora (1/72 inča). - Upotreba:
AddLinkAnnotations:PdfActionZa maksimalnu fleksibilnost podupire se URI, GoTo, JavaScript i akcije s imenima. - Zovi me.
Flatten()prije distribucije PDF-a ako želite da se komentari prikazuju u neinteraktivnim preglednicima. - Pristup poljima obrazaca putem:
Document.Form.FieldsUmjesto da se ponavljaju komentari stranice zbirka obrazaca rukovodi grupiranjem polja preko stranica. - Spasiti i ponovno otvoriti dokument kako bi se potvrdila pouzdanost napomene, posebno za prilagođene radnje.
Zajednički problemi
| Izdavanje | Uzrok | Popraviti |
|---|---|---|
| Nevidljiva oznaka nakon čuvanja | Pravougaon ima nulu površinu ili je izvan granica stranice. | Provjerite koordinate spadaju unutar stranice MediaBox |
LinkAnnotation.Uri vraća nula | Link koristi GoTo ili JavaScript akciju, a ne URI akciju. | Rješiti radnji rječnik preko PdfAction.Create i provjeriti. ActionType |
| Vrijednost polja obrazac je prazan niz | Polje postoji, ali nema. /V Uvod: | Čekaj. field.Value ne znači ništa prije obrade. |
Flatten() Baci | Anotiranje nema. /P (stranica) referentna strana | Završite s dodavanjem komentara preko: Page.Annotations |
FAQ
Kako dodati hiperlink na PDF stranicu?
Upotreba: page.Annotations.AddLinkAnnotation(rect, PdfAction.CreateUri(url)) u iznosu od: U skladu s člankom 21. stavkom 1. točkom (a) i podstavkom 2., u slučaju da se radi o određenoj kategoriji podataka, mora biti dostupan pristupni broj.
Mogu li pročitati vrijednosti polja obrasca iz postojećeg PDF-a?
Otvorite dokument s: Document.Open, onda ponoviti Document.Form.Fields i pročitajte: Value imovina na svakih Field.
Koje tipove bilješki podrži knjižnica?
Biblioteka podržava tekst, slobodan tekst , link , istaknite , potkidaj , uklanjanje , kvadrat, krug, crta, mastila, pečat, karet, datoteka u prilogu, zvuk, poligon;, Polyline, widget, vodeni znak i 3D opisi. Sve vrste su dostupne putem AnnotationCollection pomoćne metode ili direktnu konstrukciju.
Kako filtrirati bilješke po tipovima?
Upotreba: AnnotationSelector S tipkom za napis. page.Accept(selector) i provjerava selector.Selected za usklađivanje bilješki.
Mogu li samo pojedine bilješke?
Da, nazovi. Flatten() na pojedinačnoj Annotation instanci umjesto iteracije Cijela kolekcija.
Svrha referentnog API-a
| Klasa / metoda | Opisivanje |
|---|---|
AnnotationCollection | Slike za svaki od tih brojeva: Page; osigurava: Add* Pomoćnici za sve vrste bilješki |
AnnotationCollection.AddTextAnnotation | Dodajte napomenu na lepljivu oznaku. |
AnnotationCollection.AddLinkAnnotation | Dodajte vezu s URI, odredište stranice ili prilagođenu akciju |
AnnotationCollection.AddHighlightAnnotation | Dodaj tekst-svrhavanje opisa |
AnnotationCollection.AddInkAnnotation | Dodajte napomenu za crtanje slobodnim rukom. |
AnnotationCollection.AddSquareAnnotation | Dodaj napomenu pravougaonog oblika. |
AnnotationCollection.AddCircleAnnotation | Dodaj napomenu o obliku elipse. |
AnnotationCollection.AddLineAnnotation | Dodaj komentare za redove |
Annotation.Flatten | Izgled napomena u sadržaj stranice |
Annotation.Accept | Isporučiti na tipku AnnotationSelector.Visit Preopterećenje |
AnnotationSelector | Posjetitelj koji prikuplja bilješke po vrsti |
LinkAnnotation | Uređenje ili primjena u skladu s člankom 7. stavkom 1. točkom (a) i podstavkom 2. |
TextAnnotation | Prikaz na lepljivoj bilješci |
InkAnnotation | Slobodna crtanje s potezima u ritmu |
StampAnnotation | Slika ili ikona nadloženost opisa |
WidgetAnnotation.ExportToJson | Serijaliziranje podataka u polju obrasca na JSON |
Form | AkroForm fasada; broji i upravlja poljima |
Field | Priloga II.TextBoxField, CheckboxField, itd.) |
CheckboxField | Oznaka: |
TextBoxField | Uvodni polje s jednom/više redaka teksta |
ComboBoxField | Izborno polje u rasporedu |
RadioButtonField | Sljedeće: |
AnnotationType | Priloga II. točkom (a) stavku 1. |
PdfAction.CreateUri | Proizvodnja za akcije povezivanja URI-a |
PdfAction.CreateJavaScript | Tvornica za JavaScript akcije |