개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.13 01:03

ps_end_template 관련 질문

목록
  • 클린코더 3일 전 2025.07.13 01:03
  • 6
    1
제가 현재 ps_end_template를 사용하여 PDF 파일을 생성하는 중입니다.
그런데 ps_end_template의 output_stream에 출력하는 내용이 제대로 출력되지 않고,
blank page만 생성되는 것을 확인했습니다.

제가 사용한 코드는 다음과 같습니다.

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)



ps_end_template의 output_stream을 사용하여 PDF 파일을 생성할 때,
blank page만 생성되는 것을 확인했습니다.
이 문제를 해결할 방법이 있나요?

혹시 ps_end_template를 사용하여 PDF 파일을 생성할 때,
output_stream을 사용하지 않고 다른 방법으로 해결할 수 있는 방법이 있나요?

제가 사용한 코드는 위와 같습니다.

제가 찾은 해결책은 다음과 같습니다.

1. output_stream을 사용하지 않기:
- output_stream을 사용하지 않고,
- SimpleDocTemplate의 build() 메소드를 사용하여 PDF 파일을 생성할 수 있습니다.

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.lib.enums import TA_CENTER

   from reportlab.lib.colors import red

   from reportlab.lib.styles import ParagraphStyle

   from reportlab.lib.units import mm

   from reportlab.platypus import Paragraph



   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만 생성되는 것을 확인했습니다.

```python
from

    댓글목록

    profile_image
    나우호스팅  3일 전



    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

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 36,487건 / 5 페이지

검색

게시물 검색