Skip to content

small resolution image to pdf can't convert to A4 size #1562

@liugt34

Description

@liugt34

Magick.NET version

Magick.NET-Q8-AnyCPU 13.6.0

Environment (Operating system, version and so on)

Windows 11

Description

when i convert the image to pdf, it genrate the pdf page with a small size,not A4 size

image

pageNumber 2 is normal A4 size

image

so how can i get the A4 size pdf with small image?

Steps to Reproduce

using var images = new MagickImageCollection();

var settings = new MagickReadSettings();
settings.Page = new MagickGeometryFactory().CreateFromPageSize("a4");
settings.Density = new Density(72);
settings.Width = settings.Page.Width;
settings.Height = settings.Page.Height;

var names = new string[] { "d20220118150203.png", "map.png" };

foreach (var name in names)
{
    var image = new MagickImage(SRC + name, settings);

    if(image.Width > settings.Page.Width || image.Height > settings.Page.Height)
    {
        // 计算图片应该被缩放到多大才能适应页面宽度并居中
        double scaleX = settings.Page.Width / (double)image.Width;
        double scaleY = settings.Page.Height / (double) image.Height;
        double scale = scaleX < scaleY ? scaleX : scaleY;
        int newX = (int)(image.Width * scale); 
        int newY = (int)(image.Height * scale);

        // 设置图片的缩放和定位
        image.Resize(newX, newY);
    }

    //图片居中显示
    image.Extent(settings.Page, Gravity.Center);

    images.Add(image);
}

// Create pdf file with two pages
images.Write(DEST + "Merge.pdf");

the test image used in code

d20220118150203

map

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions