<div dir="ltr"><div>Good question. The text was read in from a file and was several lines long. I suspect that the process was failing to parse correctly and was seeing each character as a single line but I never found what it was splitting on or how to adjust it. I found a solution by using a multi-line version of the textobject.textLines(text, trim=0) [the trim=0 keeps spacing around the text block intact for asciiart] and placing the entire string at once instead of iterating over each line. Used the same text variable as earlier and it all did as expected.<br>
<br></div>To see it all in action, sign up for Phreaknic in a few weeks and the PDF you get in email is the output :-)<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Aug 27, 2014 at 3:06 PM, Michael Solberg <span dir="ltr">&lt;<a href="mailto:msolberg@redhat.com" target="_blank">msolberg@redhat.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On 08/26/2014 10:37 AM, jkinney wrote:<br>
&gt; -----BEGIN PGP SIGNED MESSAGE-----<br>
&gt; Hash: SHA1<br>
&gt;<br>
&gt; I&#39;m trying to generate a 1-page pdf that has some text and a single<br>
&gt; image (a qrcode) and I&#39;m hitting issues. The docs for reportlab are a<br>
&gt; better than many but still missing key details. The following will<br>
&gt; generate the page, the text starts at the correct location, BUT the<br>
&gt; text runs vertical down the page. I have found nothing that indicates<br>
&gt; how to do that or fix it. By vertical down the page I mean:<br>
&gt; l<br>
&gt; i<br>
&gt; k<br>
&gt; e<br>
&gt;<br>
&gt; t<br>
&gt; h<br>
&gt; i<br>
&gt; s<br>
&gt;<br>
&gt; grr! That _really_ messes up ascii art!<br>
&gt;<br>
&gt; # generate the pdf file from the template, ascii art and the qrcode.png<br>
&gt; files<br>
&gt; # requires python-reportlab<br>
&gt; def gen_pdf(text, asciiblock):<br>
&gt;<br>
&gt;         from reportlab.pdfgen import canvas<br>
&gt;         from reportlab.lib.units import inch<br>
&gt;         def makeqrpage(canvas):<br>
&gt;<br>
&gt;                 textobject = canvas.beginText()<br>
&gt;                 textobject.setTextOrigin(inch, 9.5*inch)<br>
&gt;                 textobject.setFont(&quot;Helvetica-Bold&quot;, 14)<br>
&gt;                 for line in text:<br>
&gt;                         textobject.textLine(line)<br>
<br>
</div></div>I suspect your issue isn&#39;t actually with reportlab.  What is the value<br>
of &quot;text&quot;?  Consider:<br>
<br>
&gt;&gt;&gt; text = &quot;likethis&quot;<br>
&gt;&gt;&gt; for t in text:<br>
...     t<br>
...<br>
&#39;l&#39;<br>
<div class="">&#39;i&#39;<br>
&#39;k&#39;<br>
&#39;e&#39;<br>
&#39;t&#39;<br>
&#39;h&#39;<br>
&#39;i&#39;<br>
</div>&#39;s&#39;<br>
<br>
Versus<br>
<br>
&gt;&gt;&gt; text = [&#39;like&#39;, &#39;this&#39;]<br>
&gt;&gt;&gt; for l in text:<br>
...     l<br>
...<br>
&#39;like&#39;<br>
&#39;this&#39;<br>
<span class="HOEnZb"><font color="#888888"><br>
Michael.<br>
</font></span><div class="HOEnZb"><div class="h5">_______________________________________________<br>
Ale mailing list<br>
<a href="mailto:Ale@ale.org">Ale@ale.org</a><br>
<a href="http://mail.ale.org/mailman/listinfo/ale" target="_blank">http://mail.ale.org/mailman/listinfo/ale</a><br>
See JOBS, ANNOUNCE and SCHOOLS lists at<br>
<a href="http://mail.ale.org/mailman/listinfo" target="_blank">http://mail.ale.org/mailman/listinfo</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><div dir="ltr">-- <br>James P. Kinney III<br><i><i><i><i><br></i></i></i></i>Every time you stop a school, you will have to build a jail. What you 
        gain at one end you lose at the other. It&#39;s like feeding a dog on his 
        own tail. It won&#39;t fatten the dog.<br>

        - Speech 11/23/1900 Mark Twain<br><i><i><i><i><br><a href="http://heretothereideas.blogspot.com/" target="_blank">http://heretothereideas.blogspot.com/</a><br></i></i></i></i></div>
</div>