如果这不是一个非常有建设性的问题,我很抱歉,但相信我的问题让我很难受。现在这里是对情况的描述。
我想创建一个pdf页面,将其分成两部分。我用Google搜索并了解ColumnText
可以用来对最新的.dll的itexthsarp做同样的事情。
所以我得到了这样的代码..
public static void paraPDF()
{
string imagepath = "D:\\pdf\\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();
}
catch {
}
}
}
在运行上面的方法时,pdf文件正在创建内部的一些数据,因为大小不是零kb但是我无法打开因为我收到错误... The file is damage and can not be opened in Itextsharp pdf creation
请帮帮我。 提前谢谢。
答案 0 :(得分:1)
你有两个问题:
doc.close()
置于错误的位置。我已经在你的问题中解决了这个问题。这解决了你的文件损坏的问题&#34;问题,揭示了有关字符串格式的第二个问题。在Java中,你可以这样做:
String.format("Paragraph %s: %s", ++paragraphs, TEXT)
在C#中,你需要这样做:
String.Format("Paragraph {0}: {1}", ++paragraphs, TEXT)
免责声明:我不了解C#。我从未写过C#程序。我只是用谷歌搜索答案,这就是我找到的。如果不正确,我还会谷歌。