fanqienovel-downloader는 강력한 팬퀴노벨 다운로드 도구로, 소설 콘텐츠를 가져올 뿐만 아니라 EPUB, HTML, LaTeX 등 다양한 형식으로 변환하여 사용자에게 폭넓은 독서 및 활용 경험을 제공합니다.
1. 형식 변환 핵심 기능 개요
fanqienovel-downloader는 5가지 주요 저장 모드를 제공하며, 그중 EPUB, HTML, LaTeX는 세 가지 고급 형식입니다. 각 형식은 특성에 따라 적합한 사용 사례가 다릅니다:
- EPUB: 전자책 리더에서 최적화된 레이아웃과 챕터 구조를 지원합니다.
- HTML: 브라우저에서 바로 열 수 있어 온라인 읽기와 공유에 편리합니다.
- LaTeX: 전문적인 조판이나 인쇄 작업에 적합합니다.
도구에서 이러한 형식은 save_mode 파라미터로 설정하며, 해당 숫자는 각각 3(EPUB), 4(HTML), 5(LaTeX)입니다.
2. 빠른 시작: 기본 변환 절차
2.1 출력 형식 선택
소설 다운로드 시 도구는 저장 형식 선택을 요청합니다. 예시는 다음과 같습니다:
선택하세요 : 1. 단일 텍스트 저장 2. 장별 저장 3. EPUB 저장 4. HTML 웹 형식 저장 5. LaTeX 저장
원하는 형식 번호(3, 4, 5)를 입력하면 됩니다.
2.2 저장 경로 설정
변환된 파일은 기본적으로 설정 파일에 지정된 경로에 저장됩니다. save_path 파라미터를 수정하여 사용자 정의 경로로 변경할 수 있습니다:
# 설정 파일의 경로 설정
config['save_path'] = '/your/custom/path'
지정하지 않으면 프로그램 디렉터리가 기본 경로로 사용됩니다.
3. EPUB 형식 상세 설정
3.1 EPUB 기본 설정
EPUB은 가장 흔한 전자책 형식 중 하나이며, fanqienovel-downloader는 이를 완전히 지원합니다. save_mode=3으로 설정하면 도구가 자동으로 구조화된 EPUB 파일을 생성합니다:
# EPUB 생성 핵심 코드
output_path = os.path.join(config['save_path'], f'{safe_name}.epub')
epub.write_epub(output_path, book, {})
3.2 콘텐츠 형식 사용자 정의
도구는 자동으로 장 콘텐츠를 포맷팅하여 적절한 HTML 태그를 추가합니다:
# EPUB 콘텐츠 포맷팅
formatted_content = ''.join(f'<p>{para.strip()}</p>' for para in content.split('\n') if para.strip())
chapter.content = f'<h1>{title}</h1>{formatted_content}'
스타일을 변경하려면 관련 HTML 생성 코드를 수정하고 사용자 CSS를 추가하면 됩니다.
4. HTML 형식 고급 구성
4.1 HTML 출력 구조
HTML 형식(save_mode=4)은 인덱스 페이지와 각 장의 개별 페이지를 포함한 웹 페이지 모음을 생성합니다:
# HTML 디렉터리 생성
output_dir = os.path.join(self.config.save_path, name)
os.makedirs(output_dir, exist_ok=True)
4.2 스타일 사용자 정의
HTML 출력은 CSS 스타일 사용자 정의를 지원하며, 관련 코드는 _create_html_index 메서드에 있습니다:
# HTML 스타일 구성
def _create_html_index(self, name: str, titles: List[str], output_dir: str) -> None:
"""CSS 스타일링으로 HTML 인덱스 페이지 생성"""
# CSS 스타일 정의 및 HTML 구조 생성 코드
사용자는 CSS 부분을 수정하여 외관을 변경할 수 있습니다.
5. LaTeX 형식 전문 설정
5.1 LaTeX 문서 구조
LaTeX 형식(save_mode=5)은 고품질 조판에 적합합니다. 도구는 장 구분과 콘텐츠 포맷팅을 포함한 완전한 LaTeX 문서 구조를 생성합니다:
# LaTeX 콘텐츠 포맷팅
def _format_latex_chapter(self, title: str, content: str) -> str:
# LaTeX 장 포맷팅 코드
5.2 출력 구성
LaTeX 파일 생성 후 사용자는 LaTeX 컴파일러(pdflatex 등)를 사용해 PDF로 변환해야 합니다. 도구는 기본 LaTeX 구조를 제공하며, 사용자는 필요한 패키지와 형식 설정을 추가할 수 있습니다.
6. 구성 파일 세부 사항
6.1 구성 파일 위치
구성 파일(config.json)은 일반적으로 프로그램 데이터 디렉터리에 있으며, 다음 코드로 경로를 얻을 수 있습니다:
self.config_path = os.path.join(self.data_dir, 'config.json')
6.2 형식 관련 설정 항목
주요 구성 옵션은 다음과 같습니다:
save_mode: 기본 저장 모드 설정 (3=EPUB, 4=HTML, 5=LaTeX)save_path: 기본 저장 경로 설정enable_chapter_numbering: 장 번호 매기기 활성화 여부
기본 구성 예시:
{
"save_mode": 1,
"save_path": "",
"enable_chapter_numbering": false
}
7. 일반적인 문제 해결
7.1 형식 변환 실패
변환 실패 시 먼저 구성 파일의 완전성을 확인하세요. 도구는 구성 확인 기능을 제공합니다:
# 구성 확인
def perform_check(self, config_path, config):
checks = [
(self.check_config_file(config_path), "구성 파일 확인"),
(self.check_config_format(config), "구성 형식 확인"),
# 기타 확인...
]
7.2 출력 파일 깨짐
출력 파일이 깨질 경우 인코딩 문제일 가능성이 높습니다. 파일 쓰기 시 UTF-8을 사용하세요:
# UTF-8 인코딩으로 파일 저장
with open(output_path, 'w', encoding='UTF-8') as f:
f.write(content)
8. 고급 팁: 일괄 형식 변환
여러 소설을 일괄 변환하려면 구성 파일의 save_mode 파라미터를 수정하거나 코드에서 기본 저장 모드를 설정하세요:
# 기본 저장 모드를 EPUB으로 설정
config['save_mode'] = 3
이렇게 하면 이후 다운로드 시 매번 선택할 필요 없이 설정된 형식이 자동으로 적용됩니다.