아는 사람이라면이 코드가 필요한 페이지를 생성하는 데 어떻게 작동하는지 이해하도록 도와주세요.
c = canvas.Canvas("sample.pdf")
sample1 = csv.reader(open('sample1.csv'))
for i in sample1:
first = i[0]
c.drawString(100,800,first)
sample2 = csv.reader(open('sample2.csv'))
for x in sample2:
sec = x[0]
third = x[1]
fourth = x[2]
c.drawString(200,700,sec)
c.drawString(200,600,third)
c.drawString(200,500,fourth)
c.showPage()
c.save()
그대로 sample2의 문서 만 성공적으로 인쇄하고 sample1의 항목 중 한 페이지 만 인쇄합니다 .... 두 문서에서 정보를 추출하여 하나의 pdf를 생성하는 데 사용하려고합니다.
문제를 이해하는지 모르겠지만 중첩 루프없이이 작업을 수행합니다.
sample1 X
, Y
에 Z
3 개의 행이 있고 sample2 ABC
,에 3 개의 행이 있다고 가정합니다 DEF
.GHI
그것은 세 페이지를 생성 X
, Y
, Z
세 페이지 다음 ABC
, DEF
,GHI
from reportlab.pdfgen import canvas
import csv
c = canvas.Canvas("sample.pdf")
#sample1 = csv.reader(open('sample1.csv'))
#sample2 = csv.reader(open('sample2.csv'))
sample1 = ["X", "Y", "Z"]
sample2 = ["ABC", "DEF", "GHI"]
for a in sample1:
c.drawString(100, 800, a[0]) # X / Y / Z
c.showPage()
for b in sample2:
c.drawString(200, 700, b[0]) # A / D / G
c.drawString(200, 600, b[1]) # B / E / H
c.drawString(200, 500, b[2]) # C / F / I
c.showPage()
c.save()
만 세 페이지를 만들려면하지만 X+ABC
, Y+DEF
, Z+GHI
당신은 필요zip()
from reportlab.pdfgen import canvas
import csv
c = canvas.Canvas("sample.pdf")
#sample1 = csv.reader(open('sample1.csv'))
#sample2 = csv.reader(open('sample2.csv'))
sample1 = ["X", "Y", "Z"]
sample2 = ["ABC", "DEF", "GHI"]
for a, b in zip(sample1, sample2):
c.drawString(100, 800, a[0])
c.drawString(200, 700, b[0])
c.drawString(200, 600, b[1])
c.drawString(200, 500, b[2])
c.showPage()
c.save()
BTW : 9 페이지가 필요한 경우
X+ABC
, X+DEF
,X+GHI
Y+ABC
, Y+DEF
,Y+GHI
Z+ABC
, Z+DEF
,Z+GHI
당신은 이동해야 drawString( a[0])
하고 showPage()
두 번째 루프 내에서
from reportlab.pdfgen import canvas
import csv
c = canvas.Canvas("sample.pdf")
#sample1 = csv.reader(open('sample1.csv'))
sample1 = ["X", "Y", "Z"]
for a in sample1:
#sample2 = csv.reader(open('sample2.csv'))
sample2 = ["ABC", "DEF", "GHI"]
for b in sample2:
c.drawString(100, 800, a[0])
c.drawString(200, 700, b[0])
c.drawString(200, 600, b[1])
c.drawString(200, 500, b[2])
c.showPage()
c.save()
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다