public virtual byte[] GetContentBuffer(CodePages codepage) { if (string.IsNullOrEmpty(Content)) { return(new byte[0]); } Encoding encoder; switch (codepage) { case CodePages.CP771: // This is the most similar to 771 encoder = System.Text.Encoding.GetEncoding(866); break; case CodePages.CP437: encoder = System.Text.Encoding.GetEncoding(437); break; case CodePages.ASCII: Content = System.Text.RegularExpressions.Regex.Replace(Content, @"[^\u0020-\u007E]", string.Empty); encoder = System.Text.ASCIIEncoding.ASCII; break; default: encoder = System.Text.Encoding.GetEncoding(866); break; } return(encoder.GetBytes(Content)); }
public TemplatePagesContext ScanType(Type type) { if (typeof(TemplateFilter).IsAssignableFromType(type)) { Container.AddSingleton(type); var filter = (TemplateFilter)Container.Resolve(type); TemplateFilters.Add(filter); } else if (typeof(TemplateCode).IsAssignableFromType(type)) { Container.AddSingleton(type); var codePage = (TemplateCode)Container.Resolve(type); CodePages.Add(codePage); } return(this); }
public SharpCodePage GetCodePage(string virtualPath) { var sanitizePath = virtualPath.Replace('\\', '/').TrimPrefixes("/").LastLeftPart('.'); var isIndexPage = sanitizePath == string.Empty || sanitizePath.EndsWith("/"); var lookupPath = !isIndexPage ? sanitizePath : sanitizePath + IndexPage; if (!CodePages.TryGetValue(lookupPath, out Type type)) { return(null); } var instance = (SharpCodePage)Container.Resolve(type); instance.Init(); return(instance); }
/// <summary> /// REturns empty buffer /// </summary> /// <param name="codepage">Unused</param> /// <returns>zero length byte array</returns> public byte[] GetContentBuffer(CodePages codepage) { return(new byte[0]); }
private void CreatePreview() { var codePage = CodePages.GetCodePage(CodePageIdentifier.ISO_8859_1); var fontName = lstFonts.SelectedItem?.ToString() ?? ""; var fontSize = (int)numFontSize.Value; var size = int.Parse(cmbNextionFontSize.Text); var width = size / 2; var height = size; var font = new Font(fontName, fontSize, GraphicsUnit.Pixel); var pPreviews = new List <Bitmap>(); var bLightCoral = new SolidBrush(Color.LightCoral); var bLightGreen = new SolidBrush(Color.LightGreen); var bWhite = new SolidBrush(Color.White); var bBlack = new SolidBrush(Color.Black); foreach (var c in codePage.Characters) { var bPreview = new Bitmap(width, height); using (var gPreview = CreateGraphics(bPreview)) { var sChar = gPreview.MeasureString(c.ToString(), font, new PointF(0, 0), StringFormat.GenericTypographic).ToSize(); if (sChar.Width == 0) { sChar.Width = 1; } var bChar = new Bitmap(sChar.Width, sChar.Height); using (var gChar = CreateGraphics(bChar)) { var sb = PreviewTest.Checked ? bChar.Width > bPreview.Width ? bLightCoral : bLightGreen : PreviewBW.Checked ? bWhite : bBlack; gChar.FillRectangle(sb, 0, 0, sChar.Width, sChar.Height); gChar.DrawString(c.ToString(), font, PreviewWB.Checked ? bWhite : bBlack, (float)numCharOffsetX.Value, (float)numCharOffsetY.Value, StringFormat.GenericTypographic ); } gPreview.FillRectangle(PreviewTest.Checked ? bChar.Width > bPreview.Width ? bLightCoral : bLightGreen : PreviewBW.Checked ? bWhite : bBlack, 0, 0, width, height); if (bChar.Width > bPreview.Width) { gPreview.DrawImage(bChar, 0, 0, width, height); } else { gPreview.DrawImage(bChar, (width / 2) - (bChar.Width / 2), 0, bChar.Width, height); } } pPreviews.Add(bPreview); } panelPreview.SuspendLayout(); panelPreview.Controls.Clear(); panelPreview.BackColor = PreviewTest.Checked ? Color.Transparent : PreviewBW.Checked ? Color.White : Color.Black; panelPreview.Controls.AddRange( pPreviews.Select(x => new PictureBox() { Width = width, Height = height, Image = x, Margin = new Padding(3) }).ToArray()); panelPreview.ResumeLayout(); ziFont = ZiFont.FromCharacterBitmaps(fontName + " " + cmbNextionFontSize.Text, (byte)width, (byte)height, codePage, pPreviews, PreviewWB.Checked); }
public abstract override byte[] GetContentBuffer(CodePages codepage);
/// <summary> /// Fetch this image in a format that Reliance understands /// </summary> /// <param name="codepage">Unused</param> /// <returns>byte array</returns> public override byte[] GetContentBuffer(CodePages codepage) { return(base.Image.GetAsRaster()); }