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 instances

Interaktivna 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 Rectangle koordinate u PDF jedinicama korisničkog prostora (1/72 inča).
  • Upotreba: AddLinkAnnotation s: PdfAction Za 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.Fields Umjesto 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

IzdavanjeUzrokPopraviti
Nevidljiva oznaka nakon čuvanjaPravougaon ima nulu površinu ili je izvan granica stranice.Provjerite koordinate spadaju unutar stranice MediaBox
LinkAnnotation.Uri vraća nulaLink 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 nizPolje postoji, ali nema. /V Uvod:Čekaj. field.Value ne znači ništa prije obrade.
Flatten() BaciAnotiranje nema. /P (stranica) referentna stranaZavrš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 / metodaOpisivanje
AnnotationCollectionSlike za svaki od tih brojeva: Page; osigurava: Add* Pomoćnici za sve vrste bilješki
AnnotationCollection.AddTextAnnotationDodajte napomenu na lepljivu oznaku.
AnnotationCollection.AddLinkAnnotationDodajte vezu s URI, odredište stranice ili prilagođenu akciju
AnnotationCollection.AddHighlightAnnotationDodaj tekst-svrhavanje opisa
AnnotationCollection.AddInkAnnotationDodajte napomenu za crtanje slobodnim rukom.
AnnotationCollection.AddSquareAnnotationDodaj napomenu pravougaonog oblika.
AnnotationCollection.AddCircleAnnotationDodaj napomenu o obliku elipse.
AnnotationCollection.AddLineAnnotationDodaj komentare za redove
Annotation.FlattenIzgled napomena u sadržaj stranice
Annotation.AcceptIsporučiti na tipku AnnotationSelector.Visit Preopterećenje
AnnotationSelectorPosjetitelj koji prikuplja bilješke po vrsti
LinkAnnotationUređenje ili primjena u skladu s člankom 7. stavkom 1. točkom (a) i podstavkom 2.
TextAnnotationPrikaz na lepljivoj bilješci
InkAnnotationSlobodna crtanje s potezima u ritmu
StampAnnotationSlika ili ikona nadloženost opisa
WidgetAnnotation.ExportToJsonSerijaliziranje podataka u polju obrasca na JSON
FormAkroForm fasada; broji i upravlja poljima
FieldPriloga II.TextBoxField, CheckboxField, itd.)
CheckboxFieldOznaka:
TextBoxFieldUvodni polje s jednom/više redaka teksta
ComboBoxFieldIzborno polje u rasporedu
RadioButtonFieldSljedeće:
AnnotationTypePriloga II. točkom (a) stavku 1.
PdfAction.CreateUriProizvodnja za akcije povezivanja URI-a
PdfAction.CreateJavaScriptTvornica za JavaScript akcije

Također pogledajte:

 Hrvatski