C# 在Itextsharp中找不到多列文本错误
我试图用C#和iTextSharp将pdf页面分成两部分 完成此操作后,我想首先将值添加到第一部分,然后添加到第二部分 我在谷歌上搜索并了解了C# 在Itextsharp中找不到多列文本错误,c#,pdf,itextsharp,C#,Pdf,Itextsharp,我试图用C#和iTextSharp将pdf页面分成两部分 完成此操作后,我想首先将值添加到第一部分,然后添加到第二部分 我在谷歌上搜索并了解了multiclumntext,但在使用时,它给出了一个错误。我正在使用版本5.5.0 代码如下: MultiColumnText columns = new MultiColumnText(); //float left, float right, float gutterwidth, int numcolumns columns.AddRegularC
multiclumntext
,但在使用时,它给出了一个错误。我正在使用版本5.5.0
代码如下:
MultiColumnText columns = new MultiColumnText();
//float left, float right, float gutterwidth, int numcolumns
columns.AddRegularColumns(36f, doc.PageSize.Width - 36f, 24f, 2);
Paragraph para = new Paragraph(text, new Font(Font.NORMAL, 8f));
para.SpacingAfter = 9f;
para.Alignment = Element.ALIGN_JUSTIFIED;
for (int i = 0; i < 8; i++)
{
columns.AddElement(para);
}
doc.Add(columns);
由于几个问题(以及较差的可维护性),该类被删除。改为使用
ColumnText
。@BrunoLowagie我试图使用ColumnText,但无法获取。请您指导我如何在文章中将上述代码与ColumnText一起使用。这里有一个完整的Java示例:(对于一个C#开发者来说,将它移植到C#应该很容易,但不幸的是我不知道C#,并且不是所有的C#开发者都能看到sharp。)@BrunoLowagie我很抱歉地告诉你我不知道java@BrunoLowagie哦,是的!我不是一个java到c的转换器。无论如何,我都会努力,但很难在c中找到正确的方法。让c。
public static void paraPDF(){
//string pdfpath = "D:\\hello\\12.pdf";
string imagepath = "D:\\Bill\\Hello.pdf";
Document doc = new Document();
try
{
string TEXT = "This is some long paragraph that will be added over and over again to prove a point.";
Rectangle[] COLUMNS = {
new Rectangle(36, 36, 290, 806),
new Rectangle(305, 36, 559, 806)
};
PdfWriter writer2= PdfWriter.GetInstance(doc, new FileStream(imagepath, FileMode.Create));
doc.Open();
PdfContentByte canvas = writer2.DirectContent;
ColumnText ct = new ColumnText(canvas);
int side_of_the_page = 0;
ct.SetSimpleColumn(COLUMNS[side_of_the_page]);
int paragraphs = 0;
while (paragraphs < 30)
{
ct.AddElement(new Paragraph(String.Format("Paragraph %s: %s", ++paragraphs, TEXT)));
while (ColumnText.HasMoreText(ct.Go()))
{
if (side_of_the_page == 0)
{
side_of_the_page = 1;
canvas.MoveTo(297.5f, 36);
canvas.LineTo(297.5f, 806);
canvas.Stroke();
}
else
{
side_of_the_page = 0;
doc.NewPage();
}
ct.SetSimpleColumn(COLUMNS[side_of_the_page]);
doc.Close();
}
}