레이아웃 정확도
페이지 매김, 머리글 및 바닥글, 열, 표 및 삽입된 이미지는 Word와 동일하게 레이아웃되며, 출력이 HTML 근사치가 아닌 페이지 이미지이기 때문입니다.
웹 서버에서 Office interop을 사용하는 것은 팀이 예측 가능한 속도로 후회하는 결정입니다: 데스크톱 라이선스가 필요하고, 프로세스가 누수되며, 동시성에서 교착 상태가 발생하고, Microsoft는 수년간 이를 하지 말라고 말해왔습니다. Doconut은 DOC, DOCX, RTF 및 ODT를 네이티브로 렌더링합니다 — Office도 없고, COM도 없고, 새벽 4시의 고아 WINWORD.EXE도 없습니다.
문제
Office 자동화는 로그인한 사용자가 있는 데스크톱을 위해 설계되었으며, 20개의 동시 요청을 처리하는 서비스용이 아닙니다. 부하가 걸리면 교착 상태가 발생하고, 아무도 닫을 수 없는 대화 상자가 나타나며, 프로세스가 요청이 끝날 때까지 살아남아 서버의 메모리가 부족해질 때까지 지속됩니다.
라이선스 문제도 마찬가지입니다: 다수의 사용자를 위해 문서를 렌더링하는 서버는 원래 필요하지 않았던 데스크톱 라이선스가 필요합니다.
네이티브 렌더링은 이 모든 것을 우회합니다. Doconut은 파일을 열고 레이아웃을 구성한 뒤 프로세스 내에서 페이지 이미지를 생성합니다. 설치, 감독 또는 라이선스가 필요한 두 번째 애플리케이션이 없습니다.
기능
페이지 매김, 머리글 및 바닥글, 열, 표 및 삽입된 이미지는 Word와 동일하게 레이아웃되며, 출력이 HTML 근사치가 아닌 페이지 이미지이기 때문입니다.
.doc, .docx, .docm, .dot, .dotx, .dotm, .rtf, .odt, .ott 및 .xml 모두 동일한 호출로 열 수 있습니다.
렌더링은 서버에 설치된 글꼴을 사용하므로 문서의 외관은 독자가 사용하는 머신이 아니라 배포 환경의 속성입니다.
페이지 이미지에는 추적된 변경 사항, 삭제된 텍스트, 주석 또는 작성자 메타데이터가 포함되지 않습니다. DOCX 대신 이미지를 전송하면 누출되는 정보를 크게 줄일 수 있습니다.
AdvancedSearch 플러그인을 사용하면 문서의 텍스트를 대상으로 검색이 수행되며, 이미지에 대한 검색이 아닙니다.
Converter 플러그인을 사용하면 DocumentConverter.ConvertAsync()가 동일한 프로세스에서 PDF 또는 다른 대상 형식을 생성합니다 — 보기보다 보관이 필요할 때 유용합니다.
통합
.xml은 Word 렌더러와 WordConfig에 의해 처리된다는 점에 유의하십시오. 일반적인 XML 뷰어가 아니라 Word 자체 XML 형식이 해당 파이프라인에 들어가기 때문에 존재합니다.
지원되는 확장자
// Identical to every other format — the family is detected from the document
string token = await viewer.OpenDocumentAsync("wwwroot/files/Agreement.docx");
// With the Converter plugin, when the requirement is a PDF for the archive
await DocumentConverter.ConvertAsync(
"wwwroot/files/Agreement.docx",
"wwwroot/archive/Agreement.pdf");세부 정보
아니요. 렌더링은 네이티브입니다. Office 설치도 없고, 인터옵 어셈블리도 없으며, 감독할 자동화 프로세스도 없습니다.
페이지 매김과 레이아웃은 서버 측에서 재현되므로, 문서가 참조하는 글꼴이 렌더링 호스트에 설치되어 있는 한 결과가 거의 일치합니다. 누락된 글꼴은 대체되며, 이 대체가 레이아웃 변화를 일으킵니다.
렌더링된 페이지는 문서를 레이아웃대로 보여주며, 그 뒤에 있는 수정 메타데이터는 표시되지 않습니다. 오히려 이것이 기능입니다 — 검토자는 종종 삭제된 텍스트가 포함된 DOCX 파일을 전달합니다.