Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
193 views
in Technique[技术] by (71.8m points)

python - Django and xhtml2pdf: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfe in position 0: invalid start byte

I have a Django web application and I would like it to product an html pdf. I was sent HTML templates to work with, and out of the three I received, two work and one doesn't. Everytime I acsess this view, it gives me UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfe in position 0: invalid start byte.

Here is the full error:

UnicodeDecodeError at /documents/973/generate/preliminary
'utf-8' codec can't decode byte 0xfe in position 0: invalid start byte

The string that could not be encoded/decoded was: ??{%

Here is my code: views.py

def generatePreliminary(request, fileNumber):
    claim = ClaimMaster.objects.get(fileNumber=fileNumber)
    documents = []
    for claimz in ClaimSub.objects.filter(claim=claim):
        docu = Document.objects.filter(claim=claimz)
        for doc in docu:
            documents.append(doc)
    data = {
        'claim': claim,
        'documents': documents,
        'insurers': InsurerLink.objects.filter(claim=claim),
        'insured': InsuredLink.objects.filter(claim=claim),

    }

    template = get_template('documentApplication/preliminaryreport.html')
    data_p = template.render(data)
    response = BytesIO()
    pdfPage = pisa.pisaDocument(BytesIO(data_p.encode("UTF-8")), response)

    if not pdfPage.err:
        return HttpResponse(response.getvalue(), content_type="application/pdf")
    else:
        return HttpResponse("Error")

preliminary.html template:

<html>

<head>

<style>
<!--
 /* Font Definitions */
 @font-face
    {font-family:"Cambria Math";
    panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
    {font-family:Calibri;
    panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
    {font-family:Tahoma;
    panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
    {margin-top:0in;
    margin-right:0in;
    margin-bottom:9.0pt;
    margin-left:0in;
    line-height:130%;
    font-size:10.0pt;
    font-family:"Tahoma",sans-serif;
    color:#7F7F7F;}
h1
    {mso-style-link:"Heading 1 Char";
    margin-top:12.0pt;
    margin-right:0in;
    margin-bottom:8.0pt;
    margin-left:0in;
    page-break-after:avoid;
    font-size:12.0pt;
    font-family:"Tahoma",sans-serif;
    color:#0E0B05;
    text-transform:uppercase;}
p.MsoListBullet, li.MsoListBullet, div.MsoListBullet
    {margin-top:0in;
    margin-right:0in;
    margin-bottom:6.0pt;
    margin-left:.15in;
    text-indent:-.15in;
    line-height:130%;
    font-size:10.0pt;
    font-family:"Tahoma",sans-serif;
    color:#7F7F7F;}
p.MsoSubtitle, li.MsoSubtitle, div.MsoSubtitle
    {mso-style-link:"Subtitle Char";
    margin-top:0in;
    margin-right:0in;
    margin-bottom:8.0pt;
    margin-left:0in;
    line-height:130%;
    font-size:11.0pt;
    font-family:"Calibri",sans-serif;
    color:#5A5A5A;
    letter-spacing:.75pt;}
span.Heading1Char
    {mso-style-name:"Heading 1 Char";
    mso-style-link:"Heading 1";
    font-family:"Tahoma",sans-serif;
    color:#0E0B05;
    text-transform:uppercase;
    font-weight:bold;}
p.Name, li.Name, div.Name
    {mso-style-name:Name;
    margin-top:0in;
    margin-right:0in;
    margin-bottom:9.0pt;
    margin-left:0in;
    line-height:80%;
    font-size:35.0pt;
    font-family:"Tahoma",sans-serif;
    color:#0E0B05;
    text-transform:uppercase;
    font-weight:bold;}
span.SubtitleChar
    {mso-style-name:"Subtitle Char";
    mso-style-link:Subtitle;
    font-family:"Calibri",sans-serif;
    color:#5A5A5A;
    letter-spacing:.75pt;}
.MsoChpDefault
    {font-size:10.0pt;
    font-family:"Tahoma",sans-serif;
    color:#7F7F7F;}
.MsoPapDefault
    {margin-bottom:9.0pt;
    line-height:130%;}
@page WordSection1
    {size:8.5in 11.0in;
    margin:.9in .95in 1.0in .95in;}
div.WordSection1
    {page:WordSection1;}
 /* List Definitions */
 ol
    {margin-bottom:0in;}
ul
    {margin-bottom:0in;}
-->
</style>

</head>

<body lang=EN-US style='word-wrap:break-word'>

<div class=WordSection1>

<p class=Name align=center style='text-align:center'><img width=179 height=179
src="Name.fld/image001.png"></p>

<p class=Name align=center style='text-align:center'><span style='font-size:
14.0pt;line-height:80%'>compname</span><span
style='font-size:24.0pt;line-height:80%'>&nbsp;</span></p>

<p class=Name align=center style='text-align:center'>PRELIMINARY REPORT</p>

<p class=Name><span style='font-size:10.0pt;line-height:80%;color:windowtext;
text-transform:none;font-weight:normal'>Report date: </span><span
style='font-size:10.0pt;line-height:80%;color:windowtext;text-transform:none'>21/05/02</span></p>

<p class=Name><span style='font-size:10.0pt;line-height:80%;color:windowtext;
text-transform:none;font-weight:normal'>Report Number: </span><span
style='font-size:10.0pt;line-height:80%;color:windowtext;text-transform:none'>abc</span></p>

<p class=Name align=center style='text-align:center'>&nbsp;</p>

<div style='border-top:solid #262626 3.0pt;border-left:none;border-bottom:solid #7F7F7F 1.0pt;
border-right:none;padding:5.0pt 0in 5.0pt 0in'>

<h1>PRELIMINARY REPORT</h1>

</div>

<p class=MsoNormal>A preliminary report is an initial report. </p>

<div style='border-top:solid #262626 3.0pt;border-left:none;border-bottom:solid #7F7F7F 1.0pt;
border-right:none;padding:5.0pt 0in 5.0pt 0in'>

<h1>BRIEF Claim Information</h1>

</div>

<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width="100%"
 style='width:100.0%;border-collapse:collapse'>
 <tr>
  <td width="20%" valign=top style='width:20.24%;border:solid #BFBFBF 1.0pt;
  padding:6.5pt 5.4pt 6.5pt 5.4pt'>
  <p class=MsoNormal style='margin-bottom:0in;line-height:normal'><b>comp
  File Number</b></p>
  </td>
  <td width="79%" valign=top style='width:79.76%;border:solid #BFBFBF 1.0pt;
  border-left:none;padding:6.5pt 5.4pt 6.5pt 5.4pt'>
  <p class=MsoNormal style='margin-bottom:0in;line-height:normal'>fileNumber</p>
  </td>
 </tr>
 <tr>
  <td width="20%" valign=top style='width:20.24%;border:solid #BFBFBF 1.0pt;
  border-top:none;background:#F2F2F2;padding:6.5pt 5.4pt 6.5pt 5.4pt'>
  <p class=MsoNormal style='margin-bottom:0in;line-height:normal'><b>comp
  Serial Number</b></p>
  </td>
  <td width="79%" valign=top style='width:79.76%;border-top:none;border-left:
  none;border-bottom:solid #BFBFBF 1.0pt;border-right:solid #BFBFBF 1.0pt;
  background:#F2F2F2;padding:6.5pt 5.4pt 6.5pt 5.4pt'>
  <p class=MsoNormal style='margin-bottom:0in;line-height:normal'>serialNumber</p>
  </td>
 </tr>
 <tr>
  <td width="20%" valign=top style='width:20.24%;border:solid #BFBFBF 1.0pt;
  border-top:none;padding:6.5pt 5.4pt 6.5pt 5.4pt'>
  <p class=MsoNormal style='margin-bottom:0in;line-height:normal'><b>Date of
  loss</b></p>
  </td>
  <td width="79%" valign=top style='width:79.76%;border-top:none;border-left:
  none;border-bottom:solid #BFBFBF 1.0pt;border-right:solid #BFBFBF 1.0pt;
  padding:6.5pt 5.4pt 6.5pt 5.4pt'>
  <p class=MsoNormal style='margin-bottom:0in;line-height:normal'>date</p>
  </td>
 </tr>
 <tr>
  <td width="20%" valign=top style='width:20.24%;border:solid #BFBFBF 1.0pt;
  border-top:none;background:#F2F2F2;padding:6.5pt 5.4pt 6.5pt 5.4pt'>
  <p class=MsoNormal style='margin-bottom:0in;line-height:normal'><b>Period of
  Loss</b></p>
  </td>
  <td width="79%" valign=top style='width:79.76%;border-top:none;border-left:
  none;border-bottom:solid #BFBFBF 1.0pt;border-right:solid #BFBFBF 1.0pt;
  background:#F2F2F2;padding:6.5pt 5.4pt 6.5pt 5.4pt'>
  <p class=MsoNormal style='margin-bottom:0in;line-height:normal'>period</p>
  </td>
 </tr>
 <tr>
  <td width="20%" valign=top style='width:20.24%;border:solid #BFBFBF 1.0pt;
  border-top:none;padding:6.5pt 5.4pt 6.5pt 5.4pt'>
  <p class=MsoNormal style='margin-bottom:0in;line-height:normal'><b>Insurer</b></p>
  </td>
  <td width="79%" valign=top style='width:79.76%;border-top:none;border-left:
  none;border-bottom:solid #BFBFBF 1.0pt;border-right:solid #BFBFBF 1.0pt;
  padding:6.5pt 5.4pt 6.5pt 5.4pt'>
  <p class=MsoNormal style='margin-bottom:0in;line-height:normal'>insurer</p>
  </td>
 </tr>
 <tr>
  <td width="20%" valign=top style='width:20.24%;border:solid #BFBFBF 1.0pt;
  border-top:none;background:#F2F2F2;padding:6.5pt 5.4pt 6.5pt 5.4pt'>
  <p class=MsoNormal style='margin-bottom:0in;line-height:normal'><b>Insurer
  Claim Number</b></p>
  </td>
  <td width="79%" valign=top style='width:79.76%;border-top:none;border-left:
  none;border-bottom:solid #BFBFBF 1.0pt;border-right:solid #BFBFBF 1.0pt;
  background:#F2F2F2;padding:6.5pt 5.4pt 6.5pt 5.4pt'>
  <p class=MsoNormal style='margin-bottom:0in;line-height:normal'>Insurer claim</p>
  </td>
 </tr>
 <tr>
  <td width="20%" valign=top style='width:20.24%;border:solid #BFBFBF 1.0pt;
  border-top:none;padding:6.5pt 5.4pt 6.5pt 5.4pt'>
  <p class=MsoNormal style='margin-bottom:0in;line-height:normal'><b>Insured</b></p>
  </td>
  <td width="79%" valign=top style='width:79.76%;border-top:none;border-left:
  none;border-bottom:solid #BFBFBF 1.0pt;border-right:solid #BFBFBF 1.0pt;
  padding:6.5pt 5.4pt 6.5pt 5.4pt'>
  <p class=MsoNormal style='margin-bottom:0in;line-height:normal'>insured</p>
  </td>
 </tr>
</table>

<p class=MsoListBullet style='margin-left:0in;text-indent:0in'>&nbsp;</p>

<div style='border-top:solid #262626 3.0pt;border-left:none;border-bottom:solid #7F7F7F 1.0pt;
border-right:none;padding:5.0pt 0in 5.0pt 0in'>

<h1>ENTITY INFORMATION</h1>

</div>

<p class=MsoSubtitle>INSURED&nbsp;</p>

<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width="100%"
 style='width:100.0%;border-collapse:collapse'>
 <tr>
  <td width="20%" valign=top style='width:20.24%;border:solid #BFBFBF 1.0pt;
  padding:6.5pt 5.4pt 6.5pt 5.4pt'>
  <p class=MsoNormal style='margin-bottom:0in;line-height:normal'><b>Insured</b></p>
  </td>
  <td width="79%" valign=top style='width:79.76%;border:solid #BFBFBF 1.0pt;
  border-left:none;padding:6.5pt 5.4pt 6.5pt 5.4pt'>
  <p class=MsoNormal style='margin-bottom:0in;line-height:normal'>fileNumber</p>
  </td>
 </tr>
 <tr>
  <td width="20%" valign=top style='width:20.24%;border:solid #BFBFBF 1.0pt;
  border-top:none;background:#F2F2F2;padding:6.5pt 5.4pt 6.5pt 5.4pt'>
  <p class=MsoNormal style='margin-bottom:0in;line-height:normal'><b>TIN</b></p>
  </td>
  <td width="79%" valign=top style='width:79.76%;border-top:none;border-left:

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...