使用 evo pdf 转换 word 文档时图像质量不佳

问题描述

我使用 evo 的 WordToPdfConverter 将 Word 文档转换为 PDF。 Word 文档为 RTF 格式,包含二维码等图像。

不幸的是,生成的 PDF 中的图像质量非常差(因此无法读取二维码)。即使我禁用图像压缩或将其设置为最低级别(=> 最佳质量),生成的图像质量也很差。

有没有其他方法可以控制图像质量?或者有没有办法告诉 evo 的 WordToPdfConverter 不要使用 JPG 作为结果图像格式,而是坚持使用源格式(例如 PNG)?

var pdfConverter = new WordToPdfConverter();

// Set Pdf image options
pdfConverter.PdfDocumentOptions.JpegCompressionEnabled = false;
pdfConverter.PdfDocumentOptions.JpegCompressionLevel = 0;

var filename = @"C:\temp\evo\TestWordDoc.rtf";
pdfConverter.ConvertWordFiletoFile(filename,Path.Combine(Path.GetDirectoryName(filename),$"{Path.GetFileNameWithoutExtension(filename)}_{DateTime.Now:yyyyMMddHHmmss}.pdf"));

解决方法

由于 RTF 是一种文本格式,您应该将其转换为 PDF 而无需进行任何图像压缩,因为这将需要更长的时间来处理并且会导致更大的输出文件 + 您可能会遇到嵌入图像的图像质量问题.

我创建了一个示例 RTF 文件 (test.rtf),其中包含您描述的二维码:

screenshot of rtf

然后我拿起 RTF 并通过 Document ConverterLeadtools.Document.sdk Nuget 运行它。免责声明:我与这个图书馆有关。

此文档转换器保留文本并按原样解析源文档中的图像,然后将其输出为 PDF。

您可以从这里下载输出 PDF:test.pdf

screenshot of pdf

这是一些示例代码:

using (var documentConverter = new DocumentConverter())
{
   var filename = @"C:\temp\evo\TestWordDoc.rtf";
   var document = DocumentFactory.LoadFromStream(filename,new LoadDocumentOptions());
   var jobData = DocumentConverterJobs.CreateJobData(filename,Path.Combine(Path.GetDirectoryName(filename),$"{Path.GetFileNameWithoutExtension(filename)}_{DateTime.Now:yyyyMMddHHmmss}.pdf"),DocumentFormat.Pdf);
   var job = documentConverter.Jobs.CreateJob(jobData);
   documentConverter.Jobs.RunJob(job);
}
,

我不明白为什么人们对二维码有问题,比如这个只是一个模板(我无法下载上面的任何旧样本进行比较。) enter image description here

enter image description here

这是一个 PNG 演示模板文件,设计用于从最远 4 英尺远的地方进行扫描(例如海报),但它可以用于生产,小得多,即页面扫描的比例较低。

我将 WordPad 上的 RTF 放在打印到 pdf 的快捷方式上,然后几乎立即在查看器中显示了 pdf。

enter image description here

使用 RTF PNG 和别名查看器会出现一些自然退化,但关键是保持自然比例。您需要的每样东西都是 Windows 提供的本机。 MSPaint、写字板、CMD 打印我可以将预览发送到 Edge 中的 PDFium 查看器。

enter image description here