[Python] PDF Layout & Multilingue
Michelangelo Turillo
m.turillo a virgilio.it
Ven 25 Ago 2006 00:16:16 CEST
Salve a tutti,
Sto cercando di realizzare un documento pdf nelle seguenti lingue Europee:
Greek English French Hungarian Italian Lithuanian Dutch Portuguese Albanian Czech Danish German Spanish Estonian Finnish Irish Latvian Maltese Polish Romanian Russian Slovene Slovak Swedish
Il layout del documento deve essere pressappoco questo:
|
Όνομα, Επώνυμο | John, Malkovic
Διεύθυνση (1) | 11 Main Street, Athens 54640
| Thessaloniki Greece
Διεύθυνση (2) |
Τηλέφωνο | 00302310886995
Διεύθυνση | joh... a otenet.gr
ηλεκτρονικού |
ταχυδρομείου |
Κινητό τηλέφωνο | 00345353453453
Τόπος γέννησης | Thessaloniki
Χώρα | Greece
Υπηκοότητα | Greek
Ημερομηνία |
γέννησης |
Μητρική γλώσσα | Greek
Non sono un programmatore Python ma con qualche consiglio sono arrivato a questo:
<code>
#!/usr/bin/python
import time, os, sys
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfgen import canvas
from reportlab.lib.units import inch, cm
from reportlab.lib.pagesizes import A4
#precalculate some basics
top_margin = A4[1] - inch
bottom_margin = inch
left_margin = inch
right_margin = A4[0] - inch
frame_width = right_margin - left_margin
pdfmetrics.registerFont(TTFont('Verdana', 'verdana.ttf'))
canv = canvas.Canvas("test.pdf")
def drawPageFrame(mycanv):
mycanv.line(left_margin, top_margin, right_margin, top_margin)
mycanv.setFont('Verdana',12)
mycanv.drawString(left_margin, top_margin + 2, "Pdf Test")
mycanv.line(left_margin, top_margin, right_margin, top_margin)
mycanv.line(left_margin, bottom_margin, right_margin, bottom_margin)
mycanv.drawCentredString(0.5*A4[0], 0.5 * inch,
"Page %d" % mycanv.getPageNumber())
canv.setPageCompression(1)
drawPageFrame(canv)
#do some title page stuff
canv.setFont("Verdana", 36)
canv.drawCentredString(0.5 * A4[0], 7 * inch, "Pdf Test")
canv.setFont("Verdana", 18)
canv.drawCentredString(0.5 * A4[0], 5 * inch, "Test Staff")
canv.setFont("Verdana", 12)
tx = canv.beginText(left_margin, 3 * inch)
tx.textLine("This is a test to a PDF Exporting Tool")
canv.drawText(tx)
canv.showPage()
canv.save()
print "Content-Type: text/html\n\n"
print "<a href=\"test.pdf\">PDF Test</a>"
</code>
Ora desidererei creare un layout con immagini e linee ma soprattutto riquadri che all'evenienza si adattino al contenuto. Intendo dire che se ho un testo pił lungo non vada a sovrascrivere ma sposti tutto pił sotto.
Mi hanno parlato di LaTeX ma non so da dove partire. Potete aiutarmi?
Grazie
Maggiori informazioni sulla lista
Python