djvu를 pdf로 변환하고 목차를 보존하면 어떻게 가능합니까?


8

몇 가지 온라인 및 오프라인 도구를 시도했지만 변환 중에 TOC (정보 테이블) 정보가 보존되지 않았습니다.

나는 djvu 형식의 5000 페이지 핀란드어 사전을 변환하고 단어를 빨리 찾을 수 있도록 계층 적으로 구조화 된 약 5000 개의 목차 항목을 변환하려고합니다.

DJVU에서 PDF로 변환하는 동안 TOC 정보를 어떻게 보존 할 수 있습니까?

답변:


3

최신 정보: user3124688 스크립트에서이 프로세스를 코딩했습니다. dpsprep .


나는 당신을 위해 회심을 할 도구를 모른다. 확실히 할 수 있어야하지만 약간의 작업이 필요할 수 있습니다. 기본 과정을 개략적으로 설명하겠습니다. 오픈 소스 명령 행 유틸리티가 필요합니다. pdftkdjvused (DjVuLibre의 일부). 패키지 관리자 (GNU / Linux) 또는 해당 웹 사이트 (Windows, OS X)에서 구할 수 있습니다.

  • 1 단계 : 파일 텍스트 변환

    먼저 DJVU 파일을 PDF (책갈피 없음)로 변환하는 도구를 사용하십시오.

    파일이 호출되었다고 가정 해보십시오. filename.djvufilename.pdf.

  • 2 단계 : DJVU 개요 추출

    다음으로 DJVU 개요 데이터를 다음과 같이 파일로 출력하십시오.

    djvused "filename.djvu" -e 'print-outline' > bmarks.out
    

    이 파일은 DJVU 문서 북마크를 직렬화 된 트리 형식으로 나열한 파일입니다. 사실 그것은 단지 SEXPR , 쉽게 파싱 할 수 있습니다. 형식은 다음과 같습니다.

    file ::= (bookmarks
               <bookmark>*)
    bookmark ::= (name
                   page
                   <bookmark>*)
    name ::= "<character>*"
    page ::= "#<digit>+"
    

    예 :

    (bookmarks
      ("bmark1"
        "#1")
      ("bmark2"
        "#5"
        ("bmark2subbmark1"
          "#6")
        ("bmark2subbmark2"
          "#7"))
      ("bmark3"
        "#9"
        ...))
    
  • 3 단계 : DJVU 개요를 PDF 메타 데이터 형식으로 변환

    이제이 책갈피를 PDF 메타 데이터에 필요한 형식으로 변환해야합니다. 이 파일의 형식은 다음과 같습니다.

    file ::= <entry>*
    entry ::= BookmarkBegin
              BookmarkTitle: <title>
              BookmarkLevel: <number>
              BookmarkPageNumber: <number>
    title ::= <character>*
    

    그래서 우리의 예가 될 것입니다 :

     BookmarkBegin
     BookmarkTitle: bmark1
     BookmarkLevel: 1
     BookmarkPageNumber: 1
     BookmarkBegin
     BookmarkTitle: bmark2
     BookmarkLevel: 1
     BookmarkPageNumber: 5
     BookmarkBegin
     BookmarkTitle: bmark2subbmark1
     BookmarkLevel: 2
     BookmarkPageNumber: 6
     BookmarkBegin
     BookmarkTitle: bmark2subbmark2
     BookmarkLevel: 2
     BookmarkPageNumber: 7
     BookmarkBegin
     BookmarkTitle: bmark3
     BookmarkLevel: 1
     BookmarkPageNumber: 9
    

    기본적으로, 당신은 SEXPR 트리를 걸어 다니며 레벨을 추적하고 그것이 나오는 각 항목의 이름, 페이지 번호 및 레벨을 올바른 형식으로 출력하는 스크립트를 작성해야합니다.

  • 4 단계 : PDF 메타 데이터 추출 및 변환 된 북마크 연결

    변환 된 목록이 있으면 변환 된 PDF 파일의 PDF 메타 데이터를 출력하십시오.

    pdftk "filename.pdf" dump_data > pdfmetadata.out
    

    이제 파일을 열고 시작하는 줄을 찾으십시오. NumberOfPages:

    이 줄 뒤에 변환 된 책갈피를 삽입하십시오. 새 파일을 다음과 같이 저장하십시오. pdfmetadata.in

  • 5 단계 : 책갈피가있는 PDF 작성

    이제이 메타 데이터를 통합 한 새로운 PDF 파일을 만들 수 있습니다.

    pdftk "filename.pdf" update_info "pdfmetadata.in" output out.pdf
    

    파일 out.pdf DJVU 파일에서 가져온 북마크가 포함 된 PDF 사본이어야합니다.


1

사용자 @pyrocrasty (감사합니다!)가 제공 한 매우 명확한 개요를 바탕으로 OCR 된 텍스트와 북마크 구조를 보존하는 DJVU를 PDF 변환기에 구현했습니다. 당신은 그것을 여기에서 찾을 수 있습니다 :

https://github.com/kcroker/dpsprep

OCR 데이터에 대한 승인은 우분투 포럼에서 @zetah로 이동합니다!


북마크 페이지 번호 필드에 숫자가 아닌 텍스트가있는 DJVU 파일이있어서 파서가 읽지 못했습니다. 나는 바꿨다. j.split('#')[1](int(re.findall(r'\d+', j.split('#')[1])[0])+1) 그것은 훌륭하게 작동했습니다. 데비안 Jessie 필요 : sudo apt-get install pdftk djvulibre-bin python-pip ruby ruby-dev libmagickwand-dev; sudo pip install sexpdata; sudo gem install iconv pdfbeads
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.