Re: Re: Android Problem

Alan Laas <[email protected]> Tue, 11 Jun 2013 10:17:51 -0500
Newsgroups gmane.comp.lang.perl.modules.pdfapi2
Message-ID <[email protected]>
--------------050807090005050509070205
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

It still fails.  However that also breaks displaying it in a PC browser 
via a plugin which is the preferred method.  I can handle that by 
platform detection that only adds the Content-Dispostion when it detects 
Android.  I have another idea why the download may be failing.  This is 
an internal web app that uses SSL.  Since the site is in development the 
certificate on the server is self-signed and for a different domain.  In 
a browser you have the ability to accept the cert despite the warnings 
on it.  Since Android hands off the download to another app instead of 
the browser handling the download, it may simply be rejecting it based 
on the fact that the cert doesn't match.  At least that is my next 
theory to test.

On 6/11/2013 8:27 AM, John wrote:
>
> On the question of "superstitions", I did not say that the pdf needed 
> to be saved to an external file - rather that, for reasons particular 
> to my own application, I actually have to save it. And it turns out 
> that streaming the PDF to the browser from the file just happens to 
> work reliably across a range of devices.
>
> --- In [email protected] 
> <mailto:perl-text-pdf-modules%40yahoogroups.com>, Rick Measham 
> <rick@...> wrote:
> >
> > On 11/06/2013 4:37 AM, Alan Laas wrote:
> > > print "Content-type:application/pdf\n\n";
> > > print $pdf->stringify();
> > > $pdf->end();
> > >
> >
> > Try adding in a Content-Disposition header:
> > print "Content-Disposition:attachment;filename=filename.pdf\n";
> > (make sure your final header has two newlines of course)
> >
> > Saving to an external file shouldn't make any difference at all and
> > sounds like superstition. The code for stringify() just opens a scalar
> > as a filehandle and then 'saves' the PDF to that filehandle. Then it
> > returns the scalar.
> >
> > Also, there's no need to call ->end() as save, saveas and stringify
> > already call it.
> >
> > - Rick
> >
> >
> > --
> > Message protected for iSite by MailGuard: e-mail anti-virus, 
> anti-spam and content filtering.http://www.mailguard.com.au
> >
>
> 


--------------050807090005050509070205
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit




<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
</head>







<body style="background-color: #fff;">
<span style="display:none">&nbsp;</span>

<!--~-|**|PrettyHtmlStartT|**|-~-->
<div id="ygrp-mlmsg" style="position:relative;">
  <div id="ygrp-msg" style="z-index: 1;">
<!--~-|**|PrettyHtmlEndT|**|-~-->

    <div id="ygrp-text" >
      
      
      <p>
  
  
    <div class="moz-cite-prefix">It still fails.&nbsp; However that also
      breaks displaying it in a PC browser via a plugin which is the
      preferred method.&nbsp; I can handle that by platform detection that
      only adds the Content-Dispostion when it detects Android.&nbsp; I have
      another idea why the download may be failing.&nbsp; This is an internal
      web app that uses SSL.&nbsp; Since the site is in development the
      certificate on the server is self-signed and for a different
      domain.&nbsp; In a browser you have the ability to accept the cert
      despite the warnings on it.&nbsp; Since Android hands off the download
      to another app instead of the browser handling the download, it
      may simply be rejecting it based on the fact that the cert doesn't
      match.&nbsp; At least that is my next theory to test.<br>
      <br>
      On 6/11/2013 8:27 AM, John wrote:<br>
    </div>
    <blockquote cite="mid:[email protected]" type="cite">
      <span>&nbsp;</span>
      
          <div id="ygrp-text">
            <p>On the question of "superstitions", I did not say that
              the pdf needed to be saved to an external file - rather
              that, for reasons particular to my own application, I
              actually have to save it. And it turns out that streaming
              the PDF to the browser from the file just happens to work
              reliably across a range of devices.<br>
              <br>
              --- In <a moz="true" href="mailto:perl-text-pdf-modules%40yahoogroups.com">[email protected]</a>,
              Rick Measham <a class="moz-txt-link-rfc2396E" href="mailto:rick@...">&lt;rick@...&gt;</a> wrote:<br>
              &gt;<br>
              &gt; On 11/06/2013 4:37 AM, Alan Laas wrote:<br>
              &gt; &gt; print "Content-type:application/pdf\n\n";<br>
              &gt; &gt; print $pdf-&gt;stringify();<br>
              &gt; &gt; $pdf-&gt;end();<br>
              &gt; &gt;<br>
              &gt; <br>
              &gt; Try adding in a Content-Disposition header:<br>
              &gt; print
              "Content-Disposition:attachment;filename=filename.pdf\n";<br>
              &gt; (make sure your final header has two newlines of
              course)<br>
              &gt; <br>
              &gt; Saving to an external file shouldn't make any
              difference at all and <br>
              &gt; sounds like superstition. The code for stringify()
              just opens a scalar <br>
              &gt; as a filehandle and then 'saves' the PDF to that
              filehandle. Then it <br>
              &gt; returns the scalar.<br>
              &gt; <br>
              &gt; Also, there's no need to call -&gt;end() as save,
              saveas and stringify <br>
              &gt; already call it.<br>
              &gt; <br>
              &gt; - Rick<br>
              &gt; <br>
              &gt; <br>
              &gt; -- <br>
              &gt; Message protected for iSite by MailGuard: e-mail
              anti-virus, anti-spam and content <a moz="true" href="filtering.http://www.mailguard.com.au">filtering.http://www.mailguard.com.au</a><br>
              &gt;<br>
              <br>
            </p>
          </div>
          
      
      <!-- end group email -->
    </blockquote>
    <br>
  

