Dokumenthantering
Dokumenthantering
Document är rotobjektet i Aspose.PDF FOSS för .NET. Det representerar en
hel PDF‑fil och ger åtkomst till sidor, metadata, formulärfält och alla
andra PDF‑strukturer. Öppna befintliga filer med Document.Open och skapa nya
med Document‑konstruktorn.
Öppna och skapa dokument
// Open from a byte array
using var doc = Document.Open(File.ReadAllBytes("input.pdf"));
// Open from a file path
using var doc2 = new Document("input.pdf");
// Create a new empty document
using var newDoc = new Document();
newDoc.Pages.Add();
newDoc.Save("new.pdf");Arbeta med sidor
PageCollection hanterar dokumentets sidor. Åtkomst till sidor med 1-baserat index, lägg till nya sidor eller ta bort befintliga.
using var doc = Document.Open(pdfBytes);
// Access first page
var page = doc.Pages[1];
// Add a blank page
var newPage = doc.Pages.Add();
// Get page count
int count = doc.Pages.Count;Sidgeometri
Varje sida definierar flera avgränsningsrutor. Använd setter‑metoderna på Page för att justera dem.
var page = doc.Pages[1];
page.SetMediaBox(new Rectangle(0, 0, 612, 792));
page.SetCropBox(new Rectangle(36, 36, 576, 756));
page.SetRotation(90);Spara dokument
Spara till en filsökväg, en ström eller en bytearray.
// Save to file
doc.Save("output.pdf");
// Save to stream
using var ms = new MemoryStream();
doc.Save(ms);Filbilagor
FileSpecification representerar inbäddade filbilagor i en PDF.
var spec = new FileSpecification("data.csv", "Embedded data file");
doc.EmbeddedFiles.Add(spec);Bildstämplar
ImageStamp lägger över en rasterbild på en sida på en angiven position.
var stamp = new ImageStamp("logo.png");
stamp.Put(doc.Pages[1]);
doc.Save("stamped.pdf");Operatörssamlingar
OperatorCollection på varje sida innehåller de råa content‑stream‑operatörerna. Använd den för låg‑nivå innehållsinspektion eller manipulation.
var ops = doc.Pages[1].Contents;
foreach (var op in ops)
{
// Inspect each operator
}Tips och bästa praxis
- Omge
Documentmed ettusing‑uttalande för att frigöra filhandtag omedelbart. - Använd
Document.Open(byte[])för arbetsflöden i minnet för att undvika fil‑låsningsproblem. - Modifiera sidboxar (MediaBox, CropBox) innan du lägger till innehåll för att säkerställa korrekt koordinatrymd.
- Anropa
Saveendast en gång efter alla ändringar — upprepade sparningar är långsammare men säkra. - Använd
PageCollection.Accept(AnnotationSelector)för att batch‑processa annotationer på alla sidor.
Vanliga problem
| Issue | Cause | Fix |
|---|---|---|
Document.Open kastar på giltig PDF | Filen är krypterad med ett lösenord | Ange lösenordsparametern i konstruktorn |
| Sidantalet är 0 efter konstruktion | Ny Document() startar tom | Anropa doc.Pages.Add() för att lägga till en tom sida |
| Sparad fil är större än förväntat | Bilder eller teckensnitt inbäddade flera gånger | Använd optimering (se Conversion and Optimization guide) |
Pages[0] kastar indexfel | Sidor är 1-baserade, inte 0-baserade | Använd Pages[1] för den första sidan |
FAQ
Hur slår jag ihop två PDF-dokument?
Använd PdfFileEditor.Concatenate från Facades API, eller kopiera sidor manuellt från ett dokument till ett annat med hjälp av PageCollection.
Kan jag öppna en PDF från en URL eller en ström?
Ja. Läs URL‑innehållet in i en byte[] först, och skicka sedan det till Document.Open(byte[]).
Hur tar jag bort en sida?
Anropa doc.Pages.Delete(pageNumber) där pageNumber är 1-baserad.
Är Document trådsäker?
Nej. Varje tråd bör arbeta med sin egen Document-instans.
API-referenssammanfattning
| Class / Method | Description |
|---|---|
Document | Rot‑PDF‑objekt; innehåller sidor, metadata och formulärfält |
Document.Open | Statisk fabrik för att öppna en PDF från en bytearray |
Document.Save | Serialisera dokumentet till en fil eller ström |
Page | Enskild PDF‑sida med innehåll, annotationer och geometri |
Page.SetMediaBox | Definiera sidans mediabox |
Page.SetCropBox | Definiera det synliga beskärningsområdet |
Page.SetRotation | Rotera sidan med 0, 90, 180 eller 270 grader |
PageCollection | Ordnad samling av sidor i ett dokument |
PageCollection.Add | Lägg till en tom sida |
OperatorCollection | Rå innehållsström‑operatörer för en sida |
FileSpecification | Inbäddad filbilagdesbeskrivning |
ImageStamp | Bildöverlappningsstämpel för sidor |
XFormCollection | Återanvändbara formulär‑XObjects i dokumentet |