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
Documentem umusingDeclaraçã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 .
SaveSalvar 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ão | Causa da morte | Correção |
|---|---|---|
Document.Open lança em PDF válido | O 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 vezes | Utilize a otimização (ver guia de conversão e otimização) |
Pages[0] Arranca erro de índice | As páginas são baseadas em 1, não 0 | Utilizaçã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étodo | Descrição: |
|---|---|
Document | Objeto PDF raiz; contém páginas, metadados e campos de formulário |
Document.Open | Fábrica estática para abrir um PDF a partir de uma matriz de bytes |
Document.Save | Serializar o documento para um arquivo ou fluxo de dados . |
Page | Página PDF única com conteúdo, anotações e geometria |
Page.SetMediaBox | Defina a caixa de mídia da página |
Page.SetCropBox | Defina a área de cultivo visível. |
Page.SetRotation | Gire a página em 0, 90, 180 ou 270 graus. |
PageCollection | Coleção ordenada de páginas num documento |
PageCollection.Add | Anexar uma página em branco |
OperatorCollection | Operadores de fluxo de conteúdo bruto para uma página |
FileSpecification | Descrição de anexo de ficheiro incorporado |
ImageStamp | Estampado de sobreposição de imagens para páginas |
XFormCollection | Formulário reutilizável XObjetos no documento |