Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net iTextSharp 5.4.2:固定表格中列的宽度_.net_C# 4.0_Pdf Generation_Itextsharp - Fatal编程技术网

.net iTextSharp 5.4.2:固定表格中列的宽度

.net iTextSharp 5.4.2:固定表格中列的宽度,.net,c#-4.0,pdf-generation,itextsharp,.net,C# 4.0,Pdf Generation,Itextsharp,我正在使用以下代码使用iTextSharp库版本5.4.2生成PDF文档 // Create a Document object var document = new Document(PageSize.A4, 50, 50, 25, 25); // Create a new PdfWriter object, specifying the output stream var output = new MemoryStream();

我正在使用以下代码使用iTextSharp库版本5.4.2生成PDF文档

// Create a Document object
        var document = new Document(PageSize.A4, 50, 50, 25, 25);

        // Create a new PdfWriter object, specifying the output stream
        var output = new MemoryStream();
        var writer = PdfWriter.GetInstance(document, output);

        // Open the Document for writing
        document.Open();



    //Gets System.Web.UI.WebControls.Table
    //Returns HTML table with 4 coulms

        var flowsheetTable = GetTable(report);


        var stringWriter = new StringWriter();
        using (var htmlWriter = new HtmlTextWriter(stringWriter))
        {
            flowsheetTable.RenderControl(htmlWriter);
        }


        List<IElement> htmlarraylist = HTMLWorker.ParseToList(new StringReader(stringWriter.ToString()), null);
        for (int k = 0; k < htmlarraylist.Count; k++)
        {
            document.Add((IElement)htmlarraylist[k]);
        }


        document.Close();

        Response.ContentType = "application/pdf";
        Response.AddHeader("Content-Disposition", "attachment;filename=Receipt-test.pdf");
        Response.BinaryWrite(output.ToArray());
//创建文档对象
var文件=新文件(PageSize.A4、50、50、25、25);
//创建新的PdfWriter对象,指定输出流
var输出=新的MemoryStream();
var writer=PdfWriter.GetInstance(文档,输出);
//打开文档进行写作
document.Open();
//获取System.Web.UI.WebControl.Table
//返回包含4个coulm的HTML表
var flowsheetTable=GetTable(报告);
var stringWriter=新的stringWriter();
使用(var htmlWriter=new HtmlTextWriter(stringWriter))
{
流程图。渲染控制(htmlWriter);
}
List htmlaraylist=HTMLWorker.parsetList(新的StringReader(stringWriter.ToString()),null);
for(int k=0;k
方法GetTable()返回一个System.Web.UI.WebControl.Table,该表有4列是否有办法固定表中第一列的宽度。我希望第一列占总宽度的40%。


感谢您

当您在
IElement
对象集合中循环时,您可以单独施放、检查和修改每个对象。在您的情况下,您可能希望执行以下操作:

//Sample table with four columns
var sampleTable = "<table><tr><td>A</td><td>B</td><td>C</td><td>D</td></tr></table>";

//Parse sample HTML to collection if IElement objects
List<IElement> htmlarraylist = HTMLWorker.ParseToList(new StringReader(sampleTable), null);

//Declare variables for use below
IElement ele;
PdfPTable t;

//Loop through the collection
for (int k = 0; k < htmlarraylist.Count; k++) {

    //Get the individual item (no cast should be needed)
    ele = htmlarraylist[k];

    //If the item is a PdfPTable
    if (ele is PdfPTable) {

        //Get and cast it
        t = ele as PdfPTable;

        //Set the widths (40%/20%/20%/20%)
        t.SetWidths(new float[] { 4, 2, 2, 2 });

    }

    //Regardless of what was done above, add the object to our document
    document.Add(ele);
}
//具有四列的示例表
var sampleTable=“ABCD”;
//将示例HTML解析为集合if IEElement对象
List htmlaraylist=HTMLWorker.parsetList(新StringReader(sampleTable),null);
//声明下面使用的变量
IELENT ele;
PDFPT表;
//循环遍历集合
for(int k=0;k
样式表在html到pdf格式(宽度)中不起作用。能否提供html代码。谢谢您的回复。还有什么方法可以使用CSS类呢。我所知道的是我们需要在单个标记上应用CSS类。因此,如果我在标记上应用某种样式,所有标记都将使用相同的样式。是否有任何方法可以在单个行/列上应用样式。有关将样式表与
HTMLWorker
一起使用的信息,请参见此。另外,
HTMLWorker
被弃用,取而代之的是
XMLWorker
。我们强烈鼓励您使用更新的类,因为这是所有活动开发的重点。谢谢您的快速回复。我确实在前面看到过这个链接,但它们将样式应用于单个标记。因此,如果我将某些样式应用于标记,则相同的样式将应用于所有标记,我正在寻找一种方法,使用该方法,如果某个元素用于某个样式,则只应应用它。上面的链接是每个标记的规则,因此
H1
的处理方式将不同于
P
。但是您也可以使用CSS类,请参见此链接