PDF

PDF를 넘겨주지 않는 PDF 뷰어

브라우저에 내장된 PDF 뷰어는 파일을 사용자에게 제공하는 방식으로 작동합니다. 계약서, 의료 기록, 비밀 입찰서와 같은 경우, 이는 종종 바로 피하고자 하는 상황입니다. Doconut은 페이지를 서버 측에서 렌더링하여 이미지로 전송하므로, 보기와 보유가 동일한 행위가 아닙니다.

0
클라이언트에 전송된 원본 PDF 바이트 수
100%
서버 측 렌더링
1
다른 모든 형식에 대한 뷰어도 제공

문제

PDF를 표시하는 세 가지 방법과 각 방법의 비용

파일을 제공하고 브라우저가 렌더링하도록 합니다: 가장 간단하며, 사용자에게 원본 바이트, 메타데이터, 포함된 첨부 파일 및 한 번의 클릭으로 모두 전달할 수 있는 기능을 제공합니다.

JavaScript PDF 엔진을 포함합니다: 파일을 브라우저에 유지하고, 번들에 의미 있는 다운로드를 추가하며, 툴바, 썸네일 레일 및 검색 상자를 직접 구현해야 합니다.

서버 측에서 렌더링하고 이미지를 전송합니다: 사용자는 페이지를 보지만 파일은 인프라를 떠나지 않으며, 동일한 메커니즘이 Word, Excel, CAD 및 이메일에도 적용됩니다 — 이는 보통 두 스프린트 뒤에 요구되는 사항입니다.

기능

뷰어가 PDF와 함께 수행하는 작업

페이지별 이미지

각 페이지는 서버 측에서 래스터화되어 필요 시 제공됩니다. 대용량 문서는 전체 파일이 다운로드된 후가 아니라 첫 페이지에서 열립니다.

텍스트 레이어 검색

AdvancedSearch 플러그인을 사용하면 전체 텍스트 검색이 PDF의 텍스트 레이어를 대상으로 수행되어, 검색 결과가 올바른 페이지와 하이라이트에 표시됩니다.

썸네일 및 탐색

위젯에는 썸네일 레일, 페이지 점프, 확대/축소 및 폭에 맞춤 기능이 포함됩니다. showThumbs와 FitType을 설정하고 진행하세요.

주석

Annotation 플러그인을 사용하면 하이라이트, 댓글, 스탬프 및 서명이 애플리케이션에 저장·내보내기 되며, 원본 파일에 다시 삽입되지 않습니다.

비밀번호 보호 파일

암호화된 PDF는 코드가 제공하는 비밀번호로 서버 측에서 열립니다. 비밀번호는 브라우저에 전달되지 않습니다.

제어 가능한 인쇄

인쇄는 뷰어 기능으로, 노출하거나 제한할 수 있습니다. 이는 사용자가 원본을 다운로드할 수 있는지 여부와는 별개의 결정입니다.

통합

PDF 열기

클라이언트는 토큰만 받습니다. 파일명, 저장 위치, 혹은 문서가 카탈로그의 다른 항목이 아닌 PDF라는 사실을 알 수 없습니다.

지원되는 확장자

.pdf
csharp
// 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.

세부 정보

PDF 세부 사항

  • 텍스트 레이어 검색은 AdvancedSearch 플러그인이 필요합니다; OCR은 일반적으로 제공되지 않으며 스캔된 페이지에 대해 가정해서는 안 됩니다.
  • 주석은 Annotation 플러그인이 필요하며 애플리케이션에 저장되고, 원본 PDF에 다시 기록되지 않습니다.
  • PDF를 Word, Excel 또는 이미지로 변환하려면 Converter 플러그인과 DocumentConverter.ConvertAsync()가 필요합니다.

자주 묻는 질문

사용자가 여전히 원본 PDF를 다운로드할 수 있나요?

직접 구현한 경우에만 가능합니다. 뷰어는 불투명 토큰으로 지정된 페이지 이미지를 제공하므로, 원본 파일을 공개하는 것은 누군가가 읽게 하는 부수 효과가 아니라 여러분 코드 내에서 명시적인 결정으로 남습니다.

텍스트 레이어가 없는 스캔된 PDF에서도 작동하나요?

이미지로는 정상적으로 렌더링되지만 검색할 내용이 없습니다. OCR은 AdvancedSearch 플러그인을 통해서만 제공되며 일반적으로 사용 가능하지 않습니다 — 엔진이 재구축 중이므로 현재는 이를 기반으로 계획하지 마세요.

얼마나 큰 PDF를 처리할 수 있나요?

페이지는 필요에 따라 렌더링·전달되므로 전체를 한 번에 처리하지 않아도 됩니다. 따라서 문서 길이는 메모리 사용에 페이지 복잡도보다 적은 영향을 미칩니다. 실제 비용을 좌우하는 것은 페이지 수가 아니라 매우 무거운 벡터 페이지입니다.

내 문서에 적용해 보세요

임시 라이선스는 요청하는 데 몇 분 정도 걸리며 완전히 사용자의 컴퓨터에서 실행됩니다. 중요한 파일은 현재 뷰어를 이미 깨뜨리고 있는 파일들입니다.