Imagens de página paginadas
Cada página é rasterizada no servidor e entregue sob demanda. Documentos grandes abrem na primeira página em vez de esperar o download completo do arquivo.
O visualizador de PDF embutido no navegador funciona entregando o arquivo ao usuário. Para um contrato, um prontuário médico ou uma proposta selada, isso costuma ser exatamente o que você está tentando evitar. Doconut renderiza as páginas no servidor e envia imagens, de modo que visualizar e possuir deixam de ser a mesma ação.
O problema
Servir o arquivo e deixar o navegador renderizá‑lo: a mais simples, e entrega ao usuário os bytes originais, os metadados, os anexos incorporados e a capacidade de encaminhá‑los com um único clique.
Distribuir um motor de PDF em JavaScript: mantém o arquivo no navegador também, adiciona um download significativo ao seu pacote e ainda deixa a cargo de você implementar a barra de ferramentas, a barra de miniaturas e a caixa de busca.
Renderizar no servidor e enviar imagens: o usuário vê as páginas, o arquivo nunca sai da sua infraestrutura, e o mesmo mecanismo funciona para Word, Excel, CAD e e‑mail — que costuma ser a exigência que surge duas sprints depois.
Capacidades
Cada página é rasterizada no servidor e entregue sob demanda. Documentos grandes abrem na primeira página em vez de esperar o download completo do arquivo.
Com o plugin AdvancedSearch, a busca em texto completo ocorre na camada de texto do PDF, de modo que os resultados aparecem na página correta com o destaque adequado.
Uma barra de miniaturas, saltos de página, zoom e ajuste à largura vêm com o widget. Defina showThumbs e FitType e siga em frente.
Com o plugin Annotation: realces, comentários, carimbos e assinaturas, armazenados e exportados pela sua aplicação em vez de incorporados de volta ao arquivo original.
PDFs criptografados são abertos no servidor com uma senha fornecida pelo seu código. A senha nunca chega ao navegador.
A impressão é uma funcionalidade do visualizador que você pode disponibilizar ou restringir, o que difere da decisão de permitir que o usuário baixe o original.
Integração
O cliente recebe apenas o token. Ele nunca descobre o nome do arquivo, a localização de armazenamento ou que o documento era um PDF e não outro item do catálogo.
Extensões suportadas
// Server-side: returns an opaque token, never a path or a URL
app.MapPost("/api/open", async (Viewer viewer) =>
{
string token = await viewer.OpenDocumentAsync("wwwroot/files/Contract.pdf");
return Results.Ok(new { token });
});
// For an encrypted PDF, supply the password server-side —
// it is used to decrypt in your process and goes no further.Detalhes
Só se você implementar isso por conta própria. O visualizador entrega imagens de página endereçadas por um token opaco, portanto liberar o arquivo fonte continua sendo uma decisão explícita no seu código, e não um efeito colateral de permitir que alguém o leia.
Eles são renderizados como imagens, mas não há nada para buscar. OCR está disponível apenas através do plugin AdvancedSearch e não é geralmente acessível — o motor está sendo reestruturado, portanto não planeje contar com ele atualmente.
As páginas são renderizadas e entregues sob demanda, não todas de uma vez, portanto o comprimento do documento afeta a memória muito menos do que a complexidade das páginas. Páginas vetoriais muito pesadas são o principal fator de custo, não a quantidade de páginas.
Word
Renderização nativa de DOC/DOCX/RTF/ODT sem instalação do Office, sem interop COM e sem automação no servidor.
WordASP.NET Core
Registra como DI comum mais middleware. Herda a autenticação, o registro de logs e a hospedagem que você já possui.
ASP.NET CoreUma licença temporária leva alguns minutos para ser solicitada e funciona totalmente na sua própria máquina. Os arquivos que importam são os que já estão quebrando seu visualizador atual.