Объединение изображений
Aspose.PDF 21.4 позволяет объединять изображения. Метод Merge Images проверяет содержимое определенной папки и работает с указанным типом файлов в ней. При работе с объединением изображений мы указываем ‘inputImagesStreams’, формат изображения и режим слияния изображений (например, вертикально) нашего файла. Затем мы сохраняем наш результат в FileOutputStream.
Следуйте следующему фрагменту кода для решения вашей задачи:
Объединение изображений
public static class ExamplePdfConverter
{
private static readonly string _dataDir = @"C:\Samples\Facades\PdfConverter\";
public static void MergeImages01()
{
var fileStreams = Directory.GetFiles(_dataDir, "cat*.jpg")
.OrderBy(f => f)
.Select(f => File.OpenRead(f))
.Cast<Stream>()
.ToList();
using (Stream inputStream =
PdfConverter.MergeImages(fileStreams, ImageFormat.Jpeg, ImageMergeMode.Vertical, 1, 1))
{
FileStream outputStream = new FileStream(_dataDir+"merged_images.jpg", FileMode.Create);
inputStream.CopyTo(outputStream);
}
}
Второй пример работает так же, как и предыдущий, но объединенные изображения будут сохранены горизонтально.
public static void MergeImages02()
{
var fileStreams = Directory.GetFiles(_dataDir, "cat*.jpg")
.OrderBy(f => f)
.Select(f => File.OpenRead(f))
.Cast<Stream>()
.ToList();
using (Stream inputStream =
PdfConverter.MergeImages(fileStreams, ImageFormat.Jpeg, ImageMergeMode.Horizontal, 1, 1))
{
FileStream outputStream = new FileStream(_dataDir + "merged_images.jpg", FileMode.Create);
inputStream.CopyTo(outputStream);
}
}
В третьем примере мы будем объединять изображения, центрируя их. Два по горизонтали, два по вертикали.
public static void MergeImages03()
{
var fileStreams = Directory.GetFiles(_dataDir, "cat*.jpg")
.OrderBy(f => f)
.Select(f => File.OpenRead(f))
.Cast<Stream>()
.ToList();
using (Stream inputStream =
PdfConverter.MergeImages(fileStreams, ImageFormat.Jpeg, ImageMergeMode.Center, 2, 2))
{
FileStream outputStream = new FileStream(_dataDir + "merged_images.jpg", FileMode.Create);
inputStream.CopyTo(outputStream);
}
}
Также, Aspose.PDF для Java предоставляет вам возможность объединять изображения и сохранять их в формате Tiff, используя метод MergeImagesAsTiff.
public static void MergeImages04()
{
var fileStreams = Directory.GetFiles(_dataDir, "cat*.jpg")
.OrderBy(f => f)
.Select(f => File.OpenRead(f))
.Cast<Stream>()
.ToList();
using (Stream inputStream =
PdfConverter.MergeImagesAsTiff(fileStreams))
{
FileStream outputStream = new FileStream(_dataDir + "merged_images.tiff", FileMode.Create);
inputStream.CopyTo(outputStream);
}
}
Чтобы сохранить объединенные изображения как одно изображение на странице PDF, мы размещаем их в imageStream, размещаем результат на странице с помощью метода addImage, где указываем координаты, где мы хотим их разместить.
public static void MergeImages05()
{
var fileStreams = Directory.GetFiles(_dataDir, "cat*.jpg")
.OrderBy(f => f)
.Select(f => File.OpenRead(f))
.Cast<Stream>()
.ToList();
using (Stream inputStream =
PdfConverter.MergeImages(fileStreams, ImageFormat.Jpeg, ImageMergeMode.Vertical, 1, 1))
{
MemoryStream outputStream = new MemoryStream();
inputStream.CopyTo(outputStream);
var document = new Document();
var pages = document.Pages.Add();
pages.AddImage(outputStream, new Rectangle(10,120,400,720));
document.Save(_dataDir + "merged_images.pdf");
}
}