private void AddMetadata(PdfMetadata pdfMetadata) { PdfMetadata = pdfMetadata; pdfMetadata.UpdateObjectNumber(ObjectNumber); PdfObjects.Add(pdfMetadata); ObjectNumber++; }
public void AddImage(string fileName, float x, float y, float width, float height) { PdfFont font = new PdfFont(ObjectNumber, "Times-Roman"); PdfObjects.Add(font); ObjectNumber++; // TODO: add image support PdfImage image = new PdfImage(ObjectNumber, fileName, width, height); PdfObjects.Add(image); ObjectNumber++; PdfObject procSet = new PdfObject(ObjectNumber); procSet.Dictionary.Add("ProcSet", $"[/PDF /Text /ImageB /ImageC /ImageI]"); procSet.Dictionary.Add("Font", $"<< {font.Name} {font.PdfReference()} >>"); procSet.Dictionary.Add("XObject", $"<< {image.Name} {image.PdfReference()} >>"); PdfObjects.Add(procSet); ObjectNumber++; PdfImageTransform pdfImageTransform = new PdfImageTransform(ObjectNumber, fileName, image.Name, x, y, width, height, CurrentPage.MediaBox); PdfObjects.Add(pdfImageTransform); ObjectNumber++; CurrentPage.AddResources(procSet); CurrentPage.AddContent(pdfImageTransform); }
public override string ToString() { StringBuilder sb = new StringBuilder(); sb.Append($"xref\n"); sb.Append($"{0} {PdfObjects.Count + 1}\n"); // Format //0000000000 65535 f int i = 0; sb.Append($"0000000000 65535 f\n"); PdfObjects.ForEach(obj => { var bytesCount = BytesCount(this.Pdf, obj.CrossSectionReference()); var byteOffset = bytesCount.ToString().PadLeft(10, '0'); var generationNumber = "00000"; var flags = "n"; // f or n free or in use sb.Append($"{byteOffset} {generationNumber} {flags}\n"); i++; }); return(sb.ToString()); }
public void AddPage(MediaBox mediaBox = null) { mediaBox = ValueOrDefault <MediaBox>(mediaBox, MediaBoxDefaultValue); CurrentPage = new PdfPage(ObjectNumber, Pages, mediaBox); Pages.AddPage(CurrentPage); PdfObjects.Add(CurrentPage); ObjectNumber++; }
public Pdf( MediaBox mediaBox = null, string version = "1.7", PageLayout pageLayout = PageLayout.OneColumn, PdfMetadata pdfMetadata = null) { Version = version; Pages = new PdfPages(ObjectNumber); // Move to function PdfObjects.Add(Pages); ObjectNumber++; Catalog = new PdfCatalog(ObjectNumber, this.Pages, pageLayout); // Move to function PdfObjects.Add(Catalog); ObjectNumber++; this.AddPage(mediaBox); }
public void AddText(string text, int x, int y) { PdfFont font = new PdfFont(ObjectNumber, "Times-Roman"); PdfObjects.Add(font); ObjectNumber++; PdfObject procSet = new PdfObject(ObjectNumber); procSet.Dictionary.Add("ProcSet", $"[/PDF /Text]"); procSet.Dictionary.Add("Font", $"<< {font.Name} {font.PdfReference()} >>"); PdfObjects.Add(procSet); ObjectNumber++; PdfText textObj = new PdfText(ObjectNumber, text, x, y, CurrentPage.MediaBox); CurrentPage.AddContent(textObj); PdfObjects.Add(textObj); ObjectNumber++; }