public PdfPrinter(string path, Layout layout, Pdf.PdfFontSetting fontSetting)
{
Rectangle pdfPageSize;
switch (layout.PageSize)
{
case PageSize.A5Portrait:
pdfPageSize = iTextPageSize.A5;
break;
case PageSize.A4Landscape:
pdfPageSize = iTextPageSize.A4.Rotate();
break;
default:
throw new NotSupportedException();
}
_font = fontSetting.Font.CreateBaseFont(RunDirection.Vertical, false);
_isPsuedoVertical = fontSetting.Font.PsuedoVertical;
_headerFont = fontSetting.Font.CreateBaseFont(RunDirection.Horizontal, true);
_latinFont = fontSetting.LatinFont.CreateBaseFont(RunDirection.Horizontal, true);
_latinBaselineOffsetRatio = fontSetting.LatinBaselineOffsetRatio;
_nombreFont = fontSetting.LatinFont.CreateBaseFont(RunDirection.Horizontal, true);
_symbolFont = fontSetting.SymbolFont.CreateBaseFont(RunDirection.Vertical, false);
_doc = new Document(pdfPageSize);
_isMirrorEnabled = layout.Mirroring;
_initialX = pdfPageSize.Width - layout.RightMargin - layout.FontSize / 2;
_initialXMirrored = layout.RightMargin + layout.FontSize * 2 + layout.Leading * (layout.NumberOfLines - 2);
_initialY = pdfPageSize.Height - layout.TopMargin;
_pageX = pdfPageSize.Width - layout.PageNumberRightMargin;
_pageY = pdfPageSize.Height - layout.PageNumberTopMargin;
_pageFontSize = 10.5F;
_pageHeaderOffset = layout.PageHeaderOffset;
_writer = PdfWriter.GetInstance(_doc, new FileStream(path, FileMode.Create));
_writer.RunDirection = PdfWriter.RUN_DIRECTION_RTL;
_writer.ViewerPreferences = PdfWriter.DirectionR2L | (layout.Mirroring ? PdfWriter.PageLayoutTwoPageRight : 0);
_writer.SetFullCompression();
_fontSizeChanged = true;
_pageNumber = 0;
}