PdfSharp 降低了我的 jpg 输入图像的质量
PdfSharp degrading the quality of my jpg input image
我想将 jpg 转换为 pdf。经过一些研究,我发现你可以使用 PdfSharp 来做到这一点,因为我使用的是 C# .Net 5.0,所以我 Nugot PdfSharpCore 1.2.11.
经过一些研究,我想出了以下代码:
public void Convert(string inputFilePath, string targetFilePathTemplate, string title)
{
using var document = new PdfDocument();
document.Info.Author = "Me";
document.Info.Title = title;
document.Info.CreationDate = DateTime.Now;
document.Info.ModificationDate = DateTime.Now;
document.Info.Subject = title;
var page = document.AddPage();
using (var image = XImage.FromFile(inputFilePath))
{
page.Width = image.PixelWidth;
page.Height = image.PixelHeight;
using var gfx = XGraphics.FromPdfPage(page);
gfx.DrawImage(image, 0, 0, image.PixelWidth, image.PixelHeight);
}
document.Save($"{targetFilePathTemplate}.pdf");
}
但是,PdfSharp 似乎决定在不询问的情况下降低我的 jpg 的质量...
您还可以看到 jpg 的文件大小约为 1MB,pdf 的文件大小约为 400kB。
为什么会这样,我该如何解决?
XImage.FromFile(inputFilePath)
指定默认质量级别 75。
如果您改为调用 ImageSource.FromFile
(传递质量级别),则
XImage.FromImageSource
然后你可以提高质量水平。
图像不太可能看起来完全相同 - 但将其提高到 85 或 90 可能会改善其渲染效果。
我想将 jpg 转换为 pdf。经过一些研究,我发现你可以使用 PdfSharp 来做到这一点,因为我使用的是 C# .Net 5.0,所以我 Nugot PdfSharpCore 1.2.11.
经过一些研究,我想出了以下代码:
public void Convert(string inputFilePath, string targetFilePathTemplate, string title)
{
using var document = new PdfDocument();
document.Info.Author = "Me";
document.Info.Title = title;
document.Info.CreationDate = DateTime.Now;
document.Info.ModificationDate = DateTime.Now;
document.Info.Subject = title;
var page = document.AddPage();
using (var image = XImage.FromFile(inputFilePath))
{
page.Width = image.PixelWidth;
page.Height = image.PixelHeight;
using var gfx = XGraphics.FromPdfPage(page);
gfx.DrawImage(image, 0, 0, image.PixelWidth, image.PixelHeight);
}
document.Save($"{targetFilePathTemplate}.pdf");
}
但是,PdfSharp 似乎决定在不询问的情况下降低我的 jpg 的质量...
为什么会这样,我该如何解决?
XImage.FromFile(inputFilePath)
指定默认质量级别 75。
如果您改为调用 ImageSource.FromFile
(传递质量级别),则
XImage.FromImageSource
然后你可以提高质量水平。
图像不太可能看起来完全相同 - 但将其提高到 85 或 90 可能会改善其渲染效果。