포맷 구성
포맷별 렌더링 옵션 전체
모든 문서는 BaseConfig 구현으로 시작합니다. OpenDocumentAsync에 전달하거나 포맷 카탈로그가 기본값을 생성하도록 하세요. 아래 모든 클래스는 Doconut 네임스페이스에 존재합니다.
var token = await viewer.OpenDocumentAsync(path, new PdfConfig
{
AllowSearch = true,
AllowCopy = true,
ImageResolution = 150
});상속 및 중첩 PDF 설정
각 포맷은 다섯 개의 BaseConfig 속성을 상속합니다. PDF를 통해 리다이렉트할 수 있는 포맷은 중첩된 PdfConfig을 노출합니다. WordConfig, ExcelConfig, 그리고 PptConfig에서, AllowSearch 및 AllowCopy은 중첩된 PdfConfig을 읽고 쓰는 편리한 속성입니다.
DefaultRender = true은(는) 기본 포맷 렌더러를 선택합니다. PDF 리다이렉트가 있는 포맷에서는 false가 먼저 메모리 내 PDF로 변환한 뒤 PDF 뷰어를 사용합니다. 이 경로는 텍스트 좌표 검색에 유용하지만 추가 변환 비용이 발생합니다.
별도 언급이 없는 한, 표는 생성자/속성 기본값을 보여줍니다. 자동 포맷 카탈로그는 의도적으로 두 값을 재정의합니다: ExcelConfig를 SplitWorksheets = true와 함께 생성하고, MhtConfig를 DefaultRender = false와 함께 생성합니다.
BaseConfig
| 유형 | 속성 | 기본값 | 동작 |
|---|---|---|---|
int | ImageResolution | 0 | 0은(는) 포맷 기본값을 사용합니다. 유효한 명시적 범위는 25-300 DPI이며, 잘못된 할당은 무시됩니다. |
string | DocumentCulture | "" | 날짜와 숫자의 로케일. 비공백 값은 트림되고, 공백 할당은 무시됩니다. |
string | Password | "" | 보호된 문서 비밀번호. DocOptions.Password가 자동으로 여기 복사됩니다. |
bool | ShowUI | true | 호환성 속성; 현재 렌더러는 브라우저 툴바 제어에 이를 사용하지 않습니다. |
bool | CachePages | true | 문서 세션 동안 렌더링된 페이지 이미지를 캐시합니다. |
PdfConfig
포맷: PDF. 기본 DPI: 200.
| 유형 | 속성 | 기본값 | 동작 |
|---|---|---|---|
bool | DefaultRender | true | 호환성 스위치. 현재 팩토리는 기본 PDF 뷰어를 사용합니다. |
bool | AllowSearch | false | PDF 텍스트 검색 인덱스를 구축/사용합니다. 요청에 Search 라이선스 기능이 필요합니다. |
bool | AllowCopy | false | 텍스트 선택/복사 작업을 허용합니다. |
bool | ExtractHyperlinks | false | 클라이언트 오버레이를 위해 링크 사각형을 추출합니다. |
int | HyperlinksPageCount | 0 | 링크를 스캔하는 최대 페이지 수; 0는 모든 페이지를 의미합니다. |
bool | CompressImages | false | 렌더링 전에 삽입된 이미지를 압축합니다. |
int | CompressQuality | 100 | 압축이 활성화될 때 사용되는 JPEG 품질. |
bool | ResizeImages | false | 렌더링 전에 삽입된 이미지의 크기를 조정합니다. |
int | ResizeResolution | 300 | 크기 조정된 이미지의 목표 DPI. |
bool | CompressFast | false | 더 빠르고 낮은 품질의 압축 경로를 선호합니다. |
bool | FixInvalidImages | false | 잘못된 삽입 이미지를 복구하려 시도합니다. |
bool | SplitSegments | false | 검색/복사를 개선하기 위해 줄 구간에 걸쳐 분할된 단어를 다시 합칩니다. |
showHyperlinks는 ViewerConfig에서 클라이언트 오버레이를 제어하고, ExtractHyperlinks는 서버 추출을 제어합니다. 둘 다 활성화하세요.
WordConfig
포맷: DOC, DOCX, DOCM, DOT, DOTX, DOTM, RTF, ODT, OTT, XML. 기본 DPI: 200.
| 유형 | 속성 | 기본값 | 동작 |
|---|---|---|---|
bool | DefaultRender | true | 네이티브 Word 렌더링; false는 PDF 리다이렉트를 사용합니다. |
PdfConfig | PdfConfig | 새 인스턴스 | PDF/검색 경로에서 사용되는 설정. |
DocPaperSize | PaperSize | A4 | 출력 용지 크기. 너비/높이와 함께 Custom를 사용하세요. |
int | PaperWidth | 595 | 포인트 단위의 사용자 정의 너비. |
int | PaperHeight | 841 | 포인트 단위의 사용자 정의 높이. |
bool | RemovePaperMargin | false | 문서 페이지 여백을 제거합니다. |
bool | RenderPageColor | true | Word에서 설정한 페이지 색상을 보존합니다; false는 흰색 페이지를 렌더링합니다. |
bool | ExportPdfA | false | PDF 경로에서 보관용 PDF/A를 사용합니다. |
Encoding? | FileEncoding | null | 소스 인코딩을 재정의합니다. |
string | FontInfo | "" | 글꼴 대체 정보. |
string[]? | FontFolders | null | 추가 글꼴 디렉터리, 특히 Linux/컨테이너에서 유용합니다. |
bool | AllowSearch | false | PdfConfig.AllowSearch에 위임합니다. |
bool | AllowCopy | false | PdfConfig.AllowCopy에 위임합니다. |
TableAutoFitBehavior | AutoFitAllTables | None | None, AutoFitToContents 또는 AutoFitToWindow. |
Excel 구성
지원 형식: XLS, XLSX, XLSM, XLSB, XLTX, XLTM, ODS, CSV. 기본 DPI: 200.
| 유형 | 속성 | 기본값 | 동작 |
|---|---|---|---|
bool | DefaultRender | true | 네이티브 시트 렌더링; false 은 PDF 리다이렉트를 사용합니다. |
PdfConfig | PdfConfig | new instance | PDF/검색 경로 설정. |
ExcelPaperSize | PaperSize | PaperA4 | 출력 용지 크기. |
double | PaperMargins | 0.25 | 인치 단위 페이지 여백. |
bool | PaperLandscape | true | 가로 시트 렌더링. |
bool | AutoFitContents | false | 행 높이와 열 너비 자동 맞춤. |
bool | RemoveEmptyContent | true | 빈 콘텐츠를 제외하여 출력 압축. |
bool | CalculateFormula | true | 렌더링 전에 수식 재계산. |
bool | ShowRowColumnHeaders | true | 스프레드시트 헤더 포함. |
bool | ExportPdfA | false | PDF 경로에 PDF/A 사용. |
bool | SplitWorksheets | false | 워크시트를 별도 페이지 그룹으로 유지. |
bool | ShowEmptyWorkSheets | false | 빈 워크시트 포함. |
bool | ExportLandscape | false | 가로 내보내기 강제. |
bool | ExportOnePagePerSheet | false | 각 워크시트를 하나의 출력 페이지에 맞춤. |
bool | MemoryOptimizationPreference | true | 피크 메모리를 감소시키며, 속도가 약간 감소할 수 있습니다. |
bool | AutoTrimWorksheetRenderRange | true | 명시적 인쇄 영역이 없을 경우, 보이는 사용 범위만 렌더링합니다. |
bool | AutoTrimPreserveExistingPrintArea | true | 자동 트림 중에 워크북 정의 인쇄 영역을 보존합니다. |
string? | PrintArea | null | 예: "A1:Z100" 와 같은 명시적 범위. |
bool | PrintGridlines | false | 워크시트 격자선 인쇄. |
bool | PrintHeadings | false | 행/열 머리글 인쇄. |
List<string> | SheetNames | empty | 지정된 워크시트만 렌더링 제한. |
CustomStyleCell? | CustomStyles | null | 선택적 날짜/소수/정수 형식 재정의. |
bool | AllowSearch | false | PdfConfig.AllowSearch 에 위임. |
bool | AllowCopy | false | PdfConfig.AllowCopy 에 위임. |
CustomStyleCell 은 CustomStyleDateTime, CustomStyleNumberDecimal, 그리고 CustomStyleNumberInteger 를 노출하며, 모두 nullable 문자열입니다.
new ExcelConfig() 은 SplitWorksheets 을 false 로 설정합니다; 명시적 구성이 없는 Excel 파일을 열면 형식 카탈로그를 사용하며, 이는 true 로 설정됩니다.
Ppt 구성
지원 형식: PPT, PPTX, PPTM, PPSX, PPSM, POT, POTX, POTM, ODP. 기본 DPI: 200.
| 유형 | 속성 | 기본값 | 동작 |
|---|---|---|---|
bool | DefaultRender | true | 네이티브 슬라이드 렌더링; false 은 PDF 리다이렉트를 사용합니다. |
bool | FastLoad | false | 열 때 첫 슬라이드 렌더링을 피하고, 메타데이터를 사용하며 필요 시 렌더링합니다. |
PdfConfig | PdfConfig | new instance | PDF/검색 동작 설정. |
string | FontInfo | "" | 글꼴 대체 정보. |
string[]? | FontFolders | null | 추가 글꼴 디렉터리. |
bool | AllowSearch | false | PdfConfig.AllowSearch 에 위임. |
bool | AllowCopy | false | PdfConfig.AllowCopy 에 위임. |
Linux 및 macOS에서 현재 엔진으로 프레젠테이션 렌더링을 하려면 libgdiplus 와 System.Drawing.EnableUnixSupport=true 가 필요합니다. 프레젠테이션에 사용된 글꼴을 설치하거나 FontFolders 를 제공하십시오.
Cad 구성
지원 형식: DWG, DXF, DGN. 기본 DPI: 200.
| 유형 | 속성 | 기본값 | 동작 |
|---|---|---|---|
bool | DefaultRender | true | 네이티브 CAD 렌더링; false 은 PDF 리다이렉트를 사용합니다. |
PdfConfig | PdfConfig | new instance | PDF 경로 설정. |
bool | ExportPdfA | false | 보관용 PDF/A 출력. |
bool | ShowColor | true | 흑백이 아닌 컬러. |
bool | WhiteBackground | true | 검은색 배경 대신 흰색. |
short | LineWidth | 25 | CAD 스트로크 두께. |
bool | ShowLayouts | false | 레이아웃 탭 렌더링. |
bool | ShowModel | true | 모델 공간 렌더링. |
bool | Check3DSolid | true | 3D 솔리드 처리. |
bool | ExportAllLayouts | false | 모델/레이아웃 선택을 무시하고 모든 레이아웃을 내보냅니다. |
bool | LimitMinimumSize | false | MinimumSize 적용. |
int | MinimumSize | 700 | 픽셀 단위 최소 출력 크기. |
bool | LimitMaximumSize | false | MaximumSize 적용. |
int | MaximumSize | 700 | 픽셀 단위 최대 출력 크기. |
bool | ShowAllLayoutsDgn | false | 모든 DGN 레이아웃 포함. |
bool | AutomaticLayoutScaling | true | 레이아웃 자동 스케일링. |
float | PdfMargins | 0.5 | 인치 단위 PDF 여백. |
RenderQuality | QualityImage | Low | 래스터 품질: Low, Medium, 또는 High. |
RenderQuality | QualityText | Medium | 텍스트 품질: Low, Medium, 또는 High. |
이메일 구성
포맷: EML, EMLX, MSG. 기본 DPI: 200.
| 유형 | 속성 | 기본값 | 동작 |
|---|---|---|---|
bool | DefaultRender | true | 네이티브 이메일 렌더링; false 은 PDF 리다이렉트를 사용합니다. |
PdfConfig | PdfConfig | 새 인스턴스 | PDF 경로 설정. |
Encoding? | EmailEncoding | null | 메시지 인코딩을 재정의합니다. |
Encoding? | SubjectEncoding | null | 제목 인코딩을 재정의합니다. |
Encoding? | BodyEncoding | null | 본문 인코딩을 재정의합니다. |
bool | SkipExternalImages | false | 원격으로 참조된 이미지를 로드하지 않습니다. 신뢰할 수 없는 이메일에 권장됩니다. |
bool | RemoveLastWhitePage | false | 끝에 있는 빈 페이지를 제거합니다. |
bool | UseAntiAliasing | false | 안티앨리어싱을 활성화합니다. |
bool | UseHighQualityRendering | false | 보다 깔끔하지만 느린 렌더링을 선호합니다. |
TimeSpan? | TimeZoneOffset | null | 날짜에 사용되는 시간대를 재정의합니다. |
bool | ForcePageSize | false | 고정 페이지 크기를 강제합니다. |
이미지 구성, Tiff 구성 및 Psd 구성
ImageConfig 은 JPG, JPEG, JPE, PNG, BMP, GIF, ICO, EPS, TGA, WEBP, CDR, CMX, DNG, EMF, WMF, AVIF 및 SVG 를 포함합니다. 기본 DPI는 100 입니다.
| 구성 | 속성 | 기본값 | 동작 |
|---|---|---|---|
ImageConfig | MaxImagePixelSize | 3000 | 최대 너비/높이. 0 은 무제한을 의미합니다; 50 미만의 0이 아닌 값은 무시됩니다. |
ImageConfig | TransparentPng | true | PNG 투명성을 유지합니다; false 은 흰색 배경을 사용합니다. |
TiffConfig | 추가 속성 없음 | DPI 200 | BaseConfig 만 사용합니다; 다중 페이지 TIFF를 지원합니다. |
PsdConfig | MaxImagePixelSize | 3000 | 같은 0/minimum-50 검증이 ImageConfig 와 동일합니다; 기본 DPI는 100 입니다. |
디콤 구성
포맷: DCM, IMA. 기본 유효 DPI: 100. DICOM 플러그인이 필요합니다.
| 유형 | 속성 | 기본값 | 동작 |
|---|---|---|---|
int | HorizontalResolution | 100 effective | 수평 DPI를 명시합니다; 그렇지 않으면 ImageResolution, 그 다음 100. |
int | VerticalResolution | 100 effective | 수직 DPI를 명시합니다; 그렇지 않으면 ImageResolution, 그 다음 100. |
int | AnimationFrameDelayMs | 100 | 다중 프레임 애니메이션 지연; GIF 타이밍은 10 ms 단위를 사용합니다. |
ushort | LoopCount | 0 | 0 은 영원히 반복합니다; 양수 값은 해당 횟수 후에 멈춥니다. |
DicomDisplayMode | DisplayMode | AnimationAndFrames | AnimationOnly, FramesOnly, 또는 결합된 개요와 정적 프레임. |
텍스트 구성
포맷: TXT. 기본 DPI: 200.
| 유형 | 속성 | 기본값 | 동작 |
|---|---|---|---|
DocPaperSize | PaperSize | A4 | 출력 용지 크기. |
Encoding? | FileEncoding | null | null 은 UTF-8을 사용합니다. |
string | FontInformation | "" | 텍스트 렌더링을 위한 글꼴 정보. |
평문 텍스트에 더 풍부한 페이지 레이아웃 동작이 필요할 때 WordConfig 를 사용하십시오.
프로젝트 구성
포맷: MPP, MPPX, MPX. 기본 DPI: 200.
| 유형 | 속성 | 기본값 | 동작 |
|---|---|---|---|
bool | DefaultRender | true | 네이티브 간트 이미지; false 은 텍스트 기반 PDF 경로를 사용합니다. |
PdfConfig | PdfConfig | 새 인스턴스 | PDF 경로 설정. |
bool | ExportPdfA | true | 보관용 PDF/A 출력. |
MppPaperSize | PaperSize | Ledger | 프로젝트 출력 용지 크기. |
MppTimeScale | TimeScale | Months | Days 또는 Months. |
MppFormat | PresentationFormat | GanttChart | GanttChart, TaskUsage, ResourceUsage, ResourceSheet, 또는 TaskSheet. |
정확한 텍스트 좌표 검색을 위해 DefaultRender = false 를 사용하십시오.
비지오 구성
포맷: VSD, VSDX, VSS, VSSX, VST, VSTX, VDX, VSX, VSDM. 기본 DPI: 200.
| 유형 | 속성 | 기본값 | 동작 |
|---|---|---|---|
bool | DefaultRender | true | 네이티브 다이어그램 렌더링; false 은 PDF 리다이렉트를 사용합니다. |
PdfConfig | PdfConfig | 새 인스턴스 | PDF 경로 설정. |
bool | ExportPdfA | true | 보관용 PDF/A 출력. |
HTML 구성, Epub 구성, MHT 구성 및 XPS 구성
네 개 모두 기본 DPI가 200이며 중첩된 PdfConfig 를 노출합니다.
| 구성 | 포맷 | DefaultRender | 추가 속성/동작 |
|---|---|---|---|
HtmlConfig | HTML, HTM | true | 네이티브 렌더링; 텍스트 기반 PDF 검색 경로를 위해 false 를 사용하십시오. |
EpubConfig | EPUB | true | 네이티브 렌더링; false 은 PDF를 사용합니다. |
MhtConfig | MHT, MHTML | 클래스에 true; 자동 카탈로그에 false | 일반적인 무구성 열기는 검색 가능한 PDF 리다이렉트를 사용합니다. 명시적으로 구성된 기본 인스턴스는 네이티브로 렌더링합니다. |
XpsConfig | XPS | false | 기본적으로 PDF 경로를 사용합니다; 네이티브 이미지 렌더링을 위해 true 를 설정하십시오. |
패밀리별 구성 예시
BaseConfig[] configs =
{
new PdfConfig
{
AllowSearch = true,
ExtractHyperlinks = true,
HyperlinksPageCount = 0
},
new WordConfig
{
PaperSize = DocPaperSize.A4,
RemovePaperMargin = false,
FontFolders = new[] { "/usr/share/fonts/truetype" },
AllowSearch = true
},
new ExcelConfig
{
PaperLandscape = true,
AutoFitContents = true,
CalculateFormula = true,
SplitWorksheets = false,
PrintGridlines = false
},
new PptConfig
{
FastLoad = true,
FontFolders = new[] { "/usr/share/fonts/truetype" },
AllowSearch = true
},
new CadConfig
{
ShowColor = true,
WhiteBackground = true,
ShowModel = true,
ShowLayouts = false,
QualityText = CadConfig.RenderQuality.High
},
new EmailConfig
{
SkipExternalImages = true,
RemoveLastWhitePage = true,
TimeZoneOffset = TimeSpan.Zero
},
new ImageConfig
{
MaxImagePixelSize = 3000,
TransparentPng = true
},
new DicomConfig
{
DisplayMode = DicomDisplayMode.AnimationAndFrames,
AnimationFrameDelayMs = 100,
LoopCount = 0
}
};확장자별 선택
static BaseConfig? ConfigForExtension(string extUpper) => extUpper switch
{
".DOC" or ".DOCX" or ".DOT" or ".DOTX" or ".ODT" => new WordConfig
{
AutoFitAllTables = WordConfig.TableAutoFitBehavior.AutoFitToWindow,
PaperSize = DocPaperSize.Tabloid,
PdfConfig = new PdfConfig { ExtractHyperlinks = true, HyperlinksPageCount = 5, AllowCopy = true }
},
".PDF" => new PdfConfig { AllowSearch = true, AllowCopy = true },
".XLS" or ".XLSX" or ".ODS" or ".CSV" => new ExcelConfig { AllowSearch = true, AllowCopy = true },
".DCM" or ".IMA" => new DicomConfig { DisplayMode = DicomDisplayMode.AnimationAndFrames },
// DefaultRender = false → PDF 리다이렉트 → 픽셀 정확도 네이티브 텍스트 검색
".HTML" or ".HTM" => new HtmlConfig { DefaultRender = false },
".EML" or ".EMLX" or ".MSG" => new EmailConfig { DefaultRender = false },
_ => null // 포맷의 기본 설정으로 되돌아갑니다
};이 페이지가 도움이 되었나요?