【发布时间】:2018-01-26 03:24:03
【问题描述】:
我有这部分代码,我的图像配置为 203 DPI,这是大多数打印机的默认值。然而,似乎 ITextSharp 默认为 72 的图像 DPI。我需要它默认为 203 的 DPI,是否有任何全面的方法可以做到这一点而无需调整或重新创建图像?
这样做的目的是生成的 PDF 输出为 4 x 5 英寸的 PDF 文档,当前由此代码生成的 PDF 输出到
11.3 英寸 X 14.1 英寸 (DPI 72)
而不是
4 英寸 x 5 英寸 (DPI 203)
我看过这篇文章,但是对我的目的来说它没有帮助
How to calculate the correct image size in out pdf using itextsharp?
我需要 PDF 文档使用与代码中其他所有内容相同的 DPI,即 203
我的代码如下:
private byte[] getPDFDocument(MemoryStream inputImageStream)
{
using (MemoryStream workStream = new MemoryStream())
{
iTextSharp.text.Document document = new iTextSharp.text.Document(new iTextSharp.text.Rectangle(0, 0, 812, 1015));
PdfWriter.GetInstance(document, workStream).CloseStream = false;
document.Open();
iTextSharp.text.Image pdfImage = iTextSharp.text.Image.GetInstance(inputImageStream.ToArray());
pdfImage.SetAbsolutePosition(0, 0);
document.Add(pdfImage);
document.Close();
byte[] byteInfo = workStream.ToArray();
workStream.Write(byteInfo, 0, byteInfo.Length);
workStream.Position = 0;
return workStream.ToArray();
}
}
【问题讨论】: