Re: reportlab-users Digest, Vol 112, Issue 14
Mike Driscoll <[email protected]>
| Newsgroups | gmane.comp.python.reportlab.user |
|---|---|
| Message-ID | <CAO4gEAuVoubANefhhH=N3q00_wbq4QXyqt+GF1gJvHfwoeo0zA@mail.gmail.com> |
Hi everyone, I'll answer inline to each of the answers and try to remove the cruft... > Sending this backup to the listserv as a response - removing the image as > it was 'too large'. My apologies if this gets double-posted. > > -j > > On Wed, May 29, 2013 at 12:39 PM, J. R. Carroll <[email protected]> > wrote: > > > Mike, > > > > Not sure, but if you are trying to get the 'funky P' shape you emailed > > about a few weeks back (as in the image I am attaching [EDIT] IMAGE > > REMOVED) - that's easy enough (but I'm assuming this is a different > > issue)... > Actually, it is still the funky "P" thing I mentioned earlier, but I never received much of a response then. I got one digest that seemed to be commenting on someone's answer, but I couldn't find the actual answer. Fortunately, at the time, no one at my company cared about the "P", but it seems I need to re-implement this after all and now it's important again. > > > > If you are trying to get a semi-colon, I don't believe E13-B as a > standard > > has that (http://en.wikipedia.org/wiki/File:MICR.svg and its parent > > article http://en.wikipedia.org/wiki/Magnetic_ink_character_recognition > ). > > On inspection of the "demo" fonts available via the links you provided > (as > > I would love to help *the Mr. Driscoll* of > > http://www.blog.pythonlibrary.org/, I can't afford the $$ to buy the > > legit font, no offense =P), I figured you could use the Demo font... > they say they only omit 7. 8. and 9 with no > > mention of omitting a semi-colon. Furthermore, inspecting the > > character/glyph map of the demo fonts show that there is no mapping for > > semi-colon key-strokes to a comp micr/e13b glyph. If you are truly > trying > > to get a semi-colon, my guess is that you'll have to switch fonts > > mid-string (or make your own glyph for the semi-colon - aka copy one > over). > > > > > > If, for whatever reason you were trying to get the 'funky P' you > mentioned > > in previous listserv questions, that symbol is mapped to the double-quote > > key (as the image I attached shows [EDIT] IMAGE REMOVED) - if this is an > > old/retired issue, then ignore this. > > > > -J > The double-quote DOES seem to work in my case. Thanks for that! > Message: 2 > Date: Wed, 29 May 2013 13:02:23 -0400 > From: "J. R. Carroll" <[email protected]> > Subject: Re: [reportlab-users] Micr font advice in reportlab > To: reportlab-users <[email protected]> > Message-ID: > < > CAPjhJmUCZzZ2HZONksiAxqbcgnn9CtiX5MYDS5+7b2j2UZ4g5w@mail.gmail.com> > Content-Type: text/plain; charset="iso-8859-1" > > I forgot to add that the ttf font does have the semi-colon mapped as the > funky-p shape, but the afm/pfb fonts do not (they are using the > double-quote instead). Perhaps thats the confusion between the font-spec > provides versus the fonts you are trying to embed. > > -j > > > This is correct. I didn't quite follow how the font files worked, so thanks for clarifying. > Message: 3 > Date: Wed, 29 May 2013 10:45:34 -0700 > From: Tim Roberts <[email protected]> > Subject: Re: [reportlab-users] Micr font advice in reportlab > To: reportlab-users <[email protected]> > Message-ID: <[email protected]> > Content-Type: text/plain; charset="ISO-8859-1" > > Mike Driscoll wrote: > > > > The colons turn into the correct character, but the semi-colons end up > > looking blank. I have attached a quick example code and its output. > > You can see the colons have been transformed per the spec, but the > > semi-colons are eaten. There's a demo version of the font that has > > both the characters (I think), so if anyone has any ideas or > > solutions, I'm all ears. > > Believe it or not, the problem is in the font files. I had assumed you > were using the TrueType file, and the TrueType file is correct. > Instead, your code is using the Type 1 files (AFM/PFB). If you go look > at the human-readable version (of that the PFA), you'll see that the > Type 1 font simply does not include the semi-colon. (I checked the demo > version, but I assume the real version is the same.) > > If you paid for this font (and I assume you did), that's a bug, and you > should complain. In the meantime, if you switch to the TrueType > version, this problem will go away. > > -- > Tim Roberts, [email protected] > Providenza & Boekelheide, Inc. > > I think we have purchased it, so I'll ask that we report it as a bug. The reason I'm not using the TrueType font though is that I get an error when I try to. Instead of that mess of code in my original post, you can simplify the font embedding down to the following: micr_font = "MICRCheckPrixa.ttf" pdfmetrics.registerFont(TTFont("MICRCheckPrixa", micr_font)) When I do that and run the example script, I get the following traceback: IndexError: list index out of range File "C:\Users\mdriscoll\Documents\projects\comp_sigma\font\micr_test.py", line 21, in <module> doc.build(Story) File "C:\Python26\Lib\site-packages\reportlab\platypus\doctemplate.py", line 1117, in build BaseDocTemplate.build(self,flowables, canvasmaker=canvasmaker) File "C:\Python26\Lib\site-packages\reportlab\platypus\doctemplate.py", line 906, in build self._endBuild() File "C:\Python26\Lib\site-packages\reportlab\platypus\doctemplate.py", line 848, in _endBuild if getattr(self,'_doSave',1): self.canv.save() File "C:\Python26\Lib\site-packages\reportlab\pdfgen\canvas.py", line 1123, in save self._doc.SaveToFile(self._filename, self) File "C:\Python26\Lib\site-packages\reportlab\pdfbase\pdfdoc.py", line 235, in SaveToFile f.write(self.GetPDFData(canvas)) File "C:\Python26\Lib\site-packages\reportlab\pdfbase\pdfdoc.py", line 247, in GetPDFData fnt.addObjects(self) File "C:\Python26\Lib\site-packages\reportlab\pdfbase\ttfonts.py", line 1128, in addObjects pdfFont.FontDescriptor = self.face.addSubsetObjects(doc, baseFontName, subset) File "C:\Python26\Lib\site-packages\reportlab\pdfbase\ttfonts.py", line 926, in addSubsetObjects fontFile.content = self.makeSubset(subset) File "C:\Python26\Lib\site-packages\reportlab\pdfbase\ttfonts.py", line 777, in makeSubset while n > 1 and self.hmetrics[n][0] == self.hmetrics[n - 1][0]: I'm not sure what is going on here, but Reportlab sure doesn't like something about that font. ----------------- Mike Driscoll Blog: http://blog.pythonlibrary.org _______________________________________________ reportlab-users mailing list [email protected] http://two.pairlist.net/mailman/listinfo/reportlab-users