</p>

    </div>
     

    <!--~-|**|PrettyHtmlStart|**|-~-->
    <div style="color: #fff; height: 0;">__._,_.___</div>

        
  
  
    <table cellspacing=4px style="margin-top: 20px; margin-bottom: 10px;">
      <tbody>
        <tr>
          <td style="font-size: 12px; font-family: arial; font-weight: bold; padding: 7px 5px 5px; color: #FFF; background-color: #F2F2F2; border: 1px solid #EAEAEA "  >
                          <a style="text-decoration: none; color: #2D50FD" href="">Reply via web post</a>
                      </td>
          <td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px; color: #FFF; background-color: #F2F2F2; border: 1px solid #EAEAEA; " >
            <a href="mailto:[email protected]?subject=Re%3A%20%5Bperl-text-pdf-modules%5D%20Re%3A%20Android%20Problem" style="text-decoration: none; color: #2D50FD;">
              Reply to sender            </a> 
          </td>
          <td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px; color: #FFF; background-color: #F2F2F2; border: 1px solid #EAEAEA; ">
            <a href="mailto:[email protected]?subject=Re%3A%20%5Bperl-text-pdf-modules%5D%20Re%3A%20Android%20Problem" style="text-decoration: none; color: #2D50FD">
              Reply to group            </a> 
          </td>
          <td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px; color: #FFF; background-color: #F2F2F2; border: 1px solid #EAEAEA; " >
            <a href="" style="text-decoration: none; color: #2D50FD">Start a New Topic</a>
          </td>
          <td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px; color: #2D50FD; background-color: #F2F2F2; border: 1px solid #EAEAEA; " >
                            <a href="" style="text-decoration: none; color: #2D50FD;">Messages in this topic</a>
                ()
                      </td>
        </tr>
      </tbody>
    </table>

        
<!------- Start Nav Bar ------>
<!-- |**|begin egp html banner|**| -->
<!-- |**|end egp html banner|**| -->

<!-- |**|begin egp html banner|**| -->
<div id="ygrp-vital" style="background-color: #f2f2f2; font-family: Verdana; font-size: 10px; margin-bottom: 10px; padding: 10px;">
      <span id="vithd" style="font-weight: bold; color: #333; text-transform: uppercase; ">Recent Activity:</span>

    <ul style="list-style-type: none; margin: 0; padding: 0; display: inline;">
                                                    </ul>
    
  <div style="clear: both; padding-top: 2px; color: #1e66ae;">
    <a href="http://groups.yahoo.com/group/perl-text-pdf-modules;_ylc=X3oDMTJlb2VlbWh0BF9TAzk3MzU5NzE0BGdycElkAzIwMTczODIEZ3Jwc3BJZAMxNzA1MDA3NzA5BHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTM3MDk2Mzg4Mw--" style="text-decoration: none;">Visit Your Group</a>
  </div>
