我使用evo中的WordToPdfConverter将Word文档转换为PDF。RTF格式的Word文档包含二维码等图像。
不幸的是,生成的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"));发布于 2021-05-04 21:50:03
由于RTF是一种文本格式,您应该将其转换为PDF,而不必进行任何图像压缩,因为这将花费更长的时间来处理,并将导致较大的输出文件+您可能会遇到来自嵌入式图像的图像质量问题。
我创建了一个示例RTF文件(test.rtf),其中包含您所描述的二维码:

然后,我从Leadtools.Document.sdk Nuget获取RTF并通过Document Converter运行它。就像免责声明一样:我与这个库有关联。
此文档转换器保留文本并按原样解析来自源文档的图像,然后将其输出为PDF。
你可以从这里下载输出的PDF:test.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-07-22 07:29:46
我不明白为什么人们会对二维码有问题,比如这个只是一个模板(我无法下载上面任何较旧的示例进行比较)。


这是一个PNG演示模板文件,设计为从4英尺远的地方(例如海报)进行扫描,但它可以用于生产,小得多,即较低的页面扫描比例。
我将RTF放在WordPad的print to pdf快捷方式上,几乎可以立即在查看器中显示pdf。

使用RTF PNG和带锯齿的查看器会有一些自然降级,但关键是保持自然的比例。你需要的所有东西都是原生的,就像windows提供的一样。MSPaint,WordPad,CMD打印我可以把预览发送到边缘的PDFium查看器。

https://stackoverflow.com/questions/67381579
复制相似问题