public override List CloneShallow() { RomanList clone = new RomanList(); PopulateProperties(clone); return(clone); }
// =========================================================================== public void Write(Stream stream) { // step 1 using (Document document = new Document()) { // step 2 PdfWriter.GetInstance(document, stream); // step 3 document.Open(); // step 4 var SQL = @"SELECT DISTINCT mc.country_id, c.country, count(*) AS c FROM film_country c, film_movie_country mc WHERE c.id = mc.country_id GROUP BY mc.country_id, country ORDER BY c DESC"; // Create a list for the countries List list = new RomanList(); // loop over the countries using (var c = AdoDB.Provider.CreateConnection()) { c.ConnectionString = AdoDB.CS; using (DbCommand cmd = c.CreateCommand()) { cmd.CommandText = SQL; c.Open(); using (var r = cmd.ExecuteReader()) { while (r.Read()) { // create a list item for the country ListItem item = new ListItem( string.Format("{0}: {1} movies", r["country"].ToString(), r["c"].ToString() ) ); // Create a list for the movies List movielist = new GreekList(); movielist.Lowercase = List.LOWERCASE; // Loop over the movies foreach (Movie movie in PojoFactory.GetMovies(r["country_id"].ToString()) ) { ListItem movieitem = new ListItem(movie.MovieTitle); // Create a list for the directors List directorlist = new ZapfDingbatsNumberList(0); // Loop over the directors foreach (Director director in movie.Directors) { directorlist.Add(String.Format("{0}, {1}", director.Name, director.GivenName )); } movieitem.Add(directorlist); movielist.Add(movieitem); } item.Add(movielist); list.Add(item); } document.Add(list); } } } } }
public void NestedListAtTheEndOfAnotherNestedList() { String pdfFile = "nestedListAtTheEndOfAnotherNestedList.pdf"; // step 1 Document document = new Document(); // step 2 PdfWriter.GetInstance(document, File.Create(DEST_FOLDER + pdfFile)); // step 3 document.Open(); // step 4 PdfPTable table = new PdfPTable(1); PdfPCell cell = new PdfPCell(); cell.BackgroundColor = BaseColor.ORANGE; RomanList romanlist = new RomanList(true, 20); romanlist.IndentationLeft = 10f; romanlist.Add("One"); romanlist.Add("Two"); romanlist.Add("Three"); RomanList romanlist2 = new RomanList(true, 20); romanlist2.IndentationLeft = 10f; romanlist2.Add("One"); romanlist2.Add("Two"); romanlist2.Add("Three"); romanlist.Add(romanlist2); //romanlist.add("Four"); List list = new List(List.ORDERED, 20f); list.SetListSymbol("\u2022"); list.IndentationLeft = 20f; list.Add("One"); list.Add("Two"); list.Add("Three"); list.Add("Four"); list.Add("Roman List"); list.Add(romanlist); list.Add("Five"); list.Add("Six"); cell.AddElement(list); table.AddCell(cell); document.Add(table); // step 5 document.Close(); CompareTool compareTool = new CompareTool(); String error = compareTool.CompareByContent(DEST_FOLDER + pdfFile, SOURCE_FOLDER + pdfFile, DEST_FOLDER, "diff_"); if (error != null) { Assert.Fail(error); } }
/** * The ListCssApplier has the capabilities to change the type of the given {@link List} dependable on the css. * This means: <strong>Always replace your list with the returned one and add content to the list after applying!</strong> */ // not implemented: list-style-type:armenian, georgian, decimal-leading-zero. virtual public List Apply(List list, Tag t, HtmlPipelineContext context) { float fontSize = FontSizeTranslator.GetInstance().GetFontSize(t); List lst = list; IDictionary<String, String> css = t.CSS; String styleType; css.TryGetValue(CSS.Property.LIST_STYLE_TYPE, out styleType); BaseColor color = HtmlUtilities.DecodeColor(css.ContainsKey(CSS.Property.COLOR) ? css[CSS.Property.COLOR] : null); if (null == color) color = BaseColor.BLACK; if (null != styleType) { if (Util.EqualsIgnoreCase(styleType, CSS.Value.NONE)) { lst.Lettered = false; lst.Numbered = false; lst.SetListSymbol(""); } else if (Util.EqualsIgnoreCase(CSS.Value.DECIMAL, styleType)) { lst = new List(List.ORDERED); } else if (Util.EqualsIgnoreCase(CSS.Value.DISC, styleType)) { lst = new ZapfDingbatsList(108); lst.Autoindent = false; lst.SymbolIndent = 7.75f; Chunk symbol = lst.Symbol; symbol.SetTextRise(1.5f); Font font = symbol.Font; font.Size = 4.5f; font.Color = color; } else if (Util.EqualsIgnoreCase(CSS.Value.SQUARE, styleType)) { lst = new ZapfDingbatsList(110); ShrinkSymbol(lst, fontSize, color); } else if (Util.EqualsIgnoreCase(CSS.Value.CIRCLE, styleType)) { lst = new ZapfDingbatsList(109); lst.Autoindent = false; lst.SymbolIndent = 7.75f; Chunk symbol = lst.Symbol; symbol.SetTextRise(1.5f); Font font = symbol.Font; font.Size = 4.5f; font.Color = color; } else if (CSS.Value.LOWER_ROMAN.Equals(styleType)) { lst = new RomanList(true, 0); lst.Autoindent = true; SynchronizeSymbol(fontSize, lst, color); } else if (CSS.Value.UPPER_ROMAN.Equals(styleType)) { lst = new RomanList(false, 0); SynchronizeSymbol(fontSize, lst, color); lst.Autoindent = true; } else if (CSS.Value.LOWER_GREEK.Equals(styleType)) { lst = new GreekList(true, 0); SynchronizeSymbol(fontSize, lst, color); lst.Autoindent = true; } else if (CSS.Value.UPPER_GREEK.Equals(styleType)) { lst = new GreekList(false, 0); SynchronizeSymbol(fontSize, lst, color); lst.Autoindent = true; } else if (CSS.Value.LOWER_ALPHA.Equals(styleType) || CSS.Value.LOWER_LATIN.Equals(styleType)) { lst = new List(List.ORDERED, List.ALPHABETICAL); SynchronizeSymbol(fontSize, lst, color); lst.Lowercase = true; lst.Autoindent = true; } else if (CSS.Value.UPPER_ALPHA.Equals(styleType) || CSS.Value.UPPER_LATIN.Equals(styleType)) { lst = new List(List.ORDERED, List.ALPHABETICAL); SynchronizeSymbol(fontSize, lst, color); lst.Lowercase = false; lst.Autoindent = true; } } else if (Util.EqualsIgnoreCase(t.Name, HTML.Tag.OL)) { lst = new List(List.ORDERED); String type = null; t.Attributes.TryGetValue("type", out type); if (type != null) { if (type.Equals("A")) { lst.Lettered = true; } else if (type.Equals("a")) { lst.Lettered = true; lst.Lowercase = true; } } SynchronizeSymbol(fontSize, lst, color); lst.Autoindent = true; } else if (Util.EqualsIgnoreCase(t.Name, HTML.Tag.UL)) { lst = new List(List.UNORDERED); ShrinkSymbol(lst, fontSize, color); } if (css.ContainsKey(CSS.Property.LIST_STYLE_IMAGE) && !Util.EqualsIgnoreCase(css[CSS.Property.LIST_STYLE_IMAGE], CSS.Value.NONE)) { lst = new List(); String url = utils.ExtractUrl(css[CSS.Property.LIST_STYLE_IMAGE]); try { Image img = new ImageRetrieve(context.ResourcePath, context.GetImageProvider()).RetrieveImage(url); lst.ListSymbol = new Chunk(img, 0, 0, false); lst.SymbolIndent = img.Width; if (LOG.IsLogging(Level.TRACE)) { LOG.Trace(String.Format(LocaleMessages.GetInstance().GetMessage("html.tag.list"), url)); } } catch (NoImageException e) { if (LOG.IsLogging(Level.ERROR)) { LOG.Error(String.Format(LocaleMessages.GetInstance().GetMessage("html.tag.img.failed"), url), e); } lst = new List(List.UNORDERED); } lst.Autoindent = false; } lst.Alignindent = false; float leftIndent = 0; if (css.ContainsKey(CSS.Property.LIST_STYLE_POSITION) && Util.EqualsIgnoreCase(css[CSS.Property.LIST_STYLE_POSITION], CSS.Value.INSIDE)) { leftIndent += 30; } else { leftIndent += 15; } leftIndent += css.ContainsKey(CSS.Property.MARGIN_LEFT)?utils.ParseValueToPt(css[CSS.Property.MARGIN_LEFT],fontSize):0; leftIndent += css.ContainsKey(CSS.Property.PADDING_LEFT)?utils.ParseValueToPt(css[CSS.Property.PADDING_LEFT],fontSize):0; lst.IndentationLeft = leftIndent; String startAtr = null; t.Attributes.TryGetValue(HTML.Attribute.START, out startAtr); if (startAtr != null) { try { int start = int.Parse(startAtr); lst.First = start; } catch (FormatException exc) { } } return lst; }
static void MainExample() { var doc = new Document (); PdfWriter.GetInstance(doc, new FileStream(@"Document.pdf", FileMode.Create)); doc.Open(); //Normal text string text = "Normal Text. "; Paragraph par = new Paragraph (); par.FirstLineIndent = firstLineIndent; par.SpacingAfter = spacingAfter; for (int i = 0; i < 15; i++) { par.Add (text); } doc.Add (par); //Bold text text = "Bold Text. "; BaseFont baseFont = BaseFont.CreateFont (BaseFont.HELVETICA_BOLD, BaseFont.CP1257, false); iTextSharp.text.Font font = new iTextSharp.text.Font (baseFont, textFontSize); Chunk chunk = new Chunk (text, font); par = new Paragraph (); par.FirstLineIndent = firstLineIndent; par.SpacingAfter = spacingAfter; for (int i = 0; i < 15; i++) { par.Add (chunk); } doc.Add (par); //Italic Text text = "Italic Text. "; baseFont = BaseFont.CreateFont (BaseFont.TIMES_ITALIC, BaseFont.CP1257, false); font = new iTextSharp.text.Font (baseFont, textFontSize); chunk = new Chunk (text, font); par = new Paragraph (); par.FirstLineIndent = firstLineIndent; par.SpacingAfter = spacingAfter; for (int i = 0; i < 15; i++) { par.Add (chunk); } doc.Add (par); //Underline text text = "Underline Text. "; baseFont = BaseFont.CreateFont (BaseFont.HELVETICA, BaseFont.CP1257, false); font = new iTextSharp.text.Font (baseFont, textFontSize, iTextSharp.text.Font.UNDERLINE); chunk = new Chunk (text, font); par = new Paragraph (); par.FirstLineIndent = firstLineIndent; par.SpacingAfter = spacingAfter; for (int i = 0; i < 15; i++) { par.Add (chunk); } doc.Add (par); //Strikethrough text text = "Strikethrough Text. "; baseFont = BaseFont.CreateFont (BaseFont.HELVETICA, BaseFont.CP1257, false); font = new iTextSharp.text.Font (baseFont, textFontSize, iTextSharp.text.Font.STRIKETHRU); chunk = new Chunk (text, font); par = new Paragraph (); par.FirstLineIndent = firstLineIndent; par.SpacingAfter = spacingAfter; for (int i = 0; i < 15; i++) { par.Add (chunk); } doc.Add (par); //Hyperlink text text = "Hyperlink Text. "; baseFont = BaseFont.CreateFont (BaseFont.HELVETICA, BaseFont.CP1257, false); //font = new iTextSharp.text.Font (baseFont, textFontSize, iTextSharp.text.Font.UNDERLINE); font = FontFactory.GetFont("Arial", textFontSize, iTextSharp.text.Font.UNDERLINE, new iTextSharp.text.BaseColor(0, 0, 255)); Anchor link = new Anchor (text, font); link.Reference = "http://google.com"; par = new Paragraph (); par.FirstLineIndent = firstLineIndent; par.SpacingAfter = spacingAfter; for (int i = 0; i < 15; i++) { par.Add (link); } doc.Add (par); //Russian Text //Warning text = "Русский Текст. "; font = FontFactory.GetFont(GetFontByName("Arial"), BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); chunk = new Chunk (text, font); par = new Paragraph (); par.FirstLineIndent = firstLineIndent; par.SpacingAfter = spacingAfter; for (int i = 0; i < 15; i++) { par.Add (chunk); } doc.Add (par); //Bold & Italic & Underline & Hyperlink Text text = "Bold & Italic & Underline & Hyperlink Text. "; font = FontFactory.GetFont( GetFontByName("Times New Roman"), textFontSize, iTextSharp.text.Font.UNDERLINE | iTextSharp.text.Font.BOLD | iTextSharp.text.Font.ITALIC, new iTextSharp.text.BaseColor(0, 0, 255) ); link = new Anchor (text, font); link.Reference = "http://google.com"; par = new Paragraph (); par.FirstLineIndent = firstLineIndent; par.SpacingAfter = spacingAfter; for (int i = 0; i < 7; i++) { par.Add (link); } doc.Add (par); //Before (After) line break text="Before line break. "; par = new Paragraph (); par.FirstLineIndent = firstLineIndent; par.SpacingAfter = spacingAfter; for (int i = 0; i < 13; i++) { par.Add (text); } par.Add (Chunk.NEWLINE); par.Add ("After line break."); doc.Add (par); //Span text text="Span text. "; par = new Paragraph (); par.FirstLineIndent = firstLineIndent; par.SpacingAfter = spacingAfter; Font font1 = FontFactory.GetFont (GetFontByName ("Arial")); Font font2 = FontFactory.GetFont (GetFontByName ("Arial"), textFontSize, Font.BOLD); Font font3 = FontFactory.GetFont (GetFontByName ("Arial"), textFontSize, Font.ITALIC); Font font4 = FontFactory.GetFont (GetFontByName ("Arial"), textFontSize, Font.UNDERLINE); Font font5 = FontFactory.GetFont (GetFontByName ("Arial"), textFontSize, Font.UNDERLINE, new BaseColor(0, 0, 255)); link = new Anchor (text, font5); link.Reference = "http://google.com"; par.Add (new Chunk (text, font1)); par.Add (new Chunk (text, font2)); par.Add (new Chunk (text, font3)); par.Add (new Chunk (text, font4)); par.Add (" "); par.Add (link); doc.Add (par); //Image par = new Paragraph (); par.SpacingAfter = spacingAfter; Image jpg1 = Image.GetInstance ("images.jpg"); Image jpg2 = Image.GetInstance ("images.jpg"); Image jpg3 = Image.GetInstance ("images.jpg"); Image jpg4 = Image.GetInstance ("images.jpg"); jpg1.ScalePercent (scalePercent); jpg1.RotationDegrees = 0; jpg2.ScalePercent (scalePercent); jpg2.RotationDegrees = -90; jpg3.ScalePercent (scalePercent); jpg3.RotationDegrees = -180; jpg4.ScalePercent (scalePercent); jpg4.RotationDegrees = -270; par.Add (new Chunk (jpg1, 0, 0, true)); par.Add (new Chunk (jpg2, 0, 0, true)); par.Add (new Chunk (jpg3, 0, 0, true)); par.Add (new Chunk (jpg4, 0, 0, true)); doc.Add (par); //Page break doc.Add (new Paragraph("Before page break.")); doc.Add (Chunk.NEXTPAGE); doc.Add (new Paragraph("After page break.")); //List with 'None' marker style: par = new Paragraph(); par.SpacingBefore = spacingAfter; par.Add ("List with 'None' marker style:"); doc.Add(par); List list = new List (List.UNORDERED, symbolIndent); list.SetListSymbol (""); list.IndentationLeft = indentationLeft; list.Add ("Item1"); list.Add ("Item2"); list.Add ("Item3"); doc.Add (list); //List with 'Disc' marker style: par = new Paragraph(); par.SpacingBefore = spacingAfter; par.Add ("List with 'Disc' marker style:"); doc.Add(par); list = new List (List.UNORDERED, symbolIndent); list.SetListSymbol (symbolDisk); list.IndentationLeft = indentationLeft; list.Add ("Item1"); list.Add ("Item2"); list.Add ("Item3"); doc.Add (list); //List with 'Box' marker style: //Not working... par = new Paragraph(); par.SpacingBefore = spacingAfter; par.Add ("List with 'Box' marker style:"); doc.Add(par); list = new List (List.UNORDERED, symbolIndent); list.SetListSymbol (symbolBox); list.IndentationLeft = indentationLeft; list.Add ("Item1"); list.Add ("Item2"); list.Add ("Item3"); doc.Add (list); //List with 'LowerRoman' marker style: //Warning par = new Paragraph(); par.SpacingBefore = spacingAfter; par.Add ("List with 'LowerRoman' marker style:"); doc.Add(par); RomanList romanList = new RomanList (true, symbolIndent); //true == Roman Lower romanList.IndentationLeft = indentationLeft; romanList.Add ("Item1"); romanList.Add ("Item2"); romanList.Add ("Item3"); doc.Add (romanList); //List with 'UpperRoman' marker style: //Warning par = new Paragraph(); par.SpacingBefore = spacingAfter; par.Add ("List with 'UpperRoman' marker style:"); doc.Add(par); romanList = new RomanList (false, symbolIndent); //true == Roman Lower romanList.IndentationLeft = indentationLeft; romanList.Add ("Item1"); romanList.Add ("Item2"); romanList.Add ("Item3"); romanList.Add ("Item4"); romanList.Add ("Item5"); romanList.Add ("Item6"); doc.Add (romanList); //Table //http://www.mikesdotnetting.com/Article/86/itextsharp-introducing-tables par = new Paragraph(); par.SpacingBefore = spacingAfter; par.Add ("Table:"); doc.Add(par); PdfPTable table = new PdfPTable (5); //5 Columns table.TotalWidth = doc.PageSize.Width - doc.LeftMargin - doc.RightMargin; table.LockedWidth = true; float columt1Width = 50f; float columt2Width = 80f; float delta = (table.TotalWidth - columt1Width - columt2Width) / 3; float[] widths = { columt1Width, columt2Width, delta, delta, delta }; table.SetWidths (widths); table.SpacingBefore = spacingAfter; PdfPCell cell = new PdfPCell(new Phrase("Colspan = Rowspan = 2")); cell.Colspan = 2; cell.Rowspan = 2; table.AddCell (cell); cell = new PdfPCell (new Phrase("Rowspan = 4")); cell.Rowspan = 4; table.AddCell (cell); cell = new PdfPCell (new Phrase("Colspan = 2")); cell.Colspan = 2; table.AddCell (cell); for (int i = 0; i < 20; i++) table.AddCell ("Text " + (i + 1).ToString ()); doc.Add (table); //Before (After) line //Warning par = new Paragraph("Before line"); par.SpacingBefore = spacingAfter; doc.Add (par); cell = new PdfPCell(); cell.BorderWidth = 0f; cell.BorderWidthBottom = 0.5f; table = new PdfPTable (1); table.AddCell (cell); table.TotalWidth = doc.PageSize.Width - doc.LeftMargin - doc.RightMargin; table.LockedWidth = true; table.SpacingBefore = spacingAfter; doc.Add (table); par = new Paragraph("After line"); doc.Add (par); //Fonts (Arial) par = new Paragraph(); par.SpacingBefore = spacingAfter; text="Arial 10pt. "; font = FontFactory.GetFont (GetFontByName ("Arial"), 10); par.Add (new Chunk (text, font)); text="Arial 15pt. "; font = FontFactory.GetFont (GetFontByName ("Arial"), 15); par.Add (new Chunk (text, font)); text="Arial 20pt. "; font = FontFactory.GetFont (GetFontByName ("Arial"), 20); par.Add (new Chunk (text, font)); doc.Add (par); //Fonts (Tahoma) par = new Paragraph(); par.SpacingBefore = spacingAfter; text="Tahoma 10pt. "; font = FontFactory.GetFont (GetFontByName ("Tahoma"), 10); par.Add (new Chunk (text, font)); text="Tahoma 15pt. "; font = FontFactory.GetFont (GetFontByName ("Tahoma"), 15); par.Add (new Chunk (text, font)); text="Tahoma 20pt. "; font = FontFactory.GetFont (GetFontByName ("Tahoma"), 20); par.Add (new Chunk (text, font)); doc.Add (par); //Fonts (Courier New) par = new Paragraph(); par.SpacingBefore = spacingAfter; text="Courier New 10pt. "; font = FontFactory.GetFont (GetFontByName ("Courier New"), 10); par.Add (new Chunk (text, font)); text="Courier New 15pt. "; font = FontFactory.GetFont (GetFontByName ("Courier New"), 15); par.Add (new Chunk (text, font)); text="Courier New 20pt. "; font = FontFactory.GetFont (FontFactory.COURIER, 20); //GetFontByName ("Courier New") == FontFactory.COURIER par.Add (new Chunk (text, font)); doc.Add (par); //Normal, Italic, Oblique //Not Finished par = new Paragraph(); par.SpacingBefore = spacingAfter; par.SpacingAfter = spacingAfter; text = "Normal. "; font = FontFactory.GetFont (GetFontByName ("Arial"), textFontSize, Font.NORMAL); par.Add (new Chunk (text, font)); text = "Italic. "; font = FontFactory.GetFont (GetFontByName ("Arial"), textFontSize, Font.ITALIC); par.Add (new Chunk (text, font)); text = "Oblique. (Not Working)"; font = FontFactory.GetFont (GetFontByName ("Arial"), textFontSize); par.Add (new Chunk (text, font)); doc.Add (par); //Normal. Subscript. Superscript. //H 2 O doc.Add(new Paragraph("Normal. Subscript. Superscript.")); par = new Paragraph (); par.SpacingBefore = spacingAfter; chunk = new Chunk ("H", FontFactory.GetFont (GetFontByName ("Arial"))); par.Add (chunk); chunk = new Chunk ("2", FontFactory.GetFont (GetFontByName ("Arial"))); chunk.SetTextRise (-5f); par.Add (chunk); chunk = new Chunk ("O", FontFactory.GetFont (GetFontByName ("Arial"))); par.Add (chunk); doc.Add (par); //C 2 H 5 OH par = new Paragraph (); par.SpacingBefore = spacingAfter; chunk = new Chunk ("C", FontFactory.GetFont (GetFontByName ("Arial"))); par.Add (chunk); chunk = new Chunk ("2", FontFactory.GetFont (GetFontByName ("Arial"))); chunk.SetTextRise (-5f); par.Add (chunk); chunk = new Chunk ("H", FontFactory.GetFont (GetFontByName ("Arial"))); par.Add (chunk); chunk = new Chunk ("5", FontFactory.GetFont (GetFontByName ("Arial"))); chunk.SetTextRise (-5f); par.Add (chunk); chunk = new Chunk ("OH", FontFactory.GetFont (GetFontByName ("Arial"))); par.Add (chunk); doc.Add (par); //a^2+b^2=c^2 par = new Paragraph (); par.SpacingBefore = spacingAfter; chunk = new Chunk ("a", FontFactory.GetFont (GetFontByName ("Arial"))); par.Add (chunk); chunk = new Chunk ("2", FontFactory.GetFont (GetFontByName ("Arial"))); chunk.SetTextRise (5f); par.Add (chunk); chunk = new Chunk (" + b", FontFactory.GetFont (GetFontByName ("Arial"))); par.Add (chunk); chunk = new Chunk ("2", FontFactory.GetFont (GetFontByName ("Arial"))); chunk.SetTextRise (5f); par.Add (chunk); chunk = new Chunk (" = c", FontFactory.GetFont (GetFontByName ("Arial"))); par.Add (chunk); chunk = new Chunk ("2", FontFactory.GetFont (GetFontByName ("Arial"))); chunk.SetTextRise (5f); par.Add (chunk); doc.Add (par); //Foreground and Background (text color and cell backgroudcolor) (table) //Warning table=new PdfPTable(3); chunk = new Chunk ("Green foreground", FontFactory.GetFont (GetFontByName ("Arial"), textFontSize, new BaseColor (0, 200, 0))); cell = new PdfPCell (new Phrase (chunk)); cell.BorderWidth = 0f; table.AddCell (cell); cell = new PdfPCell (new Phrase ("Red Background")); cell.BackgroundColor = new BaseColor (255, 0, 0); cell.BorderWidth = 0f; table.AddCell (cell); chunk = new Chunk ("Green foreground & Red background", FontFactory.GetFont (GetFontByName ("Arial"), textFontSize, new BaseColor (0, 200, 0))); cell = new PdfPCell (new Phrase (chunk)); cell.BackgroundColor = new BaseColor (255, 0, 0); cell.BorderWidth = 0f; table.AddCell (cell); table.TotalWidth = doc.PageSize.Width - doc.LeftMargin - doc.RightMargin; table.LockedWidth = true; table.SpacingBefore = spacingAfter; doc.Add (table); //Left text par = new Paragraph(); par.SpacingBefore = spacingAfter; par.FirstLineIndent = firstLineIndent; for (int i = 0; i < 15; i++) par.Add ("Left text. "); par.Alignment = Element.ALIGN_LEFT; doc.Add (par); //Rigth text par = new Paragraph(); par.SpacingBefore = spacingAfter; par.FirstLineIndent = firstLineIndent; for (int i = 0; i < 15; i++) par.Add ("Rigth text. "); par.Alignment = Element.ALIGN_RIGHT; doc.Add (par); //Center text par = new Paragraph(); par.SpacingBefore = spacingAfter; for (int i = 0; i < 15; i++) par.Add ("Center text. "); par.Alignment = Element.ALIGN_CENTER; doc.Add (par); //Justify text par = new Paragraph(); par.SpacingBefore = spacingAfter; par.FirstLineIndent = firstLineIndent; for (int i = 0; i < 15; i++) par.Add ("Justify text. "); par.Alignment = Element.ALIGN_JUSTIFIED_ALL; doc.Add (par); //Boxes //Warning PdfPTable box1 = new PdfPTable (1); PdfPTable box2 = new PdfPTable (1); PdfPCell addCellInBox2 = new PdfPCell (new Phrase ("Section(table) & !Margin & Padding & Border & Background")); addCellInBox2.Padding = 20f; addCellInBox2.BackgroundColor = new BaseColor (255, 255, 0); addCellInBox2.BorderWidth = 4f; addCellInBox2.BorderColor = new BaseColor (0, 0, 255); box2.AddCell (addCellInBox2); PdfPCell addCellinBox1 = new PdfPCell (box2); addCellinBox1.Padding = 20f; addCellinBox1.BackgroundColor = new BaseColor (0, 200, 0); addCellinBox1.BorderWidth = 4f; addCellinBox1.BorderColor = new BaseColor (255, 0, 0); box1.AddCell (addCellinBox1); box1.SpacingBefore = spacingAfter; box1.TotalWidth = doc.PageSize.Width - doc.LeftMargin - doc.RightMargin; box1.LockedWidth = true; doc.Add (box1); doc.Close (); System.Diagnostics.Process.Start ("Document.pdf"); }
/** * The ListCssApplier has the capabilities to change the type of the given {@link List} dependable on the css. * This means: <strong>Always replace your list with the returned one and add content to the list after applying!</strong> */ // not implemented: list-style-type:armenian, georgian, decimal-leading-zero. public List Apply(List list, Tag t, HtmlPipelineContext htmlPipelineContext) { float fontSize = FontSizeTranslator.GetInstance().GetFontSize(t); List lst = list; IDictionary<String, String> css = t.CSS; String styleType; css.TryGetValue(CSS.Property.LIST_STYLE_TYPE, out styleType); if (null != styleType) { if (Util.EqualsIgnoreCase(styleType, CSS.Value.NONE)) { lst.Lettered = false; lst.Numbered = false; lst.SetListSymbol(""); } else if (Util.EqualsIgnoreCase(CSS.Value.DECIMAL, styleType)) { lst = new List(List.ORDERED); SynchronizeSymbol(fontSize, lst); } else if (Util.EqualsIgnoreCase(CSS.Value.DISC, styleType)) { lst = new ZapfDingbatsList(108); ShrinkSymbol(lst, fontSize); } else if (Util.EqualsIgnoreCase(CSS.Value.SQUARE, styleType)) { lst = new ZapfDingbatsList(110); ShrinkSymbol(lst, fontSize); } else if (Util.EqualsIgnoreCase(CSS.Value.CIRCLE, styleType)) { lst = new ZapfDingbatsList(109); ShrinkSymbol(lst, fontSize); } else if (CSS.Value.LOWER_ROMAN.Equals(styleType)) { lst = new RomanList(true, 0); SynchronizeSymbol(fontSize, lst); } else if (CSS.Value.UPPER_ROMAN.Equals(styleType)) { lst = new RomanList(false, 0); SynchronizeSymbol(fontSize, lst); } else if (CSS.Value.LOWER_GREEK.Equals(styleType)) { lst = new GreekList(true, 0); SynchronizeSymbol(fontSize, lst); } else if (CSS.Value.UPPER_GREEK.Equals(styleType)) { lst = new GreekList(false, 0); SynchronizeSymbol(fontSize, lst); } else if (CSS.Value.LOWER_ALPHA.Equals(styleType) || CSS.Value.LOWER_LATIN.Equals(styleType)) { lst = new List(List.ORDERED, List.ALPHABETICAL); SynchronizeSymbol(fontSize, lst); lst.Lowercase = true; } else if (CSS.Value.UPPER_ALPHA.Equals(styleType) || CSS.Value.UPPER_LATIN.Equals(styleType)) { lst = new List(List.ORDERED, List.ALPHABETICAL); SynchronizeSymbol(fontSize, lst); lst.Lowercase = false; } } else if (Util.EqualsIgnoreCase(t.Name, HTML.Tag.OL)) { lst = new List(List.ORDERED); SynchronizeSymbol(fontSize, lst); } else if (Util.EqualsIgnoreCase(t.Name, HTML.Tag.UL)) { lst = new List(List.UNORDERED); ShrinkSymbol(lst, fontSize); } if (css.ContainsKey(CSS.Property.LIST_STYLE_IMAGE) && !Util.EqualsIgnoreCase(css[CSS.Property.LIST_STYLE_IMAGE], CSS.Value.NONE)) { lst = new List(); String url = utils.ExtractUrl(css[CSS.Property.LIST_STYLE_IMAGE]); iTextSharp.text.Image img = null; try { if (htmlPipelineContext == null) { img = new ImageRetrieve().RetrieveImage(url); } else { try { img = new ImageRetrieve(htmlPipelineContext.GetImageProvider()).RetrieveImage(url); } catch (NoImageProviderException) { if (LOG.IsLogging(Level.TRACE)) { LOG.Trace(String.Format(LocaleMessages.GetInstance().GetMessage("pipeline.html.noimageprovider"), htmlPipelineContext.GetType().FullName)); } img = new ImageRetrieve().RetrieveImage(url); } } lst.ListSymbol = new Chunk(img, 0, 0, false); lst.SymbolIndent = img.Width; if (LOG.IsLogging(Level.TRACE)) { LOG.Trace(String.Format(LocaleMessages.GetInstance().GetMessage("html.tag.list"), url)); } } catch (IOException e) { if (LOG.IsLogging(Level.ERROR)) { LOG.Error(String.Format(LocaleMessages.GetInstance().GetMessage("html.tag.list.failed"), url), e); } lst = new List(List.UNORDERED); } catch (NoImageException e) { if (LOG.IsLogging(Level.ERROR)) { LOG.Error(e.Message, e); } lst = new List(List.UNORDERED); } } lst.Alignindent = false; lst.Autoindent = false; float leftIndent = 0; if (css.ContainsKey(CSS.Property.LIST_STYLE_POSITION) && Util.EqualsIgnoreCase(css[CSS.Property.LIST_STYLE_POSITION], CSS.Value.INSIDE)) { leftIndent += 30; } else { leftIndent += 15; } leftIndent += css.ContainsKey(CSS.Property.MARGIN_LEFT)?utils.ParseValueToPt(css[CSS.Property.MARGIN_LEFT],fontSize):0; leftIndent += css.ContainsKey(CSS.Property.PADDING_LEFT)?utils.ParseValueToPt(css[CSS.Property.PADDING_LEFT],fontSize):0; lst.IndentationLeft = leftIndent; return lst; }
public override List CloneShallow() { RomanList clone = new RomanList(); PopulateProperties(clone); return clone; }
private void btn_createPDF_Click(object sender, EventArgs e) { Document doc = new Document(iTextSharp.text.PageSize.A4); string pdfFileName = "Test.pdf"; PdfWriter wri = PdfWriter.GetInstance(doc,new FileStream(pdfFileName,FileMode.Create)); doc.Open(); // Open Document to write // add image iTextSharp.text.Image JPEG = iTextSharp.text.Image.GetInstance("Basic_logo.jpg"); // resize image //JPEG.ScalePercent(50f); JPEG.ScaleToFit(150f,150f); JPEG.Border = iTextSharp.text.Rectangle.BOX; JPEG.BorderColor = iTextSharp.text.BaseColor.YELLOW; JPEG.BorderWidth = 1f; // location of image JPEG.SetAbsolutePosition(doc.PageSize.Width -32f-212f,doc.PageSize.Height - 36f); doc.Add(JPEG); // write some content Paragraph paragraph = new Paragraph("This is my first line using Paragraph.\n Hello world!"); // add the above created text using different class object to our PDF document doc.Add(paragraph); //--- 編號為羅馬編號 RomanList romanlist = new RomanList(true,15); // true:lowwer case, 50: 編號後的間距 romanlist.IndentationLeft = 30f; romanlist.Add("One"); romanlist.Add("two"); romanlist.Add("Three"); romanlist.Add("Four"); romanlist.Add("Five"); //doc.Add(romanlist); List list = new List(List.ORDERED,40f); list.SetListSymbol("\u2022"); list.IndentationLeft = 40f; // 向左移 list.Add("One"); list.Add("Two"); list.Add("Three"); list.Add("Roman List"); list.Add(romanlist); // list in list list.Add("Four"); list.Add("Five"); doc.Add(list); paragraph = new Paragraph("\n"); doc.Add(paragraph); //PdfPTable table = new PdfPTable(3); ////--- table header //PdfPCell cell = new PdfPCell(new Phrase("Header spanning 3 columns", new iTextSharp.text.Font(iTextSharp.text.Font.NORMAL,20f,iTextSharp.text.Font.NORMAL,iTextSharp.text.BaseColor.YELLOW))); //cell.BackgroundColor = new iTextSharp.text.BaseColor(0,150,0); // RGB //cell.Colspan = 3; // header size expand to 3 column //cell.HorizontalAlignment = 1; // 0 = Left, 1 = Centre, 2 = Right //table.AddCell(cell); ////--- //table.AddCell("Col 1 Row 1"); //table.AddCell("Col 2 Row 1"); //table.AddCell("Col 3 Row 1"); //table.AddCell("Col 1 Row 2"); //table.AddCell("Col 2 Row 2"); //table.AddCell("Col 3 Row 2"); //doc.Add(table); PdfPTable table = new PdfPTable(dataGridView1.Columns.Count); // add the headers from the DGV to the table for (int i = 0; i < dataGridView1.Columns.Count; i++) { table.AddCell(new Phrase(dataGridView1.Columns[i].HeaderText)); } // Flag the firt row as a header table.HeaderRows = 1; // add the actual rows from the DGV to the table for (int j = 0; j < dataGridView1.Rows.Count; j++) { for (int k = 0; k < dataGridView1.Columns.Count; k++) { if (dataGridView1[k,j].Value != null) { table.AddCell(new Phrase(dataGridView1[k,j].Value.ToString())); } } } doc.Add(table); // add chart to pdf var chartimage = new MemoryStream(); chart1.SaveImage(chartimage, ChartImageFormat.Tiff); iTextSharp.text.Image Chart_image = iTextSharp.text.Image.GetInstance(chartimage.GetBuffer()); Chart_image.ScalePercent(150f); doc.Add(Chart_image); doc.Close(); //--- After finish create pdf, open the file's path string path = System.AppDomain.CurrentDomain.BaseDirectory; try { #region 開路徑 //if (!Directory.Exists(path)) //{ // DirectoryInfo di = Directory.CreateDirectory(path); //} //System.Diagnostics.Process.Start(path); #endregion #region 開路徑後選擇執行exe //OpenFileDialog openFileDialog = new OpenFileDialog(); //openFileDialog.InitialDirectory = path; //openFileDialog.Filter = "PDF (*.pdf)|*.pdf"; //if (openFileDialog.ShowDialog() == DialogResult.OK) //{ // string FilePath = openFileDialog.FileName; // Process.Start(FilePath); //} #endregion #region automatically open PDF teached by youtube System.Diagnostics.Process.Start(path+@"\"+pdfFileName); #endregion } catch (Exception ee) { MessageBox.Show(ee.Message); } }
private void button4_Click(object sender, EventArgs e) { //Control ctl = this.dataGridView1; Control ctl = Control.FromHandle(this.dataGridView1.Handle); { Bitmap bt = new Bitmap(ctl.Width, ctl.Height); ctl.DrawToBitmap(bt, new System.Drawing.Rectangle(0, 0, bt.Width, bt.Height)); bt.Save("abc.gif",System.Drawing.Imaging.ImageFormat.Gif); Document document = new Document(PageSize.A4, 10,10, 10,10); PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(Application.StartupPath + @"\abcd.pdf", FileMode.Create)); writer.ViewerPreferences = (PdfWriter.CenterWindow | PdfWriter.FitWindow | PdfWriter.PageModeUseNone); document.Open(); //使用宋体字体 BaseFont baseFont = BaseFont.CreateFont("C:\\WINDOWS\\FONTS\\simsun.ttc,0", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); PdfContentByte cb = writer.DirectContent; Chapter chapter1 = new Chapter(new Paragraph("This is Chapter 1"), 1); Section section1 = chapter1.AddSection(20f, "Section 1.1", 2); Section section2 = chapter1.AddSection(20f, "Section 1.2", 2); Section subsection1 = section2.AddSection(20f, "Subsection 1.2.1", 3); Section subsection2 = section2.AddSection(20f, "Subsection 1.2.2", 3); Section subsubsection = subsection2.AddSection(20f, "Sub Subsection 1.2.2.1", 4); Chapter chapter2 = new Chapter(new Paragraph("This is Chapter 2"), 1); Section section3 = chapter2.AddSection("Section 2.1", 2); Section subsection3 = section3.AddSection("Subsection 2.1.1", 3); Section section4 = chapter2.AddSection("Section 2.2", 2); chapter1.BookmarkTitle = "Changed Title"; chapter1.BookmarkOpen = true; chapter2.BookmarkOpen = false; document.Add(chapter1); document.Add(chapter2); ZapfDingbatsList zlist = new ZapfDingbatsList(49, 15); zlist.Add("One"); zlist.Add("Two"); zlist.Add("Three"); zlist.Add("Four"); zlist.Add("Five"); document.Add(zlist); RomanList romanlist = new RomanList(true, 20); romanlist.IndentationLeft = 30f; romanlist.Add("One"); romanlist.Add("Two"); romanlist.Add("Three"); romanlist.Add("Four"); romanlist.Add("Five"); document.Add(romanlist); PdfPTable table1 = new PdfPTable(3); PdfPCell cell1 = new PdfPCell(new Phrase("Header spanning 3 columns")); cell1.Colspan = 3; cell1.HorizontalAlignment = 1; //0=Left, 1=Centre, 2=Right table1.AddCell(cell1); table1.AddCell(cell1); table1.AddCell("Col 1 Row 2"); table1.AddCell("Col 2 Row 2"); table1.AddCell("Col 3 Row 2"); table1.SetWidths(new int[]{50,100,100}); table1.WidthPercentage = 100f; document.Add(table1); //using it = iTextSharp.text; //PdfPTable table2 = new PdfPTable(3); //table2.AddCell("Cell 1"); //PdfPCell cell2 = new PdfPCell(new it.Phrase("Cell 2", new Font(Font.HELVETICA, 8f, Font.NORMAL, Color.YELLOW))); //cell2.BackgroundColor = new Color(0, 150, 0); //cell2.BorderColor = new Color(255, 242, 0); //cell2.Border = Rectangle.BOTTOM_BORDER | Rectangle.TOP_BORDER; //cell2.BorderWidthBottom = 3f; //cell2.BorderWidthTop = 3f; //cell2.PaddingBottom = 10f; //cell2.PaddingLeft = 20f; //cell2.PaddingTop = 4f; //table2.AddCell(cell2); //table2.AddCell("Cell 3"); //document.Add(table2); System.Drawing.Image img = bt; MemoryStream mem = new MemoryStream(); img.Save(mem, System.Drawing.Imaging.ImageFormat.Gif); byte[] bytes = mem.ToArray(); iTextSharp.text.Image img2 = iTextSharp.text.Image.GetInstance(bytes); iTextSharp.text.Image img3 = iTextSharp.text.Image.GetInstance(bytes); img2.ScalePercent(100f); img3.ScalePercent(100f); img2.SetAbsolutePosition(50f, 400f); img3.SetAbsolutePosition(50f, 400f - img2.Height); //cb.AddImage(img2); //cb.AddImage(img3); cb.BeginText(); float Xleading = 27.5f; float Xdelta = 10f; float Yleading = 27.5f; float Ydelta = 20f; cb.SetLineWidth(4f); cb.MoveTo(Xleading, (842 - Yleading - Ydelta)); cb.LineTo((595f - Xleading), (842f - Yleading - Ydelta)); cb.Stroke(); cb.EndText(); document.NewPage(); //绘制近下方细直线上的文字 cb.BeginText(); BaseFont fbaseFont = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED); iTextSharp.text.Font font = new iTextSharp.text.Font(fbaseFont); cb.SetFontAndSize(fbaseFont,15); cb.SetColorFill(BaseColor.LIGHT_GRAY); PdfPCell cell = new PdfPCell(); PdfPTable table = new PdfPTable(5); cell.HorizontalAlignment = Element.ALIGN_LEFT; table.AddCell(cell); document.Add(table); document.AddAuthor("ms"); document.AddCreationDate(); document.AddTitle("TEST"); //document.Add(new Paragraph("", font)); //document.Add(new Paragraph(" 你好, PDF !", font)); //document.Add(new Paragraph(" 你好, PDF !", font)); //document.Add(new Paragraph(" 你好, PDF !", font)); cb.ShowTextAligned(Element.ALIGN_LEFT, "一二三 :", 50, 800f, 0); cb.ShowTextAligned(Element.ALIGN_LEFT, "一二三 :", 50, 770f, 0); cb.EndText(); cb.AddImage(img2); document.Close(); } Control.ControlCollection ctls = this.Controls; foreach (Control item in ctls) { item.Enabled = false; //item.Width += 100; } }