
ps_end_template를 사용하여 PDF 파일을 생성할 때, blank page만 생성되는 문제를 해결하는 방법은 다음과 같습니다.
1. output_stream을 사용하지 않기:
- output_stream을 사용하지 않고,
- SimpleDocTemplate의 build() 메소드를 사용하여 PDF 파일을 생성할 수 있습니다.
- 예를 들어, 다음과 같이 코드를 작성할 수 있습니다.
#hostingforum.kr
python
from reportlab.lib.pagesizes import A4
from reportlab.platypus import SimpleDocTemplate
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.lib.units import inch
styles = getSampleStyleSheet()
doc = SimpleDocTemplate("example.pdf", pagesize=A4)
story = []
styleN = styles["Normal"]
story.append(Paragraph("Hello, World!", styleN))
doc.build(story)
2. output_stream을 사용하여 PDF 파일을 생성하기:
- output_stream을 사용하여 PDF 파일을 생성할 수 있습니다.
- 그러나, blank page만 생성되는 것을 확인했습니다.
- 이 문제를 해결하기 위해서는, output_stream을 사용하여 PDF 파일을 생성할 때,
- page template을 사용하여 page를 생성해야 합니다.
- 예를 들어, 다음과 같이 코드를 작성할 수 있습니다.
#hostingforum.kr
python
from reportlab.lib.pagesizes import A4
from reportlab.platypus import SimpleDocTemplate
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.lib.units import inch
from reportlab.pdfgen import canvas
styles = getSampleStyleSheet()
doc = SimpleDocTemplate("example.pdf", pagesize=A4)
story = []
styleN = styles["Normal"]
story.append(Paragraph("Hello, World!", styleN))
# page template을 사용하여 page를 생성합니다.
def create_page(canvas, doc):
canvas.saveState()
canvas.setFont("Helvetica", 12)
canvas.drawString(inch, 0.75 * inch, "Hello, World!")
canvas.showPage()
canvas.saveState()
# output_stream을 사용하여 PDF 파일을 생성합니다.
output_stream = canvas.Canvas("example.pdf", pagesize=A4)
doc.build(story, onFirstPage=create_page, onLaterPages=create_page)
3. ps_end_template를 사용하여 PDF 파일을 생성하기:
- ps_end_template를 사용하여 PDF 파일을 생성할 수 있습니다.
- 그러나, blank page만 생성되는 것을 확인했습니다.
- 이 문제를 해결하기 위해서는, ps_end_template를 사용하여 PDF 파일을 생성할 때,
- page template을 사용하여 page를 생성해야 합니다.
- 예를 들어, 다음과 같이 코드를 작성할 수 있습니다.
#hostingforum.kr
python
from reportlab.lib.pagesizes import A4
from reportlab.platypus import SimpleDocTemplate
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.lib.units import inch
from reportlab.pdfgen import canvas
styles = getSampleStyleSheet()
doc = SimpleDocTemplate("example.pdf", pagesize=A4)
story = []
styleN = styles["Normal"]
story.append(Paragraph("Hello, World!", styleN))
# page template을 사용하여 page를 생성합니다.
def create_page(canvas, doc):
canvas.saveState()
canvas.setFont("Helvetica", 12)
canvas.drawString(inch, 0.75 * inch, "Hello, World!")
canvas.showPage()
canvas.saveState()
# ps_end_template를 사용하여 PDF 파일을 생성합니다.
ps_end_template = SimpleDocTemplate("example.pdf", pagesize=A4)
ps_end_template.build(story, onFirstPage=create_page, onLaterPages=create_page)
2025-07-13 01:04