posted by 내.맘.대.로 2025. 9. 29. 07:34

내맘대로의 EPUBGUIDE.NET에서 편집자의 의도를 그대로 살려 전자책을 제작해 드립니다.

종이책의 편집 스타일을 최대한 유지하며, 팝업 주석 처리, 이미지 확대 축소 등 전자책의 장점을 반영하여 전자책을 제작합니다. 탬플릿을 사용하지 않고, 책 한권 한권 고유 스타일을 살리기 때문에 전자책에서도 종이책 디자인을 느낄 수 있습니다.

한국출판문화진흥원의 [텍스트형 전자책 제작 지원 사업] 선정 도서는 ‘제작 난이도별 제작비 산정 기준에 근거하여’ 제작 단가를 산정하고, 일정에 맞춰 제작을 해 드리니 많은 문의 바랍니다.

자세한 내용은 여기로: https://www.epubguide.net/notice/309

오래 전 작성된 글은 현재의 Sigil 버전과 차이가 날 수 있습니다. 등록 일자를 확인 하고 1년 이상 지난 글은 변경된 내용이 있는지 확인하시기 바랍니다.

External entities are not allowed in EPUB v3 documents. External entity declaration found: %1$s.

 

이 오류는 EPUB 파일 내부의 문서(주로 XHTML 파일)가 책 바깥의 다른 파일이나 인터넷 주소에서 내용을 가져오도록 설정되어 있음을 의미합니다. EPUB 3 표준에서는 보안과 안정성 문제로 이러한 '외부 참조'를 엄격히 금지합니다.

책의 특정 페이지에 "3장을 읽으려면, 도서관에 가서 XYZ 책을 빌려오세요"라고 적어두는 것과 같습니다. 📚 EPUB은 모든 내용이 하나의 파일 안에 완전히 포함되어 있어야 하며, 독자나 전자책 뷰어에게 외부에서 무언가를 가져오도록 요구할 수 없습니다.


## 외부 엔티티가 금지되는 이유

  • 보안 위험 🔐: 외부 파일이나 인터넷 주소에서 악성 코드를 불러오는 통로로 악용될 수 있습니다.
  • 독립성 원칙: EPUB 파일은 인터넷 연결 없이도 모든 기능이 완벽하게 작동해야 하는 '자체 완결형' 패키지입니다.
  • 안정성: 만약 참조하는 외부 웹사이트가 사라지거나 인터넷에 연결되어 있지 않으면, 책의 내용이 깨져 보이게 됩니다.

## 해결 방법

해결책은 외부 엔티티 선언을 삭제하고, 만약 해당 콘텐츠가 필요하다면 그 내용을 직접 파일 안에 포함시키는 것입니다.

  1. 오류가 발생한 XHTML 파일을 텍스트 편집기에서 엽니다.
  2. 파일의 상단에 있는 <!DOCTYPE ...> 선언 부분을 찾습니다.
  3. <!ENTITY ... SYSTEM "..." > 형식으로 작성된 외부 엔티티 선언 줄 전체를 삭제합니다.
  4. 만약 본문에서 해당 엔티티(예: &my-entity;)를 사용했다면, 그 부분을 외부 파일의 실제 내용으로 복사하여 붙여넣어야 합니다.

### 수정 예시

  • 수정 전 (오류 예시):
  • XML
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html [
      <!ENTITY external_chapter SYSTEM "http://example.com/chapter3.html">
    ]>
    <html ... >
      <body>
        ...
        &external_chapter;
        ...
      </body>
    </html>
    
  • 수정 후 (올바른 코드):
  • XML
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html>
    <html ... >
      <body>
        ...
        <h1>3장</h1>
        <p>이것은 3장의 내용입니다...</p>
        ...
      </body>
    </html>
반응형