2014-10-23 4 views
0

У меня есть следующая таблица, и мне нужно загрузить ее в PDF.Показать/Загрузить таблицу в Pdf

Метод загружается в pdf, но не отображает границу таблицы.

Спасибо!

защищен недействительным Button2_Click (объект отправителя, EventArgs е) {

Response.ContentType = "application/pdf"; 
    Response.AddHeader("content-disposition", "attachment;filename=Panel.pdf"); 
    Response.Cache.SetCacheability(HttpCacheability.NoCache); 

    StringWriter stringWriter = new StringWriter(); 
    HtmlTextWriter htmlTextWriter = new HtmlTextWriter(stringWriter); 

    Repeater_AK.RenderControl(htmlTextWriter); 
    StringReader stringReader = new StringReader(stringWriter.ToString()); 
    Document Doc = new Document(PageSize.A4, 160, 160, 20, 20); 

    HTMLWorker htmlparser = new HTMLWorker(Doc); 
    PdfWriter.GetInstance(Doc, Response.OutputStream); 

    Doc.Open(); 
    htmlparser.Parse(stringReader); 
    Doc.Close(); 
    Response.Write(Doc); 
    Response.End(); 

} 

HTML

<table cellspacing="0" style="border-style:solid; font-family:Calibri; border-width:thin;" > 
            <tr style="height: 26.4pt;"> 
         <td align="center" colspan="6" 
          style="padding-left:5.4pt; padding-right:5.4pt;"> 
          <asp:Label ID="lbl_title" runat="server" 
           Style="font-weight: bold; font-size:7pt; padding-left:5.4pt; padding-right:5.4pt;">ALASKA INSURANCE IDENTIFICATION CARD</asp:Label> 
         </td> 
        </tr> 

        <tr style="height: 8.4pt;"> 
         <td colspan="2" 
          style="max-width:98.1pt; padding-left:5.4pt; padding-right:5.4pt; padding-bottom:0px;"> 
          <asp:Label ID="lbl_Company_NAIC_Number" runat="server" 
           Style="font-weight:bold; font-size:7pt;" Text="Company NAIC Number"></asp:Label> 
         </td> 
         <td style="width:43.2pt; padding-left:5.4px; padding-right:5.4pt; padding-bottom:0px;"> 
          <asp:Label ID="lbl_Commercial" runat="server" 
           Style="font-weight:bold; font-size:7pt;" Text="Commercial"></asp:Label> 
         </td> 
         <td style="width:20.7pt; padding-left:5.4pt; padding-right:5.4pt; padding-bottom:0px;"> 

         </td> 
         <td style="width:38.7pt; padding-left:5.4pt; padding-right:5.4pt; padding-bottom:0px;"> 
          <asp:Label ID="lbl_Personal" runat="server" Style="font-weight:bold; font-size:7pt;" Text="Personal"></asp:Label> 
         </td> 
         <td style="width:16.2pt; padding-left:5.4pt; padding-right:5.4pt; padding-bottom:0px;"> 

         </td> 
        </tr> 

        <tr valign="top"> 
         <td colspan="2" style="width:108.9pt; padding-left:5.4pt; padding-right:5.4pt;"> 
          <asp:Label ID="lbl_Company_NAIC_Number_out" runat="server" Style="font-size:5pt;" Text="31089"></asp:Label> 

         </td> 
         <td colspan="4" 
          style="width:162pt; padding-left:5.4pt; padding-right:5.4pt;"> 
          <asp:Label ID="lbl_empty2" runat="server" 
           Style="font-weight:bold; font-size:7pt;" Text=""></asp:Label> 
         </td> 
        </tr> 

        <tr style="height: 21.6pt;" valign="top"> 
         <td colspan="2" 
          style="width:108.9pt; padding-left:5.4pt; padding-right:5.4pt;"> 

          <asp:Label ID="lbl_Company_Name_and_Address" runat="server" 
           Style="font-weight:bold; font-size:7pt;" Text="Company Name and Address"></asp:Label> 
           <p style="margin:0px;"> 
           </p> 
          <asp:Label ID="lbl_Company_Name_and_Address_out" runat="server" Style="font-size:5pt;" Text="Repwest Insurance Company"></asp:Label> 

         </td> 
         <td colspan="4" 
          style="width:162pt; padding-left:5.4pt; padding-right:5.4pt;"> 
          <asp:Label ID="lbl_Company_Phone_Number" runat="server" 
           Style="font-weight:bold; font-size:7pt;" Text="Company Phone Number"></asp:Label> 
           <p style="margin:0px;"> 
           </p> 
           <asp:Label ID="lbl_Company_Phone_Number_out" runat="server" 
           Style="font-size:5pt;" Text="1-800-858-0317"></asp:Label> 
         </td> 
        </tr> 

        <tr style="height: 21.6pt;" valign="top"> 
         <td colspan="2" 
          style="width:108.9pt; padding-left:5.4pt; padding-right:5.4pt;"> 
          <asp:Label ID="lbl_Policy_Number" runat="server" 
           Style="font-weight:bold; font-size:7pt;" Text="Policy Number"></asp:Label> 
           <p style="margin:0px;"> 
           </p> 
           <asp:Label ID="lbl_Policy_Number_out" runat="server" 
           Style="font-size:5pt;" Text="PolicyPlaceHolder"></asp:Label> 
         </td> 
         <td colspan="2" 
          style="width:85.5pt; padding-left:5.4pt; padding-right:5.4pt;"> 
          <asp:Label ID="lbl_Effective_Date" runat="server" 
           Style="font-weight:bold; font-size:7pt;" Text="Effective Date"></asp:Label> 
           <p style="margin:0px;"> 
           </p> 
            <asp:Label ID="lbl_Effective_Date_out" runat="server" 
           Style="font-size:5pt;" Text="4/1/2015"></asp:Label> 
         </td> 
         <td colspan="2" 
          style="width:76.5pt; padding-left:5.4pt; padding-right:5.4pt;"> 
          <asp:Label ID="lbl_Expiration_Date" runat="server" 
           Style="font-weight:bold; font-size:7pt;" Text="Expiration Date"></asp:Label> 
           <p style="margin:0px;"> 
           </p> 
           <asp:Label ID="lbl_Expiration_Date_out" runat="server" 
           Style="font-size:5pt;" Text="3/31/2016"></asp:Label> 
         </td> 
        </tr> 

        <tr style="height: 22.2pt;" valign="top"> 
         <td style="width:50.4pt; padding-left:5.4pt; padding-right:5.4pt;"> 
          <asp:Label ID="lbl_Year" runat="server" 
           Style="font-weight:bold; font-size:7pt;" Text="Year"></asp:Label> 
            <p style="margin:0px;"> 
           </p> 
           <asp:Label ID="lbl_Year_out" runat="server" 
           Style="font-size:5pt;" Text='<%# Eval("YEAR") %>'></asp:Label> 
         </td> 
         <td style="width:58.5pt; padding-left:5.4pt; padding-right:5.4pt;"> 
          <asp:Label ID="lbl_Make_Model" runat="server" 
           Style="font-weight:bold; font-size:7pt;" Text="Make/Model"></asp:Label> 
            <p style="margin:0px;"> 
           </p> 
           <asp:Label ID="lbl_Make_Model_out" runat="server" 
           Style="font-size:5pt;" Text='<%# Eval("MODEL") %>'></asp:Label> 
         </td> 
         <td colspan="4" 
          style="width:162pt; padding-left:5.4pt; padding-right:5.4pt;"> 
          <asp:Label ID="lbl_VIN" runat="server" Style="font-weight:bold; font-size:7pt;" 
           Text="Vehicle Identification Number"></asp:Label> 
            <p style="margin:0px;"> 
           </p> 
           <asp:Label ID="lbl_VIN_out" runat="server" Style="font-size:5pt;" 
           Text='<%# Eval("VIN") %>'></asp:Label> 
         </td> 
        </tr> 

        <tr style="height: 37.8pt;" valign="top"> 
         <td colspan="2" 
          style="width:108.9pt; padding-left:5.4pt; padding-right:5.4pt;"> 
          <asp:Label ID="lbl_Agency" runat="server" 
           Style="font-weight:bold; font-size:7pt;" Text="Agency/Company Issuing Card"></asp:Label> 
             <p style="margin:0px;"> 
           </p> 
            <asp:Label ID="lbl_Agency_out" runat="server" 
           Style="font-size:5pt;">Company<br />ADDRESS<br />PHOENIX, AZ 85024</asp:Label> 
         </td> 
         <td colspan="4" 
          style="width:162pt; padding-left:5.4pt; padding-right:5.4pt;"> 
          <asp:Label ID="lbl_Insured_Name" runat="server" 
           Style="font-weight:bold; font-size:7pt;" Text="Insured Name and Address"></asp:Label> 
             <p style="margin:0px;"> 
           </p> 
           <asp:Label ID="lbl_Insured_Name_out" runat="server" Style="font-size:5pt;"><%# Eval("INSURED_NAME") %><br /><%# Eval("INSURED_ADDRESS") %><br /><%# Eval("INSURED_CITY")%>, <%# Eval("INSURED_STATE")%>&nbsp <%# Eval("INSURED_ZIPCODE") %></asp:Label> 
         </td> 
        </tr> 

        <tr style="height: 9.6pt;" valign="top"> 
         <td align="center" colspan="6" 
          style="width:260.1pt; padding-left:5.4pt; padding-right:5.4pt;"> 
          <asp:Label ID="lbl_Not_valid" runat="server" 
           Style="font-weight:bold; font-size:7pt;" 
           Text="Not valid for more than one year from effective date"></asp:Label> 
         </td> 
        </tr> 

        <tr style="height: 12pt;"> 
         <td align="center" colspan="6" 
          style="width:260.1pt; padding-left:5.4pt; padding-right:5.4pt;"> 
          <asp:Label ID="lbl_see_importance" runat="server" 
           Style="font-weight:bold; font-size:7pt;" 
           Text="See Important notice on reverse side"></asp:Label> 
         </td> 
        </tr> 

        <tr style="height: 13.7pt;"> 
         <td colspan="6" 
          style="width:260.1pt; padding-left:5.4pt; padding-right:5.4pt;"> 


         </td> 
        </tr> 
       </table> 
