我使用mvc4,在这里我使用razorpdf将我的视图转换为Unable to cast object of type iTextSharp.text.Paragraph to type iTextSharp.text.Table,但是我得到了一个错误- pdf。
这是我正在使用的示例代码:
@{
Layout = "~/Views/Shared/_PdfLayout.cshtml";
}
<html>
<body>
<table border="1" width='500' bordercolor="RED"><tr><td colspan="3" bgcolor="LightGreen" align="center" valign="top">SSLC Marks Sheet 2013</td></tr></table></body>
</html>发布于 2013-10-25 01:41:37
由于您的代码使用的是_PdfLayout.chtml,因此需要使用iTextSharp而不是html格式编写代码。删除body标记,将<tr>更改为<row>,将<td>更改为<cell>,然后使用<chunk> your text here </chunk>在每个单元格中保存文本。下面是一个示例:
<paragraph style="font-family:Tahoma;font-size:18;font-style:normal;"&
<chunk style="font-weight:bold;">Customer Address Report</chunk>
</paragraph>
<table width="100%" cellpadding="0" cellspacing="0.5" widths="16;12;12;12;12;12;12;12" borderwidth="1.0" left="true" right="true" top="true" bottom="true" red="0" green="0" blue="0">
<row>
<cell borderwidth="0.5" left="true" right="true" top="true" bottom="true" horizontalalign="Center">
<chunk style="font-size:10;font-weight:bold;">Customer Name</chunk>
</cell>
<cell borderwidth="0.5" left="true" right="true" top="true" bottom="true" horizontalalign="Center">
<chunk style="font-size:10;font-weight:bold;">Address 1</chunk>
</cell>
<cell borderwidth="0.5" left="true" right="true" top="true" bottom="true" horizontalalign="Center">
<chunk style="font-size:10;font-weight:bold;" align="Center">Address 2</chunk>
</cell>
<cell borderwidth="0.5" left="true" right="true" top="true" bottom="true" horizontalalign="Center">
<chunk style="font-size:10;font-weight:bold;" align="Center">Address 3</chunk>
</cell>
<cell borderwidth="0.5" left="true" right="true" top="true" bottom="true" horizontalalign="Center">
<chunk style="font-size:10;font-weight:bold;" align="Center">City</chunk>
</cell>
<cell borderwidth="0.5" left="true" right="true" top="true" bottom="true" horizontalalign="Center">
<chunk style="font-size:10;font-weight:bold;" align="Center">State</chunk>
</cell>
<cell borderwidth="0.5" left="true" right="true" top="true" bottom="true" horizontalalign="Center">
<chunk style="font-size:10;font-weight:bold;" align="Center">Postal Code</chunk>
</cell>
<cell borderwidth="0.5" left="true" right="true" top="true" bottom="true" horizontalalign="Center">
<chunk style="font-size:10;font-weight:bold;" align="Center">Country</chunk>
</cell>
</row>
@foreach (var item in Model)
{
<row>
<cell borderwidth="0.5" left="true" right="true" top="true" bottom="true">
<chunk style="font-size:10;font-weight:normal;">@Html.DisplayFor(modelItem => item.customerName)</chunk>
</cell>
<cell borderwidth="0.5" left="true" right="true" top="true" bottom="true">
<chunk style="font-size:10;font-weight:normal;">@Html.DisplayFor(modelItem => item.addr1)</chunk>
</cell>
<cell borderwidth="0.5" left="true" right="true" top="true" bottom="true">
<chunk style="font-size:10;font-weight:normal;">@Html.DisplayFor(modelItem => item.addr2)</chunk>
</cell>
<cell borderwidth="0.5" left="true" right="true" top="true" bottom="true">
<chunk style="font-size:10;font-weight:normal;">@Html.DisplayFor(modelItem => item.addr3)</chunk>
</cell>
<cell borderwidth="0.5" left="true" right="true" top="true" bottom="true">
<chunk style="font-size:10;font-weight:normal;">@Html.DisplayFor(modelItem => item.city)</chunk>
</cell>
<cell borderwidth="0.5" left="true" right="true" top="true" bottom="true">
<chunk style="font-size:10;font-weight:normal;">@Html.DisplayFor(modelItem => item.state)</chunk>
</cell>
<cell borderwidth="0.5" left="true" right="true" top="true" bottom="true">
<chunk style="font-size:10;font-weight:normal;">@Html.DisplayFor(modelItem => item.postalCode)</chunk>
</cell>
<cell borderwidth="0.5" left="true" right="true" top="true" bottom="true">
<chunk style="font-size:10;font-weight:normal;">@Html.DisplayFor(modelItem => item.country)</chunk>
</cell>
</row>
}
</table>发布于 2014-08-19 16:36:26
我坐着与相同的问题,似乎你不能使用传统的css在您的html内容…只有某些内联样式设置有效。下面是我如何在生成的表中获得一些样式的示例。
顺便说一下,我的布局设置为null (Layout = null),否则它将无法工作……我这样做是因为我没有用语法制作表格的知识
<itext creationdate="@DateTime.Now.ToString()" producer="RazorPDF">
<table>
<tr>
<th align="center">@Model.CampaignName</th>
</tr>
</table>
<h4>@ViewBag.CampaignName</h4>
<table border="1" cellpadding="3">
<thead>
<tr>
<td colspan="5" align="center">
<strong>Delivery List</strong>
</td>
</tr>
<tr>
<th>@Html.DisplayNameFor(m => m.DeliveryList.FirstOrDefault().ShopName)</th>
<th width="35%">@Html.DisplayNameFor(m => m.DeliveryList.FirstOrDefault().MediaTypeName)</th>
<th>@Html.DisplayNameFor(m => m.DeliveryList.FirstOrDefault().Count)</th>
<th>@Html.DisplayNameFor(m => m.DeliveryList.FirstOrDefault().Width)</th>
<th>@Html.DisplayNameFor(m => m.DeliveryList.FirstOrDefault().Height)</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model.DeliveryList)
{
<tr>
<th>@Html.DisplayFor(m => item.ShopName) - @item.ShopAddress</th>
<td>@Html.DisplayFor(m => item.MediaTypeName)</td>
<th>@Html.DisplayFor(m => item.Count)</th>
<td>@Html.DisplayFor(m => item.Width)</td>
<td>@Html.DisplayFor(m => item.Height)</td>
</tr>
}
</tbody>
</table>
<br />
<table border="1" cellpadding="3">
<thead>
<tr>
<td colspan="5" align="center">
<strong>Production List</strong>
</td>
</tr>
<tr>
<th>@Html.DisplayNameFor(m => m.ProductionList.FirstOrDefault().MediaTypeName)</th>
<th width="45%">@Html.DisplayNameFor(m => m.ProductionList.FirstOrDefault().Comments)</th>
<th>@Html.DisplayNameFor(m => m.ProductionList.FirstOrDefault().CountAll)</th>
<th>@Html.DisplayNameFor(m => m.ProductionList.FirstOrDefault().Width)</th>
<th>@Html.DisplayNameFor(m => m.ProductionList.FirstOrDefault().Height)</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model.ProductionList)
{
<tr>
<td>@Html.DisplayFor(m => item.MediaTypeName)</td>
<th width="30%">@Html.DisplayFor(m => item.Comments)</th>
<th>@Html.DisplayFor(m => item.CountAll)</th>
<th>@Html.DisplayFor(m => item.Width)</th>
<th>@Html.DisplayFor(m => item.Height)</th>
</tr>
}
</tbody>
</table>
</itext>https://stackoverflow.com/questions/17895244
复制相似问题