【发布时间】:2017-05-19 01:22:15
【问题描述】:
我有一些生成 PDF 的代码。由于某种原因,这一行的图像后面出现了一个黑色边框的单元格:
sb.AppendLine("<tr><td>" + "~/images/Products/" + imageName + "</td><td>~/images/spacer.gif</td></tr>");
我已尝试将表格上的边框设置为 0,但我收到错误“)预期”,或者 html 刚刚中断。
如何确保此单元格周围不显示边框?
这里涉及到两个部分:
//add images
str = new StringBuilder();
str.Append("<table>");
if (HasRelatedImages(ContentId, ref str))
{
obj = new List<FieldIdentifier>();
obj.Add(new FieldIdentifier() { LabelName = "Images", Value = "" });
index = index + 1;
rows.Add(index, obj);
obj = new List<FieldIdentifier>();
obj.Add(new FieldIdentifier() { LabelName = "NewTable_Data", Value = str.Append("</table>").ToString() });
index = index + 1;
rows.Add(index, obj);
}
//end images
和
private Boolean HasRelatedImages(long productId, ref StringBuilder sb)
{
var imagemetadata = new List<ImageMetadata>();
int i = 0;
try
{
Database db = DatabaseFactory.CreateDatabase("Site.DbConnection");
DbCommand dbCommand = db.GetStoredProcCommand("[spSelectImages]");
db.AddInParameter(dbCommand, "@ContentID", DbType.Int64, productId);
IDataReader dr = db.ExecuteReader(dbCommand);
while (dr.Read())
{
string imageName = GetNullableDBStringValue(dr["ImageName"]);
string altText = GetNullableDBStringValue(dr["ALTText"]);
altText = HttpUtility.HtmlEncode(altText);
if (!string.IsNullOrEmpty(imageName) && System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("~/images/Products/" + imageName)))
{
i++;
sb.AppendLine("<tr><td>" + i.ToString() + "</td><td>" + (string.IsNullOrEmpty(altText) ? " " : altText) + "</td></tr>");
sb.AppendLine("<tr><td>" + "~/images/Products/" + imageName + "</td><td>~/images/spacer.gif</td></tr>");
}
}
dr.Close();
}
catch
{
}
if (i > 0) return true;
return false;
}
【问题讨论】:
-
能否请您提供一个 plunkr 与您面临的问题
-
能否添加将边框设置为0导致错误的代码?
-
str.Append("
");它实际上给了我一个语法错误。我只是不知道如何在这里更改边框属性。
如果我像 str.Append("");然后所有的 HTML 都会显示在 pdf 上。
您是否尝试转义引号?即str.Append("<table border=\"0\">");
标签: html css asp.net .net stringbuilder