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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.