public void BeginMarkedContentSequence(PdfStructureElement struc)
{
PdfObject obj = struc.Get(PdfName.K);
int mark = pdf.GetMarkPoint();
if (obj != null) {
PdfArray ar = null;
if (obj.IsNumber()) {
ar = new PdfArray();
ar.Add(obj);
struc.Put(PdfName.K, ar);
}
else if (obj.IsArray()) {
ar = (PdfArray)obj;
if (!ar[0].IsNumber())
throw new ArgumentException(MessageLocalization.GetComposedMessage("the.structure.has.kids"));
}
else
throw new ArgumentException(MessageLocalization.GetComposedMessage("unknown.object.at.k.1", obj.GetType().ToString()));
PdfDictionary dic = new PdfDictionary(PdfName.MCR);
dic.Put(PdfName.PG, writer.CurrentPage);
dic.Put(PdfName.MCID, new PdfNumber(mark));
ar.Add(dic);
struc.SetPageMark(writer.PageNumber - 1, -1);
}
else {
struc.SetPageMark(writer.PageNumber - 1, mark);
struc.Put(PdfName.PG, writer.CurrentPage);
}
pdf.IncMarkPoint();
SetMcDepth(GetMcDepth() + 1);
content.Append(struc.Get(PdfName.S).GetBytes()).Append(" <</MCID ").Append(mark).Append(">> BDC").Append_i(separator);
}