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 instancesInteraktí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:
Rectanglekoordináták PDF felhasználói téregységekben (1/72 hüvelyk). - Használat
AddLinkAnnotationaPdfActiona 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.FieldsA 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
| Issue | Cause | Megjavítani. |
|---|---|---|
| A mentés után nem látható megjegyzés | A 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 vissza | A 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ás | Az érv nem tartalmazza a következőket: /P (oldalt) hivatkozás | Biztosí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ódszer | Description |
|---|---|
AnnotationCollection | Minden 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.AddTextAnnotation | Egy ragasztó megjegyzés hozzáadása |
AnnotationCollection.AddLinkAnnotation | Hozzáadjon egy linket URI-vel, a céloldalkal vagy egy egyedi művelettel |
AnnotationCollection.AddHighlightAnnotation | A szöveget kiemelő megjegyzés hozzáadása |
AnnotationCollection.AddInkAnnotation | Adj egy szabad kézvel rajzolható megjegyzést. |
AnnotationCollection.AddSquareAnnotation | Egy téglalap alakú megjegyzés hozzáadása. |
AnnotationCollection.AddCircleAnnotation | Egy elipszis alakú megjegyzés hozzáadása |
AnnotationCollection.AddLineAnnotation | Egy sorjegyzés hozzáadása |
Annotation.Flatten | A felirat megjelenése a oldal tartalmába |
Annotation.Accept | Küldés a gépelthez. AnnotationSelector.Visit túlsúlyos |
AnnotationSelector | Látogató, aki a típusok szerint gyűjt megjegyzéseket |
LinkAnnotation | URI vagy művelet tartalmazó megjegyzési alosztály |
TextAnnotation | A “Cell” megjegyzés |
InkAnnotation | Szabad kézvel rajzolva, a vonatpályákkal megjelölve. |
StampAnnotation | A kép vagy a jelkép átfedése |
WidgetAnnotation.ExportToJson | Szériázás a formanyomtatvány-mező adat JSON |
Form | AcroForm homlokzat; feltüntet és kezel mezőket |
Field | A űrlap mezői alaposztálya (TextBoxField, CheckboxField, stb.) |
CheckboxField | A jelzőképen feltüntetett mező |
TextBoxField | Egyszeri/többsoros szövegbevitel mező |
ComboBoxField | A kiválasztási mező felhajtó menüje |
RadioButtonField | Rádiógomb csoport mezője |
AnnotationType | Az említett típusú megjegyzések felsorolása |
PdfAction.CreateUri | A URI-kapcsolat akcióinak gyárja |
PdfAction.CreateJavaScript | JavaScript műveletek gyárja |