On Fri, Jan 10, 2014 at 9:17 AM, Juraj Sukop <juraj.su...@gmail.com> wrote:

> As you may know, PDF operates over bytes and an integer or floating-point
> number is written down as-is, for example "100" or "1.23".
>

Just to be clear here -- is PDF specifically bytes+ascii?

Or could there be some-other-encoding unicode in there?

If so, then you really have a mess!

if it is bytes+ascii, then it seems you could use a unicode object and
encode/decode to latin-1

Perhaps still a bit klunkier than formatting directly into a bytes object,
but workable.

    b'%.1f %.1f %.1f RG' % (r, g, b)
>
> is more confusing than:
>
>     b'%s %s %s RG' % tuple(map(lambda x: (u'%.1f' % x).encode('ascii'),
> (r, g, b)))
>

Let's see, I think that would be:

u'%.1f %.1f %.1f RG' % (r, g, b)

then when you want to write it out:

.encode('latin-1')

dumping the binary data in would be a bit uglier, for teh image example:

stream
    ...binary image data...
    endstream
    endobj

u"stream\n%s\nendstream\nendobj"%binary_data.decode('latin-1')

I think.....

not too bad, though if nothing else an alias for latin-1 that made it clear
it worked for this would be nice.

maybe ascii_plus_binary or something?

-Chris

-- 

Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R            (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

chris.bar...@noaa.gov
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to