+0

Привет Лиля, к сожалению, чем больше строк коды проводки менее вероятно, ваш вопрос будет дан ответ, и у вас есть 366, который является много. Кроме того, ваш код не воспроизводится, поскольку у нас нет вашей базы данных. Это помогло бы, если бы вы отправили меньше кода и что-то, что мы все можем вступить в VS и просто работать, в идеале, абстрагируя вашу конкретную проблему до более общей. Например, база данных представляет собой набор строк, которые являются наборами ячеек, возможно (для демонстрационных целей), у вас может быть только массив объектов. –

+0

Здравствуйте, Крис благодарит вас за помощь в решении моей проблемы. Я подставляю код ссылкой, чтобы увидеть демо. Также я включил второй вариант для загрузки ретранслятора. Еще раз спасибо! – Lily

+0

Спасибо, Лили, мы приближаемся к чему-то, с чем мы работаем. Я бы рекомендовал прочитать [этот (к сожалению, длинный) пост об конвертации HTML в PDF] (http://stackoverflow.com/a/25164258/231316). Сначала (параграф 5) вы обнаружите, что «HTMLWorker» устарел, больше не поддерживается и имеет очень простой базовый парсер HTML/CSS. Вместо этого вы должны переключиться на 'XMLWorker'. Второй (параграф 4), как только iTextSharp участвует, * ASP.Net больше не имеет значения *, и там * должен * быть только HTML и CSS. Если бы вы могли опубликовать очень маленький пример своих HTML и CSS, мы могли бы помочь вам больше. –

ответ

0

В конечном счете, ваша проблема в том, что вы используете устаревший HTML-парсер, вы на самом деле должны быть получение предупреждение из вашей IDE, если вы используете последнюю версию iTextSharp, и если у вас много устаревшего кода, действительно нет веской причины не использовать самую последнюю версию. Если вы используете версию 4.x из-за различий в лицензии, я настоятельно рекомендую вам прочитать fourth block on this page.

Независимо от того, HTMLWorker имеет очень ограниченную поддержку команд стиля, а border не является одним из них. Если вы хотите продолжить использовать HTMLWorker, прочитайте fifth paragraph here, в котором рассказывается, какие атрибуты вы можете использовать. Если вы хотите изменить границы с помощью HTMLWorker вы единственный вариант, который я знаю устанавливает его на самом HTML тег:

<table border="1"> 

Однако, если вы переключитесь на XMLWorker ваш код будет работать, как и ожидалось до тех пор, как вы измените свое border-width свойства фактической единицы как 1px:

<table style="border-style:solid; border-width: 1px;"> 
+0

Спасибо, что так много Крис !!! Я перейду на XMLWorker. – Lily

Смежные вопросы