public virtual void CreateDocumentWithType3Font() { String testName = "DocumentWithType3Font"; String filename = destinationFolder + testName + ".pdf"; String cmpFilename = sourceFolder + "cmp_" + testName + ".pdf"; PdfDocument pdfDoc = CreateDocument(filename); PdfType3Font type3Font = PdfFontFactory.CreateType3Font(pdfDoc, false); Type3Glyph type3Glyph = type3Font.AddGlyph('A', 600, 0, 0, 600, 700); type3Glyph.SetLineWidth(100); type3Glyph.MoveTo(5, 5); type3Glyph.LineTo(300, 695); type3Glyph.LineTo(595, 5); type3Glyph.ClosePathFillStroke(); PdfPage page = pdfDoc.AddNewPage(); PdfCanvas canvas = new PdfCanvas(page); canvas.SaveState().BeginText().SetFontAndSize(type3Font, 36).MoveText(50, 700).ShowText("AA").EndText(); type3Font = PdfFontFactory.CreateType3Font(pdfDoc, false); type3Glyph = type3Font.AddGlyph('A', 600, 0, 0, 600, 700); type3Glyph.SetLineWidth(100); type3Glyph.MoveTo(5, 5); type3Glyph.LineTo(300, 695); type3Glyph.LineTo(595, 5); type3Glyph.ClosePathFillStroke(); canvas = new PdfCanvas(page); canvas.SaveState().BeginText().SetFontAndSize(type3Font, 36).MoveText(50, 650).ShowText("AAA").EndText(); pdfDoc.Close(); //PdfType3Font comparing returns false; NUnit.Framework.Assert.AreEqual(2, CountPdfFonts(filename)); // reading and comparing text NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(filename, cmpFilename, destinationFolder, "diff_")); }
public virtual void GetFontWithDirectFontDictionaryTest() { PdfDictionary initialFontDict = new PdfDictionary(); initialFontDict.Put(PdfName.Subtype, PdfName.Type3); initialFontDict.Put(PdfName.FontMatrix, new PdfArray(new float[] { 0.001F, 0, 0, 0.001F, 0, 0 })); initialFontDict.Put(PdfName.Widths, new PdfArray()); PdfDictionary encoding = new PdfDictionary(); initialFontDict.Put(PdfName.Encoding, encoding); PdfArray differences = new PdfArray(); differences.Add(new PdfNumber(AdobeGlyphList.NameToUnicode("a"))); differences.Add(new PdfName("a")); encoding.Put(PdfName.Differences, differences); NUnit.Framework.Assert.IsNull(initialFontDict.GetIndirectReference()); using (PdfDocument doc = new PdfDocument(new PdfWriter(new ByteArrayOutputStream()))) { // prevent no pages exception on close doc.AddNewPage(); PdfType3Font font1 = (PdfType3Font)doc.GetFont(initialFontDict); NUnit.Framework.Assert.IsNotNull(font1); // prevent no glyphs for type3 font on close font1.AddGlyph('a', 0, 0, 0, 0, 0); } }
protected void ManipulatePdf(String dest) { PdfDocument pdfDoc = new PdfDocument(new PdfWriter(dest)); Document doc = new Document(pdfDoc); /* Create a custom type 3 font. * The second argument defines whether the glyph color is specified * in the glyph description in the font. */ PdfType3Font t3 = PdfFontFactory.CreateType3Font(pdfDoc, true); float linewidth = 125; /* Define I letter of the custom font. * If the character was already defined, addGlyph() method will return the same content. * If the colorized parameter of PdfType3Font instance is set to true, * then parameters of the glyph bounding box will be ignored. */ PdfCanvas i = t3.AddGlyph('I', 700, 0, 0, 1200, 600); i.SetLineWidth(10); i.SetStrokeColor(new DeviceRgb(0xf9, 0x9d, 0x25)); i.SetLineWidth(linewidth); i.SetLineCapStyle(PdfCanvasConstants.LineCapStyle.ROUND); i.MoveTo(600, 36); i.LineTo(600, 564); i.Stroke(); // Define T letter of the custom font PdfCanvas t = t3.AddGlyph('T', 1170, 0, 0, 1200, 600); t.SetLineWidth(10); t.SetStrokeColor(new DeviceRgb(0x08, 0x49, 0x75)); t.SetLineWidth(linewidth); t.SetLineCapStyle(PdfCanvasConstants.LineCapStyle.ROUND); t.MoveTo(144, 564); t.LineTo(1056, 564); t.MoveTo(600, 36); t.LineTo(600, 564); t.Stroke(); // Define E letter of the custom font PdfCanvas e = t3.AddGlyph('E', 1150, 0, 0, 1200, 600); e.SetLineWidth(10); e.SetStrokeColor(new DeviceRgb(0xf8, 0x9b, 0x22)); e.SetLineWidth(linewidth); e.SetLineCapStyle(PdfCanvasConstants.LineCapStyle.ROUND); e.MoveTo(144, 36); e.LineTo(1056, 36); e.MoveTo(144, 300); e.LineTo(1056, 300); e.MoveTo(144, 564); e.LineTo(1056, 564); e.Stroke(); // Define X letter of the custom font PdfCanvas x = t3.AddGlyph('X', 1160, 0, 0, 1200, 600); x.SetStrokeColor(new DeviceRgb(0x10, 0x46, 0x75)); x.SetLineWidth(10); x.SetLineWidth(linewidth); x.SetLineCapStyle(PdfCanvasConstants.LineCapStyle.ROUND); x.MoveTo(144, 36); x.LineTo(1056, 564); x.MoveTo(144, 564); x.LineTo(1056, 36); x.Stroke(); Paragraph p = new Paragraph("ITEXT") .SetFont(t3) .SetFontSize(20); doc.Add(p); p = new Paragraph("I\nT\nE\nX\nT") .SetFixedLeading(20) .SetFont(t3) .SetFontSize(20); doc.Add(p); doc.Close(); }