如何将多层 PDF 转换为 PNG 选择将在 .NET 中导出哪些层

How to convert multilayered PDF to PNG choosing which layers will be exported in .NET

我需要能够将多层 PDF 转换为 PNG,但我需要能够设置要导出的图层。

PDF文件包含很多层,其中大部分是不可见的。有 APIs 仅导出可见层和其他所有层。一些 API 允许我更改图层可见性,但不是所有允许在转换中遵守此规定的。

我已经尝试了很多 .Net APIs,但很少有人允许我这样做,但总是有一些问题。我已经在相关公司开了几张工单,但不知道他们是否以及何时会修好。

我一直在寻找可以完成这项工作的 API,如果有任何帮助,我将不胜感激。

遵循我已经测试过的 API 和工具:

FreeSpire.PDF:几乎完成了工作,但图像正在转换,主图像周围有一个大的空白透明区域(我还无法修复)。

Syncfusion.Pdf:这似乎也是一个不错的选择,我可以获得图层,设置它们的可见性但是当我导出时正在导出所有图层(可见和不可见)。画质也很好,周围没有空白区域。

Dynamic.PDF: 看起来又不错,但实际上资源很少,无法获取和使用图层,只能导出不可见的图层。

Apitron PDF Rasterizer:使用简单,但无法访问图层和导出不可见图层。

Pdf2Png: 刚刚有方法转换,正在导出可见层和不可见层,但文件结果质量很差。我尝试更改一些属性,但质量仍然很差。后面用的是Ghostscript

https://ezgif.com/ 不转换不可见层。

https://pdf.io/pt/pdf2png/ 不转换不可见层。

https://www.pdfpro.co/files 不转换不可见层。

https://image.online-convert.com/ 不转换不可见图层。

https://www.zamzar.com/convert/png-to-pdf/ 不转换不可见图层。

https://easypdf.com/pt/pdf-em-png 转换不可见图层。

https://cloudconvert.com/pdf-to-png 不转换不可见层。

我所在的公司做的商业SDK就可以做到这一点。导出为 PNG 时,您可以随意混合和匹配图层。

此示例(转至使用 PDFDraw class 的位置)显示将每个图层绘制到自己的 PNG 中。

https://www.pdftron.com/documentation/samples/dotnetcore/cs/PDFLayersTest

从上面的代码中,您可以看到如何混合和匹配,但如果您需要更多细节,请详细说明(示例 PDF 也有帮助)您想要导出的图层,我可以提供该代码。

要试用示例并根据需要进行修改,您可以在此处下载 SDK: https://www.pdftron.com/documentation/windows/download/windows/

有 Windows .NET Framework SDK 和适用于 Windows、macOS 和 Linux 的 .NET Core SDK,您可以从上面的 link 下载。在 SDK 下载中查找 Layers 示例。

下面是一个在线演示,您可以在其中看到交互式切换图层。您可以打开任何 PDF。它与服务器端SDK是同一个引擎。

https://www.pdftron.com/webviewer/demo/pdf-layers