gpt4 book ai didi

c# - 使用 iTextSharp 将图像添加到 PDF 并适当缩放

转载 作者:IT王子 更新时间:2023-10-29 04:18:02 28 4
gpt4 key购买 nike

这是我的代码。它正确地添加了我想要的图片并且一切正常除了图片使用的是它们的原始分辨率,所以如果图片很大,它会被裁剪以适合页面。

有没有办法让图片像缩放功能一样拉伸(stretch)以适应,同时保持纵横比?那里一定有我想念的东西。 :P

用一张图来说明问题: alt text

using System;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using System.Drawing;
using System.Collections.Generic;

namespace WinformsPlayground
{
public class PDFWrapper
{
public void CreatePDF(List<System.Drawing.Image> images)
{
if (images.Count >= 1)
{
Document document = new Document(PageSize.LETTER);
try
{

// step 2:
// we create a writer that listens to the document
// and directs a PDF-stream to a file

PdfWriter.GetInstance(document, new FileStream("Chap0101.pdf", FileMode.Create));

// step 3: we open the document
document.Open();

foreach (var image in images)
{
iTextSharp.text.Image pic = iTextSharp.text.Image.GetInstance(image, System.Drawing.Imaging.ImageFormat.Jpeg);
document.Add(pic);
document.NewPage();
}
}
catch (DocumentException de)
{
Console.Error.WriteLine(de.Message);
}
catch (IOException ioe)
{
Console.Error.WriteLine(ioe.Message);
}

// step 5: we close the document
document.Close();
}
}
}
}

最佳答案

我使用以下方法解决了它:

foreach (var image in images)
{
iTextSharp.text.Image pic = iTextSharp.text.Image.GetInstance(image, System.Drawing.Imaging.ImageFormat.Jpeg);

if (pic.Height > pic.Width)
{
//Maximum height is 800 pixels.
float percentage = 0.0f;
percentage = 700 / pic.Height;
pic.ScalePercent(percentage * 100);
}
else
{
//Maximum width is 600 pixels.
float percentage = 0.0f;
percentage = 540 / pic.Width;
pic.ScalePercent(percentage * 100);
}

pic.Border = iTextSharp.text.Rectangle.BOX;
pic.BorderColor = iTextSharp.text.BaseColor.BLACK;
pic.BorderWidth = 3f;
document.Add(pic);
document.NewPage();
}

关于c# - 使用 iTextSharp 将图像添加到 PDF 并适当缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4325151/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com