2013-03-17 2 views
4

Mac에서는 미리보기 응용 프로그램을 사용하여 여러 PDF 파일을 병합 할 수 있습니다 (기능은 다소 애매합니다). 나는 Haskell에서 유사한 작업을 수행해야하는 유틸리티를 작성하고있다. 즉, 임의의 수의 PDF 파일을 하나의 새 파일로 병합해야한다.하스켈에서 PDF 파일 병합

어디서부터 시작해야할까요? 분명히 Hackage에 라이브러리가 있으면 대부분 이상적인 작업을 수행 할 수 있습니다.하지만 그렇지 않다면 시작할 위치에 대한 몇 가지 정보가 매우 감사 할 것입니다.

답변

2

PDF 파일 형식은 그렇게 복잡하지 않습니다. Adobe는 어딘가에 대한 공식 사양 문서를 보유하고 있습니다. 기본적으로 PDF 파일에는 일련의 번호가 매겨진 "객체"가 포함되어 있습니다. 각 PDF 파일에서 모든 객체를 가져 와서 번호를 다시 매겨 고유해야하므로 모든 페이지가 실제로 표시 될 수 있도록 페이지 인덱스를 조작해야합니다.

PDF 파일을 작성하기위한 Hackage에 패키지의 몇이있을 나타납니다,하지만 난 읽기 그들을 많이 볼 수 없습니다. 아이디어를 얻으려면 pdfsplit의 소스 코드를보고 싶을 것입니다. 또한 HPDF.

+3

https://github.com/dylanmc/Haskell-PDF-Parsing-Library –

+0

또한 PDF 파일을 병합하는 방법에 대한 도움이 필요하면 [PDFtk]라는 http : // Java 프로그램도 있습니다. www.pdflabs.com/tools/pdftk-the-pdf-toolkit/) 코드 (GPL)가 도움이 될 수 있습니다. – gspr

+0

@DonStewart AFAIK 암호화, 외부 참조 스트림 및 압축 된 객체를 지원하지 않습니다. 현재'~/Download' 폴더 ~ 50 %의 PDF 파일을 라이브러리에서 파싱 할 수 없습니다.이 파일을 사용할 수 없게 만듭니다. – Yuras

4

나는 구문 분석과 생성을 지원하는 pdf library에서 일하고 있습니다. 그것은 낮은 수준이며, 더 높은 수준의 도구가 아직 todo 목록에 있습니다 (왜냐하면 좋은 수준의 API를 설계하기가 어렵 기 때문입니다).

Here은 PDF 파일의 압축을 풀고 해독 한 예입니다. PDF 병합은 쉽게 구현할 수 있지만 PDF 내부에 익숙해야합니다.

ADDED : 하스켈에서 PDF 파일을 병합하는 basic example을 만듭니다. 총 150 줄의 코드가 있지만 기능이 거의 없습니다 (파일 맨 위에있는 주석 참조). 그들은 쉽게 추가 할 수 있으므로 관심이 있다면 알려주십시오.

+0

유라 스 감사합니다. 훌륭합니다. 라이브러리를 사용하여 내 기능을 구현하고 내가 어떻게 시작하는지 알려줄 것입니다. –