logo
HWPJS
  • 가이드
  • API
  • 명세서
  • 로드맵
  • 백로그
    API 레퍼런스
    toJson
    toMarkdown
    fileHeader
    Previous pagetoMarkdown

    #fileHeader

    HWP 파일의 FileHeader만 추출하여 JSON 형식으로 반환하는 함수입니다.

    #예제

    Web
    React Native
    Node.js
    // buffer-polyfill을 먼저 import한 후
    import * as hwpjs from '@ohah/hwpjs';
    
    // 파일 입력에서 HWP 파일 읽기
    const fileInput = document.querySelector('input[type="file"]');
    fileInput.addEventListener('change', async (e) => {
      const file = (e.target as HTMLInputElement).files?.[0];
      if (!file) return;
    
      try {
        const arrayBuffer = await file.arrayBuffer();
        const data = new Uint8Array(arrayBuffer);
    
        // FileHeader 추출
        const headerString = hwpjs.fileHeader(data);
        const header = JSON.parse(headerString);
    
        console.log('버전:', header.version);
        console.log('압축 여부:', header.is_compressed);
        console.log('암호화 여부:', header.is_encrypted);
      } catch (error) {
        console.error('FileHeader 추출 실패:', error);
      }
    });
    import { Hwpjs } from '@ohah/hwpjs';
    import RNFS from 'react-native-fs';
    import { Platform } from 'react-native';
    
    try {
      // 파일 경로 설정
      const filePath = Platform.OS === 'ios' 
        ? `${RNFS.MainBundlePath}/document.hwp`
        : `${RNFS.DocumentDirectoryPath}/document.hwp`;
    
      // 파일을 base64로 읽기
      const fileData = await RNFS.readFile(filePath, 'base64');
    
      // base64를 ArrayBuffer로 변환
      const binaryString = atob(fileData);
      const length = binaryString.length;
      const bytes = new Uint8Array(length);
      for (let i = 0; i < length; i++) {
        bytes[i] = binaryString.charCodeAt(i);
      }
    
      // FileHeader 추출 (ArrayBuffer 직접 사용)
      const result = Hwpjs.fileHeader(bytes.buffer);
      const header = JSON.parse(result);
    
      console.log('버전:', header.version);
      console.log('압축 여부:', header.is_compressed);
      console.log('암호화 여부:', header.is_encrypted);
    } catch (error) {
      console.error('FileHeader 추출 실패:', error);
    }
    import { readFileSync } from 'fs';
    import { fileHeader } from '@ohah/hwpjs';
    
    try {
      const fileBuffer = readFileSync('./document.hwp');
      const result = fileHeader(fileBuffer);
      const header = JSON.parse(result);
    
      console.log('버전:', header.version);
      console.log('압축 여부:', header.is_compressed);
      console.log('암호화 여부:', header.is_encrypted);
    } catch (error) {
      console.error('FileHeader 추출 실패:', error);
    }

    #시그니처

    function fileHeader(data: Buffer): string

    #매개변수

    #data: Buffer

    HWP 파일의 바이트 배열입니다 (Buffer 또는 Uint8Array).

    예제:

    import { readFileSync } from 'fs';
    const fileBuffer = readFileSync('./document.hwp');
    const data = new Uint8Array(fileBuffer);

    #반환값

    #string

    FileHeader 정보를 담은 JSON 문자열입니다.

    FileHeader에는 다음 정보가 포함됩니다:

    • 시그니처 (signature)
    • 버전 정보 (version)
    • 압축 여부 (is_compressed)
    • 암호화 여부 (is_encrypted)
    • 기타 문서 속성

    #에러

    HWP 파일 형식이 올바르지 않거나 FileHeader를 읽을 수 없는 경우 에러가 발생합니다.

    • HWP 파일 형식이 올바르지 않은 경우
    • 파일이 손상된 경우
    • FileHeader 스트림을 읽을 수 없는 경우

    #참고

    이 함수는 전체 문서를 파싱하지 않고 FileHeader만 빠르게 추출합니다. 문서의 메타데이터만 필요한 경우에 유용합니다.