Megjegyzések és formák

Megjegyzések és formák

Megjegyzések és formák

Aspose.PDF FOSS for .NET gives you full read/write access to PDF annotations Az elsődleges bejárati pont az alábbiakban található: Page.Annotations (a) a következők: AnnotationCollection), miközben a formanyomtatványok mezői elérhetők. átjáró Document.Form.Mindkét alrendszer teljes egészében memóriában működik, és nem igényel semmilyen funkciót. A jogosítvány kulcs.


Az előző szövegek hozzáadása:

AnnotationCollection a standardokhoz használt típusosított segédmódszerek bemutatása. Az egyes módszerek elfogadják a Rectangle a megjegyzés meghatározása az oldal helyzete, valamint a típus-specifikus paraméterek.

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);

A link megjegyzések és akciók

A linkek kombinálják a kattintható téglalapot egy PdfAction.A könyvtár támogatja a URI, GoTo, JavaScript, Nevetett és Indító műveletek.

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");

Ha egy PDF-t megnyílt, akkor az alábbi linkhez kell fordítani: LinkAnnotation és ellenőrizze a Uri vagy a jogsértés megszüntetésére. szótár PdfAction.Create.


Jelölés és formanyomtatványok

A jelölés (kiemelni, aláhúzni, kivágni) meglévő szöveget jelzi. A formajelzések (kéter, kör, vonal, tintás) a lap geometrikáját rajzolják le.

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);

Bélyegjegyzés

A bélyegjegyzések egy kép vagy előre meghatározott ikona fedélzetét ábrázolják az oldalon.

var stamp = new StampAnnotation(doc);
// Configure stamp properties, then add to page
page.Annotations.Add(stamp);

A felpillantás

Call Flatten() bármely kommentáció, hogy a vizuális megjelenését beleírja az oldalba. tartalom áramlása és eltávolítása az interaktív megjegyzési listából.

foreach (var annot in doc.Pages[1].Annotations)
{
    annot.Flatten();
}

A látogató mintája AnnotationSelector-szal

AnnotationSelector végrehajtja a látogató mintát, így szűrheted a típus szerinti megjegyzések kézi öntés nélkül.

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
}

Egy gépelt megjegyzés példányt adja át a konstruktornak, hogy csak az adott típusra szűréssel szolgáljon:

var linkFilter = new AnnotationSelector(new LinkAnnotation(page, Rectangle.Empty));
page.Accept(linkFilter);
// linkFilter.Selected contains only LinkAnnotation instances

Interaktív űrlapmezők

AcroForm mezőket elérni a Document.Form.A… a… Form osztályfelvételek A JSON-export támogatja a mezőszintű olvasási/írási műveleteket.

using var doc = Document.Open(pdfBytes);

// Enumerate all fields
foreach (var field in doc.Form.Fields)
{
    Console.WriteLine($"{field.FullName}: {field.Value}");
}

A mező alosztályok közé tartoznak: TextBoxField, CheckboxField, RadioButtonField, ComboBoxField, ListBoxField, ChoiceField,és a következők: SignatureField.


A formanyomtatványok JSON-ba történő exportálása

WidgetAnnotation előirányzik: ExportToJson a mezői adatok sorozatosításához szükséges túlterhelés; A program egy folyam vagy fájl útvonal. ExportFieldsToJsonOptions paraméter a kimeneti formázást vezérli.

using var doc = Document.Open(pdfBytes);
var widget = (WidgetAnnotation)doc.Pages[1].Annotations[1];

using var jsonStream = new MemoryStream();
widget.ExportToJson(jsonStream);

Tippek és legjobb gyakorlatok

  • Mindig kifejezetten meg kell jelölni: Rectangle koordináták PDF felhasználói téregységekben (1/72 hüvelyk).
  • Használat AddLinkAnnotation a PdfAction a maximális rugalmasság érdekében URI, GoTo, JavaScript és Nevetett műveletek támogathatók.
  • Call Flatten() mielőtt elosztod a PDF-et, ha azt akarod, hogy az kommentek megjelenjenek nem interaktív nézőkben.
  • A formanyomtatvány mezői a következőkben: Document.Form.Fields A formanyomtatványok gyűjteménye a lap-oldalt átfogó mezőcsoportosítást kezeli.
  • A dokumentum mentése és újra megnyitása a megjegyzések körbe-körbe hűségének ellenőrzése érdekében, különösen egyedi műveletek esetén.

Általános kérdések

