public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName) { _errorCount = 0; int number = 0; foreach (string line in lines) { if (line.Trim().Length > 0 && line.Trim('-').Trim().Length > 0) { if (RegexTimeCodes.Match(line).Success) { string[] threePart = line.Split(",".ToCharArray(), StringSplitOptions.None); var p = new Paragraph(); if (threePart.Length > 2 && line.Length > 58 && GetTimeCode(p.StartTime, threePart[0].Trim()) && GetTimeCode(p.EndTime, threePart[1].Trim())) { number++; p.Number = number; p.Text = line.Remove(0, 57).Trim().Replace(" | ", Environment.NewLine).Replace("|", Environment.NewLine); subtitle.Paragraphs.Add(p); } } else { _errorCount++; } } } }
private static string FormatText(Paragraph p) { string text = p.Text; while (text.Contains(Environment.NewLine + Environment.NewLine)) text = text.Replace(Environment.NewLine + Environment.NewLine, Environment.NewLine); return text; }
static void Main(string[] args) { Console.Write("Username: "******"C:\Users\" + user + @"\Desktop\test.docx", WordprocessingDocumentType.Document); MainDocumentPart main = package.AddMainDocumentPart(); main.Document = new Document(); Document document1 = main.Document; Body body = document1.AppendChild(new Body()); document1 = package.MainDocumentPart.Document; document1.Save(); OpenXmlHelper document = new OpenXmlHelper(package, main); //You will have to have all the files below if you want to successfully test this. //Image Formats Paragraph para = new Paragraph(); Run run = new Run(); run.AppendChild(new Text("These are Image Formats")); para.AppendChild(run); document.AddParagraph(para); document.AddImage(@"C:\Users\" + user + @"\Desktop\test\test.jpg"); document.AddImage(@"C:\Users\" + user + @"\Desktop\test\test.gif"); document.AddImage(@"C:\Users\" + user + @"\Desktop\test\test.png"); document.AddImage(@"C:\Users\" + user + @"\Desktop\test\test.tif"); document.AddImage(@"C:\Users\" + user + @"\Desktop\test\test.bmp"); document.AddImage(@"C:\Users\" + user + @"\Desktop\test\test.ico"); //Office XML Formats para = new Paragraph(); run = new Run(); run.AppendChild(new Text("These are Office XML Formats")); para.AppendChild(run); document.AddParagraph(para); document.AddObject(@"C:\Users\" + user + @"\Desktop\test\test.docx","test.docx"); document.AddObject(@"C:\Users\" + user + @"\Desktop\test\test.xlsx", "test.xlsx"); document.AddObject(@"C:\Users\" + user + @"\Desktop\test\test.pptx", "test.pptx"); //Office Basic Formats para = new Paragraph(); run = new Run(); run.AppendChild(new Text("These are Office Basic Formats")); para.AppendChild(run); document.AddParagraph(para); document.AddObject(@"C:\Users\" + user + @"\Desktop\test\test.doc", "test.doc"); document.AddObject(@"C:\Users\" + user + @"\Desktop\test\test.xls", "test.xls"); document.AddObject(@"C:\Users\" + user + @"\Desktop\test\test.vsd", "test.vsd"); //Object Formats para = new Paragraph(); run = new Run(); run.AppendChild(new Text("These are Object Formats")); para.AppendChild(run); document.AddParagraph(para); document.AddObject(@"C:\Users\" + user + @"\Desktop\test\test.xml", "test.xml"); document.AddObject(@"C:\Users\" + user + @"\Desktop\test\test.txt", "test.txt"); document.AddObject(@"C:\Users\" + user + @"\Desktop\test\test.pdf", "test.pdf"); document.AddObject(@"C:\Users\" + user + @"\Desktop\test\test.zip", "test.zip"); document.Close(); Console.WriteLine("Press any key to exit"); Console.ReadKey(); }
public static void WriteSubtitleBlock(FileStream fs, Paragraph p, int number) { fs.WriteByte(0); fs.WriteByte((byte)(number % 256)); // number - low byte fs.WriteByte((byte)(number / 256)); // number - high byte fs.WriteByte(0xff); fs.WriteByte(0); WriteTimeCode(fs, p.StartTime); WriteTimeCode(fs, p.EndTime); fs.WriteByte(1); fs.WriteByte(2); fs.WriteByte(0); var buffer = Encoding.GetEncoding(1252).GetBytes(p.Text.Replace(Environment.NewLine, "Š")); if (buffer.Length <= 128) { fs.Write(buffer, 0, buffer.Length); for (int i = buffer.Length; i < TextLength; i++) { fs.WriteByte(0x8f); } } else { for (int i = 0; i < TextLength; i++) { fs.WriteByte(buffer[i]); } } }
/// <summary> /// Add a new paragraph. /// </summary> protected void Add(string text, bool updateVisible) { Paragraph ce = null; if (mParagraphs.Count < maxEntries) { ce = new Paragraph(); } else { ce = mParagraphs[0]; mParagraphs.RemoveAt(0); } ce.text = text; mParagraphs.Add(ce); if (textLabel != null && textLabel.font != null) { // Rebuild the line ce.lines = textLabel.font.WrapText(ce.text, maxWidth / textLabel.transform.localScale.y, true, true).Split(mSeparator); // Recalculate the total number of lines mTotalLines = 0; foreach (Paragraph p in mParagraphs) mTotalLines += p.lines.Length; } // Update the visible text if (updateVisible) UpdateVisibleText(); }
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName) { _errorCount = 0; int number = 0; foreach (string line in lines) { if (line.Trim().Length > 0 && line[0] != '$' && !line.StartsWith("//")) { if (RegexTimeCodes.Match(line).Success) { string[] toPart = line.Substring(0, 25).Split(new[] { " ," }, StringSplitOptions.None); Paragraph p = new Paragraph(); if (toPart.Length == 2 && DvdStudioPro.GetTimeCode(p.StartTime, toPart[0]) && DvdStudioPro.GetTimeCode(p.EndTime, toPart[1])) { number++; p.Number = number; string text = line.Substring(27).Trim(); p.Text = text.Replace(" | ", Environment.NewLine).Replace("|", Environment.NewLine); p.Text = DvdStudioPro.DecodeStyles(p.Text); subtitle.Paragraphs.Add(p); } } else { _errorCount++; } } } }
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName) { //00:03:15:22 00:03:23:10 This is line one. //This is line two. subtitle.Paragraphs.Clear(); _errorCount = 0; foreach (string line in lines) { if (RegexTimeCodes.IsMatch(line)) { string temp = line.Substring(0, RegexTimeCodes.Match(line).Length); string start = temp.Substring(0, 11); string end = temp.Substring(12, 11); string[] startParts = start.Split(new[] { ':' }, StringSplitOptions.RemoveEmptyEntries); string[] endParts = end.Split(new[] { ':' }, StringSplitOptions.RemoveEmptyEntries); if (startParts.Length == 4 && endParts.Length == 4) { string text = line.Remove(0, RegexTimeCodes.Match(line).Length - 1).Trim(); text = text.Replace("//", Environment.NewLine); var p = new Paragraph(DecodeTimeCode(startParts), DecodeTimeCode(endParts), text); subtitle.Paragraphs.Add(p); } } else { _errorCount += 10; } } subtitle.Renumber(); }
/// <summary> /// Adds an image to a page using the supplied paragraph. /// </summary> /// <param name="para">The paragraph to an an image to.</param> /// <param name="page">The page number the paragraph appears on.</param> public static void AddImageToPage(Paragraph para, int page) { Document doc = (Document)para.Document; DocumentBuilder builder = new DocumentBuilder(doc); builder.MoveTo(para); // Add a logo to the top left of the page. The image is placed infront of all other text. Shape shape = builder.InsertImage(gDataDir + "Aspose Logo.png", RelativeHorizontalPosition.Page, 60, RelativeVerticalPosition.Page, 60, -1, -1, WrapType.None); // Add a textbox next to the image which contains some text consisting of the page number. Shape textBox = new Shape(doc, ShapeType.TextBox); // We want a floating shape relative to the page. textBox.WrapType = WrapType.None; textBox.RelativeHorizontalPosition = RelativeHorizontalPosition.Page; textBox.RelativeVerticalPosition = RelativeVerticalPosition.Page; // Set the textbox position. textBox.Height = 30; textBox.Width = 200; textBox.Left = 150; textBox.Top = 80; // Add the textbox and set text. textBox.AppendChild(new Paragraph(doc)); builder.InsertNode(textBox); builder.MoveTo(textBox.FirstChild); builder.Writeln("This is a custom note for page " + page); }
/// <summary> /// Add a new paragraph. /// </summary> protected void Add (string text, bool updateVisible) { Paragraph ce = null; if (mParagraphs.Count < maxEntries) { ce = new Paragraph(); } else { ce = mParagraphs[0]; mParagraphs.RemoveAt(0); } ce.text = text; mParagraphs.Add(ce); if (textLabel != null && textLabel.font != null) { // Rebuild the line Vector3 scale = textLabel.transform.localScale; string line; textLabel.font.WrapText(ce.text, out line, maxWidth / scale.x, maxHeight / scale.y, textLabel.maxLineCount, textLabel.supportEncoding, textLabel.symbolStyle); ce.lines = line.Split(mSeparator); // Recalculate the total number of lines mTotalLines = 0; for (int i = 0, imax = mParagraphs.Count; i < imax; ++i) mTotalLines += mParagraphs[i].lines.Length; } // Update the visible text if (updateVisible) UpdateVisibleText(); }
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName) { _errorCount = 0; var regexTimeCode = new Regex(@"^E 1 \d:\d\d:\d\d.\d\d \d:\d\d:\d\d.\d\d Default NTP ", RegexOptions.Compiled); //E 1 0:50:05.42 0:50:10.06 Default NTP subtitle.Paragraphs.Clear(); foreach (string line in lines) { if (regexTimeCode.IsMatch(line)) { try { string timePart = line.Substring(4, 10).Trim(); var start = DecodeTimeCode(timePart); timePart = line.Substring(15, 10).Trim(); var end = DecodeTimeCode(timePart); var paragraph = new Paragraph(); paragraph.StartTime = start; paragraph.EndTime = end; paragraph.Text = line.Substring(38).Replace(" \\n ", Environment.NewLine).Replace("\\n", Environment.NewLine); subtitle.Paragraphs.Add(paragraph); } catch { _errorCount++; } } } subtitle.Renumber(); }
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName) { _errorCount = 0; subtitle.Paragraphs.Clear(); foreach (string line in lines) { var s = line.Trim(); if (s.Length > 35 && RegexTimeCodes.IsMatch(s)) { try { string timePart = s.Substring(4, 10).TrimEnd(); var start = DecodeTimeCode(timePart); timePart = s.Substring(15, 10).Trim(); var end = DecodeTimeCode(timePart); var paragraph = new Paragraph { StartTime = start, EndTime = end }; paragraph.Text = s.Substring(38).Replace(" \\n ", Environment.NewLine).Replace("\\n", Environment.NewLine); subtitle.Paragraphs.Add(paragraph); } catch { _errorCount++; } } } subtitle.Renumber(); }
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName) { //<Time begin="0:03:24.8" end="0:03:29.4" /><clear/>Man stjæler ikke fra Chavo, nej. subtitle.Paragraphs.Clear(); _errorCount = 0; foreach (string line in lines) { try { if (line.Contains("<Time ") && line.Contains(" begin=") && line.Contains("end=")) { int indexOfBegin = line.IndexOf(" begin=", StringComparison.Ordinal); int indexOfEnd = line.IndexOf(" end=", StringComparison.Ordinal); string begin = line.Substring(indexOfBegin + 7, 11); string end = line.Substring(indexOfEnd + 5, 11); string[] startParts = begin.Split(new[] { ':', '.', '"' }, StringSplitOptions.RemoveEmptyEntries); string[] endParts = end.Split(new[] { ':', '.', '"' }, StringSplitOptions.RemoveEmptyEntries); if (startParts.Length == 4 && endParts.Length == 4) { string text = line.Substring(line.LastIndexOf("/>", StringComparison.Ordinal) + 2); var p = new Paragraph(DecodeTimeCode(startParts), DecodeTimeCode(endParts), text); subtitle.Paragraphs.Add(p); } } } catch { _errorCount++; } } subtitle.Renumber(); }
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName) { _errorCount = 0; Paragraph p = null; subtitle.Paragraphs.Clear(); foreach (string line in lines) { if (regexTimeCodes.IsMatch(line)) { p = new Paragraph(DecodeTimeCode(line), new TimeCode(0,0,0,0), string.Empty); subtitle.Paragraphs.Add(p); } else if (line.Trim().Length == 0) { // skip these lines } else if (line.Trim().Length > 0 && p != null) { if (string.IsNullOrEmpty(p.Text)) p.Text = line; else p.Text = p.Text + Environment.NewLine + line; } } foreach (Paragraph p2 in subtitle.Paragraphs) { p2.Text = Utilities.AutoBreakLine(p2.Text); } subtitle.RecalculateDisplayTimes(Configuration.Settings.General.SubtitleMaximumDisplayMilliseconds, null); subtitle.Renumber(1); }
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName) { _errorCount = 0; bool expectStartTime = true; var p = new Paragraph(); subtitle.Paragraphs.Clear(); char[] splitChar = { ':' }; foreach (string line in lines) { string s = line.Trim().Replace("*", string.Empty); var match = RegexTimeCodes.Match(s); if (match.Success) { string[] parts = s.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); if (parts.Length == 4) { try { if (!string.IsNullOrEmpty(p.Text)) { subtitle.Paragraphs.Add(p); p = new Paragraph(); } p.StartTime = DecodeTimeCode(parts[1], splitChar); p.EndTime = DecodeTimeCode(parts[2], splitChar); expectStartTime = false; } catch (Exception exception) { _errorCount++; System.Diagnostics.Debug.WriteLine(exception.Message); } } } else if (string.IsNullOrWhiteSpace(line)) { if (p.StartTime.TotalMilliseconds == 0 && p.EndTime.TotalMilliseconds == 0) _errorCount++; else subtitle.Paragraphs.Add(p); p = new Paragraph(); } else if (!expectStartTime) { p.Text = (p.Text + Environment.NewLine + line).Trim(); if (p.Text.Length > 500) { _errorCount += 10; return; } while (p.Text.Contains(Environment.NewLine + " ")) p.Text = p.Text.Replace(Environment.NewLine + " ", Environment.NewLine); } } if (!string.IsNullOrEmpty(p.Text)) subtitle.Paragraphs.Add(p); subtitle.RemoveEmptyLines(); subtitle.Renumber(); }
/// <summary> /// Generates a hyperlink and embed it /// in a paragraph tag /// </summary> /// <param name="mainDocPart">The main doc part.</param> /// <param name="hyperLink">The hyper link.</param> /// <returns></returns> public static Paragraph GenerateParagraphWithHyperLink(MainDocumentPart mainDocPart, String hyperLink) { //this will be display as //the text String urlLabel = hyperLink; //build the hyperlink //file:// ensure that document does not corrupt System.Uri uri = new Uri(@"file://" + hyperLink); //add it to the document HyperlinkRelationship rel = mainDocPart.AddHyperlinkRelationship(uri, true); //get the hyperlink id string relationshipId = rel.Id; //create the new paragraph tag Paragraph newParagraph = new Paragraph( new DocumentFormat.OpenXml.Wordprocessing.Hyperlink( new ProofError() { Type = ProofingErrorValues.GrammarStart }, new DocumentFormat.OpenXml.Wordprocessing.Run( new DocumentFormat.OpenXml.Wordprocessing.RunProperties( new RunStyle() { Val = "Hyperlink" }), new DocumentFormat.OpenXml.Wordprocessing.Text(urlLabel) )) { History = OnOffValue.FromBoolean(true), Id = relationshipId }); return newParagraph; }
public static Paragraph GenerateStepParagraph(Step step) { // HACK - We need to generate a custom paragraph here because 2 Run objects are needed to allow for the bolded keyword var paragraph = new Paragraph(new ParagraphProperties(new ParagraphStyleId { Val = "Normal" })); // Add comments before step if (step.Comments.Any(o => o.Type == CommentType.StepComment)) { foreach (var comment in step.Comments.Where(o => o.Type == CommentType.StepComment)) { paragraph.Append(new Run(new RunProperties(new Italic()), new Text(comment.Text))); paragraph.Append(new Break()); } } // Add step paragraph.Append(new Run(new RunProperties(new Bold()), new Text(step.NativeKeyword))); var nameText = new Text { Space = SpaceProcessingModeValues.Preserve }; nameText.Text = " " + step.Name; paragraph.Append(new Run(nameText)); // Add comments after step if (step.Comments.Any(o => o.Type == CommentType.AfterLastStepComment)) { paragraph.Append(new Break()); foreach (var comment in step.Comments.Where(o => o.Type == CommentType.AfterLastStepComment)) { paragraph.Append(new Run(new RunProperties(new Italic()), new Text(comment.Text))); paragraph.Append(new Break()); } } return paragraph; }
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName) { var paragraph = new Paragraph(); _errorCount = 0; subtitle.Paragraphs.Clear(); foreach (string line in lines) { if (regexTimeCode.IsMatch(line) && line.Length > 24) { string[] parts = line.Substring(0, 11).Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); if (parts.Length == 4) { try { var start = DecodeTimeCode(parts); parts = line.Substring(12, 11).Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); var end = DecodeTimeCode(parts); paragraph = new Paragraph(); paragraph.StartTime = start; paragraph.EndTime = end; paragraph.Text = line.Substring(24).Trim().Replace("\t", Environment.NewLine); subtitle.Paragraphs.Add(paragraph); } catch { _errorCount++; } } } } subtitle.Renumber(1); }
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName) { //00:01:54:19,00:01:56:17,We should be thankful|they accepted our offer. _errorCount = 0; subtitle.Paragraphs.Clear(); var regexTimeCodes = new Regex(@"^\d\d:\d\d:\d\d:\d\d,\d\d:\d\d:\d\d:\d\d,.+", RegexOptions.Compiled); if (fileName != null && fileName.EndsWith(".stl", StringComparison.OrdinalIgnoreCase)) // allow empty text if extension is ".stl"... regexTimeCodes = new Regex(@"^\d\d:\d\d:\d\d:\d\d,\d\d:\d\d:\d\d:\d\d,", RegexOptions.Compiled); foreach (string line in lines) { if (line.IndexOf(':') == 2 && regexTimeCodes.IsMatch(line)) { string start = line.Substring(0, 11); string end = line.Substring(12, 11); try { Paragraph p = new Paragraph(DecodeTimeCode(start), DecodeTimeCode(end), DecodeText(line.Substring(24))); subtitle.Paragraphs.Add(p); } catch { _errorCount++; } } else if (!string.IsNullOrWhiteSpace(line) && !line.StartsWith("//") && !line.StartsWith('$')) { _errorCount++; } } subtitle.Renumber(); }
/// <summary> /// Generates the paragraph. /// </summary> /// <returns> /// Returns new Paragraph with empty run /// </returns> public static Paragraph GenerateParagraph() { var paragraph = new Paragraph(); var run = new Run(); paragraph.Append(run); return paragraph; }
private static void DrawParagraph(Graphics grph, Paragraph para) { foreach (TextLine line in para.Lines) DrawTextLine(grph, line); para.Draw(grph); }
private void ProcessBody(DocxNode node, ref Paragraph paragraph) { while (node != null) { if (node.IsText) { if (!IsEmptyText(node.InnerHtml)) { if (paragraph == null) { paragraph = body.AppendChild(new Paragraph()); OnParagraphCreated(node, paragraph); } Run run = paragraph.AppendChild(new Run(new Text() { Text = ClearHtml(node.InnerHtml), Space = SpaceProcessingModeValues.Preserve })); RunCreated(node, run); } } else { node.ParagraphNode = node; node.Parent = body; ProcessChild(node, ref paragraph); } node = node.Next; } }
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName) { //<a class="caption" starttime="0" duration="16000">[♪techno music♪]</a> StringBuilder temp = new StringBuilder(); foreach (string l in lines) temp.Append(l); string all = temp.ToString(); if (!all.Contains("class=\"caption\"")) return; Paragraph paragraph = new Paragraph(); _errorCount = 0; subtitle.Paragraphs.Clear(); for (int i = 0; i < lines.Count; i++) { string line = lines[i].Trim(); int indexOfStart = line.IndexOf("starttime="); int indexOfDuration = line.IndexOf("duration="); if (line.Contains("class=\"caption\"") && indexOfStart > 0 && indexOfDuration > 0) { string startTime = "0"; int index = indexOfStart +10; while (index < line.Length && "0123456789\"'.,".Contains(line[index].ToString())) { if ("0123456789,.".Contains(line[index].ToString())) startTime += line[index].ToString(); index++; } string duration = "0"; index = indexOfDuration + 9; while (index < line.Length && "0123456789\"'.,".Contains(line[index].ToString())) { if ("0123456789,.".Contains(line[index].ToString())) duration += line[index].ToString(); index++; } string text = string.Empty; index = line.IndexOf(">", indexOfDuration); if (index > 0 && index+ 1 < line.Length) { text = line.Substring(index + 1).Trim(); index = text.IndexOf("</"); if (index > 0) text = text.Substring(0, index); text = text.Replace("<br />", Environment.NewLine); } int startMilliseconds; int durationMilliseconds; if (text.Length > 0 && int.TryParse(startTime, out startMilliseconds) && int.TryParse(duration, out durationMilliseconds)) subtitle.Paragraphs.Add(new Paragraph(text, startMilliseconds, startMilliseconds + durationMilliseconds)); } } subtitle.Renumber(1); }
public override string ToText(Subtitle subtitle, string title) { //TIMEIN: 01:00:01:09 DURATION: 01:20 TIMEOUT: --:--:--:-- //Broadcasting //from an undisclosed location... //TIMEIN: 01:00:04:12 DURATION: 04:25 TIMEOUT: 01:00:09:07 const string paragraphWriteFormat = "TIMEIN: {0}\tDURATION: {1}\tTIMEOUT: {2}\r\n{3}\r\n"; var sb = new StringBuilder(); foreach (Paragraph p in subtitle.Paragraphs) { // to avoid rounding errors in duration var startFrame = MillisecondsToFramesMaxFrameRate(p.StartTime.Milliseconds); var endFrame = MillisecondsToFramesMaxFrameRate(p.EndTime.Milliseconds); var durationCalc = new Paragraph( new TimeCode(p.StartTime.Hours, p.StartTime.Minutes, p.StartTime.Seconds, FramesToMillisecondsMax999(startFrame)), new TimeCode(p.EndTime.Hours, p.EndTime.Minutes, p.EndTime.Seconds, FramesToMillisecondsMax999(endFrame)), string.Empty); string startTime = string.Format("{0:00}:{1:00}:{2:00}:{3:00}", p.StartTime.Hours, p.StartTime.Minutes, p.StartTime.Seconds, startFrame); string timeOut = string.Format("{0:00}:{1:00}:{2:00}:{3:00}", p.EndTime.Hours, p.EndTime.Minutes, p.EndTime.Seconds, endFrame); string timeDuration = string.Format("{0:00}:{1:00}", durationCalc.Duration.Seconds, MillisecondsToFramesMaxFrameRate(durationCalc.Duration.Milliseconds)); sb.AppendLine(string.Format(paragraphWriteFormat, startTime, timeDuration, timeOut, p.Text)); } return sb.ToString().Trim(); }
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName) { _errorCount = 0; int number = 0; foreach (string line in lines) { if (!string.IsNullOrWhiteSpace(line) && line[0] != '$') { if (RegexTimeCodes.Match(line).Success) { string[] threePart = line.Split(new[] { "\t,\t" }, StringSplitOptions.None); var p = new Paragraph(); if (threePart.Length == 3 && GetTimeCode(p.StartTime, threePart[0]) && GetTimeCode(p.EndTime, threePart[1])) { number++; p.Number = number; p.Text = threePart[2].TrimEnd().Replace(" | ", Environment.NewLine).Replace("|", Environment.NewLine); p.Text = DecodeStyles(p.Text); subtitle.Paragraphs.Add(p); } } else { _errorCount++; } } } }
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName) { //0001 : 01:07:25:08,01:07:29:00,10 _errorCount = 0; Paragraph p = null; subtitle.Paragraphs.Clear(); foreach (string line in lines) { if (line.IndexOf(':') == 5 && RegexTimeCodes.IsMatch(line)) { if (p != null) subtitle.Paragraphs.Add(p); string start = line.Substring(7, 11); string end = line.Substring(19, 11); string[] startParts = start.Split(SplitCharColon); string[] endParts = end.Split(SplitCharColon); if (startParts.Length == 4 && endParts.Length == 4) { p = new Paragraph(DecodeTimeCodeFramesFourParts(startParts), DecodeTimeCodeFramesFourParts(endParts), string.Empty); } } else if (p != null && RegexText.IsMatch(line)) { if (string.IsNullOrEmpty(p.Text)) p.Text = line.Substring(5).Trim(); else p.Text += Environment.NewLine + line.Substring(5).Trim(); } else if (line.Length < 10 && RegexSomeCodes.IsMatch(line)) { } else if (string.IsNullOrWhiteSpace(line)) { // skip these lines } else if (p != null) { if (p.Text != null && Utilities.GetNumberOfLines(p.Text) > 3) { _errorCount++; } else { if (!line.TrimEnd().EndsWith(": --:--:--:--,--:--:--:--,-1", StringComparison.Ordinal)) { if (string.IsNullOrEmpty(p.Text)) p.Text = line.Trim(); else p.Text += Environment.NewLine + line.Trim(); } } } } if (p != null && !string.IsNullOrEmpty(p.Text)) subtitle.Paragraphs.Add(p); subtitle.Renumber(); }
public override string ToText(Subtitle subtitle, string title) { var sb = new StringBuilder(); sb.AppendLine("#\tAppearance\tCaption\t"); sb.AppendLine(); int count = 1; for (int i = 0; i < subtitle.Paragraphs.Count; i++) { Paragraph p = subtitle.Paragraphs[i]; string text = HtmlUtil.RemoveHtmlTags(p.Text); // to avoid rounding errors in duration var startFrame = MillisecondsToFramesMaxFrameRate(p.StartTime.Milliseconds); var endFrame = MillisecondsToFramesMaxFrameRate(p.EndTime.Milliseconds); var durationCalc = new Paragraph( new TimeCode(p.StartTime.Hours, p.StartTime.Minutes, p.StartTime.Seconds, FramesToMillisecondsMax999(startFrame)), new TimeCode(p.EndTime.Hours, p.EndTime.Minutes, p.EndTime.Seconds, FramesToMillisecondsMax999(endFrame)), string.Empty); sb.AppendLine(string.Format("{0}\t{1}\t{2:00}:{3:00}\t{4}\r\n{5}\r\n", count, MakeTimeCode(p.StartTime), durationCalc.Duration.Seconds, MillisecondsToFramesMaxFrameRate(durationCalc.Duration.Milliseconds), MakeTimeCode(p.EndTime), text)); count++; } return sb.ToString(); }
public Paragraph NewParagraph() { Paragraph p = new Paragraph(); if (this.DefaultParagraphStyle != null) p.InsertInProperties(new ParagraphStyleId() { Val = this.DefaultParagraphStyle }); return p; }
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName) { //00:01:54:19,00:01:56:17,We should be thankful|they accepted our offer. _errorCount = 0; subtitle.Paragraphs.Clear(); foreach (string line in lines) { if (line.IndexOf(':') == 2 && RegexTimeCodes.IsMatch(line)) { string start = line.Substring(0, 11); string end = line.Substring(13, 11); try { var startTime = DecodeTimeCodeFramesFourParts(start.Split(SplitCharColon, StringSplitOptions.RemoveEmptyEntries)); var endTime = DecodeTimeCodeFramesFourParts(end.Split(SplitCharColon, StringSplitOptions.RemoveEmptyEntries)); var p = new Paragraph(startTime, endTime, DecodeText(line.Substring(25).Trim())); subtitle.Paragraphs.Add(p); } catch { _errorCount++; } } else if (!string.IsNullOrWhiteSpace(line) && !line.StartsWith("//", StringComparison.Ordinal) && !line.StartsWith('$')) { _errorCount++; } } subtitle.Renumber(); }
public ParagraphEventArgs(double seconds, Paragraph p, Paragraph b, MouseDownParagraphType mouseDownParagraphType) { Seconds = seconds; Paragraph = p; BeforeParagraph = b; MouseDownParagraphType = mouseDownParagraphType; }
private static string MakeTimeCode(TimeCode timeCode, Paragraph last) { double start = 0; if (last != null) start = last.EndTime.TotalSeconds; return string.Format("{0:0.0#}", (timeCode.TotalSeconds - start)); }
private void btnInDanhSachNhanVien_Click(object sender, EventArgs e) { if (dtgNhanVien.Rows.Count > 0) { SaveFileDialog sfd = new SaveFileDialog { Filter = "PDF (*.pdf)|*.pdf", FileName = "nhanvien.pdf" }; bool fileError = false; if (sfd.ShowDialog() == DialogResult.OK) { if (File.Exists(sfd.FileName)) { try { File.Delete(sfd.FileName); } catch (IOException) { fileError = true; MessageBox.Show("Đang có chương trình mở file này!!!"); } } if (!fileError) { try { PdfPTable pdfTable = new PdfPTable(dtgNhanVien.Columns.Count); pdfTable.DefaultCell.Padding = 3; pdfTable.WidthPercentage = 100; pdfTable.HorizontalAlignment = Element.ALIGN_LEFT; BaseFont bf = BaseFont.CreateFont(@"C:\WINDOWS\Fonts\TIMES.TTF", BaseFont.IDENTITY_H, true); iTextSharp.text.Font fonttitle = new iTextSharp.text.Font(bf, 15); iTextSharp.text.Font font = new iTextSharp.text.Font(bf, 10); iTextSharp.text.Font fonttext = new iTextSharp.text.Font(bf, 12); Paragraph header = new Paragraph { Alignment = Element.ALIGN_CENTER }; Paragraph text = new Paragraph(); Chunk c1 = new Chunk("BÁO CÁO THỐNG KÊ NHÂN VIÊN \n", fonttitle); Chunk c2 = new Chunk(DateTime.Now.ToShortDateString() + "\n\n", font); header.Add(c1); header.Add(c2); foreach (DataGridViewColumn column in dtgNhanVien.Columns) { PdfPCell cell = new PdfPCell(new Phrase(column.HeaderText, fonttext)); pdfTable.AddCell(cell); } foreach (DataGridViewRow row in dtgNhanVien.Rows) { foreach (DataGridViewCell cell in row.Cells) { PdfPCell cell1 = new PdfPCell(new Phrase(cell.Value?.ToString(), fonttext)); pdfTable.AddCell(cell1); } } using (FileStream stream = new FileStream(sfd.FileName, FileMode.Create)) { Document pdfDoc = new Document(PageSize.A4, 10f, 20f, 20f, 10f); PdfWriter.GetInstance(pdfDoc, stream); pdfDoc.Open(); pdfDoc.Add(header); pdfDoc.Add(pdfTable); pdfDoc.Close(); stream.Close(); } MessageBox.Show("Xuất dữ liệu thành công!!!"); } catch (Exception) { MessageBox.Show("Có lỗi xảy ra!!!"); } } } else { MessageBox.Show("Không có bản ghi nào được xuất!!!"); } } }
public void ChildElementsTest() { Paragraph p = new Paragraph(); var pPr = p.AppendChild(new ParagraphProperties()); var r = p.AppendChild(new Run()); var rPr = r.AppendChild(new RunProperties()); var b = rPr.Bold = new Bold(); var t = r.AppendChild(new Text("Text")); var unknown1 = p.AppendChild(new OpenXmlUnknownElement("tmp:node", "http://temp")); var unknown2 = unknown1.AppendChild(new OpenXmlUnknownElement("tmp:node2", "http://temp")); var miscNode = p.AppendChild(new OpenXmlMiscNode(System.Xml.XmlNodeType.Comment, "<!-- comment -->")); var emptyListSingleton = EmptyElementList.EmptyElementListSingleton; var emptyEnumeratorSingleton = EmptyEnumerator <OpenXmlElement> .EmptyEnumeratorSingleton; Assert.NotSame(emptyListSingleton, p.ChildElements); Assert.Equal(4, p.ChildElements.Count); var enumerator = p.ChildElements.GetEnumerator(); Assert.NotSame(emptyEnumeratorSingleton, enumerator); Assert.True(enumerator.MoveNext()); Assert.Same(pPr, enumerator.Current); Assert.True(enumerator.MoveNext()); Assert.Same(r, enumerator.Current); Assert.True(enumerator.MoveNext()); Assert.True(enumerator.MoveNext()); Assert.False(enumerator.MoveNext()); // the end // pPr, empty children Assert.Same(emptyListSingleton, pPr.ChildElements); Assert.Equal(0, pPr.ChildElements.Count); enumerator = pPr.ChildElements.GetEnumerator(); Assert.Same(emptyEnumeratorSingleton, enumerator); Assert.False(enumerator.MoveNext()); // r, two child Assert.NotSame(emptyListSingleton, r.ChildElements); Assert.Equal(2, r.ChildElements.Count); enumerator = r.ChildElements.GetEnumerator(); Assert.NotSame(emptyEnumeratorSingleton, enumerator); Assert.True(enumerator.MoveNext()); Assert.Same(rPr, enumerator.Current); // rPr, one child Assert.NotSame(emptyListSingleton, rPr.ChildElements); Assert.Equal(1, rPr.ChildElements.Count); enumerator = rPr.ChildElements.GetEnumerator(); Assert.NotSame(emptyEnumeratorSingleton, enumerator); Assert.True(enumerator.MoveNext()); // b, leaf element Assert.Same(emptyListSingleton, b.ChildElements); Assert.Equal(0, b.ChildElements.Count); enumerator = b.ChildElements.GetEnumerator(); Assert.Same(emptyEnumeratorSingleton, enumerator); Assert.False(enumerator.MoveNext()); // t, leaf text element Assert.Same(emptyListSingleton, t.ChildElements); Assert.Equal(0, t.ChildElements.Count); enumerator = t.ChildElements.GetEnumerator(); Assert.Same(emptyEnumeratorSingleton, enumerator); Assert.False(enumerator.MoveNext()); // unknown1, one child Assert.NotSame(emptyListSingleton, unknown1.ChildElements); Assert.Equal(1, unknown1.ChildElements.Count); enumerator = unknown1.ChildElements.GetEnumerator(); Assert.NotSame(emptyEnumeratorSingleton, enumerator); Assert.True(enumerator.MoveNext()); // unknown2, empty children Assert.Same(emptyListSingleton, unknown2.ChildElements); Assert.Equal(0, unknown2.ChildElements.Count); enumerator = unknown2.ChildElements.GetEnumerator(); Assert.Same(emptyEnumeratorSingleton, enumerator); Assert.False(enumerator.MoveNext()); // miscNode Assert.Same(emptyListSingleton, miscNode.ChildElements); Assert.Equal(0, miscNode.ChildElements.Count); enumerator = miscNode.ChildElements.GetEnumerator(); Assert.Same(emptyEnumeratorSingleton, enumerator); Assert.False(enumerator.MoveNext()); }
public void OpenXmlElementTraversingMethodsTest() { Paragraph para = new Paragraph(); Run r1 = para.AppendChild(new Run()); Bold b1 = r1.AppendChild(new RunProperties()).AppendChild(new Bold()); Text t1 = r1.AppendChild(new Text()); Run r2 = para.AppendChild(new Run()); r2.AppendChild(new Text()); Run r3 = para.AppendChild(new Run()); Assert.Equal(7, para.Descendants().Count()); Assert.Equal(3, r1.Descendants().Count()); Assert.Single(r2.Descendants()); Assert.Empty(r3.Descendants()); Assert.Same(r1, para.Descendants().First()); Assert.Same(b1, para.Descendants().ElementAt(2)); Assert.Same(t1, para.Descendants().ElementAt(3)); Assert.Same(r2, para.Descendants().ElementAt(4)); Assert.Same(r3, para.Descendants().Last()); // ancestors Assert.Empty(para.Ancestors()); Assert.Empty(para.Ancestors <Body>()); Assert.Single(r1.Ancestors()); Assert.Single(r1.Ancestors <Paragraph>()); Assert.Empty(r1.Ancestors <Body>()); Assert.Single(r3.Ancestors()); Assert.Single(r3.Ancestors <Paragraph>()); Assert.Empty(r3.Ancestors <Body>()); Assert.Equal(2, t1.Ancestors().Count()); Assert.Single(t1.Ancestors <Paragraph>()); Assert.Empty(t1.Ancestors <Body>()); Assert.Equal(3, b1.Ancestors().Count()); Assert.Single(b1.Ancestors <Paragraph>()); Assert.Single(b1.Ancestors <Run>()); Assert.Single(b1.Ancestors <RunProperties>()); Assert.Empty(b1.Ancestors <Body>()); Assert.Same(para, r1.Ancestors().First()); Assert.Same(para, r1.Ancestors <Paragraph>().First()); Assert.Same(r1, t1.Ancestors().First()); Assert.Same(para, t1.Ancestors().Last()); Assert.Same(r1, t1.Ancestors <Run>().First()); Assert.Same(para, t1.Ancestors <Paragraph>().First()); Assert.Same(para, b1.Ancestors().Last()); Assert.Same(r1, b1.Ancestors().ElementAt(1)); // IsBefore() / IsAfter() Assert.False(para.IsBefore(para)); Assert.False(para.IsAfter(para)); Assert.False(r2.IsBefore(r2)); Assert.False(r2.IsAfter(r2)); Assert.True(para.IsBefore(r1)); Assert.False(para.IsAfter(r1)); Assert.True(para.IsBefore(b1)); Assert.False(para.IsAfter(b1)); Assert.False(r1.IsBefore(para)); Assert.True(r1.IsAfter(para)); Assert.False(r1.IsBefore(para)); Assert.True(r1.IsAfter(para)); Assert.True(r1.IsBefore(r2)); Assert.False(r1.IsAfter(r2)); Assert.False(r3.IsBefore(r1)); Assert.True(r3.IsAfter(r1)); Assert.False(b1.IsAfter(r2)); Assert.True(b1.IsBefore(r2)); Assert.True(r1.IsBefore(b1)); Assert.False(r1.IsAfter(b1)); Assert.True(b1.IsAfter(r1)); Assert.False(b1.IsBefore(r1)); Paragraph p2 = new Paragraph(); Run p2r1 = p2.AppendChild(new Run()); Assert.False(p2.IsBefore(para)); Assert.False(p2.IsAfter(para)); Assert.False(p2r1.IsAfter(para)); Assert.False(p2r1.IsBefore(para)); // ElementsBefore / ElementsAfter Assert.False(para.ElementsBefore().Any()); Assert.False(para.ElementsAfter().Any()); Assert.True(r1.ElementsAfter().Any()); Assert.False(r1.ElementsBefore().Any()); Assert.False(r3.ElementsAfter().Any()); Assert.True(r3.ElementsBefore().Any()); Assert.True(r2.ElementsAfter().Any()); Assert.True(r2.ElementsBefore().Any()); Assert.Same(r1, r3.ElementsBefore().First()); Assert.Same(r2, r3.ElementsBefore().Last()); Assert.Same(r2, r1.ElementsAfter().First()); Assert.Same(r3, r1.ElementsAfter().Last()); Assert.False(b1.ElementsBefore().Any()); Assert.False(b1.ElementsAfter().Any()); }
private void BtnIspis_Click(object sender, RoutedEventArgs e) { using (var doc = new Document(PageSize.A4.Rotate(), 20, 15, 25, 30)) { try { var pdwri = PdfWriter.GetInstance(doc , new FileStream("Ispis.pdf", FileMode.Create, FileAccess.Write, FileShare.None)); var bfTimes = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1250, false); //// var times2 = FontFactory.GetFont(FontFactory.TIMES, 9,new CMYKColor(100, 70, 29,25)); var times = new Font(bfTimes, 9); var desetka = new Font(bfTimes, 10); doc.Open(); ////kod za cijeli header var logo = Image.GetInstance("logo.png"); logo.ScalePercent(50f); doc.Add(logo); doc.Add(new Paragraph("Petrokemija, d.d tvornica gnojiva", times)); doc.Add(new Paragraph("Aleja Vukovar 4", times)); doc.Add(new Paragraph("44320 Kutina", times)); doc.Add(new Paragraph("Hrvatska", times)); doc.Add(new Paragraph(" ")); doc.Add(new Paragraph("Ured Uprave", times)); doc.Add(new Paragraph("Tel.: +385 44 647 270", times)); doc.Add(new Paragraph("Fax: +385 44 680 882", times)); doc.Add(new Paragraph("E-mail: ", times)); //var bojaFonta = new BaseColor(0,0,255); var anchor = new Anchor("www.petrokemija.hr", times) { Reference = "http://www.petrokemija.hr" }; doc.Add(anchor); doc.Add(new Paragraph(" ")); var headertablica = new PdfPTable(2) { TotalWidth = 100f, LockedWidth = true, HorizontalAlignment = 0 }; var kutina = new Paragraph("Kutina, ", times); var celijakutina = new PdfPCell(kutina) { HorizontalAlignment = Element.ALIGN_RIGHT, Border = Rectangle.NO_BORDER }; var datum = new Phrase(DateTime.Now.Date.ToString("d"), times); var celijadatum = new PdfPCell(datum) { HorizontalAlignment = Element.ALIGN_LEFT, Border = Rectangle.NO_BORDER }; headertablica.AddCell(celijakutina); headertablica.AddCell(celijadatum); doc.Add(headertablica); doc.Add( new Paragraph("IZNOSI DOPRINOSA ZA BENEFICIRANI STAŽ") { SpacingBefore = 10f, Alignment = 1 }); var centar = new PdfPTable(DataGridBene.Columns.Count) { SpacingBefore = 10f }; foreach (var k in DataGridBene.Columns) { centar.AddCell(new Phrase(k.Header.ToString(), desetka)); } centar.HeaderRows = 1; float[] sirina = { 20f, 10f, 10f, 10f, 10f, 10f, 10f, 10f, 10f, 10f }; centar.SetWidths(sirina); var izvor = DataGridBene.ItemsSource; if (izvor != null) { foreach (var item in izvor) { if (!(DataGridBene.ItemContainerGenerator.ContainerFromItem(item) is DataGridRow red)) { continue; } var presenter = FindVisualChild <DataGridCellsPresenter>(red); for (var i = 0; i < DataGridBene.Columns.Count; ++i) { var cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(i); if (cell.Content is TextBlock txt) { centar.AddCell(new Phrase(txt.Text, desetka)); } } } } centar.HorizontalAlignment = 1; doc.Add(centar); pdwri.PageEvent = new Footer(); doc.Close(); Process.Start("Ispis.pdf"); } catch (Exception) { var metro = (MetroWindow)Application.Current.MainWindow; metro.ShowMessageAsync("Došlo je do pogreške, zatvorite otvoren .pdf dokument!", "Pozor"); } } }
public ActionResult ChartOfAccounts() { // ============ // PDF Settings // ============ MemoryStream workStream = new MemoryStream(); Rectangle rectangle = new Rectangle(PageSize.A3); Document document = new Document(rectangle, 72, 72, 72, 72); document.SetMargins(30f, 30f, 30f, 30f); PdfWriter.GetInstance(document, workStream).CloseStream = false; document.Open(); // =================== // Fonts Customization // =================== Font fontArial17Bold = FontFactory.GetFont("Arial", 17, Font.BOLD); Font fontArial11 = FontFactory.GetFont("Arial", 11); Font fontArial10Bold = FontFactory.GetFont("Arial", 10, Font.BOLD); Font fontArial10 = FontFactory.GetFont("Arial", 10); Font fontArial11Bold = FontFactory.GetFont("Arial", 11, Font.BOLD); Font fontArial12Bold = FontFactory.GetFont("Arial", 12, Font.BOLD); Paragraph line = new Paragraph(new Chunk(new iTextSharp.text.pdf.draw.LineSeparator(0.0F, 100.0F, BaseColor.BLACK, Element.ALIGN_LEFT, 4.5F))); var identityUserId = User.Identity.GetUserId(); var currentUser = from d in db.MstUsers where d.UserId == identityUserId select d; var currentBranchId = currentUser.FirstOrDefault().BranchId; // ============== // Company Detail // ============== var companyName = (from d in db.MstBranches where d.Id == currentBranchId select d.MstCompany.Company).SingleOrDefault(); var address = (from d in db.MstBranches where d.Id == currentBranchId select d.MstCompany.Address).SingleOrDefault(); var contactNo = (from d in db.MstBranches where d.Id == currentBranchId select d.MstCompany.ContactNumber).SingleOrDefault(); var branch = (from d in db.MstBranches where d.Id == currentBranchId select d.Branch).SingleOrDefault(); // =========== // Header Page // =========== PdfPTable headerPage = new PdfPTable(2); float[] widthsCellsHeaderPage = new float[] { 100f, 75f }; headerPage.SetWidths(widthsCellsHeaderPage); headerPage.WidthPercentage = 100; headerPage.AddCell(new PdfPCell(new Phrase(companyName, fontArial17Bold)) { Border = 0 }); headerPage.AddCell(new PdfPCell(new Phrase("Chart of Accounts", fontArial17Bold)) { Border = 0, HorizontalAlignment = 2 }); headerPage.AddCell(new PdfPCell(new Phrase(address, fontArial11)) { Border = 0, PaddingTop = 5f }); headerPage.AddCell(new PdfPCell(new Phrase(branch, fontArial11)) { Border = 0, PaddingTop = 5f, HorizontalAlignment = 2 }); headerPage.AddCell(new PdfPCell(new Phrase(contactNo, fontArial11)) { Border = 0, PaddingTop = 5f }); headerPage.AddCell(new PdfPCell(new Phrase("Date Printed: " + DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToString("hh:mm:ss tt"), fontArial11)) { Border = 0, PaddingTop = 5f, HorizontalAlignment = 2 }); document.Add(headerPage); document.Add(line); // ===== // Space // ===== PdfPTable spaceTable = new PdfPTable(1); float[] widthCellsSpaceTable = new float[] { 100f }; spaceTable.SetWidths(widthCellsSpaceTable); spaceTable.WidthPercentage = 100; spaceTable.AddCell(new PdfPCell(new Phrase(" ", fontArial10Bold)) { Border = 0, PaddingTop = 5f }); document.Add(spaceTable); // ================== // Account Categories // ================== var accountCategories = from d in db.MstAccountCategories group d by new { AccountCategoryCode = d.AccountCategoryCode, AccountCategory = d.AccountCategory } into g select new { AccountCategoryCode = g.Key.AccountCategoryCode, AccountCategory = g.Key.AccountCategory }; if (accountCategories.Any()) { foreach (var accountCategory in accountCategories) { PdfPTable tableAccountCategory = new PdfPTable(1); float[] widthscellsTableAccountCategory = new float[] { 100f }; tableAccountCategory.SetWidths(widthscellsTableAccountCategory); tableAccountCategory.WidthPercentage = 100; tableAccountCategory.AddCell(new PdfPCell(new Phrase(accountCategory.AccountCategory, fontArial11)) { HorizontalAlignment = 0, PaddingTop = 3f, PaddingBottom = 5f, Border = 0, BackgroundColor = BaseColor.LIGHT_GRAY }); document.Add(tableAccountCategory); // ====================== // Account Sub Categories // ====================== var accountSubCategories = from d in db.MstAccountTypes where d.MstAccountCategory.AccountCategory.Equals(accountCategory.AccountCategory) group d by new { SubCategoryDescription = d.SubCategoryDescription } into g select new { SubCategoryDescription = g.Key.SubCategoryDescription }; if (accountSubCategories.Any()) { foreach (var accountSubCategory in accountSubCategories) { PdfPTable tableSubAccountCategory = new PdfPTable(1); float[] widthscellsTableSubAccountCategory = new float[] { 100f }; tableSubAccountCategory.SetWidths(widthscellsTableSubAccountCategory); tableSubAccountCategory.WidthPercentage = 100; tableSubAccountCategory.AddCell(new PdfPCell(new Phrase(accountSubCategory.SubCategoryDescription, fontArial11)) { HorizontalAlignment = 0, PaddingTop = 3f, PaddingBottom = 5f, PaddingLeft = 20f, Border = 0 }); document.Add(tableSubAccountCategory); // ============= // Account Types // ============= var accountTypes = from d in db.MstAccountTypes where d.SubCategoryDescription.Equals(accountSubCategory.SubCategoryDescription) group d by new { AccountType = d.AccountType } into g select new { AccountType = g.Key.AccountType }; if (accountTypes.Any()) { foreach (var accountType in accountTypes) { PdfPTable tableAccountType = new PdfPTable(1); float[] widthscellsTableAccountType = new float[] { 100f }; tableAccountType.SetWidths(widthscellsTableAccountType); tableAccountType.WidthPercentage = 100; tableAccountType.AddCell(new PdfPCell(new Phrase(accountType.AccountType, fontArial11)) { HorizontalAlignment = 0, PaddingTop = 3f, PaddingBottom = 5f, PaddingLeft = 40f, Border = 0 }); document.Add(tableAccountType); // ======== // Accounts // ======== var accounts = from d in db.MstAccounts where d.MstAccountType.AccountType.Equals(accountType.AccountType) select new { AccountCode = d.AccountCode, Account = d.Account }; if (accounts.Any()) { foreach (var account in accounts) { PdfPTable tableAccount = new PdfPTable(2); float[] widthscellsTableAccount = new float[] { 20f, 100f }; tableAccount.SetWidths(widthscellsTableAccount); tableAccount.WidthPercentage = 100; tableAccount.AddCell(new PdfPCell(new Phrase(account.AccountCode, fontArial11)) { HorizontalAlignment = 2, PaddingTop = 3f, PaddingBottom = 5f, PaddingLeft = 60f, Border = 0 }); tableAccount.AddCell(new PdfPCell(new Phrase(account.Account, fontArial11)) { HorizontalAlignment = 0, PaddingTop = 3f, PaddingBottom = 5f, PaddingLeft = 10f, Border = 0 }); document.Add(tableAccount); } } } } } } } } document.Close(); byte[] byteInfo = workStream.ToArray(); workStream.Write(byteInfo, 0, byteInfo.Length); workStream.Position = 0; return(new FileStreamResult(workStream, "application/pdf")); }
public override void LoadSubtitle(Subtitle subtitle, List <string> lines, string fileName) { Paragraph paragraph = null; ExpectingLine expecting = ExpectingLine.Number; _errorCount = 0; subtitle.Paragraphs.Clear(); foreach (string line in lines) { if (expecting == ExpectingLine.Number && (RegexTimeCode.IsMatch(line) || RegexTimeCode2.IsMatch(line.Trim()))) { _errorCount++; if (paragraph != null) { subtitle.Paragraphs.Add(paragraph); } paragraph = new Paragraph(); expecting = ExpectingLine.TimeStart; } if (line.TrimEnd().EndsWith('.') && Utilities.IsInteger(RemoveSpaces(line.Trim().TrimEnd('.').Trim()))) { if (paragraph != null) { subtitle.Paragraphs.Add(paragraph); } paragraph = new Paragraph(); expecting = ExpectingLine.TimeStart; } else if (paragraph != null && expecting == ExpectingLine.TimeStart && (RegexTimeCode.IsMatch(line) || RegexTimeCode2.IsMatch(line.Trim()))) { string[] parts = RemoveSpaces(line.Trim()).Split(new[] { ':' }, StringSplitOptions.RemoveEmptyEntries); if (parts.Length == 4) { try { var tc = DecodeTimeCode(parts); paragraph.StartTime = tc; expecting = ExpectingLine.TimeEnd; } catch { _errorCount++; expecting = ExpectingLine.Number; } } } else if (paragraph != null && expecting == ExpectingLine.TimeEnd && (RegexTimeCode.IsMatch(line) || RegexTimeCode2.IsMatch(line.Trim()))) { string[] parts = RemoveSpaces(line.Trim()).Split(new[] { ':' }, StringSplitOptions.RemoveEmptyEntries); if (parts.Length == 4) { try { var tc = DecodeTimeCode(parts); paragraph.EndTime = tc; expecting = ExpectingLine.Text; } catch { _errorCount++; expecting = ExpectingLine.Number; } } } else { if (line == " " || line.Trim() == @"...........\...........") { } else if (line == "*END*") { _errorCount++; if (paragraph != null) { subtitle.Paragraphs.Add(paragraph); } paragraph = new Paragraph(); expecting = ExpectingLine.Number; } else if (paragraph != null && expecting == ExpectingLine.Text) { if (line.Length > 0) { string s = RemoveSpaces(line); paragraph.Text = (paragraph.Text + Environment.NewLine + s).Trim(); if (paragraph.Text.Length > 2000) { _errorCount += 100; return; } } } else if (line.Length > 1) { _errorCount++; } } } if (paragraph != null && !string.IsNullOrEmpty(paragraph.Text)) { subtitle.Paragraphs.Add(paragraph); } subtitle.Renumber(); }
public MemoryStream GeneratePdfTemplate(ExpeditionViewModel viewModel, IServiceProvider serviceProvider, int clientTimeZoneOffset /*, IGarmentDeliveryOrderFacade DOfacad*/) { Font header_font = FontFactory.GetFont(BaseFont.HELVETICA, BaseFont.CP1250, BaseFont.NOT_EMBEDDED, 18); Font normal_font = FontFactory.GetFont(BaseFont.HELVETICA, BaseFont.CP1250, BaseFont.NOT_EMBEDDED, 9); Font normal_font1 = FontFactory.GetFont(BaseFont.HELVETICA, BaseFont.CP1250, BaseFont.NOT_EMBEDDED, 8); Font bold_font = FontFactory.GetFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1250, BaseFont.NOT_EMBEDDED, 20); Font bold_font1 = FontFactory.GetFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1250, BaseFont.NOT_EMBEDDED, 8); Document document = new Document(PageSize.A4, 40, 40, 40, 40); document.AddHeader("Header", viewModel.code); MemoryStream stream = new MemoryStream(); PdfWriter writer = PdfWriter.GetInstance(document, stream); writer.PageEvent = new PDFPages(); document.Open(); PdfPCell cellLeftNoBorder = new PdfPCell() { Border = Rectangle.NO_BORDER, HorizontalAlignment = Element.ALIGN_LEFT }; PdfPCell cellRightNoBorder = new PdfPCell() { Border = Rectangle.NO_BORDER, HorizontalAlignment = Element.ALIGN_RIGHT }; Chunk chkHeader = new Chunk(" "); Phrase pheader = new Phrase(chkHeader); HeaderFooter header = new HeaderFooter(pheader, false); header.Border = Rectangle.NO_BORDER; header.Alignment = Element.ALIGN_RIGHT; document.Header = header; #region Header string titleString = "BON PENGELUARAN BARANG\n\n"; Paragraph title = new Paragraph(titleString, bold_font) { Alignment = Element.ALIGN_CENTER }; document.Add(title); bold_font.SetStyle(Font.NORMAL); //string addressString = "PT DAN LIRIS" + "\n" + "JL. Merapi No.23" + "\n" + "Banaran, Grogol, Kab. Sukoharjo" + "\n" + "Jawa Tengah 57552 - INDONESIA" + "\n" + "PO.BOX 166 Solo 57100" + "\n" + "Telp. (0271) 740888, 714400" + "\n" + "Fax. (0271) 735222, 740777"; //Paragraph address = new Paragraph(addressString, bold_font) { Alignment = Element.ALIGN_LEFT }; //document.Add(address); //bold_font.SetStyle(Font.NORMAL); PdfPTable tableInternNoteHeader = new PdfPTable(2); tableInternNoteHeader.SetWidths(new float[] { 7.5f, 4.5f }); PdfPCell cellInternNoteHeaderLeft = new PdfPCell() { Border = Rectangle.NO_BORDER, HorizontalAlignment = Element.ALIGN_LEFT }; PdfPCell cellInternNoteHeaderRight = new PdfPCell() { Border = Rectangle.NO_BORDER, HorizontalAlignment = Element.ALIGN_LEFT }; cellInternNoteHeaderLeft.Phrase = new Phrase("PT. MAJOR MINOR KREASI NUSANTARA", bold_font1); tableInternNoteHeader.AddCell(cellInternNoteHeaderLeft); cellInternNoteHeaderLeft.Phrase = new Phrase("No. Bon" + " : " + viewModel.code, normal_font); tableInternNoteHeader.AddCell(cellInternNoteHeaderLeft); cellInternNoteHeaderRight.Phrase = new Phrase("Equity Tower 15th Floor Suite C, SCBD Lot 9, Jl. Jenderal Sudirman Kav 52-53 Jakarta 12190, Indonesia", normal_font); tableInternNoteHeader.AddCell(cellInternNoteHeaderRight); //cellInternNoteHeaderLeft.Phrase = new Phrase("Password" + " : " + viewModel.password, normal_font); //tableInternNoteHeader.AddCell(cellInternNoteHeaderLeft); //cellInternNoteHeaderRight.Phrase = new Phrase("", normal_font); //tableInternNoteHeader.AddCell(cellInternNoteHeaderRight); cellInternNoteHeaderLeft.Phrase = new Phrase("Tanggal" + " : " + viewModel.CreatedUtc.ToString("dd MMMM yyyy", new CultureInfo("id-ID")) + "\n\n\n", normal_font); tableInternNoteHeader.AddCell(cellInternNoteHeaderLeft); //cellInternNoteHeaderRight.Phrase = new Phrase("Dari" + " : " + viewModel.source.name, normal_font); //tableInternNoteHeader.AddCell(cellInternNoteHeaderRight); //cellInternNoteHeaderLeft.Phrase = new Phrase("", normal_font); //tableInternNoteHeader.AddCell(cellInternNoteHeaderLeft); string destination = ""; foreach (var i in viewModel.items) { destination = i.spkDocsViewModel.destination.name; } cellInternNoteHeaderRight.Phrase = new Phrase("Tujuan" + " : " + destination, normal_font); tableInternNoteHeader.AddCell(cellInternNoteHeaderRight); cellInternNoteHeaderLeft.Phrase = new Phrase("", normal_font); tableInternNoteHeader.AddCell(cellInternNoteHeaderLeft); cellInternNoteHeaderRight.Phrase = new Phrase("Ekspedisi" + " : " + viewModel.expeditionService.name, normal_font); tableInternNoteHeader.AddCell(cellInternNoteHeaderRight); cellInternNoteHeaderLeft.Phrase = new Phrase("", normal_font); tableInternNoteHeader.AddCell(cellInternNoteHeaderLeft); cellInternNoteHeaderRight.Phrase = new Phrase("Total Berat (Kg)" + " : " + viewModel.weight, normal_font); tableInternNoteHeader.AddCell(cellInternNoteHeaderRight); cellInternNoteHeaderLeft.Phrase = new Phrase("", normal_font); tableInternNoteHeader.AddCell(cellInternNoteHeaderLeft); //cellInternNoteHeaderRight.Phrase = new Phrase("Keterangan" + " : " + "" + "\n\n", normal_font); //tableInternNoteHeader.AddCell(cellInternNoteHeaderRight); PdfPCell cellInternNoteHeader = new PdfPCell(tableInternNoteHeader); // dont remove tableInternNoteHeader.ExtendLastRow = false; tableInternNoteHeader.SpacingAfter = 10f; document.Add(tableInternNoteHeader); #endregion #region Table_Of_Content PdfPCell cellCenter = new PdfPCell() { Border = Rectangle.TOP_BORDER | Rectangle.LEFT_BORDER | Rectangle.BOTTOM_BORDER | Rectangle.RIGHT_BORDER, HorizontalAlignment = Element.ALIGN_CENTER, VerticalAlignment = Element.ALIGN_MIDDLE, Padding = 5 }; PdfPCell cellRight = new PdfPCell() { Border = Rectangle.TOP_BORDER | Rectangle.LEFT_BORDER | Rectangle.BOTTOM_BORDER | Rectangle.RIGHT_BORDER, HorizontalAlignment = Element.ALIGN_RIGHT, VerticalAlignment = Element.ALIGN_MIDDLE, Padding = 5 }; PdfPCell cellLeft = new PdfPCell() { Border = Rectangle.TOP_BORDER | Rectangle.LEFT_BORDER | Rectangle.BOTTOM_BORDER | Rectangle.RIGHT_BORDER, HorizontalAlignment = Element.ALIGN_LEFT, VerticalAlignment = Element.ALIGN_MIDDLE, Padding = 5 }; PdfPTable tableContent = new PdfPTable(5); tableContent.SetWidths(new float[] { 2f, 4f, 5f, 6.5f, 5.5f }); cellCenter.Phrase = new Phrase("No", bold_font1); tableContent.AddCell(cellCenter); cellCenter.Phrase = new Phrase("Packing List", bold_font1); tableContent.AddCell(cellCenter); cellCenter.Phrase = new Phrase("Password", bold_font1); tableContent.AddCell(cellCenter); cellCenter.Phrase = new Phrase("Berat (Kg)", bold_font1); tableContent.AddCell(cellCenter); cellCenter.Phrase = new Phrase("Total Barang", bold_font1); tableContent.AddCell(cellCenter); //double totalPriceTotal = 0; double total = 0; List <TableContent> TableContents = new List <TableContent>(); int index = 1; foreach (ExpeditionItemViewModel item in viewModel.items) { foreach (ExpeditionDetailViewModel detail in item.details) { total += detail.sendQuantity; } TableContents.Add(new TableContent { No = index++, PackingList = item.spkDocsViewModel.packingList, Password = item.spkDocsViewModel.password, Weight = item.weight, Total = total.ToString() }); //totalPriceTotal += item.quantity * item.item.domesticSale; //total += item.quantity; } foreach (TableContent c in TableContents.OrderBy(o => o.No)) { cellCenter.Phrase = new Phrase(c.No.ToString(), normal_font1); tableContent.AddCell(cellCenter); cellCenter.Phrase = new Phrase(c.PackingList, normal_font1); tableContent.AddCell(cellCenter); cellCenter.Phrase = new Phrase(c.Password, normal_font1); tableContent.AddCell(cellCenter); cellCenter.Phrase = new Phrase(c.Weight.ToString(), normal_font1); tableContent.AddCell(cellCenter); cellCenter.Phrase = new Phrase(c.Total, normal_font1); tableContent.AddCell(cellCenter); } PdfPCell cellContent = new PdfPCell(tableContent); // dont remove tableContent.ExtendLastRow = false; tableContent.SpacingAfter = 20f; document.Add(tableContent); #endregion #region Total PdfPTable tabletotal = new PdfPTable(2); tabletotal.SetWidths(new float[] { 17.5f, 5.5f }); PdfPCell cellTotalContent = new PdfPCell() { Border = Rectangle.TOP_BORDER | Rectangle.LEFT_BORDER | Rectangle.BOTTOM_BORDER | Rectangle.RIGHT_BORDER, HorizontalAlignment = Element.ALIGN_CENTER }; cellTotalContent.Phrase = new Phrase("Total", normal_font1); tabletotal.AddCell(cellTotalContent); //cellTotalContent.Phrase = new Phrase("" + total, normal_font1); //tabletotal.AddCell(cellTotalContent); cellTotalContent.Phrase = new Phrase("" + String.Format("{0:n}", total), normal_font1); tabletotal.AddCell(cellTotalContent); PdfPCell cellTotal = new PdfPCell(tabletotal); // dont remove tabletotal.ExtendLastRow = false; tabletotal.SpacingBefore = 20f; tabletotal.SpacingAfter = 20f; document.Add(tabletotal); #endregion //PdfPTable tableContent2 = new PdfPTable(3); //tableContent2.SetWidths(new float[] { 13f, 4.5f, 5.5f }); //List<TableContent2> tableContents2 = new List<TableContent2>(); //tableContents2.Add(new TableContent2 //{ // Total = "Total", // QtyTotal = total.ToString(), // PriceTotal = String.Format("{0:n}", totalPriceTotal.ToString()) //}); //foreach (TableContent2 c in tableContents2) //{ // cellLeft.Phrase = new Phrase(c.Total, normal_font1); // tableContent.AddCell(cellLeft); // cellLeft.Phrase = new Phrase(c.QtyTotal, normal_font1); // tableContent.AddCell(cellLeft); // cellLeft.Phrase = new Phrase(c.PriceTotal, normal_font1); // tableContent.AddCell(cellLeft); //} //PdfPCell cellContent2 = new PdfPCell(tableContent2); // dont remove //tableContent.ExtendLastRow = false; //tableContent.SpacingAfter = 20f; //document.Add(tableContent); //#region Footer //PdfPTable tableFooter = new PdfPTable(2); //tableFooter.SetWidths(new float[] { 1f, 1f }); //PdfPTable tableFooterLeft = new PdfPTable(2); //tableFooterLeft.SetWidths(new float[] { 3f, 5f }); //PdfPCell cellInternNoteFooterLeft = new PdfPCell() { Border = Rectangle.NO_BORDER, HorizontalAlignment = Element.ALIGN_LEFT }; //PdfPCell cellInternNoteFooterRight = new PdfPCell() { Border = Rectangle.NO_BORDER, HorizontalAlignment = Element.ALIGN_LEFT }; ////foreach (var unit in units) ////{ //// if (unit.Value == 0) //// { //// cellLeftNoBorder.Phrase = new Phrase($"Total {unit.Key}", normal_font); //// tableFooterLeft.AddCell(cellLeftNoBorder); //// cellLeftNoBorder.Phrase = new Phrase($": -", normal_font); //// tableFooterLeft.AddCell(cellLeftNoBorder); //// } //// else //// { //// cellLeftNoBorder.Phrase = new Phrase($"Total {unit.Key}", normal_font); //// tableFooterLeft.AddCell(cellLeftNoBorder); //// cellLeftNoBorder.Phrase = new Phrase($": {unit.Value.ToString("n", new CultureInfo("id-ID"))}", normal_font); //// tableFooterLeft.AddCell(cellLeftNoBorder); //// } ////} //PdfPTable tableFooterRight = new PdfPTable(2); //tableFooterRight.SetWidths(new float[] { 5f, 5f }); ////cellLeftNoBorder.Phrase = new Phrase($"Total Harga Pokok (DPP)", normal_font); ////tableFooterRight.AddCell(cellLeftNoBorder); ////cellLeftNoBorder.Phrase = new Phrase($": " + totalPriceTotal.ToString("N", new CultureInfo("id-ID")), normal_font); ////tableFooterRight.AddCell(cellLeftNoBorder); ////cellLeftNoBorder.Phrase = new Phrase("Mata Uang", normal_font); ////tableFooterRight.AddCell(cellLeftNoBorder); ////cellLeftNoBorder.Phrase = new Phrase($": " + viewModel.currency.Code, normal_font); ////tableFooterRight.AddCell(cellLeftNoBorder); ////cellLeftNoBorder.Phrase = new Phrase("Total Harga Pokok (Rp)", normal_font); ////tableFooterRight.AddCell(cellLeftNoBorder); ////cellLeftNoBorder.Phrase = new Phrase($": " + total.ToString("N", new CultureInfo("id-ID")), normal_font); ////tableFooterRight.AddCell(cellLeftNoBorder); ////cellLeftNoBorder.Phrase = new Phrase("Total Nota Koreksi", normal_font); ////tableFooterRight.AddCell(cellLeftNoBorder); ////if (correctionNote != null) ////{ //// cellLeftNoBorder.Phrase = new Phrase($": " + totalcorrection.ToString("N", new CultureInfo("id-ID")), normal_font); //// tableFooterRight.AddCell(cellLeftNoBorder); ////} ////else ////{ //// cellLeftNoBorder.Phrase = new Phrase($": " + 0, normal_font); //// tableFooterRight.AddCell(cellLeftNoBorder); ////} ////cellLeftNoBorder.Phrase = new Phrase("Total Nota PPn", normal_font); ////tableFooterRight.AddCell(cellLeftNoBorder); ////cellLeftNoBorder.Phrase = new Phrase($": " + ppn.ToString("N", new CultureInfo("id-ID")), normal_font); ////tableFooterRight.AddCell(cellLeftNoBorder); ////cellLeftNoBorder.Phrase = new Phrase("Total Nota PPh", normal_font); ////tableFooterRight.AddCell(cellLeftNoBorder); ////cellLeftNoBorder.Phrase = new Phrase($": " + pph.ToString("N", new CultureInfo("id-ID")), normal_font); ////tableFooterRight.AddCell(cellLeftNoBorder); ////cellLeftNoBorder.Phrase = new Phrase("Total yang Harus Dibayar", normal_font); ////tableFooterRight.AddCell(cellLeftNoBorder); ////cellLeftNoBorder.Phrase = new Phrase($": " + maxtotal.ToString("N", new CultureInfo("id-ID")), normal_font); ////tableFooterRight.AddCell(cellLeftNoBorder); //PdfPCell cellFooterLeft = new PdfPCell(tableFooterLeft) { Border = Rectangle.NO_BORDER, HorizontalAlignment = Element.ALIGN_CENTER }; //tableFooter.AddCell(cellFooterLeft); //PdfPCell cellFooterRight = new PdfPCell(tableFooterRight) { Border = Rectangle.NO_BORDER, HorizontalAlignment = Element.ALIGN_CENTER }; //tableFooter.AddCell(cellFooterRight); //PdfPCell cellFooter = new PdfPCell(tableFooter); // dont remove //tableFooter.ExtendLastRow = false; //tableFooter.SpacingAfter = 20f; //document.Add(tableFooter); //#endregion #region TableSignature PdfPTable tableSignature = new PdfPTable(3); PdfPCell cellSignatureContent = new PdfPCell() { Border = Rectangle.TOP_BORDER | Rectangle.LEFT_BORDER | Rectangle.BOTTOM_BORDER | Rectangle.RIGHT_BORDER, HorizontalAlignment = Element.ALIGN_CENTER }; cellSignatureContent.Phrase = new Phrase("Penerima/Pembeli\n\n\n\n\n\n\n(________________________________)", bold_font1); tableSignature.AddCell(cellSignatureContent); cellSignatureContent.Phrase = new Phrase("Bagian Pengiriman\n\n\n\n\n\n\n(________________________________)", bold_font1); tableSignature.AddCell(cellSignatureContent); cellSignatureContent.Phrase = new Phrase("Yang Membuat\n\n\n\n\n\n\n(________________________________)", bold_font1); tableSignature.AddCell(cellSignatureContent); PdfPCell cellSignature = new PdfPCell(tableSignature); // dont remove tableSignature.ExtendLastRow = false; tableSignature.SpacingBefore = 20f; tableSignature.SpacingAfter = 20f; document.Add(tableSignature); #endregion document.Close(); byte[] byteInfo = stream.ToArray(); stream.Write(byteInfo, 0, byteInfo.Length); stream.Position = 0; return(stream); }
private void dgvAttendance_CellClick(object sender, DataGridViewCellEventArgs e) { try { ID = dgvAttendance.Rows[e.RowIndex].Cells["ColumnID"].Value.ToString(); } catch (ArgumentOutOfRangeException) { Console.WriteLine(e); } if (e.ColumnIndex == dgvAttendance.Columns["ColumnView"].Index) { FormImgViewer form = new FormImgViewer(ob.getAttendImg(ID)); form.ShowDialog(); } if (e.ColumnIndex == dgvAttendance.Columns["ColumnDelete"].Index) { if (MessageBox.Show("Delete selected Job Post?", "Confirm!", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK) { if (ob.deleteAttendance(ID)) { MessageBox.Show("Successfully Deleted"); ClearAttend(); FillGrid(); } else { MessageBox.Show("Error occured while deleting"); } } } if (e.ColumnIndex == dgvAttendance.Columns["ColumnSave"].Index) { string folderPath = ""; FolderBrowserDialog directchoosedlg = new FolderBrowserDialog(); if (directchoosedlg.ShowDialog() == DialogResult.OK) { folderPath = directchoosedlg.SelectedPath; } //If User select the path.... if (!(folderPath.Equals(""))) { SNO = dgvAttendance.Rows[e.RowIndex].Cells["dgvSNO"].Value.ToString(); CheckvalidSNO(SNO); Document document = new Document(); try { PdfWriter.GetInstance(document, new FileStream(folderPath + "/" + SNO + "_" + (++x) + ".pdf", FileMode.Create)); document.Open(); string header = @"Attendance"; Paragraph p0 = new Paragraph(); p0.Font = FontFactory.GetFont(FontFactory.HELVETICA, 20f, BaseColor.BLUE); p0.Add(header); document.Add(p0); string header1 = @"Issue Date :" + DateTime.Now.ToString(); Paragraph p1 = new Paragraph(); p1.Font = FontFactory.GetFont(FontFactory.HELVETICA, 8f, BaseColor.BLUE); p1.Add(header1); document.Add(p1); Paragraph p2 = new Paragraph("SNO :" + SNO); p2.Font = FontFactory.GetFont(FontFactory.HELVETICA, 15f, BaseColor.BLACK); document.Add(p2); Paragraph p3 = new Paragraph("Name :" + name); p3.Font = FontFactory.GetFont(FontFactory.HELVETICA, 15f, BaseColor.BLACK); document.Add(p3); Paragraph p4 = new Paragraph("Intake :" + intake); p4.Font = FontFactory.GetFont(FontFactory.HELVETICA, 15f, BaseColor.BLACK); document.Add(p4); Paragraph p5 = new Paragraph(" "); p5.Font = FontFactory.GetFont(FontFactory.HELVETICA, 15f, BaseColor.BLACK); document.Add(p5); //Read all data of DataGridView for (int j = 4; j < dgvAttendance.Columns.Count; j++) { Paragraph p = new Paragraph(dgvAttendance.Columns[j].HeaderText + " :" + dgvAttendance.Rows[e.RowIndex].Cells[j].Value); p.Font = FontFactory.GetFont(FontFactory.HELVETICA, 12f, BaseColor.BLACK); document.Add(p); } document.Close(); MessageBox.Show("Successfully saved "); } catch (IOException) { MessageBox.Show("Pdf file already exist with " + SNO + " SNO (Please Delete it or Select another path)"); } } } }
private void ExportDataTableToPdf() { // creating datatable and adding dumy data DataTable dtEmployee = new DataTable(); dtEmployee.Columns.Add("EmpId", typeof(Int32)); dtEmployee.Columns.Add("Name", typeof(string)); dtEmployee.Columns.Add("Gender", typeof(string)); dtEmployee.Columns.Add("Salary", typeof(Int32)); dtEmployee.Columns.Add("Country", typeof(string)); dtEmployee.Rows.Add(1, "Rahul", "Male", 60000, "India"); dtEmployee.Rows.Add(2, "John", "Male", 50000, "USA"); dtEmployee.Rows.Add(3, "Mary", "Female", 75000, "UK"); dtEmployee.Rows.Add(4, "Mathew", "Male", 80000, "Australia"); // creating document object iTextSharp.text.Rectangle rec = new iTextSharp.text.Rectangle(PageSize.A4); rec.BackgroundColor = new BaseColor(System.Drawing.Color.Olive); Document doc = new Document(rec); doc.SetPageSize(iTextSharp.text.PageSize.A4); PdfWriter writer = PdfWriter.GetInstance(doc, Response.OutputStream); doc.Open(); //Creating paragraph for header BaseFont bfntHead = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); iTextSharp.text.Font fntHead = new iTextSharp.text.Font(bfntHead, 16, 1, iTextSharp.text.BaseColor.ORANGE); Paragraph prgHeading = new Paragraph(); prgHeading.Alignment = Element.ALIGN_LEFT; prgHeading.Add(new Chunk("Employee Details".ToUpper(), fntHead)); doc.Add(prgHeading); //Adding paragraph for report generated by Paragraph prgGeneratedBY = new Paragraph(); BaseFont btnAuthor = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); iTextSharp.text.Font fntAuthor = new iTextSharp.text.Font(btnAuthor, 8, 2, iTextSharp.text.BaseColor.BLUE); prgGeneratedBY.Alignment = Element.ALIGN_RIGHT; prgGeneratedBY.Add(new Chunk("Report Generated by : ASPArticles", fntAuthor)); prgGeneratedBY.Add(new Chunk("\nGenerated Date : " + DateTime.Now.ToShortDateString(), fntAuthor)); doc.Add(prgGeneratedBY); //Adding a line Paragraph p = new Paragraph(new Chunk(new iTextSharp.text.pdf.draw.LineSeparator(0.0F, 100.0F, iTextSharp.text.BaseColor.BLACK, Element.ALIGN_LEFT, 1))); doc.Add(p); //Adding line break doc.Add(new Chunk("\n", fntHead)); //Adding PdfPTable PdfPTable table = new PdfPTable(dtEmployee.Columns.Count); for (int i = 0; i < dtEmployee.Columns.Count; i++) { string cellText = Server.HtmlDecode(dtEmployee.Columns[i].ColumnName); PdfPCell cell = new PdfPCell(); cell.Phrase = new Phrase(cellText, new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.TIMES_ROMAN, 10, 1, new BaseColor(System.Drawing.ColorTranslator.FromHtml("#ffffff")))); cell.BackgroundColor = new BaseColor(System.Drawing.ColorTranslator.FromHtml("#990000")); //cell.Phrase = new Phrase(cellText, new Font(Font.FontFamily.TIMES_ROMAN, 10, 1, new BaseColor(grdStudent.HeaderStyle.ForeColor))); //cell.BackgroundColor = new BaseColor(grdStudent.HeaderStyle.BackColor); cell.HorizontalAlignment = Element.ALIGN_CENTER; cell.PaddingBottom = 5; table.AddCell(cell); } //writing table Data for (int i = 0; i < dtEmployee.Rows.Count; i++) { for (int j = 0; j < dtEmployee.Columns.Count; j++) { table.AddCell(dtEmployee.Rows[i][j].ToString()); } } doc.Add(table); doc.Close(); writer.Close(); Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "attachment;" + "filename=EmployeeDetails.pdf"); Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.Write(doc); Response.End(); //File(doc, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); }
private void btnSave_Click(object sender, EventArgs e) { //Creating iTextSharp Table from the DataTable data PdfPTable pdfTable = new PdfPTable(dgvAttendance.ColumnCount - 3); //avoiding unnessary column pdfTable.DefaultCell.Padding = 3; pdfTable.WidthPercentage = 95; pdfTable.HorizontalAlignment = Element.ALIGN_RIGHT; pdfTable.DefaultCell.BorderWidth = 1; //Adding Topic on top of pdf string header = @" Attendance Sheet"; Paragraph p0 = new Paragraph(); p0.Font = FontFactory.GetFont(FontFactory.HELVETICA, 25f, BaseColor.BLUE); p0.Add(header); string header1 = @" Issue Date :" + DateTime.Now.ToString(); Paragraph p1 = new Paragraph(); p1.Font = FontFactory.GetFont(FontFactory.HELVETICA, 8f, BaseColor.BLUE); p1.Add(header1); Paragraph p5 = new Paragraph(" "); p5.Font = FontFactory.GetFont(FontFactory.HELVETICA, 15f, BaseColor.BLACK); //Add Header row by avoiding unnessary column for (int j = 3; j < dgvAttendance.Columns.Count; j++) { PdfPCell cell = new PdfPCell(new Phrase(dgvAttendance.Columns[j].HeaderText)); cell.BackgroundColor = new iTextSharp.text.BaseColor(240, 240, 240); pdfTable.AddCell(cell); } //Adding DataRow foreach (DataGridViewRow row in dgvAttendance.Rows) { for (int j = 3; j < dgvAttendance.Columns.Count; j++) { pdfTable.AddCell(row.Cells[j].Value.ToString()); } } //Exporting to PDF string folderPath = ""; FolderBrowserDialog directchoosedlg = new FolderBrowserDialog(); if (directchoosedlg.ShowDialog() == DialogResult.OK) { folderPath = directchoosedlg.SelectedPath; } /////////// if (!(folderPath.Equals(""))) { try { //Add what we created things into document is defined pdfDoc String date = DateTime.Now.ToString().Replace(" ", String.Empty).Replace(":", "_").Replace("/", "_"); //Covert to date string as a valid pdf name Document pdfDoc = new Document(PageSize.A2, 10f, 10f, 10f, 0f); PdfWriter.GetInstance(pdfDoc, new FileStream(folderPath + "/" + "PDF_" + date + ".pdf", FileMode.Create)); pdfDoc.Open(); pdfDoc.Add(p0); pdfDoc.Add(p1); pdfDoc.Add(p5); pdfDoc.Add(pdfTable); pdfDoc.Close(); MessageBox.Show("Successfully saved "); } catch (IOException) { MessageBox.Show("Pdf file already exist same name(Please Delete it or Select another path)"); } } }
public async static System.Threading.Tasks.Task CreateOrderReport(DateTime first, DateTime second) { Word._Application oWord; Word._Document oDoc; try { API api = API.GetInstance(); var list = await api.AsyncGetCatalog <Order>(); var completedOrders = list.Where(o => o.IsComplete & o.Date >= first & o.Date <= second).ToList(); if (completedOrders.Count == 0) { throw new Exception("В БД нет записей о завершенных заказах за данный период"); } int rows = 0; foreach (var order in completedOrders) { rows += 2 + order.OrderProducts.Count; } object oMissing = System.Reflection.Missing.Value; object oEndOfDoc = "\\endofdoc"; /* \endofdoc is a predefined bookmark */ // Start Word and create a new document. oWord = new Word.Application(); oDoc = oWord.Documents.Add(ref oMissing, ref oMissing, ref oMissing, ref oMissing); object start = 0, end = 0; Word.Range rng = oDoc.Range(ref start, ref end); rng.SetRange(rng.End, rng.End); // Header Paragraph header = oDoc.Content.Paragraphs.Add(ref oMissing); var rngReportHeader = header.Range; rngReportHeader.Text = $"Отчет по завершенным заказам\nза период {first.ToShortDateString()} – {second.ToShortDateString()}"; rngReportHeader.Font.Size = 14; rngReportHeader.Font.Name = "Verdana"; rngReportHeader.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter; rngReportHeader.InsertParagraphAfter(); // Add the table. Paragraph table = oDoc.Content.Paragraphs.Add(ref oMissing); var rngTable = table.Range; rngTable.Tables.Add(rngTable, rows + 1, 4, ref oMissing, ref oMissing); // Format the table and apply a style. Word.Table tbl = oDoc.Tables[1]; tbl.Range.Font.Size = 12; tbl.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft; tbl.Range.ParagraphFormat.SpaceAfter = 0.0f; tbl.Borders.Enable = 1; tbl.Cell(1, 1).Range.Text = "ИД"; tbl.Cell(1, 2).Range.Text = "Заказчик"; tbl.Cell(1, 3).Range.Text = "Дата"; tbl.Cell(1, 4).Range.Text = "Сумма"; for (int j = 1; j <= 4; j++) { var cell = tbl.Cell(1, j); cell.Range.Font.Bold = 1; cell.Range.Font.Name = "Verdana"; cell.Range.Font.Size = 12; cell.Shading.BackgroundPatternColor = WdColor.wdColorGray25; //Center alignment for the Header cells cell.VerticalAlignment = WdCellVerticalAlignment.wdCellAlignVerticalCenter; cell.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter; } int i = 2; foreach (var o in completedOrders) { tbl.Cell(i, 1).Range.Text = o.Id.ToString(); tbl.Cell(i, 2).Range.Text = o.Customer.Name; tbl.Cell(i, 3).Range.Text = o.Date.ToShortDateString(); tbl.Cell(i, 4).Range.Text = o.OrderProducts.Sum(op => op.Product.Price * (decimal)op.Quantity).ToString() + " руб."; tbl.Rows[i].Borders[WdBorderType.wdBorderTop].LineWidth = WdLineWidth.wdLineWidth300pt; i++; tbl.Cell(i, 2).Range.Text = "Товар"; tbl.Cell(i, 3).Range.Text = "Кол-во"; tbl.Cell(i, 4).Range.Text = "Сумма"; tbl.Rows[i].Range.Font.Bold = 1; i++; foreach (var op in o.OrderProducts) { tbl.Cell(i, 1).Borders[WdBorderType.wdBorderTop].Visible = false; tbl.Cell(i, 2).Range.Text = op.Product.Name; tbl.Cell(i, 3).Range.Text = op.Quantity.ToString(); tbl.Cell(i, 4).Range.Text = (op.Product.Price * (decimal)op.Quantity).ToString() + " руб."; i++; } } tbl.Columns.First.AutoFit(); tbl.AutoFitBehavior(WdAutoFitBehavior.wdAutoFitWindow); tbl.TopPadding = 6f; tbl.RightPadding = 6f; tbl.LeftPadding = 6f; tbl.BottomPadding = 6f; // Footer Paragraph footer = oDoc.Content.Paragraphs.Add(ref oMissing); var rngReportFooter = footer.Range; rngReportFooter.Text = "\nОтчет создан: " + DateTime.Now.ToString(); rngReportFooter.Font.Size = 10; rngReportFooter.Font.Name = "Verdana"; rngReportFooter.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphRight; rngReportFooter.InsertParagraphAfter(); oWord.Visible = true; return; } catch { throw; } finally { oDoc = null; oWord = null; } }
private void ExportDataTableToPdf(DataTable dt, DateTime setDate, string fileName, string reportName, string logoPath) { Rectangle rec = new Rectangle(PageSize.A4); rec.BackgroundColor = new BaseColor(System.Drawing.Color.Olive); Document doc = new Document(rec); doc.SetPageSize(PageSize.A4.Rotate()); PdfWriter writer = PdfWriter.GetInstance(doc, Response.OutputStream); doc.Open(); PdfPTable table = new PdfPTable(2); table.TotalWidth = 700f; table.WidthPercentage = 100; table.LockedWidth = true; table.SetWidths(new float[] { 1f, 2f }); ////table.SpacingAfter = 20f; ////Company Logo var cell2 = ImageCell(logoPath, 75f, Element.ALIGN_LEFT, true); table.AddCell(cell2); doc.Add(table); ////Company Name and Address var phrase = new Phrase(); phrase.Add(new Chunk("Xpress Payments\n".ToUpper(), FontFactory.GetFont("Calibri", 16, Font.BOLD, BaseColor.BLACK))); phrase.Add(new Chunk(reportName.ToUpper(), FontFactory.GetFont("Calibri", 14, Font.BOLD, BaseColor.BLACK))); cell2 = PhraseCell(phrase, Element.ALIGN_CENTER); cell2.VerticalAlignment = Element.ALIGN_MIDDLE; table.AddCell(cell2); doc.Add(table); //Creating paragraph for header BaseFont bfntHead = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); Font fntHead = new iTextSharp.text.Font(bfntHead, 16, 1, iTextSharp.text.BaseColor.ORANGE); //Paragraph prgHeading = new Paragraph(); //prgHeading.Alignment = Element.ALIGN_CENTER; //prgHeading.Add(new Chunk(logoPath, fntHead)); //prgHeading.Add(new Chunk("Xpress Payments".ToUpper(), fntHead)); //doc.Add(prgHeading); //Creating sub title //iTextSharp.text.Font fntSubTitle = new iTextSharp.text.Font(bfntHead, 12, 1, iTextSharp.text.BaseColor.ORANGE); //Paragraph prgSubTitle = new Paragraph(); //prgSubTitle.Alignment = Element.ALIGN_CENTER; //prgSubTitle.Add(new Chunk(reportName.ToUpper(), fntSubTitle)); //doc.Add(prgSubTitle); //Adding paragraph for report generated by Paragraph prgGeneratedBY = new Paragraph(); BaseFont btnAuthor = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); iTextSharp.text.Font fntAuthor = new iTextSharp.text.Font(btnAuthor, 8, 2, iTextSharp.text.BaseColor.BLUE); prgGeneratedBY.Alignment = Element.ALIGN_RIGHT; //prgGeneratedBY.Add(new Chunk("Report Generated by : ASPArticles", fntAuthor)); prgGeneratedBY.Add(new Chunk("\nSettlement Date : " + setDate.ToShortDateString(), fntAuthor)); doc.Add(prgGeneratedBY); //Adding a line Paragraph p = new Paragraph(new Chunk(new iTextSharp.text.pdf.draw.LineSeparator(0.0F, 100.0F, iTextSharp.text.BaseColor.BLACK, Element.ALIGN_LEFT, 1))); doc.Add(p); //Adding line break doc.Add(new Chunk("\n", fntHead)); //Adding PdfPTable table = new PdfPTable(dt.Columns.Count); table.WidthPercentage = 100.0f; // Options: Element.ALIGN_LEFT (or 0), Element.ALIGN_CENTER (1), Element.ALIGN_RIGHT (2). table.HorizontalAlignment = Element.ALIGN_LEFT; for (int i = 0; i < dt.Columns.Count; i++) { string cellText = Server.HtmlDecode(dt.Columns[i].ColumnName); PdfPCell cell = new PdfPCell(); cell.Phrase = new Phrase(cellText, new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.TIMES_ROMAN, 8, 1, new BaseColor(System.Drawing.ColorTranslator.FromHtml("#000000")))); cell.BackgroundColor = new BaseColor(System.Drawing.ColorTranslator.FromHtml("#ff9800")); //cell.Phrase = new Phrase(cellText, new Font(Font.FontFamily.TIMES_ROMAN, 10, 1, new BaseColor(grdStudent.HeaderStyle.ForeColor))); //cell.BackgroundColor = new BaseColor(grdStudent.HeaderStyle.BackColor); cell.HorizontalAlignment = Element.ALIGN_LEFT; //cell.PaddingBottom = 5; table.AddCell(cell); } //writing table Data for (int i = 0; i < dt.Rows.Count; i++) { for (int j = 0; j < dt.Columns.Count; j++) { string cellText = ""; PdfPCell cell = new PdfPCell(); if (dt.Rows[i][j].GetType() == typeof(decimal)) { decimal value; var suc = decimal.TryParse(dt.Rows[i][j].ToString(), out value); if (suc) { cellText = SmartObj.FormatMoney(value.ToString("F")); cell.HorizontalAlignment = Element.ALIGN_RIGHT; } else { cell.HorizontalAlignment = Element.ALIGN_RIGHT; } } else if (dt.Rows[i][j].GetType() == typeof(DateTime)) { DateTime date; var suc = DateTime.TryParse(dt.Rows[i][j].ToString(), out date); if (suc) { cellText = date.ToString("dd-MM-yyyy"); cell.HorizontalAlignment = Element.ALIGN_LEFT; } else { cell.HorizontalAlignment = Element.ALIGN_LEFT; } } else { cellText = dt.Rows[i][j].ToString(); cell.HorizontalAlignment = Element.ALIGN_LEFT; } // cell.BackgroundColor = new BaseColor(System.Drawing.ColorTranslator.FromHtml("#ff9800")); //cell.Phrase = new Phrase(cellText, new Font(Font.FontFamily.TIMES_ROMAN, 10, 1, new BaseColor(grdStudent.HeaderStyle.ForeColor))); //cell.BackgroundColor = new BaseColor(grdStudent.HeaderStyle.BackColor); cell.Phrase = new Phrase(cellText, new Font(Font.FontFamily.TIMES_ROMAN, 8, 1, new BaseColor(System.Drawing.ColorTranslator.FromHtml("#000000")))); table.AddCell(cell); } } doc.Add(table); doc.Close(); writer.Close(); Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "attachment;" + string.Format("filename={0}.pdf", fileName)); Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.Write(doc); Response.End(); //File(doc, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); }
private void WriteParagraph(FileStream fs, Paragraph p, int number, bool isLast) { WriteTimeCode(fs, p.StartTime); WriteTimeCode(fs, p.EndTime); if (_codePage == -1) { GetCodePage(null, 0, 0); } byte alignment = 2; // center byte verticalAlignment = 0x0a; // bottom if (!p.Text.Contains(Environment.NewLine)) { verticalAlignment = 0x0b; } string text = p.Text; if (text.StartsWith("{\\an1}") || text.StartsWith("{\\an4}") || text.StartsWith("{\\an7}")) { alignment = 1; // left } else if (text.StartsWith("{\\an3}") || text.StartsWith("{\\an6}") || text.StartsWith("{\\an9}")) { alignment = 0; // right } if (text.StartsWith("{\\an7}") || text.StartsWith("{\\an8}") || text.StartsWith("{\\an9}")) { verticalAlignment = 0; // top } else if (text.StartsWith("{\\an4}") || text.StartsWith("{\\an5}") || text.StartsWith("{\\an6}")) { verticalAlignment = 5; // center } if (text.Length >= 6 && text[0] == '{' && text[5] == '}') { text = text.Remove(0, 6); } text = MakePacItalicsAndRemoveOtherTags(text); Encoding encoding = GetEncoding(_codePage); byte[] textBuffer; if (_codePage == 3) { textBuffer = GetArabicBytes(Utilities.FixEnglishTextInRightToLeftLanguage(text, "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), alignment); } else if (_codePage == 4) { textBuffer = GetHebrewBytes(Utilities.FixEnglishTextInRightToLeftLanguage(text, "0123456789abcdefghijklmnopqrstuvwxyz"), alignment); } else if (_codePage == 0) { textBuffer = GetLatinBytes(encoding, text, alignment); } else if (_codePage == 6) { textBuffer = GetCyrillicBytes(text, alignment); } else { textBuffer = encoding.GetBytes(text); } // write text length var length = (UInt16)(textBuffer.Length + 4); fs.Write(BitConverter.GetBytes(length), 0, 2); fs.WriteByte(verticalAlignment); // fs.WriteByte(0x0a); // sometimes 0x0b? - this seems to be vertical alignment - 0 to 11 fs.WriteByte(0xfe); fs.WriteByte(alignment); //2=centered, 1=left aligned, 0=right aligned, 09=Fount2 (large font), //55=safe area override (too long line), 0A=Fount2 + centered, 06=centered + safe area override fs.WriteByte(0x03); fs.Write(textBuffer, 0, textBuffer.Length); if (!isLast) { fs.WriteByte(0); fs.WriteByte((byte)((number + 1) % 256)); fs.WriteByte((byte)((number + 1) / 256)); fs.WriteByte(0x60); } }
public async static System.Threading.Tasks.Task CreateProductReport() { Word._Application oWord; Word._Document oDoc; try { API api = API.GetInstance(); List <Product> products = await api.AsyncGetCatalog <Product>(); if (products.Count == 0) { throw new Exception("В БД нет записей о товарах"); } var categories = products.GroupBy(p => p.Category?.Name); int rows = 0; foreach (var c in categories) { rows += 1 + c.Count(); } object oMissing = System.Reflection.Missing.Value; object oEndOfDoc = "\\endofdoc"; /* \endofdoc is a predefined bookmark */ //Start Word and create a new document. oWord = new Word.Application(); oDoc = oWord.Documents.Add(ref oMissing, ref oMissing, ref oMissing, ref oMissing); object start = 0, end = 0; Word.Range rng = oDoc.Range(ref start, ref end); rng.SetRange(rng.End, rng.End); // Header Paragraph header = oDoc.Content.Paragraphs.Add(ref oMissing); var rngReportHeader = header.Range; rngReportHeader.Text = "Отчет по остаткам"; rngReportHeader.Font.Size = 15; rngReportHeader.Font.Name = "Verdana"; rngReportHeader.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter; rngReportHeader.InsertParagraphAfter(); // Add the table. Paragraph table = oDoc.Content.Paragraphs.Add(ref oMissing); var rngTable = table.Range; rngTable.Tables.Add(rngTable, rows + 1, 6, ref oMissing, ref oMissing); // Format the table and apply a style. Word.Table tbl = oDoc.Tables[1]; tbl.Range.Font.Size = 12; tbl.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft; tbl.Range.ParagraphFormat.SpaceAfter = 0.0f; tbl.Borders.Enable = 1; tbl.Cell(1, 1).Range.Text = "ИД"; tbl.Cell(1, 2).Range.Text = "Название"; tbl.Cell(1, 3).Range.Text = "Ед."; tbl.Cell(1, 4).Range.Text = "Цена"; tbl.Cell(1, 5).Range.Text = "Количество"; tbl.Cell(1, 6).Range.Text = "Сумма"; for (int j = 1; j <= 6; j++) { var cell = tbl.Cell(1, j); cell.Range.Font.Bold = 1; cell.Range.Font.Name = "Verdana"; cell.Range.Font.Size = 12; cell.Shading.BackgroundPatternColor = WdColor.wdColorGray25; //Center alignment for the Header cells cell.VerticalAlignment = WdCellVerticalAlignment.wdCellAlignVerticalCenter; cell.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter; } int i = 2; foreach (var c in categories) { tbl.Cell(i, 1).Range.Text = c.Key; tbl.Rows[i].Cells.Merge(); i++; foreach (var p in c) { tbl.Cell(i, 1).Range.Text = p.Id.ToString(); tbl.Cell(i, 2).Range.Text = p.Name; tbl.Cell(i, 3).Range.Text = p.Unit?.ToString(); tbl.Cell(i, 4).Range.Text = p.Price.ToString() + " руб."; tbl.Cell(i, 5).Range.Text = p.Quantity.ToString(); tbl.Cell(i, 6).Range.Text = (p.Price * (decimal)p.Quantity).ToString() + " руб."; i++; } } tbl.AutoFitBehavior(WdAutoFitBehavior.wdAutoFitContent); tbl.TopPadding = 6f; tbl.RightPadding = 6f; tbl.LeftPadding = 6f; tbl.BottomPadding = 6f; tbl.Range.InsertParagraphAfter(); // Footer Paragraph footer = oDoc.Content.Paragraphs.Add(ref oMissing); var rngReportFooter = footer.Range; rngReportFooter.Text = "\nНа дату: " + DateTime.Now.ToString(); rngReportFooter.Font.Size = 10; rngReportFooter.Font.Name = "Verdana"; rngReportFooter.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphRight; rngReportFooter.InsertParagraphAfter(); oWord.Visible = true; return; } catch { throw; } finally { oDoc = null; oWord = null; } }
public ActionResult BIRCASSalesJournal(String StartDate, String EndDate, String CompanyId, String BranchId, String DocumentReference) { // ============================== // PDF Settings and Customization // ============================== MemoryStream workStream = new MemoryStream(); Rectangle rectangle = new Rectangle(PageSize.A3.Rotate()); Document document = new Document(rectangle, 72, 72, 72, 72); document.SetMargins(30f, 30f, 30f, 30f); PdfWriter.GetInstance(document, workStream).CloseStream = false; // ============= // Document Open // ============= document.Open(); // ============ // Fonts Styles // ============ Font fontArial9 = FontFactory.GetFont("Arial", 9); Font fontArial9Bold = FontFactory.GetFont("Arial", 9, Font.BOLD); Font fontArial9Italic = FontFactory.GetFont("Arial", 9, Font.ITALIC); Font fontArial17Bold = FontFactory.GetFont("Arial", 17, Font.BOLD); Font fontArial12Bold = FontFactory.GetFont("Arial", 12, Font.BOLD); Font fontArial12 = FontFactory.GetFont("Arial", 12); Font fontArial10Bold = FontFactory.GetFont("Arial", 10, Font.BOLD); Font fontArial10 = FontFactory.GetFont("Arial", 10); // ==== // Line // ==== Paragraph line = new Paragraph(new Chunk(new iTextSharp.text.pdf.draw.LineSeparator(0.0F, 100.0F, BaseColor.BLACK, Element.ALIGN_LEFT, 4.5F))); // ============== // Company Detail // ============== var company = from d in db.MstCompanies where d.Id == Convert.ToInt32(CompanyId) select d; var branchName = "All Branches"; if (Convert.ToInt32(BranchId) != 0) { var branch = from d in db.MstBranches where d.Id == Convert.ToInt32(BranchId) select d; branchName = branch.FirstOrDefault().Branch; } var identityUserId = User.Identity.GetUserId(); var currentUser = from d in db.MstUsers where d.UserId == identityUserId select d; // =========== // Header Page // =========== PdfPTable header = new PdfPTable(2); header.SetWidths(new float[] { 100f, 75f }); header.WidthPercentage = 100; header.AddCell(new PdfPCell(new Phrase(company.FirstOrDefault().Company, fontArial17Bold)) { Border = 0 }); header.AddCell(new PdfPCell(new Phrase("Sales Journal", fontArial17Bold)) { Border = 0, HorizontalAlignment = 2 }); header.AddCell(new PdfPCell(new Phrase(company.FirstOrDefault().Address, fontArial10)) { Border = 0, PaddingTop = 5f }); header.AddCell(new PdfPCell(new Phrase(branchName, fontArial10)) { Border = 0, PaddingTop = 5f, HorizontalAlignment = 2 }); header.AddCell(new PdfPCell(new Phrase(company.FirstOrDefault().ContactNumber, fontArial10)) { Border = 0, PaddingTop = 5f }); header.AddCell(new PdfPCell(new Phrase("Date Printed: " + DateTime.Now.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture) + " " + DateTime.Now.ToString("hh:mm:ss tt"), fontArial10)) { Border = 0, PaddingTop = 5f, HorizontalAlignment = 2 }); header.AddCell(new PdfPCell(new Phrase("TIN: " + company.FirstOrDefault().TaxNumber, fontArial10)) { Border = 0, PaddingTop = 5f }); header.AddCell(new PdfPCell(new Phrase(Settings.SoftwareVersion + " (" + currentUser.FirstOrDefault().UserName + ")", fontArial10)) { Border = 0, PaddingTop = 5f, HorizontalAlignment = 2 }); document.Add(header); document.Add(line); // ================== // Date Range Filters // ================== PdfPTable dateRangeFilters = new PdfPTable(1); dateRangeFilters.SetWidths(new float[] { 100f }); dateRangeFilters.WidthPercentage = 100; dateRangeFilters.AddCell(new PdfPCell(new Phrase("Document Reference: " + DocumentReference, fontArial10)) { Border = 0, HorizontalAlignment = 0, PaddingTop = 8f }); dateRangeFilters.AddCell(new PdfPCell(new Phrase("Date Start: " + Convert.ToDateTime(StartDate).ToString("MM/dd/yyyy", CultureInfo.InvariantCulture), fontArial10)) { Border = 0, HorizontalAlignment = 0, PaddingTop = 5f }); dateRangeFilters.AddCell(new PdfPCell(new Phrase("Date End: " + Convert.ToDateTime(EndDate).ToString("MM/dd/yyyy", CultureInfo.InvariantCulture), fontArial10)) { Border = 0, HorizontalAlignment = 0, PaddingTop = 5f }); document.Add(dateRangeFilters); // ===== // Space // ===== PdfPTable space = new PdfPTable(1); space.SetWidths(new float[] { 100f }); space.WidthPercentage = 100; space.AddCell(new PdfPCell(new Phrase(" ", fontArial10)) { Border = 0, PaddingTop = 7f }); document.Add(space); String documentReferenceString = DocumentReference; if (DocumentReference.Equals("ALL")) { documentReferenceString = ""; } // ==== // Data // ==== IQueryable <Data.TrnSalesInvoiceItem> salesInvoiceItems; if (Convert.ToInt32(BranchId) != 0) { salesInvoiceItems = from d in db.TrnSalesInvoiceItems.OrderBy(d => d.TrnSalesInvoice.SINumber) where d.TrnSalesInvoice.MstBranch.CompanyId == Convert.ToInt32(CompanyId) && d.TrnSalesInvoice.BranchId == Convert.ToInt32(BranchId) && d.TrnSalesInvoice.SIDate >= Convert.ToDateTime(StartDate) && d.TrnSalesInvoice.SIDate <= Convert.ToDateTime(EndDate) && (d.TrnSalesInvoice.DocumentReference.Contains(documentReferenceString) || d.TrnSalesInvoice.ManualSINumber.Contains(documentReferenceString)) select d; } else { salesInvoiceItems = from d in db.TrnSalesInvoiceItems.OrderBy(d => d.TrnSalesInvoice.SINumber) where d.TrnSalesInvoice.MstBranch.CompanyId == Convert.ToInt32(CompanyId) && d.TrnSalesInvoice.SIDate >= Convert.ToDateTime(StartDate) && d.TrnSalesInvoice.SIDate <= Convert.ToDateTime(EndDate) && (d.TrnSalesInvoice.DocumentReference.Contains(documentReferenceString) || d.TrnSalesInvoice.ManualSINumber.Contains(documentReferenceString)) select d; } if (salesInvoiceItems.Any()) { var groupedBranches = from d in salesInvoiceItems group d by new { d.TrnSalesInvoice.BranchId, d.TrnSalesInvoice.MstBranch.Branch } into g select g; if (groupedBranches.Any()) { Decimal overAllTotalGrossAmount = 0; Decimal overAllTotalVATableSalesAmount = 0; Decimal overAllTotalVATExemptSalesAmount = 0; Decimal overAllTotalZeroRatedSalesAmount = 0; Decimal overAllTotalVATAmount = 0; Decimal overAllTotalDiscountAmount = 0; Decimal overAllTotalNetSales = 0; foreach (var groupedBranch in groupedBranches) { PdfPTable branchTitle = new PdfPTable(1); branchTitle.SetWidths(new float[] { 100f }); branchTitle.WidthPercentage = 100; branchTitle.AddCell(new PdfPCell(new Phrase(groupedBranch.Key.Branch, fontArial12Bold)) { Border = 0, HorizontalAlignment = 0, PaddingBottom = 5f }); document.Add(branchTitle); PdfPTable data = new PdfPTable(15); data.SetWidths(new float[] { 40f, 65f, 60f, 50f, 50f, 55f, 55f, 55f, 50f, 50f, 50f, 50f, 50f, 50f, 50f }); data.WidthPercentage = 100; data.AddCell(new PdfPCell(new Phrase("Date", fontArial10Bold)) { HorizontalAlignment = 1, PaddingTop = 4f, PaddingBottom = 8f, PaddingLeft = 5f, PaddingRight = 5f }); data.AddCell(new PdfPCell(new Phrase("Tx No.", fontArial10Bold)) { HorizontalAlignment = 1, PaddingTop = 4f, PaddingBottom = 8f, PaddingLeft = 5f, PaddingRight = 5f }); data.AddCell(new PdfPCell(new Phrase("Customer", fontArial10Bold)) { HorizontalAlignment = 1, PaddingTop = 4f, PaddingBottom = 8f, PaddingLeft = 5f, PaddingRight = 5f }); data.AddCell(new PdfPCell(new Phrase("TIN", fontArial10Bold)) { HorizontalAlignment = 1, PaddingTop = 4f, PaddingBottom = 8f, PaddingLeft = 5f, PaddingRight = 5f }); data.AddCell(new PdfPCell(new Phrase("Address", fontArial10Bold)) { HorizontalAlignment = 1, PaddingTop = 4f, PaddingBottom = 8f, PaddingLeft = 5f, PaddingRight = 5f }); data.AddCell(new PdfPCell(new Phrase("Doc. Ref. No.", fontArial10Bold)) { HorizontalAlignment = 1, PaddingTop = 4f, PaddingBottom = 8f, PaddingLeft = 5f, PaddingRight = 5f }); data.AddCell(new PdfPCell(new Phrase("SI Ref. No.", fontArial10Bold)) { HorizontalAlignment = 1, PaddingTop = 4f, PaddingBottom = 8f, PaddingLeft = 5f, PaddingRight = 5f }); data.AddCell(new PdfPCell(new Phrase("Item Code", fontArial10Bold)) { HorizontalAlignment = 1, PaddingTop = 4f, PaddingBottom = 8f, PaddingLeft = 5f, PaddingRight = 5f }); data.AddCell(new PdfPCell(new Phrase("Gross Amount", fontArial10Bold)) { HorizontalAlignment = 1, PaddingTop = 4f, PaddingBottom = 8f, PaddingLeft = 5f, PaddingRight = 5f }); data.AddCell(new PdfPCell(new Phrase("VATable Sales", fontArial10Bold)) { HorizontalAlignment = 1, PaddingTop = 4f, PaddingBottom = 8f, PaddingLeft = 5f, PaddingRight = 5f }); data.AddCell(new PdfPCell(new Phrase("VAT Exempt Sales", fontArial10Bold)) { HorizontalAlignment = 1, PaddingTop = 4f, PaddingBottom = 8f, PaddingLeft = 5f, PaddingRight = 5f }); data.AddCell(new PdfPCell(new Phrase("Zero Rated Sales", fontArial10Bold)) { HorizontalAlignment = 1, PaddingTop = 4f, PaddingBottom = 8f, PaddingLeft = 5f, PaddingRight = 5f }); data.AddCell(new PdfPCell(new Phrase("VAT Amount", fontArial10Bold)) { HorizontalAlignment = 1, PaddingTop = 4f, PaddingBottom = 8f, PaddingLeft = 5f, PaddingRight = 5f }); data.AddCell(new PdfPCell(new Phrase("Discount", fontArial10Bold)) { HorizontalAlignment = 1, PaddingTop = 4f, PaddingBottom = 8f, PaddingLeft = 5f, PaddingRight = 5f }); data.AddCell(new PdfPCell(new Phrase("Net Sales", fontArial10Bold)) { HorizontalAlignment = 1, PaddingTop = 4f, PaddingBottom = 8f, PaddingLeft = 5f, PaddingRight = 5f }); var salesInvoiceItemPerBranch = from d in salesInvoiceItems where d.TrnSalesInvoice.BranchId == groupedBranch.Key.BranchId select d; if (salesInvoiceItemPerBranch.Any()) { Decimal totalGrossAmount = 0; Decimal totalVATableSalesAmount = 0; Decimal totalVATExemptSalesAmount = 0; Decimal totalZeroRatedSalesAmount = 0; Decimal totalVATAmount = 0; Decimal totalDiscountAmount = 0; Decimal totalNetSales = 0; foreach (var salesInvoiceItem in salesInvoiceItemPerBranch) { totalGrossAmount += salesInvoiceItem.Amount + salesInvoiceItem.DiscountAmount + salesInvoiceItem.VATAmount; totalVATableSalesAmount += ComputeVATableSales(salesInvoiceItem.MstTaxType.TaxType, salesInvoiceItem.Amount); totalVATExemptSalesAmount += ComputeVATExemptSales(salesInvoiceItem.MstTaxType.TaxType, salesInvoiceItem.MstTaxType.TaxRate, salesInvoiceItem.MstDiscount.Discount, salesInvoiceItem.Price, salesInvoiceItem.Quantity, salesInvoiceItem.Amount); totalZeroRatedSalesAmount += ComputeZeroRatedSales(salesInvoiceItem.MstTaxType.TaxType, salesInvoiceItem.Amount); totalVATAmount += salesInvoiceItem.VATAmount; totalDiscountAmount += salesInvoiceItem.DiscountAmount; totalNetSales += salesInvoiceItem.Amount; data.AddCell(new PdfPCell(new Phrase(salesInvoiceItem.TrnSalesInvoice.SIDate.ToShortDateString(), fontArial10)) { HorizontalAlignment = 0, PaddingTop = 3f, PaddingBottom = 6f, PaddingLeft = 5f, PaddingRight = 5f }); data.AddCell(new PdfPCell(new Phrase("SI-" + salesInvoiceItem.TrnSalesInvoice.MstBranch.BranchCode + "-" + salesInvoiceItem.TrnSalesInvoice.SINumber, fontArial10)) { HorizontalAlignment = 0, PaddingTop = 3f, PaddingBottom = 6f, PaddingLeft = 5f, PaddingRight = 5f }); data.AddCell(new PdfPCell(new Phrase(salesInvoiceItem.TrnSalesInvoice.MstArticle.Article, fontArial10)) { HorizontalAlignment = 0, PaddingTop = 3f, PaddingBottom = 6f, PaddingLeft = 5f, PaddingRight = 5f }); data.AddCell(new PdfPCell(new Phrase(salesInvoiceItem.TrnSalesInvoice.MstArticle.TaxNumber, fontArial10)) { HorizontalAlignment = 0, PaddingTop = 3f, PaddingBottom = 6f, PaddingLeft = 5f, PaddingRight = 5f }); data.AddCell(new PdfPCell(new Phrase(salesInvoiceItem.TrnSalesInvoice.MstArticle.Address, fontArial10)) { HorizontalAlignment = 0, PaddingTop = 3f, PaddingBottom = 6f, PaddingLeft = 5f, PaddingRight = 5f }); data.AddCell(new PdfPCell(new Phrase(salesInvoiceItem.TrnSalesInvoice.DocumentReference, fontArial10)) { HorizontalAlignment = 0, PaddingTop = 3f, PaddingBottom = 6f, PaddingLeft = 5f, PaddingRight = 5f }); data.AddCell(new PdfPCell(new Phrase(salesInvoiceItem.TrnSalesInvoice.ManualSINumber, fontArial10)) { HorizontalAlignment = 0, PaddingTop = 3f, PaddingBottom = 6f, PaddingLeft = 5f, PaddingRight = 5f }); data.AddCell(new PdfPCell(new Phrase(salesInvoiceItem.MstArticle.ManualArticleCode, fontArial10)) { HorizontalAlignment = 0, PaddingTop = 3f, PaddingBottom = 6f, PaddingLeft = 5f, PaddingRight = 5f }); data.AddCell(new PdfPCell(new Phrase((salesInvoiceItem.Amount + salesInvoiceItem.DiscountAmount + salesInvoiceItem.VATAmount).ToString("#,##0.00"), fontArial10)) { HorizontalAlignment = 2, PaddingTop = 3f, PaddingBottom = 6f, PaddingLeft = 5f, PaddingRight = 5f }); data.AddCell(new PdfPCell(new Phrase(ComputeVATableSales(salesInvoiceItem.MstTaxType.TaxType, salesInvoiceItem.Amount).ToString("#,##0.00"), fontArial10)) { HorizontalAlignment = 2, PaddingTop = 3f, PaddingBottom = 6f, PaddingLeft = 5f, PaddingRight = 5f }); data.AddCell(new PdfPCell(new Phrase(ComputeVATExemptSales(salesInvoiceItem.MstTaxType.TaxType, salesInvoiceItem.MstTaxType.TaxRate, salesInvoiceItem.MstDiscount.Discount, salesInvoiceItem.Price, salesInvoiceItem.Quantity, salesInvoiceItem.Amount).ToString("#,##0.00"), fontArial10)) { HorizontalAlignment = 2, PaddingTop = 3f, PaddingBottom = 6f, PaddingLeft = 5f, PaddingRight = 5f }); data.AddCell(new PdfPCell(new Phrase(ComputeZeroRatedSales(salesInvoiceItem.MstTaxType.TaxType, salesInvoiceItem.Amount).ToString("#,##0.00"), fontArial10)) { HorizontalAlignment = 2, PaddingTop = 3f, PaddingBottom = 6f, PaddingLeft = 5f, PaddingRight = 5f }); data.AddCell(new PdfPCell(new Phrase(salesInvoiceItem.VATAmount.ToString("#,##0.00"), fontArial10)) { HorizontalAlignment = 2, PaddingTop = 3f, PaddingBottom = 6f, PaddingLeft = 5f, PaddingRight = 5f }); data.AddCell(new PdfPCell(new Phrase(salesInvoiceItem.DiscountAmount.ToString("#,##0.00"), fontArial10)) { HorizontalAlignment = 2, PaddingTop = 3f, PaddingBottom = 6f, PaddingLeft = 5f, PaddingRight = 5f }); data.AddCell(new PdfPCell(new Phrase(salesInvoiceItem.Amount.ToString("#,##0.00"), fontArial10)) { HorizontalAlignment = 2, PaddingTop = 3f, PaddingBottom = 6f, PaddingLeft = 5f, PaddingRight = 5f }); } data.AddCell(new PdfPCell(new Phrase("TOTAL", fontArial10Bold)) { Colspan = 8, HorizontalAlignment = 2, PaddingTop = 4f, PaddingBottom = 8f, PaddingRight = 5f, PaddingLeft = 5f }); data.AddCell(new PdfPCell(new Phrase(totalGrossAmount.ToString("#,##0.00"), fontArial10Bold)) { HorizontalAlignment = 2, PaddingTop = 4f, PaddingBottom = 8f, PaddingRight = 5f, PaddingLeft = 5f }); data.AddCell(new PdfPCell(new Phrase(totalVATableSalesAmount.ToString("#,##0.00"), fontArial10Bold)) { HorizontalAlignment = 2, PaddingTop = 4f, PaddingBottom = 8f, PaddingRight = 5f, PaddingLeft = 5f }); data.AddCell(new PdfPCell(new Phrase(totalVATExemptSalesAmount.ToString("#,##0.00"), fontArial10Bold)) { HorizontalAlignment = 2, PaddingTop = 4f, PaddingBottom = 8f, PaddingRight = 5f, PaddingLeft = 5f }); data.AddCell(new PdfPCell(new Phrase(totalZeroRatedSalesAmount.ToString("#,##0.00"), fontArial10Bold)) { HorizontalAlignment = 2, PaddingTop = 4f, PaddingBottom = 8f, PaddingRight = 5f, PaddingLeft = 5f }); data.AddCell(new PdfPCell(new Phrase(totalVATAmount.ToString("#,##0.00"), fontArial10Bold)) { HorizontalAlignment = 2, PaddingTop = 4f, PaddingBottom = 8f, PaddingRight = 5f, PaddingLeft = 5f }); data.AddCell(new PdfPCell(new Phrase(totalDiscountAmount.ToString("#,##0.00"), fontArial10Bold)) { HorizontalAlignment = 2, PaddingTop = 4f, PaddingBottom = 8f, PaddingRight = 5f, PaddingLeft = 5f }); data.AddCell(new PdfPCell(new Phrase(totalNetSales.ToString("#,##0.00"), fontArial10Bold)) { HorizontalAlignment = 2, PaddingTop = 4f, PaddingBottom = 8f, PaddingRight = 5f, PaddingLeft = 5f }); document.Add(data); overAllTotalGrossAmount += totalGrossAmount; overAllTotalVATableSalesAmount += totalVATableSalesAmount; overAllTotalVATExemptSalesAmount += totalVATExemptSalesAmount; overAllTotalZeroRatedSalesAmount += totalZeroRatedSalesAmount; overAllTotalVATAmount += totalVATAmount; overAllTotalDiscountAmount += totalDiscountAmount; overAllTotalNetSales += totalNetSales; } document.Add(space); } PdfPTable overallTotalData = new PdfPTable(15); overallTotalData.SetWidths(new float[] { 40f, 65f, 60f, 50f, 50f, 55f, 55f, 55f, 50f, 50f, 50f, 50f, 50f, 50f, 50f }); overallTotalData.WidthPercentage = 100; overallTotalData.AddCell(new PdfPCell(new Phrase("OVERALL TOTAL", fontArial10Bold)) { Colspan = 8, HorizontalAlignment = 2, PaddingTop = 4f, PaddingBottom = 8f, PaddingRight = 5f, PaddingLeft = 5f }); overallTotalData.AddCell(new PdfPCell(new Phrase(overAllTotalGrossAmount.ToString("#,##0.00"), fontArial10Bold)) { HorizontalAlignment = 2, PaddingTop = 4f, PaddingBottom = 8f, PaddingRight = 5f, PaddingLeft = 5f }); overallTotalData.AddCell(new PdfPCell(new Phrase(overAllTotalVATableSalesAmount.ToString("#,##0.00"), fontArial10Bold)) { HorizontalAlignment = 2, PaddingTop = 4f, PaddingBottom = 8f, PaddingRight = 5f, PaddingLeft = 5f }); overallTotalData.AddCell(new PdfPCell(new Phrase(overAllTotalVATExemptSalesAmount.ToString("#,##0.00"), fontArial10Bold)) { HorizontalAlignment = 2, PaddingTop = 4f, PaddingBottom = 8f, PaddingRight = 5f, PaddingLeft = 5f }); overallTotalData.AddCell(new PdfPCell(new Phrase(overAllTotalZeroRatedSalesAmount.ToString("#,##0.00"), fontArial10Bold)) { HorizontalAlignment = 2, PaddingTop = 4f, PaddingBottom = 8f, PaddingRight = 5f, PaddingLeft = 5f }); overallTotalData.AddCell(new PdfPCell(new Phrase(overAllTotalVATAmount.ToString("#,##0.00"), fontArial10Bold)) { HorizontalAlignment = 2, PaddingTop = 4f, PaddingBottom = 8f, PaddingRight = 5f, PaddingLeft = 5f }); overallTotalData.AddCell(new PdfPCell(new Phrase(overAllTotalDiscountAmount.ToString("#,##0.00"), fontArial10Bold)) { HorizontalAlignment = 2, PaddingTop = 4f, PaddingBottom = 8f, PaddingRight = 5f, PaddingLeft = 5f }); overallTotalData.AddCell(new PdfPCell(new Phrase(overAllTotalNetSales.ToString("#,##0.00"), fontArial10Bold)) { HorizontalAlignment = 2, PaddingTop = 4f, PaddingBottom = 8f, PaddingRight = 5f, PaddingLeft = 5f }); document.Add(overallTotalData); } } // ====== // Footer // ====== PdfPTable tblFooter = new PdfPTable(1); tblFooter.SetWidths(new float[] { 100f }); tblFooter.WidthPercentage = 100; tblFooter.AddCell(new PdfPCell(new Phrase("Software Provider Name: Cebu Innosoft Solutions VAT REG TIN:261-481-387-000 Address: Y & S Bldg. V Rama Guadalupe Cebu \nPTU No.: XXX-XXX-XXXX Date Issued: XX/XX/XXXX Valid Until: XX/XX/XXXX", fontArial9Italic)) { Border = 0, PaddingTop = 10f, HorizontalAlignment = 1 }); document.Add(tblFooter); // ============== // Document Close // ============== document.Close(); // ================ // Byte File Stream // ================ byte[] byteInfo = workStream.ToArray(); workStream.Write(byteInfo, 0, byteInfo.Length); workStream.Position = 0; return(new FileStreamResult(workStream, "application/pdf")); }
public static LuceneDocument ToLucene(this Sentence sourceSentence, MarcellDocument parentDocument, Section parentSection, Paragraph parentParagraph) { LuceneDocument result = new LuceneDocument(); //Add basic document data result.AddStringField("Id", sourceSentence.Id ?? sourceSentence.InternalId.ToString("N"), Field.Store.YES); result.AddStringField("InternalId", sourceSentence.InternalId.ToString("N"), Field.Store.YES); result.AddStringList("DocumentToken", sourceSentence.DocumentSimilarityData.ConsolidatedTokens); result.AddStringList("DocumentTopic", sourceSentence.DocumentSimilarityData.ConsolidatedTopics); result.AddStringList("SectionToken", sourceSentence.SectionSimilarityData.ConsolidatedTokens); result.AddStringList("SectionTopic", sourceSentence.SectionSimilarityData.ConsolidatedTopics); result.AddStringList("ParagraphToken", sourceSentence.ParagraphSimilarityData.ConsolidatedTokens); result.AddStringList("ParagraphTopic", sourceSentence.ParagraphSimilarityData.ConsolidatedTopics); result.AddStringList("SentenceToken", sourceSentence.SentenceSimilarityData.ConsolidatedTokens); result.AddStringList("SentenceTopic", sourceSentence.SentenceSimilarityData.ConsolidatedTopics); result.AddInt32Field("TokenCount", sourceSentence.TokenCount, Field.Store.YES); result.AddStringField("Language", sourceSentence.Language, Field.Store.YES); result.AddScoredDoubleField("RecognitionQuality", sourceSentence.RecognitionQuality); result.AddInt32Field("Order", sourceSentence.Order, Field.Store.YES); string sentencehText = sourceSentence.Text ?? ""; result.AddTextField("Text", sentencehText, Field.Store.YES); //Add reference to parent document if (parentDocument != null) { result.AddStringField("ParentDocumentId", parentDocument.InternalId.ToString("N"), Field.Store.YES); } //Add reference to parent section if (parentSection != null) { result.AddStringField("ParentSectionId", parentSection.InternalId.ToString("N"), Field.Store.YES); } //Add reference to parent section if (parentParagraph != null) { result.AddStringField("ParentParagraphId", parentParagraph.InternalId.ToString("N"), Field.Store.YES); } result.AddStringList("ContainedTokenEV", sourceSentence.Tokens.SelectMany(t => t.EuroVocEntities), Field.Store.NO); result.AddStringList("ContainedTokenIATE", sourceSentence.Tokens.SelectMany(t => t.IateEntities), Field.Store.NO); return(result); }
public void IzdajRacun(racun odabraniRacun, float zaPlatiti, string popisStavki, string imeZaposlenika) { string Naziv = ""; decimal Iznos = 0; List <decimal> listaZaUmanjiti = new List <decimal>(); List <string> listaNaziva = new List <string>(); using (var db = new Entities17045_DB()) { var A = db.racun_jelo.Where(x => x.id_racun == odabraniRacun.id).ToList(); foreach (var item in A) { var C = item.jelo.sastojaks.Where(x => x.jelo.naziv == item.jelo.naziv).ToList(); foreach (var ite in C) { listaNaziva.Add(ite.naziv.ToString()); listaZaUmanjiti.Add((decimal)item.kolicina * (decimal)ite.kolicina); } } for (int i = 0; i < listaNaziva.Count(); i++) { Naziv = listaNaziva[i]; var B = db.zalihes.FirstOrDefault(x => x.naziv == Naziv); if (B != null) { Iznos = listaZaUmanjiti[i]; zalihe odabranaZaliha = B; db.zalihes.Attach(odabranaZaliha); odabranaZaliha.kolicina = (decimal)odabranaZaliha.kolicina - Iznos; odabranaZaliha.datum = DateTime.Now.ToShortDateString(); if (odabranaZaliha.kolicina >= 0) { db.SaveChanges(); } else { MessageBox.Show("Nema dovoljno potrebnih sastojaka na zalihi!"); return; } } } } listaNaziva.Clear(); listaZaUmanjiti.Clear(); using (var db = new Entities17045_DB()) { db.racuns.Attach(odabraniRacun); odabraniRacun.iznos = zaPlatiti; db.SaveChanges(); } //Kreiranje računa u PDF-u string nazivDatoteke = "Racun" + odabraniRacun.id.ToString() + ".pdf"; Document racunPDF = new Document(iTextSharp.text.PageSize.LETTER, 20, 15, 42, 35); PdfWriter writer = PdfWriter.GetInstance(racunPDF, new FileStream(nazivDatoteke, FileMode.Create)); racunPDF.Open(); Paragraph header = new Paragraph("\n\nŠifra racuna: " + odabraniRacun.id.ToString() + " || Vrijeme: " + odabraniRacun.datum_vrijeme.ToString() + " || Zaposlenik: " + imeZaposlenika + "\n\n\n"); header.Alignment = Element.ALIGN_CENTER; Paragraph stavke = new Paragraph(popisStavki + "\n\n"); stavke.IndentationLeft = 30; Paragraph footer = new Paragraph("Iznos za platiti: " + odabraniRacun.iznos.ToString() + " kn"); footer.IndentationLeft = 30; racunPDF.Add(header); racunPDF.Add(stavke); racunPDF.Add(footer); racunPDF.Close(); //Otvaranje PDF-a System.Diagnostics.Process.Start(nazivDatoteke); }
private Paragraph GetPacParagraph(ref int index, byte[] buffer) { while (index < 15) { index++; } bool con = true; while (con) { index++; if (index + 20 >= buffer.Length) { return(null); } if (buffer[index] == 0xFE && (buffer[index - 15] == 0x60 || buffer[index - 15] == 0x61)) { con = false; } if (buffer[index] == 0xFE && (buffer[index - 12] == 0x60 || buffer[index - 12] == 0x61)) { con = false; } } int feIndex = index; int endDelimiter = 0x00; byte alignment = buffer[feIndex + 1]; byte verticalAlignment = buffer[feIndex - 1]; var p = new Paragraph(); int timeStartIndex = feIndex - 15; if (buffer[timeStartIndex] == 0x60) { p.StartTime = GetTimeCode(timeStartIndex + 1, buffer); p.EndTime = GetTimeCode(timeStartIndex + 5, buffer); } else if (buffer[timeStartIndex + 3] == 0x60) { timeStartIndex += 3; p.StartTime = GetTimeCode(timeStartIndex + 1, buffer); p.EndTime = GetTimeCode(timeStartIndex + 5, buffer); } else { return(null); } int textLength = buffer[timeStartIndex + 9] + buffer[timeStartIndex + 10] * 256; int maxIndex = timeStartIndex + 10 + textLength; if (_codePage == -1) { GetCodePage(buffer, index, endDelimiter); } var sb = new StringBuilder(); index = feIndex + 3; string preTextCode = System.Text.Encoding.ASCII.GetString(buffer, index + 1, 3); if (preTextCode == "W16") { index += 5; } while (index < buffer.Length && index <= maxIndex) // buffer[index] != endDelimiter) { if (preTextCode == "W16") { if (buffer[index] == 0xFE) { sb.AppendLine(); preTextCode = System.Text.Encoding.ASCII.GetString(buffer, index + 4, 3); if (preTextCode == "W16") { index += 7; } index += 2; } else { if (buffer[index] == 0) { sb.Append(System.Text.Encoding.ASCII.GetString(buffer, index + 1, 1)); } else { sb.Append(System.Text.Encoding.GetEncoding(950).GetString(buffer, index, 2)); } index++; } } else if (buffer[index] == 0xFF) { sb.Append(" "); } else if (buffer[index] == 0xFE) { sb.AppendLine(); index += 2; } else if (_codePage == 0) { sb.Append(GetLatinString(GetEncoding(_codePage), buffer, ref index)); } else if (_codePage == 3) { sb.Append(GetArabicString(buffer, ref index)); } else if (_codePage == 4) { sb.Append(GetHebrewString(buffer, ref index)); } else if (_codePage == 6) { sb.Append(GetCyrillicString(buffer, ref index)); } else { sb.Append(GetEncoding(_codePage).GetString(buffer, index, 1)); } index++; } if (index + 20 >= buffer.Length) { return(null); } p.Text = sb.ToString(); p.Text = p.Text.Replace("\0", string.Empty); p.Text = FixItalics(p.Text); if (_codePage == 3) { p.Text = Utilities.FixEnglishTextInRightToLeftLanguage(p.Text, "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"); } if (verticalAlignment < 5) { if (alignment == 1) // left { p.Text = "{\\an7}" + p.Text; } else if (alignment == 0) // right { p.Text = "{\\an9}" + p.Text; } else { p.Text = "{\\an8}" + p.Text; } } else if (verticalAlignment < 9) { if (alignment == 1) // left { p.Text = "{\\an4}" + p.Text; } else if (alignment == 0) // right { p.Text = "{\\an6}" + p.Text; } else { p.Text = "{\\an5}" + p.Text; } } else { if (alignment == 1) // left { p.Text = "{\\an1}" + p.Text; } else if (alignment == 0) // right { p.Text = "{\\an3}" + p.Text; } } p.Text = p.Text.Replace(Convert.ToChar(0).ToString(CultureInfo.InvariantCulture), string.Empty); p.Text = p.Text.Replace(Convert.ToChar(1).ToString(CultureInfo.InvariantCulture), string.Empty); p.Text = p.Text.Replace(Convert.ToChar(2).ToString(CultureInfo.InvariantCulture), string.Empty); p.Text = p.Text.Replace(Convert.ToChar(3).ToString(CultureInfo.InvariantCulture), string.Empty); p.Text = p.Text.Replace(Convert.ToChar(4).ToString(CultureInfo.InvariantCulture), string.Empty); p.Text = p.Text.Replace(Convert.ToChar(5).ToString(CultureInfo.InvariantCulture), string.Empty); p.Text = p.Text.Replace(Convert.ToChar(6).ToString(CultureInfo.InvariantCulture), string.Empty); p.Text = p.Text.Replace(Convert.ToChar(7).ToString(CultureInfo.InvariantCulture), string.Empty); p.Text = p.Text.Replace(Convert.ToChar(8).ToString(CultureInfo.InvariantCulture), string.Empty); p.Text = p.Text.Replace(Convert.ToChar(11).ToString(CultureInfo.InvariantCulture), string.Empty); p.Text = p.Text.Replace(Convert.ToChar(12).ToString(CultureInfo.InvariantCulture), string.Empty); return(p); }
/// <summary> /// Creates the static parts of the invoice. /// </summary> void CreatePage() { // Each MigraDoc document needs at least one section. Section section = this.document.AddSection(); // Put a logo in the header //Image image = section.Headers.Primary.AddImage("../../PowerBooks.png"); var foo = imageToByteArray(System.Drawing.Image.FromFile("../../PowerBooks.png")); var image = section.Headers.Primary.AddImage(foo); image.Height = "2.5cm"; image.LockAspectRatio = true; image.RelativeVertical = RelativeVertical.Line; image.RelativeHorizontal = RelativeHorizontal.Margin; image.Top = ShapePosition.Top; image.Left = ShapePosition.Right; image.WrapFormat.Style = WrapStyle.Through; // Create footer Paragraph paragraph = section.Footers.Primary.AddParagraph(); paragraph.AddText("PowerBooks Inc · Sample Street 42 · 56789 Cologne · Germany"); paragraph.Format.Font.Size = 9; paragraph.Format.Alignment = ParagraphAlignment.Center; // Create the text frame for the address this.addressFrame = section.AddTextFrame(); this.addressFrame.Height = "3.0cm"; this.addressFrame.Width = "7.0cm"; this.addressFrame.Left = ShapePosition.Left; this.addressFrame.RelativeHorizontal = RelativeHorizontal.Margin; this.addressFrame.Top = "5.0cm"; this.addressFrame.RelativeVertical = RelativeVertical.Page; // Put sender in address frame paragraph = this.addressFrame.AddParagraph("PowerBooks Inc · Sample Street 42 · 56789 Cologne"); paragraph.Format.Font.Name = "Times New Roman"; paragraph.Format.Font.Size = 7; paragraph.Format.SpaceAfter = 3; // Add the print date field paragraph = section.AddParagraph(); paragraph.Format.SpaceBefore = "8cm"; paragraph.Style = "Reference"; paragraph.AddFormattedText("INVOICE", TextFormat.Bold); paragraph.AddTab(); paragraph.AddText("Cologne, "); paragraph.AddDateField("dd.MM.yyyy"); // Create the item table this.table = section.AddTable(); this.table.Style = "Table"; this.table.Borders.Color = TableBorder; this.table.Borders.Width = 0.25; this.table.Borders.Left.Width = 0.5; this.table.Borders.Right.Width = 0.5; this.table.Rows.LeftIndent = 0; // Before you can add a row, you must define the columns Column column = this.table.AddColumn("1cm"); column.Format.Alignment = ParagraphAlignment.Center; column = this.table.AddColumn("2.5cm"); column.Format.Alignment = ParagraphAlignment.Right; column = this.table.AddColumn("3cm"); column.Format.Alignment = ParagraphAlignment.Right; column = this.table.AddColumn("3.5cm"); column.Format.Alignment = ParagraphAlignment.Right; column = this.table.AddColumn("2cm"); column.Format.Alignment = ParagraphAlignment.Center; column = this.table.AddColumn("4cm"); column.Format.Alignment = ParagraphAlignment.Right; // Create the header of the table Row row = table.AddRow(); row.HeadingFormat = true; row.Format.Alignment = ParagraphAlignment.Center; row.Format.Font.Bold = true; row.Shading.Color = TableBlue; row.Cells[0].AddParagraph("Item"); row.Cells[0].Format.Font.Bold = false; row.Cells[0].Format.Alignment = ParagraphAlignment.Left; row.Cells[0].VerticalAlignment = VerticalAlignment.Bottom; row.Cells[0].MergeDown = 1; row.Cells[1].AddParagraph("Title and Author"); row.Cells[1].Format.Alignment = ParagraphAlignment.Left; row.Cells[1].MergeRight = 3; row.Cells[5].AddParagraph("Extended Price"); row.Cells[5].Format.Alignment = ParagraphAlignment.Left; row.Cells[5].VerticalAlignment = VerticalAlignment.Bottom; row.Cells[5].MergeDown = 1; row = table.AddRow(); row.HeadingFormat = true; row.Format.Alignment = ParagraphAlignment.Center; row.Format.Font.Bold = true; row.Shading.Color = TableBlue; row.Cells[1].AddParagraph("Quantity"); row.Cells[1].Format.Alignment = ParagraphAlignment.Left; row.Cells[2].AddParagraph("Unit Price"); row.Cells[2].Format.Alignment = ParagraphAlignment.Left; row.Cells[3].AddParagraph("Discount (%)"); row.Cells[3].Format.Alignment = ParagraphAlignment.Left; row.Cells[4].AddParagraph("Taxable"); row.Cells[4].Format.Alignment = ParagraphAlignment.Left; this.table.SetEdge(0, 0, 6, 2, Edge.Box, BorderStyle.Single, 0.75, Color.Empty); }
public override void ExecuteResult(ControllerContext context) { var Response = context.HttpContext.Response; Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "filename=foo.pdf"); dt = Util.Now; doc = new Document(PageSize.LETTER.Rotate(), 36, 36, 64, 64); var w = PdfWriter.GetInstance(doc, Response.OutputStream); var roles = DbUtil.Db.CurrentRoles(); var i = (from o in DbUtil.Db.Organizations where o.LimitToRole == null || roles.Contains(o.LimitToRole) where o.OrganizationId == orgid select new { o.OrganizationName, o.LeaderName, o.FirstMeetingDate }).SingleOrDefault(); w.PageEvent = new HeadFoot { HeaderText = $"Recent Attendee Report: {i.OrganizationName} - {i.LeaderName} ({(i.FirstMeetingDate.HasValue ? "since " + i.FirstMeetingDate.FormatDate() : "no First Meeting Date set")})", FooterText = "Recent Attendee Report" }; doc.Open(); var q = Attendees(orgid.Value); if (!orgid.HasValue || i == null || !q.Any()) { doc.Add(new Phrase("no data")); } else { var mt = new PdfPTable(1); mt.SetNoPadding(); mt.HeaderRows = 1; float[] widths = new float[] { 4f, 6f, 7f, 2.6f, 2f, 3f }; var t = new PdfPTable(widths); t.DefaultCell.Border = PdfPCell.NO_BORDER; t.DefaultCell.VerticalAlignment = PdfPCell.ALIGN_TOP; t.DefaultCell.SetLeading(2.0f, 1f); t.WidthPercentage = 100; t.AddHeader("Name", boldfont); t.AddHeader("Address", boldfont); t.AddHeader("Phone/Email", boldfont); t.AddHeader("Last Att.", boldfont); t.AddHeader("Birthday", boldfont); t.AddHeader("Status", boldfont); mt.AddCell(t); var color = BaseColor.BLACK; bool?v = null; foreach (var p in q) { if (color == BaseColor.WHITE) { color = new GrayColor(240); } else { color = BaseColor.WHITE; } t = new PdfPTable(widths); t.SetNoBorder(); t.DefaultCell.VerticalAlignment = Element.ALIGN_TOP; t.DefaultCell.BackgroundColor = color; if (v != p.visitor) { t.Add($" ------ {(p.visitor ? "Guests and Previous Members" : "Members")} ------", 6, bigboldfont); } v = p.visitor; t.Add(p.Name, font); var ph = new Paragraph(); ph.AddLine(p.Address, font); ph.AddLine(p.Address2, font); ph.AddLine(p.CSZ, font); t.AddCell(ph); ph = new Paragraph(); ph.AddLine(p.HomePhone.FmtFone("H"), font); ph.AddLine(p.CellPhone.FmtFone("C"), font); ph.AddLine(p.Email, font); t.AddCell(ph); t.Add(p.LastAttend.FormatDate(), font); t.Add(p.Birthday, font); t.Add(p.AttendType, font); t.CompleteRow(); t.Add("", font); t.Add(p.AttendStr, 4, monofont); t.AddRight($"{p.AttendPct:n1}{(p.AttendPct.HasValue ? "%" : "")}", font); mt.AddCell(t); } doc.Add(mt); } doc.Close(); }
public override void LoadSubtitle(Subtitle subtitle, List <string> lines, string fileName) { _errorCount = 0; var sb = new StringBuilder(); lines.ForEach(line => sb.AppendLine(line)); var xml = new XmlDocument { XmlResolver = null }; xml.LoadXml(sb.ToString().Replace(" & ", " & ").Replace("Q&A", "Q&A").RemoveControlCharactersButWhiteSpace().Trim()); subtitle.Header = xml.OuterXml; var nsmgr = new XmlNamespaceManager(xml.NameTable); nsmgr.AddNamespace("ttaf1", xml.DocumentElement.NamespaceURI); var div = xml.DocumentElement.SelectSingleNode("//ttaf1:body", nsmgr).SelectSingleNode("ttaf1:div", nsmgr); if (div == null) { div = xml.DocumentElement.SelectSingleNode("//ttaf1:body", nsmgr).FirstChild; } var styleDic = new Dictionary <string, string>(); foreach (XmlNode node in xml.DocumentElement.SelectNodes("//ttaf1:style", nsmgr)) { if (node.Attributes["tts:fontStyle"] != null && node.Attributes["xml:id"] != null) { styleDic.Add(node.Attributes["xml:id"].Value, node.Attributes["tts:fontStyle"].Value); } } bool couldBeFrames = true; bool couldBeMillisecondsWithMissingLastDigit = true; foreach (XmlNode node in div.ChildNodes) { try { var pText = new StringBuilder(); var styleName = string.Empty; if (node.Attributes["style"] != null) { styleName = node.Attributes["style"].Value; } foreach (XmlNode innerNode in node.ChildNodes) { switch (innerNode.Name.Replace("tt:", string.Empty)) { case "br": pText.AppendLine(); break; case "span": bool italic = false; bool font = false; if (innerNode.Attributes["style"] != null && styleDic.ContainsKey(innerNode.Attributes["style"].Value)) { if (styleDic[innerNode.Attributes["style"].Value].Contains("italic")) { italic = true; pText.Append("<i>"); } } if (innerNode.Attributes["tts:color"] != null) { var colorAsString = innerNode.Attributes["tts:color"].Value; if (colorAsString != "white") { pText.Append("<font color=\"" + colorAsString + "\">"); font = true; } } if (!italic && innerNode.Attributes != null) { var fs = innerNode.Attributes.GetNamedItem("tts:fontStyle"); if (fs != null && fs.Value == "italic") { italic = true; pText.Append("<i>"); } } if (innerNode.HasChildNodes) { foreach (XmlNode innerInnerNode in innerNode.ChildNodes) { if (innerInnerNode.Name == "br" || innerInnerNode.Name == "tt:br") { pText.AppendLine(); } else { pText.Append(innerInnerNode.InnerText); } } } else { pText.Append(innerNode.InnerText); } if (italic) { pText.Append("</i>"); } if (font) { if (pText.EndsWith(' ')) { pText = new StringBuilder(pText.ToString().TrimEnd()); pText.Append("</font> "); } else { pText.Append("</font>"); } } break; case "i": pText.Append("<i>" + innerNode.InnerText + "</i>"); break; case "b": pText.Append("<b>" + innerNode.InnerText + "</b>"); break; default: pText.Append(innerNode.InnerText); break; } } string start = null; string end = null; string dur = null; foreach (XmlAttribute attr in node.Attributes) { if (attr.Name.EndsWith("begin", StringComparison.Ordinal)) { start = attr.InnerText; } else if (attr.Name.EndsWith("end", StringComparison.Ordinal)) { end = attr.InnerText; } else if (attr.Name.EndsWith("duration", StringComparison.Ordinal)) { dur = attr.InnerText; } } string text = pText.ToString(); text = text.Replace(Environment.NewLine + "</i>", "</i>" + Environment.NewLine); text = text.Replace("<i></i>", string.Empty).Trim(); if (!string.IsNullOrEmpty(end)) { if (end.Length != 11 || end.Substring(8, 1) != ":" || start == null || start.Length != 11 || start.Substring(8, 1) != ":") { couldBeFrames = false; } if (couldBeMillisecondsWithMissingLastDigit && (end.Length != 11 || start == null || start.Length != 11 || end.Substring(8, 1) != "." || start.Substring(8, 1) != ".")) { couldBeMillisecondsWithMissingLastDigit = false; } double dBegin, dEnd; if (!start.Contains(':') && Utilities.CountTagInText(start, '.') == 1 && !end.Contains(':') && Utilities.CountTagInText(end, '.') == 1 && double.TryParse(start, NumberStyles.Float, CultureInfo.InvariantCulture, out dBegin) && double.TryParse(end, NumberStyles.Float, CultureInfo.InvariantCulture, out dEnd)) { subtitle.Paragraphs.Add(new Paragraph(text, dBegin * TimeCode.BaseUnit, dEnd * TimeCode.BaseUnit)); if (!string.IsNullOrEmpty(styleName)) { subtitle.Paragraphs[subtitle.Paragraphs.Count - 1].Extra = styleName; } } else { if (start.Length == 8 && start[2] == ':' && start[5] == ':' && end.Length == 8 && end[2] == ':' && end[5] == ':') { var p = new Paragraph(); var parts = start.Split(SplitCharColon); p.StartTime = new TimeCode(int.Parse(parts[0]), int.Parse(parts[1]), int.Parse(parts[2]), 0); parts = end.Split(SplitCharColon); p.EndTime = new TimeCode(int.Parse(parts[0]), int.Parse(parts[1]), int.Parse(parts[2]), 0); p.Text = text; subtitle.Paragraphs.Add(p); if (!string.IsNullOrEmpty(styleName)) { p.Extra = styleName; } } else { subtitle.Paragraphs.Add(new Paragraph(TimedText10.GetTimeCode(start, false), TimedText10.GetTimeCode(end, false), text)); if (!string.IsNullOrEmpty(styleName)) { subtitle.Paragraphs[subtitle.Paragraphs.Count - 1].Extra = styleName; } } } } else if (!string.IsNullOrEmpty(dur)) { if (dur.Length != 11 || dur.Substring(8, 1) != ":" || start == null || start.Length != 11 || start.Substring(8, 1) != ":") { couldBeFrames = false; } if (couldBeMillisecondsWithMissingLastDigit && (dur.Length != 11 || start == null || start.Length != 11 || dur.Substring(8, 1) != "." || start.Substring(8, 1) != ".")) { couldBeMillisecondsWithMissingLastDigit = false; } TimeCode duration = TimedText10.GetTimeCode(dur, false); TimeCode startTime = TimedText10.GetTimeCode(start, false); var endTime = new TimeCode(startTime.TotalMilliseconds + duration.TotalMilliseconds); subtitle.Paragraphs.Add(new Paragraph(startTime, endTime, text)); if (!string.IsNullOrEmpty(styleName)) { subtitle.Paragraphs[subtitle.Paragraphs.Count - 1].Extra = styleName; } } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); _errorCount++; } } subtitle.RemoveEmptyLines(); if (couldBeFrames) { bool all30OrBelow = true; foreach (Paragraph p in subtitle.Paragraphs) { if (p.StartTime.Milliseconds > 30 || p.EndTime.Milliseconds > 30) { all30OrBelow = false; break; } } if (all30OrBelow) { foreach (Paragraph p in subtitle.Paragraphs) { p.StartTime.Milliseconds = SubtitleFormat.FramesToMillisecondsMax999(p.StartTime.Milliseconds); p.EndTime.Milliseconds = SubtitleFormat.FramesToMillisecondsMax999(p.EndTime.Milliseconds); } } } else if (couldBeMillisecondsWithMissingLastDigit && Configuration.Settings.SubtitleSettings.TimedText10TimeCodeFormatSource != "hh:mm:ss.ms-two-digits") { foreach (Paragraph p in subtitle.Paragraphs) { p.StartTime.Milliseconds *= 10; p.EndTime.Milliseconds *= 10; } } subtitle.Renumber(); }
/// <summary> /// Creates the dynamic parts of the invoice. /// </summary> void FillContent() { // Fill address in address text frame XPathNavigator item = SelectItem("/invoice/to"); Paragraph paragraph = this.addressFrame.AddParagraph(); paragraph.AddText(GetValue(item, "name/singleName")); paragraph.AddLineBreak(); paragraph.AddText(GetValue(item, "address/line1")); paragraph.AddLineBreak(); paragraph.AddText(GetValue(item, "address/postalCode") + " " + GetValue(item, "address/city")); // Iterate the invoice items double totalExtendedPrice = 0; XPathNodeIterator iter = this.navigator.Select("/invoice/items/*"); while (iter.MoveNext()) { item = iter.Current; double quantity = GetValueAsDouble(item, "quantity"); double price = GetValueAsDouble(item, "price"); double discount = GetValueAsDouble(item, "discount"); // Each item fills two rows Row row1 = this.table.AddRow(); Row row2 = this.table.AddRow(); row1.TopPadding = 1.5; row1.Cells[0].Shading.Color = TableGray; row1.Cells[0].VerticalAlignment = VerticalAlignment.Center; row1.Cells[0].MergeDown = 1; row1.Cells[1].Format.Alignment = ParagraphAlignment.Left; row1.Cells[1].MergeRight = 3; row1.Cells[5].Shading.Color = TableGray; row1.Cells[5].MergeDown = 1; row1.Cells[0].AddParagraph(GetValue(item, "itemNumber")); paragraph = row1.Cells[1].AddParagraph(); paragraph.AddFormattedText(GetValue(item, "title"), TextFormat.Bold); paragraph.AddFormattedText(" by ", TextFormat.Italic); paragraph.AddText(GetValue(item, "author")); row2.Cells[1].AddParagraph(GetValue(item, "quantity")); row2.Cells[2].AddParagraph(price.ToString("0.00") + " €"); row2.Cells[3].AddParagraph(discount.ToString("0.0")); row2.Cells[4].AddParagraph(); row2.Cells[5].AddParagraph(price.ToString("0.00")); double extendedPrice = quantity * price; extendedPrice = extendedPrice * (100 - discount) / 100; row1.Cells[5].AddParagraph(extendedPrice.ToString("0.00") + " €"); row1.Cells[5].VerticalAlignment = VerticalAlignment.Bottom; totalExtendedPrice += extendedPrice; this.table.SetEdge(0, this.table.Rows.Count - 2, 6, 2, Edge.Box, BorderStyle.Single, 0.75); } // Add an invisible row as a space line to the table Row row = this.table.AddRow(); row.Borders.Visible = false; // Add the total price row row = this.table.AddRow(); row.Cells[0].Borders.Visible = false; row.Cells[0].AddParagraph("Total Price"); row.Cells[0].Format.Font.Bold = true; row.Cells[0].Format.Alignment = ParagraphAlignment.Right; row.Cells[0].MergeRight = 4; row.Cells[5].AddParagraph(totalExtendedPrice.ToString("0.00") + " €"); // Add the VAT row row = this.table.AddRow(); row.Cells[0].Borders.Visible = false; row.Cells[0].AddParagraph("VAT (19%)"); row.Cells[0].Format.Font.Bold = true; row.Cells[0].Format.Alignment = ParagraphAlignment.Right; row.Cells[0].MergeRight = 4; row.Cells[5].AddParagraph((0.19 * totalExtendedPrice).ToString("0.00") + " €"); // Add the additional fee row row = this.table.AddRow(); row.Cells[0].Borders.Visible = false; row.Cells[0].AddParagraph("Shipping and Handling"); row.Cells[5].AddParagraph(0.ToString("0.00") + " €"); row.Cells[0].Format.Font.Bold = true; row.Cells[0].Format.Alignment = ParagraphAlignment.Right; row.Cells[0].MergeRight = 4; // Add the total due row row = this.table.AddRow(); row.Cells[0].AddParagraph("Total Due"); row.Cells[0].Borders.Visible = false; row.Cells[0].Format.Font.Bold = true; row.Cells[0].Format.Alignment = ParagraphAlignment.Right; row.Cells[0].MergeRight = 4; totalExtendedPrice += 0.19 * totalExtendedPrice; row.Cells[5].AddParagraph(totalExtendedPrice.ToString("0.00") + " €"); // Set the borders of the specified cell range this.table.SetEdge(5, this.table.Rows.Count - 4, 1, 4, Edge.Box, BorderStyle.Single, 0.75); // Add the notes paragraph paragraph = this.document.LastSection.AddParagraph(); paragraph.Format.SpaceBefore = "1cm"; paragraph.Format.Borders.Width = 0.75; paragraph.Format.Borders.Distance = 3; paragraph.Format.Borders.Color = TableBorder; paragraph.Format.Shading.Color = TableGray; item = SelectItem("/invoice"); paragraph.AddText(GetValue(item, "notes")); }
/// <summary> /// 设置文档的标题和页脚 /// </summary> /// <param name="path">文档的路径</param> public static bool HeadersAndFooters(string path) { try { // 创建新文档 using (var document = DocX.Create(path)) { // 这个文档添加页眉和页脚。 document.AddHeaders(); document.AddFooters(); // 强制第一个页面有一个不同的头和脚。 document.DifferentFirstPage = true; // 奇偶页页眉页脚不同 document.DifferentOddAndEvenPages = true; // 获取本文档的第一个、奇数和甚至是头文件。 Header headerFirst = document.Headers.First; Header headerOdd = document.Headers.Odd; Header headerEven = document.Headers.Even; // 获取此文档的第一个、奇数和甚至脚注。 Footer footerFirst = document.Footers.First; Footer footerOdd = document.Footers.Odd; Footer footerEven = document.Footers.Even; // 将一段插入到第一个头。 Paragraph p0 = headerFirst.InsertParagraph(); p0.Append("Hello First Header.").Bold(); // 在奇数头中插入一个段落。 Paragraph p1 = headerOdd.InsertParagraph(); p1.Append("Hello Odd Header.").Bold(); // 插入一个段落到偶数头中。 Paragraph p2 = headerEven.InsertParagraph(); p2.Append("Hello Even Header.").Bold(); // 将一段插入到第一个脚注中。 Paragraph p3 = footerFirst.InsertParagraph(); p3.Append("Hello First Footer.").Bold(); // 在奇数脚注中插入一个段落。 Paragraph p4 = footerOdd.InsertParagraph(); p4.Append("Hello Odd Footer.").Bold(); // 插入一个段落到偶数头中。 Paragraph p5 = footerEven.InsertParagraph(); p5.Append("Hello Even Footer.").Bold(); // 在文档中插入一个段落。 Paragraph p6 = document.InsertParagraph(); p6.AppendLine("Hello First page."); // 创建一个第二个页面,显示第一个页面有自己的头和脚。 p6.InsertPageBreakAfterSelf(); // 在页面中断后插入一段。 Paragraph p7 = document.InsertParagraph(); p7.AppendLine("Hello Second page."); // 创建三分之一页面显示,奇偶页不同的页眉和页脚。 p7.InsertPageBreakAfterSelf(); // 在页面中断后插入一段。 Paragraph p8 = document.InsertParagraph(); p8.AppendLine("Hello Third page."); // 将属性保存入文档 document.Save(); return(true); } } catch (Exception ex) { throw new Exception(ex.Message); } //从内存中释放此文档。 }
public void SacuvajRezervaciju(BindingList <Rezervacija> rezervacije, List <Rezervacija> pdfRez) { try { if (rezervacije.Count > 0) { bool uspeh = KontrolerKorisnickogInterfejsa.Instance.ZapamtiRrezervacije(rezervacije.ToList()); if (uspeh) { MessageBox.Show("Sistem je zapamtio rezervaciju!"); List <Rezervacija> sacuvaneRez = new List <Rezervacija>(); int broj = rezervacije.Count; sacuvaneRez = KontrolerKorisnickogInterfejsa.Instance.UcitajRezervacije(); int ukupno = sacuvaneRez.Count(); for (int i = ukupno - broj; i < ukupno; i++) { pdfRez.Add(sacuvaneRez.ElementAt(i)); } rezervacije.Clear(); Document doc = new Document(); PdfWriter.GetInstance(doc, new FileStream("C:/Users/lazam/Desktop/Karte/karta" + $"{pdfRez.ElementAt(0).RedBr}" + ".pdf", FileMode.Create)); doc.Open(); for (int i = 0; i < pdfRez.Count; i++) { Paragraph p = new Paragraph($"------------------------------Rezervacija {i+1}------------------------------"); Paragraph p1 = new Paragraph($"Rezervacija id: {pdfRez.ElementAt(i).RedBr} \n"); Paragraph p11 = new Paragraph($"Rezervisao: {pdfRez.ElementAt(i).Korisnik.Ime} {pdfRez.ElementAt(i).Korisnik.Prezime}"); Paragraph p2 = new Paragraph($"Let od: {pdfRez.ElementAt(i).Let.DestinacijaOD.Zemlja.Naziv}" + "-" + $"{pdfRez.ElementAt(i).Let.DestinacijaOD.Grad}"); Paragraph p22 = new Paragraph($" do: {pdfRez.ElementAt(i).Let.DestinacijaDO.Zemlja.Naziv}" + "-" + $"{pdfRez.ElementAt(i).Let.DestinacijaDO.Grad}"); Paragraph p3 = new Paragraph($"Sediste: {pdfRez.ElementAt(i).Sediste.BrojSedista}"); Paragraph p4 = new Paragraph("-----------------------------------------------------------------------------"); Paragraph p5 = new Paragraph($"Datum polaska: { pdfRez.ElementAt(i).Let.DatumPolaska}"); Paragraph p6 = new Paragraph(" "); Paragraph psp = new Paragraph(" "); Paragraph psp1 = new Paragraph(" "); doc.Add(p); doc.Add(p1); doc.Add(p11); doc.Add(p2); doc.Add(p22); doc.Add(p3); doc.Add(p5); doc.Add(p4); doc.Add(p6); doc.Add(psp); doc.Add(psp1); } doc.Close(); MessageBox.Show("Rezervacija je odstampana!"); } else { MessageBox.Show("Nema unete rezervacije"); } } else { MessageBox.Show("Sistem ne moze da zapamti rezervaciju"); } } catch (ExceptionServer es) { MessageBox.Show("Server je iskljucen!"); Environment.Exit(0); } }
public override void LoadSubtitle(Subtitle subtitle, List <string> lines, string fileName) { _errorCount = 0; string xmlString; if (lines == null && fileName != null) { xmlString = File.ReadAllText(fileName); } else if (lines != null) { StringBuilder sb = new StringBuilder(); lines.ForEach(line => sb.AppendLine(line)); xmlString = sb.ToString(); } else { return; } if (!xmlString.Contains("<captionate>") || !xmlString.Contains("</caption>")) { return; } XmlDocument xml = new XmlDocument(); xml.XmlResolver = null; try { xml.LoadXml(xmlString); } catch { _errorCount = 1; return; } Paragraph p = null; foreach (XmlNode node in xml.DocumentElement.SelectNodes("captions/caption")) { try { if (node.Attributes["time"] != null) { string start = node.Attributes["time"].InnerText; double startMilliseconds = DecodeTimeToMilliseconds(start); if (p != null) { p.EndTime.TotalMilliseconds = startMilliseconds - 1; } if (node.SelectSingleNode("tracks/track0") != null) { string text = node.SelectSingleNode("tracks/track0").InnerText; text = Utilities.RemoveHtmlTags(text); text = text.Replace("<br>", Environment.NewLine).Replace("<br />", Environment.NewLine).Replace("<BR>", Environment.NewLine); p = new Paragraph(text, startMilliseconds, startMilliseconds + 3000); if (!string.IsNullOrWhiteSpace(text)) { subtitle.Paragraphs.Add(p); } } } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); _errorCount++; } } subtitle.Renumber(1); }
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName) { subtitle.Paragraphs.Clear(); subtitle.Header = null; byte[] buffer = FileUtil.ReadAllBytesShared(fileName); int i = 512; Paragraph last = null; var sb = new StringBuilder(); while (i < buffer.Length - 25) { var p = new Paragraph(); int length = buffer[i + 1]; p.StartTime = DecodeTimestamp(buffer, i + 3); if (last != null && Math.Abs(last.EndTime.TotalMilliseconds) < 0.001) { last.EndTime.TotalMilliseconds = p.StartTime.TotalMilliseconds - 1; } if (length > 22) { int start = i + 7; sb.Clear(); int skipCount = 0; bool italics = false; for (int k = start; k < length + i; k++) { byte b = buffer[k]; if (skipCount > 0) { skipCount--; } else if (b < 0x1F) { byte b2 = buffer[k + 1]; skipCount = 1; if (sb.Length > 0 && !sb.ToString().EndsWith(Environment.NewLine, StringComparison.Ordinal) && !sb.EndsWith('>')) { if (italics) { sb.Append("</i>"); } sb.AppendLine(); italics = false; } if (b == 0x11 && b2 == 0x2e) { sb.Append("<i>"); italics = true; } } else if (b == 0x80) { } else { sb.Append(Encoding.GetEncoding(1252).GetString(buffer, k, 1)); } } p.Text = sb.ToString().Trim(); if (italics) { p.Text += "</i>"; } p.Text = p.Text.Replace(Environment.NewLine + Environment.NewLine, Environment.NewLine); p.Text = p.Text.Replace(Environment.NewLine + Environment.NewLine, Environment.NewLine); p.Text = p.Text.Replace(Environment.NewLine + Environment.NewLine, Environment.NewLine); subtitle.Paragraphs.Add(p); } else if (last != null) { last.EndTime.TotalMilliseconds = p.StartTime.TotalMilliseconds; } last = p; i += length + 3; } if (last != null) { if (Math.Abs(last.EndTime.TotalMilliseconds) < 0.001) { last.EndTime.TotalMilliseconds = last.StartTime.TotalMilliseconds + 2500; } if (last.Duration.TotalMilliseconds > Configuration.Settings.General.SubtitleMaximumDisplayMilliseconds) { last.EndTime.TotalMilliseconds = last.StartTime.TotalMilliseconds + Utilities.GetOptimalDisplayMilliseconds(last.Text); } } subtitle.Renumber(); }
public Picture CreatePicture() { return(Paragraph.CreatePicture(document, id, string.Empty, string.Empty)); }
private static string GetTimeCodeString(Paragraph paragraph) { return($"#{paragraph.StartTime.TotalMilliseconds:00000000}{paragraph.Duration.TotalMilliseconds:000000}"); }
public override void LoadSubtitle(Subtitle subtitle, List <string> lines, string fileName) { _errorCount = 0; Paragraph p = null; foreach (string line in lines) { string s = line.TrimEnd(); if (s.IndexOf(':') > 0) { if (RegexTimeCode1.IsMatch(s)) { try { if (p != null) { subtitle.Paragraphs.Add(p); } p = new Paragraph(DecodeTimeCodeFrames(s.Substring(5, 11), SplitCharColon), new TimeCode(), s.Remove(0, 37).Trim()); } catch { _errorCount++; p = null; } } else if (RegexTimeCode1Empty.IsMatch(s)) { try { if (p != null) { subtitle.Paragraphs.Add(p); } p = new Paragraph(DecodeTimeCodeFrames(s.Substring(5, 11), SplitCharColon), new TimeCode(), string.Empty); } catch { _errorCount++; p = null; } } else if (RegexTimeCode2.IsMatch(s)) { try { if (p != null) { p.EndTime = DecodeTimeCodeFrames(s.Substring(5, 11), SplitCharColon); if (string.IsNullOrWhiteSpace(p.Text)) { p.Text = s.Remove(0, 37).Trim(); } else { p.Text = p.Text + Environment.NewLine + s.Remove(0, 37).Trim(); } } } catch { _errorCount++; p = null; } } } else if (!string.IsNullOrWhiteSpace(s)) { _errorCount++; if (_errorCount > 200 && subtitle.Paragraphs.Count == 0) { return; } } } if (p != null) { subtitle.Paragraphs.Add(p); } subtitle.Renumber(); }
public override void LoadSubtitle(Subtitle subtitle, List <string> lines, string fileName) { _errorCount = 0; var sb = new StringBuilder(); foreach (string line in lines) { sb.AppendLine(line); } string rtf = sb.ToString().Trim(); if (!rtf.StartsWith("{\\rtf")) { return; } string[] arr = null; var rtBox = new System.Windows.Forms.RichTextBox(); try { rtBox.Rtf = rtf; arr = rtBox.Text.Replace("\r\n", "\n").Replace("\r", "\n").Split('\n'); } catch (Exception exception) { System.Diagnostics.Debug.WriteLine(exception.Message); return; } finally { rtBox.Dispose(); } bool expectStartTime = true; var p = new Paragraph(); subtitle.Paragraphs.Clear(); foreach (string line in arr) { string s = line.Trim().Replace("*", string.Empty); var match = regexTimeCodes.Match(s); if (match.Success) { string[] parts = s.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); if (parts.Length == 4) { try { if (!string.IsNullOrEmpty(p.Text)) { subtitle.Paragraphs.Add(p); p = new Paragraph(); } p.StartTime = DecodeTimeCode(parts[1]); p.EndTime = DecodeTimeCode(parts[2]); expectStartTime = false; } catch (Exception exception) { _errorCount++; System.Diagnostics.Debug.WriteLine(exception.Message); } } } else if (line.Trim().Length == 0) { if (p.StartTime.TotalMilliseconds == 0 && p.EndTime.TotalMilliseconds == 0) { _errorCount++; } else { subtitle.Paragraphs.Add(p); } p = new Paragraph(); } else if (line.Trim().Length > 0 && !expectStartTime) { p.Text = (p.Text + Environment.NewLine + line).Trim(); if (p.Text.Length > 500) { _errorCount += 10; return; } while (p.Text.Contains(Environment.NewLine + " ")) { p.Text = p.Text.Replace(Environment.NewLine + " ", Environment.NewLine); } } } if (!string.IsNullOrEmpty(p.Text)) { subtitle.Paragraphs.Add(p); } subtitle.RemoveEmptyLines(); subtitle.Renumber(1); }