mine worked by copying to gluon/contrib/fpdf and then in code:
from gluon.contrib.fpdf import PDFLabel On Thu, Jan 17, 2013 at 10:42 AM, António Ramos <[email protected]>wrote: > I still cannot import it in web2py shell by just copying pdflabels.py to > gluon/contrib/pypdf > > can someone post a stupid example app? > > Thank you > António > > 2013/1/17 Paul Rykiel <[email protected]> > >> I just want to say a big Thank you! >> this works perfectly!! >> I am so happy! >> Best Regards, >> >> On Thu, Jan 17, 2013 at 1:49 AM, Mariano Reingart <[email protected]>wrote: >> >>> Sorry, the correct url for PDFLabels is currently: >>> >>> https://code.google.com/p/pyfpdf/source/browse/tools/pdflabels.py >>> >>> We did some cleanups and reorganization of the project folders >>> structure to be more compatible with pep8, distutils, etc. >>> For the next release, if you can confirm that PDFLabels is working >>> with the new structure, it could be moved to fpdf folder (currently in >>> tools) so it would be packaged with web2py. >>> >>> BTW, there has been some other enhancements and bugfixes to PyFPDF >>> thanks to several contributors, if you find an issue, please grab a >>> latest copy and take a look on the project site: >>> >>> https://code.google.com/p/pyfpdf/source/browse/ >>> >>> (look for the download zip link) >>> >>> https://code.google.com/p/pyfpdf/issues/list >>> >>> ASAP we close a few more pending tickets, surely a new version of FPDF >>> will be published. >>> >>> Best regards, >>> >>> Mariano Reingart >>> http://www.sistemasagiles.com.ar >>> http://reingart.blogspot.com >>> >>> >>> On Thu, Jan 17, 2013 at 4:13 AM, José Luis Redrejo <[email protected]> >>> wrote: >>> > I've just checked pdflabel is not included in fpdf in web2py. I ignore >>> > the reason because I uploaded it to pyfpdf 18 months ago. I thought >>> > web2py automatically included pyfpdf updates. You can download it from >>> > http://code.google.com/p/pyfpdf/source/browse/pdflabels.py and copy it >>> > at gluon/contrib/fpdf directory so you can use: >>> > >>> > from gluon.contrib.fpdf.pdflabels import PDFLabel >>> > >>> > PDFLabel accepts "\n" , if you use cell, it doesn't understand "\n" >>> > >>> > Regards. >>> > >>> > 2013/1/16 Paul Rykiel <[email protected]>: >>> >> Hi Jose, >>> >> >>> >> I tried what you suggested, I was getting errors on the line >>> >> from glon.contrib.pyfpdf.pdflabels import PDFLabel ... it does not >>> seem to >>> >> exist, and cannot find how to load this >>> >> >>> >> so, my other option seems to be to get all of the text inside of one >>> cell, >>> >> so I used your "more_text" from below, it works ('sort of") ... it >>> lists all >>> >> of the text inside the one cell, but >>> >> the program is ignoring the "\n" page breaks, if I can get those to >>> work, I >>> >> am almost done >>> >> >>> >> then I have to figure out how to create the pages side by side, but I >>> want >>> >> to tackle one thing at a time. >>> >> >>> >> I am sure when I get to my next issue of printing the labels where >>> there are >>> >> 3 labels across and 10 down, maybe I will have to figure out >>> >> how to use the PDFLabel, but for right now I just want to get this to >>> work. >>> >> >>> >> thanks for all of your help!! >>> >> Regards, >>> >> >>> >> >>> >> On Wednesday, January 16, 2013 12:46:34 PM UTC-6, José L. wrote: >>> >>> >>> >>> Some time ago, we include PDFLabel too, so you can simplify your code >>> >>> if you are using an avery-compatible format ( the sys stuff is only >>> >>> needed if you're using a non-english language): >>> >>> >>> >>> def label_bikes(): >>> >>> from gluon.contrib.pyfpdf.pdflabels import PDFLabel >>> >>> import sys >>> >>> reload(sys) >>> >>> sys.setdefaultencoding( "latin-1" ) >>> >>> >>> >>> pdf = PDFLabel('Apli-01277') >>> >>> pdf.add_page() >>> >>> rows = db(db.bike.id.belongs(bikeIds)).select() >>> >>> # Print labels >>> >>> for row in rows: >>> >>> idString = row.destination + str(row.id) >>> >>> more_text = idString >>> >>> more_text += "Make: " + row.make + "\n" if row.make else "" >>> >>> more_text += "Model: " + row.model + "\n" if row.model else >>> "" >>> >>> more_text += "Size: " + row.size + "\n" if row.size else "" >>> >>> pdf.add_label(more_text) >>> >>> >>> >>> response.headers['Content-Type'] = 'application/pdf' >>> >>> response.headers['Content-Disposition']='attachment.filename = >>> >>> sample.pdf' >>> >>> return pdf.output(dest='S') >>> >>> >>> >>> >>> >>> Regards >>> >>> José L. >>> >>> >>> >>> 2013/1/16 Paul Rykiel <[email protected]>: >>> >>> > Hi Mariano, >>> >>> > thank you for the response. Let me look into the margin issue, >>> maybe you >>> >>> > have given me enough to figure this out. >>> >>> > thanks so much for the response. you know, Massimo was my >>> professor last >>> >>> > term. >>> >>> > >>> >>> > On Wednesday, January 16, 2013 12:39:06 AM UTC-6, Mariano Reingart >>> >>> > wrote: >>> >>> >> >>> >>> >> Hello Paul: >>> >>> >> >>> >>> >> Could you send a sample without actual data? >>> >>> >> (without the db query, so it can be reproduced) >>> >>> >> >>> >>> >> fpdf.cell will jump to the next page if no more room available, >>> maybe >>> >>> >> there is a sizing or rounding issue. >>> >>> >> Also, you have to take a look at page margins. >>> >>> >> >>> >>> >> Best regards, >>> >>> >> >>> >>> >> Mariano Reingart >>> >>> >> http://www.sistemasagiles.com.ar >>> >>> >> http://reingart.blogspot.com >>> >>> >> >>> >>> >> >>> >>> >> On Tue, Jan 15, 2013 at 8:02 PM, Paul Rykiel <[email protected]> >>> wrote: >>> >>> >> > Greetings this is my code: >>> >>> >> > >>> >>> >> > def triagePrintTags(bikeIds): >>> >>> >> > assert(bikeIds != None) >>> >>> >> > assert(isinstance(bikeIds, list) or isinstance(bikeIds, >>> tuple)) >>> >>> >> > pdf = FPDF('P', 'mm', (66.548, 25.4)) >>> >>> >> > # get all the r(ows >>> >>> >> > rows = db(db.bike.id.belongs(bikeIds)).select() >>> >>> >> > for row in rows: >>> >>> >> > pdf.add_page() >>> >>> >> > pdf.set_font('Times', 'B', 8) >>> >>> >> > idString = row.destination + str(row.id) >>> >>> >> > pdf.cell(0, 2, idString, 0, 1) >>> >>> >> > if row.make != None: >>> >>> >> > pdf.cell(0, 2, "Make: " + row.make,0,1) >>> >>> >> > if row.model != None: >>> >>> >> > pdf.cell(0, 2, "Model: " + row.model,0,1) >>> >>> >> > if row.size != 0: >>> >>> >> > sz = "Size: " + str(row.size) >>> >>> >> > pdf.cell(0, 2, sz,0,1) >>> >>> >> > if row.color != None: >>> >>> >> > pdf.cell(0, 2, "Color: " + row.color,0,1) >>> >>> >> > # TODO this should be a true temp file, stored in /tmp with >>> >>> >> > random >>> >>> >> > unique filename. >>> >>> >> > fileName = request.folder + '/static/temp.pdf' >>> >>> >> > pdf.output(name=fileName) >>> >>> >> > >>> response.headers['Content-Disposition']='attachment.filename = >>> >>> >> > sample.pdf' >>> >>> >> > response.headers['Content-Type']='application/pdf' >>> >>> >> > return response.stream(open(fileName, 'rb'), >>> chunk_size=4096) >>> >>> >> > >>> >>> >> > the problem with the above code is: >>> >>> >> > >>> >>> >> > my dimentions of my page are supposed to simulate a label (no >>> >>> >> > problem) >>> >>> >> > my text should all be on the same label, but when the next cell >>> >>> >> > prints, >>> >>> >> > it >>> >>> >> > jumps to the >>> >>> >> > next label. What am I doing incorrectly here? >>> >>> >> > >>> >>> >> > Or maybe is it is just wrong print with pdf.cell, maybe there >>> is a >>> >>> >> > better >>> >>> >> > way. >>> >>> >> > Please help if you can? >>> >>> >> > >>> >>> >> > Thank you in advance. >>> >>> >> > >>> >>> >> > >>> >>> >> > >>> >>> >> > >>> >>> >> > >>> >>> >> > -- >>> >>> >> > >>> >>> >> > >>> >>> >> > >>> >>> > >>> >>> > -- >>> >>> > >>> >>> > >>> >>> > >>> >> >>> >> -- >>> >> >>> >> >>> >> >>> > >>> > -- >>> > >>> > >>> > >>> >>> -- >>> >>> >>> >>> >> -- >> >> >> >> > > -- > > > > --

