Exemplo n.º 1
0
 private void AddMetadata(PdfMetadata pdfMetadata)
 {
     PdfMetadata = pdfMetadata;
     pdfMetadata.UpdateObjectNumber(ObjectNumber);
     PdfObjects.Add(pdfMetadata);
     ObjectNumber++;
 }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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());
        }
Exemplo n.º 4
0
 public void AddPage(MediaBox mediaBox = null)
 {
     mediaBox    = ValueOrDefault <MediaBox>(mediaBox, MediaBoxDefaultValue);
     CurrentPage = new PdfPage(ObjectNumber, Pages, mediaBox);
     Pages.AddPage(CurrentPage);
     PdfObjects.Add(CurrentPage);
     ObjectNumber++;
 }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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++;
        }