스캐너 지원이 포함된 무료 웹 기반 문서 변환기 구축

발행: (2025년 12월 2일 오후 04:45 GMT+9)
5 min read
원문: Dev.to

Source: Dev.to

개요

오늘날 디지털 환경에서는 다양한 출처의 문서를 변환, 병합 및 편집해야 할 일이 많습니다. PDF, 워드 문서, 휴대폰으로 촬영한 이미지, 물리적 스캐너로 스캔한 문서 등을 다룰 때, 이러한 모든 형식을 한 번에 처리할 수 있는 통합 도구는 매우 유용합니다.

데모:
Free Online Document Converter with Scanner Support – Live Demo

이 도구가 유용한 이유

실제 사용 시나리오

홈 오피스 문서 관리

  • 여러 장의 영수증을 하나의 PDF로 병합하여 비용 보고서 작성
  • 지원서 제출 전에 워드 문서를 PDF로 변환
  • 손글씨 사진과 타이핑된 문서를 결합

원격 근무 및 협업

  • 클라우드 서비스에 업로드하지 않고 빠르게 문서를 편집·병합 (프라이버시 중심)
  • 카메라, 스캐너, 파일 등 다양한 출처의 문서 패키지 생성
  • 브라우저에서 직접 워드 문서 편집 (Microsoft Office 필요 없음)

교육

  • 학생들이 강의 노트, 스크린샷, 스캔 자료를 병합 가능
  • 교사가 다양한 출처의 자료를 하나의 학습 자료로 제작
  • 학교 컴퓨터에 별도 소프트웨어 설치 불필요

소규모 비즈니스

  • 스캐너를 이용해 물리적 문서(청구서·영수증) 처리
  • 혼합 미디어로 전문 PDF 포트폴리오 제작
  • 고가 소프트웨어 없이 계약서 편집·병합

주요 장점

  • 100% 브라우저 기반: 서버 업로드 없음, 프라이버시 걱정 없음
  • 무료 핵심 기능: 문서 보기, 편집, 병합, 내보내기
  • 다중 포맷 지원: PDF, Word, 이미지, TIFF, 텍스트 파일
  • 물리적 스캐너 지원: TWAIN/WIA/SANE/ICA 스캐너와 선택적 연동
  • 오프라인 사용 가능: 최초 로드 후 인터넷 없이 동작

무료 vs. 유료 기능

완전 무료 기능 (라이선스 불필요)

  • 파일 업로드 및 보기 (PDF, DOCX, 이미지, TIFF, TXT)
  • 카메라 캡처
  • 문서 편집 (텍스트 및 이미지)
  • 이미지 편집 (자르기, 회전, 필터, 크기 조정)
  • 드래그‑앤‑드롭 재정렬
  • 문서 병합
  • PDF 및 워드로 내보내기
  • 실행 취소/다시 실행
  • 썸네일 네비게이션
  • 확대·축소 및 팬

스캐너 연동

Dynamic Web TWAIN 체험판 라이선스가 필요합니다.

사용 기술 개요

라이브러리용도
PDF.jsPDF 렌더링
Mammoth.jsDOCX → HTML 변환
jsPDFPDF 생성
html-docx-js워드 문서 생성
html2canvasHTML → 이미지 렌더링
UTIF.jsTIFF 디코딩
Dynamic Web TWAIN스캐너 연동

단계 1: HTML 구조

index.html 파일을 기본 구조로 생성합니다:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document Reader & Editor</title>
    <link rel="stylesheet" href="style.css">
    <script src="lib/pdf.js"></script>
    <script>
        window.pdfjsLib.GlobalWorkerOptions.workerSrc = 'lib/pdf.worker.min.js';
    </script>
</head>
<body>
    <header>
        <h1>Document Converter & Gallery</h1>
        <p>Convert Word/PDF/Images, Merge, and Save.</p>
    </header>

    <!-- Controls -->
    <section id="controls">
        <button id="uploadBtn">Upload</button>
        <button id="cameraBtn">Camera</button>
        <button id="scannerBtn">Scanner</button>
        <!-- Additional controls -->
    </section>

    <!-- Thumbnails panel -->
    <aside id="thumbnails"></aside>

    <!-- Viewer panel -->
    <main id="viewer"></main>

    <!-- Loading overlay -->
    <div id="loadingOverlay">Processing Document...</div>
</body>
</html>

핵심 요소

  • 파일 업로드용 입력
  • 이미지 캡처용 카메라 버튼
  • 물리적 문서 스캔용 스캐너 버튼
  • 썸네일 패널(네비게이션)
  • 선택 페이지를 표시하는 뷰어 패널
  • DOCX 처리 중 피드백을 제공하는 로딩 오버레이

단계 2: CSS 스타일링

현대적이고 반응형 인터페이스를 위한 style.css를 작성합니다:

body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    margin: 0;
    padding: 0;
    background-color: #f4f7f9;
    color: #333;
    display: flex;
    flex-direction: column;
    height: 100vh;
    overflow: hidden;
}

header {
    background-color: #fff;
    border-bottom: 1px solid #dde3e8;
    padding: 20px 0;
    text-align: center;
}

header h1 {
    margin: 0;
    font-size: 1.8rem;
    color: #007bff;
}

/* Additional styling for controls, workspace, thumbnails, viewer, etc. */
Back to Blog

관련 글

더 보기 »

Regex 이해하기: 가장 쉬운 가이드

Regex Regular Expressions는 많은 개발자들에게 골칫거리를 주는 주제 중 하나입니다. 하지만 사실은: Regex는 어렵지 않으며, 단지 이해하면 됩니다.