我有一个几乎正常工作的iTextSharp应用程序 - 但在一个部分我有一行文字和一个图像,我想确保我对文件做的其他事情(插入或删除上面的文字) ),不会在它们之间插入分页符。
如果我创建一个段落并添加3个项目:
1) new Chunk("Header Text")
2) new Chunk("\n")
3) new Image(...), ScaleToFit(60x100) for testing
图像显示正常。但是如果我然后将段落的KeepTogether设置为true,图像就会消失(图像将被绘制的空间还没有,就像我从未添加图像一样段落)。
如果我做同样的事情,只有段落中的第三项是另一个文本块,它都能正常工作。
这是iTextSharp的已知限制/错误吗?
稍后添加:示例代码
Paragraph p;
Document doc = new Document(iTextSharp.text.PageSize.LETTER);
BaseFont helvetica = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
Font font = new Font(helvetica, 10.0f);
PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream("keep.pdf", FileMode.Create));
writer.StrictImageSequence = true;
doc.Open();
Image image = Image.GetInstance(new Uri("http://ecx.images-amazon.com/images/I/81cSsMiRCOL.jpg"));
image.ScaleToFit(92, 115);
doc.Add(new Chunk("Before Image, not in a paragraph\n", font));
doc.Add(image);
doc.Add(new Chunk("\nAfter Image, not in a paragraph", font));
p = new Paragraph(new Chunk("Before Image, not kept together\n", font));
p.Add(image);
p.Add(new Chunk("\nAfter Image, not kept together", font));
doc.Add(p);
p = new Paragraph(new Chunk("Before Image, Kept Together\n", font));
p.Add(image);
p.Add(new Chunk("\nAfter Image, Kept Together", font));
p.KeepTogether = true;
doc.Add(p);
doc.Close();