Gestão de documentos

Gestão de documentos

Document é o objeto raiz em Aspose.PDF FOSS para .NET. Representa um todo o ficheiro PDF e fornece acesso a páginas, metadados, campos de formulário e todos os outros documentos que podem ser consultados. outras estruturas PDF. Abra arquivos existentes com o Document.Open e criar novos . Os que têm o Document Construtor.


Abertura e criação de documentos

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

Trabalho com páginas

PageCollection Gerencia as páginas do documento. Acesso às páginos por índice baseado em 1, adicionar novas páginas ou remover as existentes.

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;

Geometria da página

Cada página define várias caixas de limitação. Use os métodos do setter em Page a) para o Ajuste-as.

var page = doc.Pages[1];
page.SetMediaBox(new Rectangle(0, 0, 612, 792));
page.SetCropBox(new Rectangle(36, 36, 576, 756));
page.SetRotation(90);

Salvamento de documentos

Salve para um caminho de arquivo, uma corrente ou uma matriz de bytes.

// Save to file
doc.Save("output.pdf");

// Save to stream
using var ms = new MemoryStream();
doc.Save(ms);

Anexos de ficheiros

FileSpecification representa anexos de ficheiros embutidos num PDF.

var spec = new FileSpecification("data.csv", "Embedded data file");
doc.EmbeddedFiles.Add(spec);

Marcas de imagem

ImageStamp sobrepõe uma imagem raster numa página num local especificado.

var stamp = new ImageStamp("logo.png");
stamp.Put(doc.Pages[1]);
doc.Save("stamped.pdf");

Coleções de operadores

OperatorCollection Em cada página contém os operadores de fluxo de conteúdo bruto. Use para inspecção ou manipulação de conteúdos de baixo nível.

var ops = doc.Pages[1].Contents;
foreach (var op in ops)
{
    // Inspect each operator
}

Dicas e melhores práticas

  • Embalagem Document em um using Declaração para liberar os manobras de ficheiro prontamente.
  • Utilização: Document.Open(byte[]) para fluxos de trabalho em memória, a fim de evitar problemas com bloqueio de ficheiros.
  • Modifique as caixas de página (MediaBox, CropBox) antes de adicionar conteúdo para garantir o espaço correto das coordenadas.
  • Chama-me . Save Salvar repetidamente é mais lento, mas seguro.
  • Utilização: PageCollection.Accept(AnnotationSelector) para processar em lotes as anotações de todas as páginas.

Problemas comuns

EmissãoCausa da morteCorreção
Document.Open lança em PDF válidoO ficheiro está encriptado com uma senha .Fornecer o parâmetro de senha no constructor
Contagem de páginas é 0 após a construção.Novo . Document() começa vazio.Chama-me . doc.Pages.Add() para adicionar uma página em branco
O arquivo guardado é maior do que o esperado .Imagens ou fontes incorporadas várias vezesUtilize a otimização (ver guia de conversão e otimização)
Pages[0] Arranca erro de índiceAs páginas são baseadas em 1, não 0Utilização: Pages[1] para a primeira página:

FAQ

Como eu junta dois documentos PDF?

Utilização: PdfFileEditor.Concatenate da API Facades, ou copiar manualmente páginas de um documento para outro usando o código-fonte: PageCollection.

Posso abrir um PDF a partir de uma URL ou stream?

Sim, lê o conteúdo da URL em um byte[] Primeiro, depois passa-o para o Document.Open(byte[]).

Como eu apago uma página?

Chama-me . doc.Pages.Delete(pageNumber) onde: pageNumber baseada em 1.

O documento é seguro para fio?

Cada fio deve funcionar com o seu próprio. Document - Por exemplo.


Resumo de referência da API

Classe / MétodoDescrição:
DocumentObjeto PDF raiz; contém páginas, metadados e campos de formulário
Document.OpenFábrica estática para abrir um PDF a partir de uma matriz de bytes
Document.SaveSerializar o documento para um arquivo ou fluxo de dados .
PagePágina PDF única com conteúdo, anotações e geometria
Page.SetMediaBoxDefina a caixa de mídia da página
Page.SetCropBoxDefina a área de cultivo visível.
Page.SetRotationGire a página em 0, 90, 180 ou 270 graus.
PageCollectionColeção ordenada de páginas num documento
PageCollection.AddAnexar uma página em branco
OperatorCollectionOperadores de fluxo de conteúdo bruto para uma página
FileSpecificationDescrição de anexo de ficheiro incorporado
ImageStampEstampado de sobreposição de imagens para páginas
XFormCollectionFormulário reutilizável XObjetos no documento

Ver também:

 Português