2013-08-29 2 views
0

Я хочу проанализировать элемент панели управления asp.net, который состоит из таблицы html (с 4 столбцами) в документе PD. Я установил для страницы А4 и все поля равны 10. Когда мой pdf-файл создан, есть очень большие левые и правые поля. Как я могу получить права налево и поля?iTextSharp игнорирует поля во вновь создаваемом PDF

Это код используется:

Dim strFileName = "CBB_" & lblZoekCriteria.Text & ".pdf" 

Response.ContentType = "application/pdf" 
Response.AddHeader("content-disposition", "attachment;filename=" & strFileName) 
Response.Cache.SetCacheability(HttpCacheability.NoCache) 
Dim sw As New StringWriter() 
Dim hw As New HtmlTextWriter(sw) 
'Me.Page.RenderControl(hw) 
pnlProtestInfo.RenderControl(hw) 

Dim sr As New StringReader(sw.ToString()) 
Dim pdfDoc As New Document(PageSize.A4, 10, 10, 10, 10) 
Dim htmlparser As New HTMLWorker(pdfDoc) 
PdfWriter.GetInstance(pdfDoc, Response.OutputStream) 
pdfDoc.Open() 
htmlparser.Parse(sr) 
pdfDoc.Close() 
Response.Write(pdfDoc) 
Response.[End]() 

ответ

1

При настройке полей вы инструктируете IText к не рисовать в этих областях, это все. Вы не рассказывая iText, как широко нарисовать что угодно.

Не видя HTML, что вы разбираете, я не могу точно сказать, что исправить. однако ниже - очень простой пример, который использует таблицу, которая установлена ​​на 100% ширину, которая должна делать то, что вы ищете.

Кроме того, помните, что HTMLWorker является старым и неподдерживаемым, и в нем поддерживаются только самые основные из HTML и CSS-тегов и атрибутов. Вместо этого вам рекомендуется перейти на XMLWorker.

''//Output a file to the desktop 
Dim strFileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "test.pdf") 

''//Out very basic sample HTML 
Dim sampleHtml = <table border="1" width="100%" align="center"> 
        <tr> 
         <td>0:0</td> 
         <td>0:1</td> 
        </tr> 
        <tr> 
         <td>1:0</td> 
         <td>1:1</td> 
        </tr> 
       </table> 

''//Standard PDF setup, nothing special 
Using fs As New FileStream(strFileName, FileMode.Create, FileAccess.Write, FileShare.None) 

    ''//Create our document with margins specified 
    Using pdfDoc As New Document(PageSize.A4, 10, 10, 10, 10) 
     Using PdfWriter.GetInstance(pdfDoc, fs) 

      pdfDoc.Open() 

      ''//Parse our HTML into the document 
      Using sr As New StringReader(sampleHtml.ToString()) 
       Using htmlparser As New HTMLWorker(pdfDoc) 
        htmlparser.Parse(sr) 
       End Using 
      End Using 

      pdfDoc.Close() 
     End Using 
    End Using 
End Using 
Смежные вопросы