</div>


      <div id="ygrp-grfd" style="font-family: Verdana; font-size: 12px; padding: 15px 0;">
      
<!-- |**|begin egp html banner|**| -->

      To unsubscribe from this group, send an email to:<BR>
perl-text-pdf-modules-unsubscribe-Km8ibD4bFueDmjp1MlKEbA@public.gmane.org<BR>
<BR>
      
<!-- |**|end egp html banner|**| -->

    </div>
  
<div id="ft" style="font-family: Arial; font-size: 11px; margin-top: 5px; padding: 0 2px 0 0; clear: both;">
  <a href="http://groups.yahoo.com/;_ylc=X3oDMTJkOGFrdm04BF9TAzk3NDc2NTkwBGdycElkAzIwMTczODIEZ3Jwc3BJZAMxNzA1MDA3NzA5BHNlYwNmdHIEc2xrA2dmcARzdGltZQMxMzcwOTYzODg0" style="float: left;"><img src="http://l.yimg.com/a/i/us/yg/logo/us.gif" height="15" width="137" alt="Yahoo! Groups" style="border: 0;"/></a>
  <div style="color: #747575; float: right;">Switch to: <a href="mailto:perl-text-pdf-modules-traditional-hHKSG33TihhbjbujkaE4pw@public.gmane.org?subject=Change Delivery Format: Traditional" style="text-decoration: none;">Text-Only</a>, <a href="mailto:perl-text-pdf-modules-digest-hHKSG33TihhbjbujkaE4pw@public.gmane.org?subject=Email Delivery: Digest" class="margin-rt" style="text-decoration: none;">Daily Digest</a> &bull; <a href="mailto:perl-text-pdf-modules-unsubscribe-hHKSG33TihhbjbujkaE4pw@public.gmane.org?subject=Unsubscribe" style="text-decoration: none;">Unsubscribe</a> &bull; <a href="http://docs.yahoo.com/info/terms/" style="text-decoration: none;">Terms of Use</a> &bull; <a href="mailto:[email protected]?subject=Feedback on the redesigned individual mail v1" style="text-decoration: none;">Send us Feedback </a></div>
</div>

<!-- |**|end egp html banner|**| -->

  </div> <!-- ygrp-msg -->

  <!-- Sponsor -->
  <!-- |**|begin egp html banner|**| -->
  <div id="ygrp-sponsor" style="width:160px; float:right; clear:none; margin:0 0 25px 0; background: #fff;">

<!-- Start Recommendations -->
<div id="ygrp-reco">
     </div>
<!-- End Recommendations -->



  </div>   <!-- |**|end egp html banner|**| -->

  <div style="clear:both; color: #FFF; font-size:1px;">.</div>
</div>

  <img src="" width="1" height="1"> <br>

<div style="color: #fff; height: 0;">__,_._,___</div>
<!--~-|**|PrettyHtmlEnd|**|-~-->

</body>

<!--~-|**|PrettyHtmlStart|**|-~-->
<head>
  <style type="text/css">
  <!--
  #ygrp-mkp {
  border: 1px solid #d8d8d8;
  font-family: Arial;
  margin: 10px 0;
  padding: 0 10px;
}

#ygrp-mkp hr {
  border: 1px solid #d8d8d8;
}

#ygrp-mkp #hd {
  color: #628c2a;
  font-size: 85%;
  font-weight: 700;
  line-height: 122%;
  margin: 10px 0;
}

#ygrp-mkp #ads {
  margin-bottom: 10px;
}

#ygrp-mkp .ad {
  padding: 0 0;
}

#ygrp-mkp .ad p {
  margin: 0;
}

#ygrp-mkp .ad a {
  color: #0000ff;
  text-decoration: none;
}
  #ygrp-sponsor #ygrp-lc {
  font-family: Arial;
}

#ygrp-sponsor #ygrp-lc #hd {
  margin: 10px 0px;
  font-weight: 700;
  font-size: 78%;
  line-height: 122%;
}

