首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Pdf转换为png创建图像周围的黑色边距

将Pdf转换为png创建图像周围的黑色边距
EN

Stack Overflow用户
提问于 2017-12-08 06:59:35
回答 0查看 658关注 0票数 0

我正在尝试用ghostscript.net (1.2.1.0)和gs版本9.22 x86将pdf转换为图像。

我的代码:

代码语言:javascript
复制
using (_rasterizer = new GhostscriptRasterizer())
{
    _rasterizer.Open(inputPdfPath, _lastInstalledVersion, false);

    //_rasterizer.CustomSwitches.Add("-sDEVICE=pngalpha");
    //_rasterizer.CustomSwitches.Add("-dTextAlphaBits=4");
    //_rasterizer.CustomSwitches.Add("-dGraphicsAlphaBits=4");

    for (int pageNumber = 1; pageNumber <= _rasterizer.PageCount; pageNumber++)
    {
        var desiredDPI = 102;
        using (System.Drawing.Image img = _rasterizer.GetPage(desiredDPI, desiredDPI, pageNumber))
        {
            img.Save(pageNumber + ".png", ImageFormat.Png);
        }
    }
}

它适用于某些页面,但对于某些图像,它会创建黑色边距和黑色背景。

示例文件:pdf => png

我用gs命令测试了一下,没问题。我试着跟踪代码。图像很好,但文本质量很低。

代码语言:javascript
复制
public Image getImg(string inputFile, int pageNO, int resolution)
{
    GhostscriptPngDevice dev = new GhostscriptPngDevice(GhostscriptPngDeviceType.PngAlpha);
    dev.GraphicsAlphaBits = GhostscriptImageDeviceAlphaBits.V_4;
    dev.TextAlphaBits = GhostscriptImageDeviceAlphaBits.V_4;
    dev.ResolutionXY = new GhostscriptImageDeviceResolution(resolution, resolution);
    dev.InputFiles.Add(inputFile);
    dev.Pdf.FirstPage = pageNO;
    dev.Pdf.LastPage = pageNO;
    dev.CustomSwitches.Add("-dDOINTERPOLATE");
    dev.OutputPath = pageNO + ".png";
    dev.Process();

    return Image.FromFile(pageNO + ".png");
}
EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47705248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档