Горизонтальное или вертикальное размещение изображений при конвертировании в PDF на C# и .NET


Полный код

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;
			// Before starting, we recommend to get a free 100-day key:
            // https://sautinsoft.com/start-for-free/
            
            // Apply the key here:
			// SautinSoft.PdfVision.SetLicense("...");

            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
			' Before starting, we recommend to get a free 100-day key:
            ' https://sautinsoft.com/start-for-free/
            
            ' Apply the key here:
			' SautinSoft.PdfVision.SetLicense("...");

			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


Если вам нужен пример кода или у вас есть вопрос: напишите нам по адресу support@sautinsoft.com или спросите в онлайн-чате (правый нижний угол этой страницы) или используйте форму ниже:



Вопросы и предложения всегда приветствуются!

Мы разрабатываем компоненты .Net с 2002 года. Мы знаем форматы PDF, DOCX, RTF, HTML, XLSX и Images. Если вам нужна помощь в создании, изменении или преобразовании документов в различных форматах, мы можем вам помочь. Мы напишем для вас любой пример кода абсолютно бесплатно.