Dokumenthåndtering
Dokumenthåndtering
Document er rotobjektet i Aspose.PDF FOSS for .NET. Det representerer en
hel PDF-fil og gir tilgang til sider, metadata, skjemafelter, og alle
andre PDF-strukturer. Åpne eksisterende filer med Document.Open og opprett nye
med Document-konstruktøren.
Åpning og opprettelse av dokumenter
// 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");Arbeide med sider
PageCollection administrerer dokumentets sider. Få tilgang til sider ved 1-basert indeks, legg til nye sider, eller fjern eksisterende sider.
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;Sidegeometri
Hver side definerer flere avgrensningsbokser. Bruk setter‑metodene på Page for å justere 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);Lagring av dokumenter
Lagre til en filsti, en strøm eller en byte-array.
// Save to file
doc.Save("output.pdf");
// Save to stream
using var ms = new MemoryStream();
doc.Save(ms);Filvedlegg
FileSpecification representerer innebygde filvedlegg i en PDF.
var spec = new FileSpecification("data.csv", "Embedded data file");
doc.EmbeddedFiles.Add(spec);Bilde‑stempler
ImageStamp legger et rasterbilde på en side på en angitt posisjon.
var stamp = new ImageStamp("logo.png");
stamp.Put(doc.Pages[1]);
doc.Save("stamped.pdf");Operatorkolleksjoner
OperatorCollection på hver side inneholder de rå innholdsstrøm-operatorene. Bruk den for innholdsinspeksjon eller manipulering på lavt nivå.
var ops = doc.Pages[1].Contents;
foreach (var op in ops)
{
// Inspect each operator
}Tips og beste praksis
- Pakk
Documentinn i enusing‑setning for å frigjøre filhåndtakene umiddelbart. - Bruk
Document.Open(byte[])for arbeidsflyter i minnet for å unngå fil‑låse‑problemer. - Endre sidebokser (MediaBox, CropBox) før du legger til innhold for å sikre korrekt koordinatrom.
- Kall
Savekun én gang etter alle endringer — gjentatte lagringer er tregere, men trygge. - Bruk
PageCollection.Accept(AnnotationSelector)for å batch‑behandle annotasjoner på tvers av alle sider.
Vanlige problemer
| Issue | Cause | Fix |
|---|---|---|
Document.Open kaster på gyldig PDF | Filen er kryptert med et passord | Oppgi passordparameteren i konstruktøren |
| Sideantallet er 0 etter konstruksjon | Ny Document() starter tom | Kall doc.Pages.Add() for å legge til en blank side |
| Lagret fil er større enn forventet | Bilder eller fonter er innebygd flere ganger | Bruk optimalisering (se veiledningen Conversion and Optimization guide) |
Pages[0] kaster indeksfeil | Sider er 1-baserte, ikke 0-baserte | Bruk Pages[1] for den første siden |
OSS
Hvordan slår jeg sammen to PDF-dokumenter?
Bruk PdfFileEditor.Concatenate fra Facades API, eller kopier sider manuelt fra ett dokument til et annet ved å bruke PageCollection.
Kan jeg åpne en PDF fra en URL eller strøm?
Ja. Les URL‑innholdet inn i en byte[] først, så send det til
Document.Open(byte[]).
Hvordan sletter jeg en side?
Kall doc.Pages.Delete(pageNumber) der pageNumber er 1‑basert.
Er Document trådsikker?
Nei. Hver tråd bør arbeide med sin egen Document-instans.
API-referansesammendrag
| Class / Method | Description |
|---|---|
Document | Rot‑PDF‑objekt; inneholder sider, metadata og skjemafelter |
Document.Open | Statisk fabrikk for å åpne en PDF fra en byte‑array |
Document.Save | Serialiser dokumentet til en fil eller strøm |
Page | Enkel PDF‑side med innhold, annotasjoner og geometri |
Page.SetMediaBox | Definer sidens mediaboks |
Page.SetCropBox | Definer det synlige beskjæringsområdet |
Page.SetRotation | Roter siden med 0, 90, 180 eller 270 grader |
PageCollection | Ordnet samling av sider i et dokument |
PageCollection.Add | Legg til en blank side |
OperatorCollection | Rå innholdsstrøm‑operatorer for en side |
FileSpecification | Innebygd filvedleggbeskrivelse |
ImageStamp | Bildeoverlegg‑stempel for sider |
XFormCollection | Gjenbrukbare skjema‑XObjects i dokumentet |