사용자의 일부 이미지를 가져온 다음 이러한 이미지가 모두 포함 된 PDF 파일을 만드는 프로젝트를 진행 중입니다.
파이썬에서 이것을 할 수있는 방법이나 도구가 있습니까? 예를 들어 image1 + image 2 + image 3-> PDF 파일에서 PDF 파일 (또는 eps, ps)을 만들려면?
답변
답변
이 페이지의 힌트를 따른 후의 경험입니다.
-
pyPDF는 이미지를 파일에 포함 할 수 없습니다. 분할 및 병합 만 가능합니다. (출처 : Ctrl + F 문서 페이지를 통해 ) PDF에 포함되지 않은 이미지가있는 경우에는 좋지 않습니다.
-
ReportLab은 매우 광범위합니다. ( Userguide ) 그러나 약간의 Ctrl + F와 소스를 통해 grepping하면 다음과 같은 결과를 얻 습니다.
- 먼저 Windows 설치 프로그램 및 소스를 다운로드하십시오.
-
그런 다음 파이썬 명령 줄에서 시도하십시오.
from reportlab.pdfgen import canvas from reportlab.lib.units import inch, cm c = canvas.Canvas('ex.pdf') c.drawImage('ar.jpg', 0, 0, 10*cm, 10*cm) c.showPage() c.save()
필요한 것은 PDF로 많은 이미지를 가져 와서 이미지를보고 인쇄하는 방법을 확인할 수 있습니다. 위의 목표는 그 목표를 달성하기에 충분합니다.
ReportLab은 훌륭하지만 문서에 위와 같은 helloworld를 눈에 띄게 포함시키는 것이 좋습니다.
답변
html 파일에서 pdf를 만듭니다. Python Pyramid 스택에서 2 단계로 pdf를 만들도록 선택했습니다.
- 원하는 스타일과 마크 업이있는 mako 템플릿으로 서버 측 렌더링 pdf 문서
pdfkit.from_string(...)
렌더링 된 html을 매개 변수로 전달하여 메소드 실행
이렇게하면 스타일과 이미지가 지원되는 PDF 문서를 얻을 수 있습니다.
다음과 같이 설치할 수 있습니다.
-
핍 사용
pip install pdfkit
- 또한 wkhtmltopdf ( Ubuntu에 ) 를 설치해야합니다 .
답변
이것을 시도 하거나 (Python-for-PDF-Generation) pdf로 인쇄를 지원하는 PyQt 를 시도 할 수 있습니다 .
PDF 생성 용 Python PDF
(Portable Document Format)를 사용하면 모든 플랫폼에서 똑같이 보이는 문서를 만들 수 있습니다. 그러나 때로는 PDF 문서를 동적으로 생성해야하는 경우도 있습니다. 다행히도 도움이 될 수있는 라이브러리가 있습니다. 이 기사에서는 Python에 대한 기사 중 하나를 살펴 봅니다.
http://www.devshed.com/c/a/Python/Python-for-PDF-Generation/#whoCFCPh3TAks368.99 에서 자세히 알아보십시오 .
답변
다음은 표준 패키지에서만 작동하는 솔루션입니다. matplotlib
그림을 PDF로 저장하는 PDF 백엔드가 있습니다. 각 서브 플롯이 이미지 중 하나 인 서브 플롯으로 그림을 만들 수 있습니다. 그림을 엉망으로 만들 수 있습니다. 제목 추가, 위치 재생 등. 그림이 완성되면 PDF로 저장하십시오. 호출 할 때마다 savefig
다른 PDF 페이지가 작성됩니다.
아래 예는 1 페이지와 2 페이지에 2 개의 이미지를 나란히 표시합니다.
from matplotlib.backends.backend_pdf import PdfPages
import matplotlib.pyplot as plt
from scipy.misc import imread
import os
import numpy as np
files = [ "Column0_Line16.jpg", "Column0_Line47.jpg" ]
def plotImage(f):
folder = "C:/temp/"
im = imread(os.path.join(folder, f)).astype(np.float32) / 255
plt.imshow(im)
a = plt.gca()
a.get_xaxis().set_visible(False) # We don't need axis ticks
a.get_yaxis().set_visible(False)
pp = PdfPages("c:/temp/page1.pdf")
plt.subplot(121)
plotImage(files[0])
plt.subplot(122)
plotImage(files[1])
pp.savefig(plt.gcf()) # This generates page 1
pp.savefig(plt.gcf()) # This generates page 2
pp.close()
답변
PyQt 에서이 작업을 꽤 많이 수행했으며 매우 잘 작동합니다. Qt는 이미지, 글꼴, 스타일 등을 광범위하게 지원하며, 모두 PDF 문서로 작성할 수 있습니다.
답변
matplotlib에는 그래픽, 텍스트 및 기타 객체를 pdf 문서로 직렬화하는 기능이 있다고 생각합니다.