// ---------------------------------------------------------------------------
public byte[] CreatePdf()
{
using (MemoryStream ms = new MemoryStream()) {
using (document = new Document(PageSize.A5)) {
// step 2
writer = PdfWriter.GetInstance(document, ms);
writer.SetTagged();
// step 3
document.Open();
// step 4
PdfStructureTreeRoot root = writer.StructureTreeRoot;
root.MapRole(new PdfName("chapter"), PdfName.SECT);
root.MapRole(new PdfName("title"), PdfName.H);
root.MapRole(new PdfName("para"), PdfName.P);
top = new PdfStructureElement(
root, new PdfName("chapter")
);
canvas = writer.DirectContent;
column = new ColumnText(canvas);
column.SetSimpleColumn(36, 36, 384, 569);
font = new Font(
BaseFont.CreateFont(
"c:/windows/fonts/arial.ttf", BaseFont.WINANSI, BaseFont.EMBEDDED
), 12
);
using (XmlReader xr = XmlReader.Create(RESOURCE)) {
xr.MoveToContent();
while (xr.Read()) {
switch (xr.NodeType) {
case XmlNodeType.Element:
StartElement(xr.Name);
break;
case XmlNodeType.Text:
buf.Append(Regex.Replace(xr.Value.Trim(), "\n", " "));
break;
case XmlNodeType.EndElement:
EndElement(xr.Name);
break;
}
}
}
}
return ms.ToArray();
}
}