IssueCauseMegjavítani.
A mentés után nem látható megjegyzésA téglalap nulla területű vagy a lapok határain kívül van.Ellenőrizze, hogy a koordináták az oldalon belül vannak-e. MediaBox
LinkAnnotation.Uri null-ot ad visszaA link GoTo vagy JavaScript műveletet használ, nem URI-et.Megoldja a cselekvési szótárt az alábbi módon: PdfAction.Create és ellenőrizni. ActionType
A formanyomtatvány mező értéke üres szalag.A mező létezik, de nincs. /V bejegyzés:Check field.Value nem nullát jelent a feldolgozás előtt.
Flatten() dobásAz érv nem tartalmazza a következőket: /P (oldalt) hivatkozásBiztosítsuk, hogy a megjegyzés az alábbiakban található: Page.Annotations

FAQ

Hogyan adhatok hozzá egy hiperlinket a PDF-oldalhoz?

Használat page.Annotations.AddLinkAnnotation(rect, PdfAction.CreateUri(url)) a … a megadott téglalapnál egy kattintásra alkalmas URI-link létrehozása.

Olvashatom-e a formanyomtatvány mező értékeit egy meglévő PDF-ből?

Nyisd ki a dokumentumot. Document.Open, majd ismételd meg. Document.Form.Fields és olvassa el a Value a tulajdonosok minden egyes Field.

Milyen megjegyzési típusokat támogat a könyvtár?

A könyvtár támogatja a szöveget, szabad szövegeket, linkeket. Fokozzuk ki őket, aláhúzd le őket és húzd ki azokat!, négyzet, kör, vonal, tintás, bélyegző, karét, melléklet, hang, sokszög;, A 3D-s elemzéseket a következőkben találjuk: polyline, widget, watermark és 3d. AnnotationCollection segéd módszerek vagy közvetlen építés.

Hogyan szűrhetem a megjegyzéseket típusok szerint?

Használat AnnotationSelector A kódot a következő formában kell megadni: page.Accept(selector) és ellenőrzik a selector.Selected az összehasonlító megjegyzésekhez.

Csak bizonyos megjegyzéseket lehet szétpillantani?

Igen, hívj. Flatten() az egyéni Annotation a megismétlés helyett az instanciák Az egész gyűjtemény.


API-referencia összefoglaló

Rendszer / módszerDescription
AnnotationCollectionMinden egyes elemre vonatkozó adatszolgáltatás Page; a következőket írja elő: Add* Mindenféle megjegyzéshez szükséges segédszámok
AnnotationCollection.AddTextAnnotationEgy ragasztó megjegyzés hozzáadása
AnnotationCollection.AddLinkAnnotationHozzáadjon egy linket URI-vel, a céloldalkal vagy egy egyedi művelettel
AnnotationCollection.AddHighlightAnnotationA szöveget kiemelő megjegyzés hozzáadása
AnnotationCollection.AddInkAnnotationAdj egy szabad kézvel rajzolható megjegyzést.
AnnotationCollection.AddSquareAnnotationEgy téglalap alakú megjegyzés hozzáadása.
AnnotationCollection.AddCircleAnnotationEgy elipszis alakú megjegyzés hozzáadása
AnnotationCollection.AddLineAnnotationEgy sorjegyzés hozzáadása
Annotation.FlattenA felirat megjelenése a oldal tartalmába
Annotation.AcceptKüldés a gépelthez. AnnotationSelector.Visit túlsúlyos
AnnotationSelectorLátogató, aki a típusok szerint gyűjt megjegyzéseket
LinkAnnotationURI vagy művelet tartalmazó megjegyzési alosztály
TextAnnotationA “Cell” megjegyzés
InkAnnotationSzabad kézvel rajzolva, a vonatpályákkal megjelölve.
StampAnnotationA kép vagy a jelkép átfedése
WidgetAnnotation.ExportToJsonSzériázás a formanyomtatvány-mező adat JSON
FormAcroForm homlokzat; feltüntet és kezel mezőket
FieldA űrlap mezői alaposztálya (TextBoxField, CheckboxField, stb.)
CheckboxFieldA jelzőképen feltüntetett mező
TextBoxFieldEgyszeri/többsoros szövegbevitel mező
ComboBoxFieldA kiválasztási mező felhajtó menüje
RadioButtonFieldRádiógomb csoport mezője
AnnotationTypeAz említett típusú megjegyzések felsorolása
PdfAction.CreateUriA URI-kapcsolat akcióinak gyárja
PdfAction.CreateJavaScriptJavaScript műveletek gyárja

See Also

 Magyar