ByteScout BarCode Generator SDK - C# - AddCustomImagesToPdfDocument - ByteScout
Announcement
Our ByteScout SDK products are sunsetting as we focus on expanding new solutions.
Learn More Open modal
Close modal
Announcement Important Update
ByteScout SDK Sunsetting Notice
Our ByteScout SDK products are sunsetting as we focus on our new & improved solutions. Thank you for being part of our journey, and we look forward to supporting you in this next chapter!

ByteScout BarCode Generator SDK – C# – AddCustomImagesToPdfDocument

  • Home
  • /
  • Articles
  • /
  • ByteScout BarCode Generator SDK – C# – AddCustomImagesToPdfDocument

ByteScout BarCode Generator SDK – C# – AddCustomImagesToPdfDocument

Program.cs

using System.Diagnostics;
using System.Drawing;
using Bytescout.BarCode;

// This example demostrates adding of barcode together with some custom images (e.g. target marks) to PDF document.
// Also shows the manual calculation of barcode size from inches to pixels and document units (points).
// Task: place Code39 barcode of 2" x 3/8" size at 2" from top-right corner and two target marks at 1" from top-right and bottom-left corners.

namespace AddBarcodeToPdfDocument
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create Barcode instance and set it up
            Barcode barcode = new Barcode("demo", "demo");
            barcode.Symbology = SymbologyType.Code39;
            barcode.Value = "00090112";
            barcode.DrawCaption = true;
            barcode.CaptionFont = new Font("Courier", 12f, FontStyle.Bold, GraphicsUnit.Point);
            barcode.DrawQuietZones = false;
            barcode.ResolutionX = barcode.ResolutionY = 300; // High resolution for better quality on document scaling and printing.

            // Compute barcode image dimension from inches to pixels at 300 DPI:

            int barHeight = (int) (3f/8*300); // = 3/8" * 300 DPI = height of bars
            int captionHeight = (int) barcode.CaptionFont.GetHeight(barcode.ResolutionY);
            int captionGap = (int) (1f/8*300); // = 1/8" gap

            int barcodeImageWidth = 2*300; // = 2" * 300 DPI = width of barcode
            int barcodeImageHeight = barHeight + captionGap + captionHeight + 28; // 28 = height of watermark text (painted in Trial version only)
            
            // Get final barcode image:

            barcode.BarHeight = barHeight;
            barcode.FitInto(barcodeImageWidth, barcodeImageHeight, UnitOfMeasure.Pixel);
            Image barcodeImage = barcode.GetImage();

            
            // Arrays of images and points to apply to PDF document
            Image[] images = new Image[3];
            Point[] points = new Point[3];

            // Compute coordinates of barcode image and target marks ar 72 DPI
            // (page size is 8.5" x 11", PDF document resolution is always 72 DPI):

            int x = (int) (8.5f*72 - 2*72 - barcodeImageWidth/300f*72); // = page width - 2" - barcodeImageWidth at 72 DPI = X coordinate to put the barcode image
            int y = 2*72; // = 2" - Y coordinate to put the barcode image
            
            // Put barcode image into array
            images[0] = barcodeImage;
            points[0] = new Point(x, y);

            // Load target mark image.
            // TargetMark.png is 1/8" 300 DPI image (38x38 pixels) 
            Image targetMarkImage = Image.FromFile("TargetMark.png");
            
            // Coordinates of top-right target mark
            x = (int)(8.5f*72 - 1*72 - 1f/8*72); // = pageWidth - 1" - target mark width (1/8") at 72DPI = X coordinate to put the barcode image
            y = 1*72; // = 1" - Y coordinate to put the barcode image

            // Put first target mark image into array
            images[1] = targetMarkImage;
            points[1] = new Point(x, y);

            // Coordinates of bottom-left target mark
            x = 1*72; // = 1"
            y = (int)(11f*72 - 1*72 - 1f/8*72); // = page height - 1" - target mark height (1/8") at 72DPI

            // Put second target mark image into array
            images[2] = targetMarkImage;
            points[2] = new Point(x, y);

            // Draw images on all PDF document pages.
            barcode.DrawImagesToPDF("wikipedia.pdf", -1 /*all pages*/, images, points, "result.pdf");

            // Cleanup
            barcodeImage.Dispose();
            targetMarkImage.Dispose();
            barcode.Dispose();

            // Open the result document in default associated application
            Process.Start("result.pdf");

        }
    }
}


  Click here to get your Free Trial version of the SDK

Tutorials:

prev
next