0

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

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

有没有其他方法可以控制图像质量?或者有没有办法告诉 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"));
4

2 回答 2

0

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

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

rtf 截图

然后我拿了 RTF 并通过 Leadtools.Document.sdk Nuget 的Document Converter运行它。正如免责声明:我与这个库有关。

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

您可以从此处下载输出 PDF:test.pdf

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);
}
于 2021-05-04T13:50:03.120 回答
0

我不明白为什么人们对二维码有问题,比如这个只是一个模板(我无法下载上面的任何旧样本进行比较。) 在此处输入图像描述  

  在此处输入图像描述

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

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

在此处输入图像描述

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

在此处输入图像描述

于 2021-07-21T23:29:45.877 回答