// returns true if an xref was found false otherwise private void RetrieveXRef() { _xref = null; // only necessary if not linearized startXRef = RetrieveStartXRef(); // if the xref was not found, early exit if (startXRef == -1) { return; } _lexer.PushPosition(startXRef); var token = _lexer.ReadToken(); if (token == "xref") { // we have an uncompressed xref table _xref = PdfXRef.Parse(_lexer); } else { // maybe there is no xref } _lexer.PopPosition(); }
public PdfScript(PdfXRef AXref, string AName) : base(AXref, AName) { PdfArray FWidths; PdfDictionary FFont; PdfDictionary FFontDescriptor; FFont = new PdfDictionary(AXref); AXref.AddObject(FFont); AddStrElements(FFont, Generic._String_Table()); AddIntElements(FFont, Generic._Int_Table()); FFont.AddItem("BaseFont", new PdfName("Script")); FFontDescriptor = new PdfDictionary(AXref); AXref.AddObject(FFontDescriptor); AddStrElements(FFontDescriptor, Generic._Script_String_Table()); AddIntElements(FFontDescriptor, Generic._Script_Int_Table()); FFontDescriptor.AddItem("FontBBox", new PdfArray(AXref, SCRIPT_BBOX)); FFont.AddItem("FontDescriptor", FFontDescriptor); FWidths = new PdfArray(AXref, SCRIPT_W_ARRAY); FFont.AddItem("Widths", FWidths); SetData(FFont); }
// internal bool XT // { // get // { // return (this.PR != null); // } // } // // internal bool XU // { // get // { // if (this.PR != null) // { // return this.PR.NA; // } // return false; // } // set // { // if (this.PR != null) // { // this.PR.NA = 09F; // } // } // } // internal bool XV // { // get // { // if (((this.PK != null) && this.PK.Bold) && ((this.PR != null) && this.PR.NA)) // { // return !this.PR.XA; // } // return false; // } // } // // internal bool XW // { // get // { // if (((this.PK != null) && this.PK.Italic) && ((this.PR != null) && this.PR.NA)) // { // return !this.PR.XB; // } // return false; // } // } #endregion #region Constructors public PdfTrueTypeFont(PdfXRef AXref, string AName) : base(AXref, AName) { PdfDictionary FFont; PK = fntReturnFont(AName); if (PK != null) { vAdjustFontSize(PK); PdfDictionary dicFontDescriptor = dicCreateFontDescriptor(AXref, AName, PK); FFont = new PdfDictionary(AXref); AXref.AddObject(FFont); FFont.AddItem("Type", new PdfName("Font")); FFont.AddItem("Subtype", new PdfName("TrueType")); FFont.AddItem("BaseFont", new PdfName(AName)); FFont.AddInternalItem("FontDescriptor", dicFontDescriptor); FFont.AddItem("Encoding", new PdfName("WinAnsiEncoding")); FFont.AddItem("FirstChar", new PdfNumber(FFirstChar)); FFont.AddItem("LastChar", new PdfNumber(FLastChar)); PdfArray faWidths = new PdfArray(AXref, ARIAL_W_ARRAY); AXref.AddObject(faWidths); FFont.AddInternalItem("Widths", faWidths); SetData(FFont); } }
public void Parsing_Uncompressed_XRef() { var r = PdfXRef.Parse(@"0 6 0000000000 65535 f 0000000016 00000 n 0000000051 00000 n 0000000109 00000 n 0000000281 00000 n 0000000385 00000 n ".ToLexer()); // 1 section Assert.Equal(1, r.Items.Count); var s = r.Items[0] as PdfXRefSection; // 6 entries Assert.Equal(6, s.Items.Count); }
private void RetrieveXRefLinearized() { // if we get here we can read the next object as the first xref // use the linearized header to jump to the main table /T offset // parse the xref there too var firstPageXRef = PdfObject.ParseAny(_lexer) as PdfIndirectObject; var mainXRefPosition = _linearizationHeader["T"] as PdfNumeric; _lexer.PushPosition(mainXRefPosition.ToInt64()); var mainXRef = PdfObject.ParseAny(_lexer) as PdfIndirectObject; _lexer.PopPosition(); _xref = PdfXRef.Parse((PdfStream)firstPageXRef.Object, (PdfStream)mainXRef.Object); }
public PdfTimesRoman(PdfXRef AXref, string AName) : base(AXref, AName) { PdfArray FWidths; PdfDictionary FFont; FFont = new PdfDictionary(AXref); AXref.AddObject(FFont); AddStrElements(FFont, Generic._String_Table()); AddIntElements(FFont, Generic._Int_Table()); FFont.AddItem("BaseFont", new PdfName("Times-Roman")); FWidths = new PdfArray(AXref, TIMES_ROMAN_W_ARRAY); FFont.AddInternalItem("Widths", FWidths); SetData(FFont); }
public PdfFixedWidthItalic(PdfXRef AXref, string AName) : base(AXref, AName) { PdfArray FWidths; PdfDictionary FFont; FFont = new PdfDictionary(AXref); AXref.AddObject(FFont); AddStrElements(FFont, Generic._String_Table()); AddIntElements(FFont, Generic._Int_Table()); FFont.AddItem("BaseFont", new PdfName("Courier-Oblique")); FWidths = new PdfArray(AXref, FIXED_WIDTH_ITALIC_W_ARRAY); FFont.AddInternalItem("Widths", FWidths); SetData(FFont); }
public PdfArial(PdfXRef AXref, string AName) : base(AXref, AName) { PdfArray FWidths; PdfDictionary FFont; FFont = new PdfDictionary(AXref); AXref.AddObject(FFont); AddStrElements(FFont, Generic._String_Table()); AddIntElements(FFont, Generic._Int_Table()); FFont.AddItem("BaseFont", new PdfName("Helvetica")); FWidths = new PdfArray(AXref, ARIAL_W_ARRAY); FFont.AddInternalItem("Widths", FWidths); SetData(FFont); }
private PdfDictionary dicCreateFontDescriptor(PdfXRef AXref, string AName, System.Drawing.Font fntFont) { PdfDictionary dicFontDescriptor = new PdfDictionary(AXref); AXref.AddObject(dicFontDescriptor); dicFontDescriptor.AddItem("Type", new PdfName("FontDescriptor")); dicFontDescriptor.AddItem("FontName", new PdfName(AName)); dicFontDescriptor.AddItem("Flags", new PdfNumber(this.nFlag())); dicFontDescriptor.AddItem("FontBBox", new PdfArray(AXref, this.aintFontBox())); dicFontDescriptor.AddItem("MissingWidth", new PdfNumber((long)this.PS.QS.PY)); dicFontDescriptor.AddItem("StemV", new PdfNumber(((long)(this.PK.Bold ? 144 : 72)))); dicFontDescriptor.AddItem("StemH", new PdfNumber(((long)(this.PK.Bold ? 144 : 72)))); dicFontDescriptor.AddItem("ItalicAngle", new PdfNumber(((long)(this.PK.Italic ? (this.PS.QZ / 10) : 0)))); dicFontDescriptor.AddItem("CapHeight", new PdfNumber((long)this.PS.R4)); dicFontDescriptor.AddItem("XHeight", new PdfNumber((long)this.PS.R5)); dicFontDescriptor.AddItem("Ascent", new PdfNumber((long)this.PS.R1)); dicFontDescriptor.AddItem("Descent", new PdfNumber((long)this.PS.R2)); dicFontDescriptor.AddItem("Leading", new PdfNumber((long)this.PS.QS.PX)); dicFontDescriptor.AddItem("MaxWidth", new PdfNumber((long)this.PS.QS.PZ)); dicFontDescriptor.AddItem("AvgWidth", new PdfNumber((long)this.PS.QS.PY)); return(dicFontDescriptor); }
public PdfType1Font(PdfXRef AXref, string AName) : base(AXref, AName) { }