0

HTML テーブル (4 列) で構成される asp.net パネル コントロールを PD ドキュメントに解析したいと考えています。ページサイズを A4 に設定し、すべての余白を 10 に設定しました。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]()
4

1 に答える 1

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
于 2013-08-29T14:06:40.987 に答える