You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 2.0下PDF合并及转PNG的第三方DLL推荐咨询

.NET Core 2.0下PDF合并转PNG的可行方案

嗨,针对你在.NET Core 2.0环境下需要合并多份PDF并将最终文件转换为PNG的需求,这里有几个经过验证的靠谱方案——毕竟你提到的Ghostscript原生版和PdfSharp都不兼容这个框架版本:

1. Ghostscript.NET(最推荐,适配你熟悉的Ghostscript生态)

Ghostscript本身是原生库,但Ghostscript.NET是一个专门的.NET封装库,它完美支持.NET Core 2.0。你只需要两步就能搞定:

  • 先安装NuGet包:Install-Package Ghostscript.NET
  • 给项目配上对应平台(Windows/Linux/macOS)的Ghostscript原生二进制文件(去Ghostscript官网下载对应版本,复制到项目目录后设置为“始终复制到输出目录”)

具体实现步骤

第一步:合并PDF文件

用GhostscriptProcessor执行Ghostscript的合并命令就行,代码示例:

using Ghostscript.NET;
using Ghostscript.NET.Processor;

public void MergeMultiplePdfs(string[] inputPdfPaths, string mergedPdfPath)
{
    // 获取本地安装的Ghostscript版本信息
    var gsVersion = GhostscriptVersionInfo.GetLastInstalledVersion(
        GhostscriptLicense.GPL | GhostscriptLicense.AFPL, 
        GhostscriptLicense.GPL);

    using (var processor = new GhostscriptProcessor(gsVersion, true))
    {
        var args = new List<string>();
        args.Add("-dNOPAUSE"); // 处理过程不暂停
        args.Add("-dBATCH"); // 处理完成后自动退出
        args.Add("-dSAFER"); // 启用安全模式
        args.Add("-sDEVICE=pdfwrite"); // 指定输出设备为PDF写入器
        args.Add($"-sOutputFile={mergedPdfPath}"); // 设置合并后的PDF路径
        args.AddRange(inputPdfPaths); // 加入所有要合并的PDF文件路径

        processor.StartProcessing(args.ToArray(), null);
    }
}

第二步:将合并后的PDF转成PNG

同样用GhostscriptProcessor执行转换命令,还能自定义分辨率:

public void ConvertPdfToPng(string inputPdfPath, string outputPngPattern, int dpi = 300)
{
    var gsVersion = GhostscriptVersionInfo.GetLastInstalledVersion(
        GhostscriptLicense.GPL | GhostscriptLicense.AFPL, 
        GhostscriptLicense.GPL);

    using (var processor = new GhostscriptProcessor(gsVersion, true))
    {
        var args = new List<string>();
        args.Add("-dNOPAUSE");
        args.Add("-dBATCH");
        args.Add("-dSAFER");
        args.Add($"-r{dpi}"); // 设置输出PNG的分辨率,默认300DPI
        args.Add("-sDEVICE=png16m"); // 指定输出为24位彩色PNG
        args.Add($"-sOutputFile={outputPngPattern}"); // 多页PDF可以用类似"output_%03d.png"的格式按页码命名
        args.Add(inputPdfPath);

        processor.StartProcessing(args.ToArray(), null);
    }
}

2. iText 7(开源方案,需注意许可)

iText 7的.NET版本完全兼容.NET Core 2.0,能轻松实现PDF合并,要是需要转PNG,可以搭配同样支持.NET Core 2.0的SixLabors.ImageSharp来完成,或者直接用Ghostscript转(更高效)。

安装依赖包

  • 合并PDF:Install-Package itext7
  • 图像处理(可选):Install-Package SixLabors.ImageSharp

合并PDF示例代码

using iText.Kernel.Pdf;
using iText.Kernel.Utils;

public void MergePdfsWithiText(string[] inputPaths, string outputPath)
{
    using (var writer = new PdfWriter(outputPath))
    using (var mergedDoc = new PdfDocument(writer))
    {
        var pdfMerger = new PdfMerger(mergedDoc);
        foreach (var pdfPath in inputPaths)
        {
            using (var sourceDoc = new PdfDocument(new PdfReader(pdfPath)))
            {
                // 合并当前PDF的所有页面到目标文档
                pdfMerger.Merge(sourceDoc, 1, sourceDoc.GetNumberOfPages());
            }
        }
    }
}

提示:如果已经用iText合并好了PDF,直接用前面的Ghostscript.NET转PNG会比用ImageSharp渲染更省心高效,毕竟PDF页面渲染的细节处理起来挺麻烦的。

3. Docotic.Pdf(商业库,零外部依赖)

如果项目预算允许,Docotic.Pdf是个不错的选择——它完全支持.NET Core 2.0,API简洁到离谱,不需要依赖任何外部原生库,稳定性和易用性拉满。

示例代码(合并+转PNG一步到位)

using BitMiracle.Docotic.Pdf;

public void MergeAndConvertToPng(string[] inputPdfPaths, string outputPngPath)
{
    using (var mergedPdf = new PdfDocument())
    {
        // 批量合并所有输入PDF
        foreach (var path in inputPdfPaths)
        {
            mergedPdf.Append(path);
        }

        // 将第一页转成PNG(多页的话循环处理Pages集合即可)
        using (var pngImage = mergedPdf.Pages[0].SaveAsPng())
        {
            pngImage.Save(outputPngPath);
        }
    }
}

注意:这个库需要购买商业许可证,但提供免费试用版,适合对稳定性和开发效率要求高的项目。

几个关键注意事项

  • 选NuGet包时一定要确认它明确支持.NET Core 2.0(可以在NuGet详情页的“依赖项”里查看)
  • 用Ghostscript.NET时,Linux/macOS环境需要先安装系统级的Ghostscript(比如Ubuntu下执行sudo apt-get install ghostscript)
  • 许可问题要重视:Ghostscript是GPL许可,iText 7有AGPL和商业许可,使用前务必确认符合项目的开源许可要求

内容的提问来源于stack exchange,提问作者Roshan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:51:53