我想将jpg转换为pdf。经过研究,我发现您可以使用PdfSharp完成此操作,并且由于我使用的是C#.Net 5.0,因此我获得了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可能会改善其渲染效果。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句