Horizontal or Vertical placement of Images when converting to PDF using C# and .NET


Complete code

using System;
using System.IO;
using SautinSoft.PdfVision;

namespace Sample
{
    class Program
    {
        static void Main(string[] args)
        {
            ImagePlacement();
        }
        public static void ImagePlacement()
        {
            string inpFolder = new DirectoryInfo(@"..\..\..\testing\").FullName;
            string outFile = new FileInfo(@"Horizontal.pdf").FullName;

            PdfVision v = new PdfVision();
            ImageToPdfOptions options = new ImageToPdfOptions();
            options.PageSetup.PaperType = PaperType.Letter;
            options.PageSetup.Orientation = Orientation.Landscape;
            options.PageSetup.PageMargins.Left = LengthUnitConverter.ToPoint(20, LengthUnit.Millimeter);
            options.PageSetup.PageMargins.Top = LengthUnitConverter.ToPoint(20, LengthUnit.Millimeter);

            // Case 1: Place all images in horizontal order,
            // set image size 75 x 75 mm, distance 10 mm between images.
            options.PlaceImagesByHorizontal = true;
            options.Width = LengthUnitConverter.ToPoint(75, LengthUnit.Millimeter);
            options.Height = LengthUnitConverter.ToPoint(75, LengthUnit.Millimeter);
            options.DistanceBetweenImages = LengthUnitConverter.ToPoint(10, LengthUnit.Millimeter);

            try
            {
                v.ConvertImageToPdf(inpFolder, outFile, options);
                System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(outFile) { UseShellExecute = true });
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error: {ex.Message}");
                Console.ReadLine();
            }

            // Case 2: Place all images in vertical order,
            // set image size 75 x 75 mm, distance 10 mm between images.
            outFile = new FileInfo(@"Vertical.pdf").FullName;
            options.PageSetup.Orientation = Orientation.Portrait;
            options.PlaceImagesByHorizontal = false;
            options.Width = LengthUnitConverter.ToPoint(75, LengthUnit.Millimeter);
            options.Height = LengthUnitConverter.ToPoint(75, LengthUnit.Millimeter);
            options.DistanceBetweenImages = LengthUnitConverter.ToPoint(10, LengthUnit.Millimeter);
            
            try
            {
                v.ConvertImageToPdf(inpFolder, outFile, options);
                System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(outFile) { UseShellExecute = true });
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error: {ex.Message}");
                Console.ReadLine();
            }
        }
    }
}

Download

Imports System
Imports System.IO
Imports SautinSoft.PdfVision

Namespace Sample
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			ImagePlacement()
		End Sub
		Public Shared Sub ImagePlacement()
			Dim inpFolder As String = (New DirectoryInfo("..\..\..\testing\")).FullName
			Dim outFile As String = (New FileInfo("Horizontal.pdf")).FullName

			Dim v As New PdfVision()
			Dim options As New ImageToPdfOptions()
			options.PageSetup.PaperType = PaperType.Letter
			options.PageSetup.Orientation = Orientation.Landscape
			options.PageSetup.PageMargins.Left = LengthUnitConverter.ToPoint(20, LengthUnit.Millimeter)
			options.PageSetup.PageMargins.Top = LengthUnitConverter.ToPoint(20, LengthUnit.Millimeter)

			' Case 1: Place all images in horizontal order,
			' set image size 75 x 75 mm, distance 10 mm between images.
			options.PlaceImagesByHorizontal = True
			options.Width = LengthUnitConverter.ToPoint(75, LengthUnit.Millimeter)
			options.Height = LengthUnitConverter.ToPoint(75, LengthUnit.Millimeter)
			options.DistanceBetweenImages = LengthUnitConverter.ToPoint(10, LengthUnit.Millimeter)

			Try
				v.ConvertImageToPdf(inpFolder, outFile, options)
				System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(outFile) With {.UseShellExecute = True})
			Catch ex As Exception
				Console.WriteLine($"Error: {ex.Message}")
				Console.ReadLine()
			End Try

			' Case 2: Place all images in vertical order,
			' set image size 75 x 75 mm, distance 10 mm between images.
			outFile = (New FileInfo("Vertical.pdf")).FullName
			options.PageSetup.Orientation = Orientation.Portrait
			options.PlaceImagesByHorizontal = False
			options.Width = LengthUnitConverter.ToPoint(75, LengthUnit.Millimeter)
			options.Height = LengthUnitConverter.ToPoint(75, LengthUnit.Millimeter)
			options.DistanceBetweenImages = LengthUnitConverter.ToPoint(10, LengthUnit.Millimeter)

			Try
				v.ConvertImageToPdf(inpFolder, outFile, options)
				System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(outFile) With {.UseShellExecute = True})
			Catch ex As Exception
				Console.WriteLine($"Error: {ex.Message}")
				Console.ReadLine()
			End Try
		End Sub
	End Class
End Namespace

Download


If you need a new code example or have a question: email us at support@sautinsoft.com or ask at Online Chat (right-bottom corner of this page) or use the Form below:



Questions and suggestions from you are always welcome!

We are developing .Net components since 2002. We know PDF, DOCX, RTF, HTML, XLSX and Images formats. If you need any assistance with creating, modifying or converting documents in various formats, we can help you. We will write any code example for you absolutely free.