使用 itextsharp 在 pdf 中居中图像
center image in pdf using itextsharp
我在这里要做的是将图像添加到空白 pdf 中。到目前为止我已经做到了,但我希望图像居中。我怎样才能做到这一点?
这是我的 C# 代码:
using (MemoryStream ms = new MemoryStream())
{
Document doc = new Document(PageSize.A4);
PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(System.IO.Path.Combine(filepath, strFilename), FileMode.Create));
doc.AddTitle("Document Title");
doc.Open();
iTextSharp.text.Image image1 = iTextSharp.text.Image.GetInstance(@"C:\Users\Desktop\Winniethepooh.png");
image1.Alignment = iTextSharp.text.Image.ALIGN_CENTER;
if (image1.Height > image1.Width)
{
//Maximum height is 800 pixels.
float percentage = 0.0f;
percentage = 700 / image1.Height;
image1.ScalePercent(percentage * 100);
}
else
{
//Maximum width is 600 pixels.
float percentage = 0.0f;
percentage = 540 / image1.Width;
image1.ScalePercent(percentage * 100);
}
//image1.Alignment = iTextSharp.text.Image.ALIGN_CENTER;
doc.Add(image1);
doc.Close();
}
这是输出:
https://drive.google.com/open?id=0BzaejXGgqBOAMzd0UlY2QWFXNms
我想要的是图像在页面上居中。当前图像位于页面顶部。
我什至设置了图像对齐方式,但为什么它没有使图像在页面上居中?
您需要使用 SetAbsolutePosition()
才能使图像居中。
在您调用 doc.Add(image1);
之前,只需将以下内容添加到您的代码中:
...
...
image1.SetAbsolutePosition((PageSize.A4.Width - image1.ScaledWidth) / 2, (PageSize.A4.Height - image1.ScaledHeight) / 2);
doc.Add(image1);
...
...
希望对您有所帮助。
我在这里要做的是将图像添加到空白 pdf 中。到目前为止我已经做到了,但我希望图像居中。我怎样才能做到这一点?
这是我的 C# 代码:
using (MemoryStream ms = new MemoryStream())
{
Document doc = new Document(PageSize.A4);
PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(System.IO.Path.Combine(filepath, strFilename), FileMode.Create));
doc.AddTitle("Document Title");
doc.Open();
iTextSharp.text.Image image1 = iTextSharp.text.Image.GetInstance(@"C:\Users\Desktop\Winniethepooh.png");
image1.Alignment = iTextSharp.text.Image.ALIGN_CENTER;
if (image1.Height > image1.Width)
{
//Maximum height is 800 pixels.
float percentage = 0.0f;
percentage = 700 / image1.Height;
image1.ScalePercent(percentage * 100);
}
else
{
//Maximum width is 600 pixels.
float percentage = 0.0f;
percentage = 540 / image1.Width;
image1.ScalePercent(percentage * 100);
}
//image1.Alignment = iTextSharp.text.Image.ALIGN_CENTER;
doc.Add(image1);
doc.Close();
}
这是输出:
https://drive.google.com/open?id=0BzaejXGgqBOAMzd0UlY2QWFXNms
我想要的是图像在页面上居中。当前图像位于页面顶部。
我什至设置了图像对齐方式,但为什么它没有使图像在页面上居中?
您需要使用 SetAbsolutePosition()
才能使图像居中。
在您调用 doc.Add(image1);
之前,只需将以下内容添加到您的代码中:
...
...
image1.SetAbsolutePosition((PageSize.A4.Width - image1.ScaledWidth) / 2, (PageSize.A4.Height - image1.ScaledHeight) / 2);
doc.Add(image1);
...
...
希望对您有所帮助。