#ygrp-sponsor #ygrp-lc .ad {
  margin-bottom: 10px;
  padding: 0 0;
}

  #actions {
    font-family: Verdana;
    font-size: 11px;
    padding: 10px 0;
  }

  #activity {
    background-color: #e0ecee;
    float: left;
    font-family: Verdana;
    font-size: 10px;
    padding: 10px;
  }

  #activity span {
    font-weight: 700;
  }

  #activity span:first-child {
    text-transform: uppercase;
  }

  #activity span a {
    color: #5085b6;
    text-decoration: none;
  }

  #activity span span {
    color: #ff7900;
  }

  #activity span .underline {
    text-decoration: underline;
  }

  .attach {
    clear: both;
    display: table;
    font-family: Arial;
    font-size: 12px;
    padding: 10px 0;
    width: 400px;
  }

  .attach div a {
    text-decoration: none;
  }

  .attach img {
    border: none;
    padding-right: 5px;
  }

  .attach label {
    display: block;
    margin-bottom: 5px;
  }

  .attach label a {
    text-decoration: none;
  }
  
  blockquote {
    margin: 0 0 0 4px;
  }

  .bold {
    font-family: Arial;
    font-size: 13px;
    font-weight: 700;
  }

  .bold a {
    text-decoration: none;
  }

  dd.last p a {
    font-family: Verdana;
    font-weight: 700;
  }

  dd.last p span {
    margin-right: 10px;
    font-family: Verdana;
    font-weight: 700;
  }

  dd.last p span.yshortcuts {
    margin-right: 0;
  }

  div.attach-table div div a {
    text-decoration: none;
  }

  div.attach-table {
    width: 400px;
  }

  div.file-title a, div.file-title a:active, div.file-title a:hover, div.file-title a:visited {
    text-decoration: none;
  }

  div.photo-title a, div.photo-title a:active, div.photo-title a:hover, div.photo-title a:visited {
    text-decoration: none;
  }

  div#ygrp-mlmsg #ygrp-msg p a span.yshortcuts {
    font-family: Verdana;
    font-size: 10px;
    font-weight: normal;
  }

  .green {
    color: #628c2a;
  }

  .MsoNormal {
    margin: 0 0 0 0;
  }

  o {
    font-size: 0;
  }

  #photos div {
    float: left;
    width: 72px;
  }

  #photos div div {
    border: 1px solid #666666;
    height: 62px;
    overflow: hidden;
    width: 62px;
  }

  #photos div label {
    color: #666666;
    font-size: 10px;
    overflow: hidden;
    text-align: center;
    white-space: nowrap;
    width: 64px;
  }

  #reco-category {
    font-size: 77%;
  }

  #reco-desc {
    font-size: 77%;
  }

  .replbq {
    margin: 4px;
  }

  #ygrp-actbar div a:first-child {
   /* border-right: 0px solid #000;*/
    margin-right: 2px;
    padding-right: 5px;
  }

  #ygrp-mlmsg {
    font-size: 13px;
    font-family: Arial, helvetica,clean, sans-serif;
    *font-size: small;
    *font: x-small;
  }

  #ygrp-mlmsg table {
    font-size: inherit;
    font: 100%;
  }

  #ygrp-mlmsg select, input, textarea {
    font: 99% Arial, Helvetica, clean, sans-serif;
  }

  #ygrp-mlmsg pre, code {
    font:115% monospace;
    *font-size:100%;
  }

  #ygrp-mlmsg * {
    line-height: 1.22em;
  }

  #ygrp-mlmsg #logo {
    padding-bottom: 10px;
  }


  #ygrp-msg p a {
    font-family: Verdana;
  }

  #ygrp-msg p#attach-count span {
    color: #1E66AE;
    font-weight: 700;
  }

  #ygrp-reco #reco-head {
    color: #ff7900;
    font-weight: 700;
  }

  #ygrp-reco {
    margin-bottom: 20px;
    padding: 0px;
  }

  #ygrp-sponsor #ov li a {
    font-size: 130%;
    text-decoration: none;
  }

  #ygrp-sponsor #ov li {
    font-size: 77%;
    list-style-type: square;
    padding: 6px 0;
  } 

  #ygrp-sponsor #ov ul {
    margin: 0;
    padding: 0 0 0 8px;
  }

  #ygrp-text {
    font-family: Georgia;
  }

  #ygrp-text p {
    margin: 0 0 1em 0;
  }

  #ygrp-text tt {
    font-size: 120%;
  }

  #ygrp-vital ul li:last-child {
    border-right: none !important; 
  } 
  -->
  </style>
</head>

<!--~-|**|PrettyHtmlEnd|**|-~-->
</html>
<!-- end group email -->


--------------050807090005050509070205--