2010-02-14 9 views
4

파이썬에서 예약 확인 PDF 파일을 자동으로 생성하고 싶습니다. 대부분의 콘텐츠는 몇 가지 동적 비트 (날짜, 비용 등)로 고정되어 있습니다 (예 : 로고, 예약 조건, 전화 번호).파이썬에서 PDF 파일 생성 및 병합

사용자 입장에서 보면 가장 간단한 방법은 정적 콘텐츠가있는 PDF 파일로 시작한 다음 Python을 사용하여 동적 부분을 추가하는 것입니다. 이것은 간단한 과정입니까?

약간의 검색을 수행함에 따라 PDF를 병합하기 위해 내용을 작성하는 데 reportlab을 사용하고 pyPdf를 사용할 수있는 것 같습니다. 이것이 최선의 접근 방법입니까? 아니면 내가 아직 만나지 않은 정말 펑키 한 방법이 있습니까?

감사합니다.

답변

8

을,이 작업을 수행하는 가장 간단한 방법은 시작하는 것입니다 정적 인 내용을 가진 PDF 파일을 만든 다음, 파이썬을 사용하여 동적 인 부분을 추가합니다. 이것은 간단한 과정입니까?

불행히도 없습니다. 처음부터 PDF (가장 일반적으로는 Python의 경우 ReportLab)를 만드는 데 유용한 몇 가지 도구가 있지만 일반적으로 기존 PDF를로드하지 않습니다. 사용자가 자유롭게 편집 할 수있는 것이 아니라 일반 텍스트, 선, 블록, 도형 및 이미지를 생성하는 코드를 포함해야합니다.

반대쪽에는 PDF를로드하고 페이지를한데 모아서 일부 정보를 추출 할 수 있지만 실제로는 새 콘텐츠를 추가 할 수없는 이 있습니다. 페이지를 하나로 병합 할 수 있지만 추가 정보 오버레이를 먼저 ReportLab의 페이지로 만들어야합니다.

+0

고마워, 나는 이것과 함께 갈 것이다 :-) 그것은 사용자들이 어쨌든 그들이 원하는대로 쉽게 PDF를 만들 수 있다는 것을 의미한다. – Humphrey

+2

SpooledTemporaryFile을 사용하는 경우 메모리에 reportlab 파일을 만든 다음 pyPdf를 사용하여 마스터 PDF 파일에 추가 할 수 있습니다. –

1

예를 들어 TeX 나 OpenOffice 또는 가장 편안한 바인딩을 제공하는 문서를 생성 한 다음 pdf 프린터로 문서를 인쇄 할 수 있습니다.

이렇게하면 어디에 필드를 정확하게 배치할지 또는 콘텐츠가 할당 된 공간보다 오버플로 할 경우 수행 할 작업을 파악할 필요가 없습니다.

2

docutils 및 reSTructuredText를 살펴보십시오. reST에서 PDF 문서를 빠르게 작성한 다음 rst2pdf.py를 사용하여 PDF를 컴파일 할 수 있습니다.

나는 이것을 사용하여 매우 아름다운 문서를 만들고 마크 업은 확장 가능합니다! 나중에 동일한 코드를 가져 와서 rst2html로 실행하면 웹 사이트를 만들 수 있습니다!

것은 여기를보세요 : 사용자 측에서

행운