Ghostscript adds whitespace no matter what bounding box I use

400 Views Asked by At

I'm trying to convert a page of a PDF to an image. I'm successful with most PDF's I've tried with but this one in particular always ends up with a lot of whitespace on one side or strange scaling.

I've tried every combination of every fixed media, fixed resolution, fit page, use crop/bleed/trim/art box, etc. parameter to fix the issue but nothing does it. The best I get is the right content size but offset and chopped off.

enter image description here

Here's what it should look like, according to every PDF reader I've tried:

enter image description here

Here's a link to the PDF (8 MB) for testing.

https://drive.google.com/file/d/1ErS3KxADb1YAdzM7FG7T5dO8QnW4l1AQ/view?usp=sharing

Edit 1:

Here's what it looks like using just -dUseCropBox without a cropbox override:

enter image description here

I'm using Ghostscript.NET with very simple code. I create a rasterizer, call Ope(PDF file, ghostscript dll in bytes), then GetPage(DPI, page number). To use other flags I add a custom switch to the rasterizer before calling open

using(var rasterizer = new GhostscriptRasterizer()) {
    //rasterizer.CustomSwitches.Add("-dFIXEDMEDIA");
    //rasterizer.CustomSwitches.Add("-dFIXEDRESOLUTION");
    //rasterizer.CustomSwitches.Add("-dPSFitPage");
    //rasterizer.CustomSwitches.Add("-dFitPage");
    //rasterizer.CustomSwitches.Add("-dPDFFitPage");
    //rasterizer.CustomSwitches.Add("-dUseCropBox");
    //rasterizer.CustomSwitches.Add("-dPrinted");
    //rasterizer.CustomSwitches.Add("-dUseBleedBox");
    //rasterizer.CustomSwitches.Add("-dUseTrimBox");
    //rasterizer.CustomSwitches.Add("-dUseArtBox");
    //rasterizer.CustomSwitches.Add("-sPAPERSIZE=letter");
    //rasterizer.CustomSwitches.Add("-dORIENT1=true");
    //etc

    rasterizer.Open(pdfFilePath, ghostscriptDLL);

    img = rasterizer.GetPage(dpi, pageNumber);
    img.Save(pageFilePath, imageFormat);
}

I'll try again with the latest version of just ghostscript (no .NET) and see if that makes a difference.

Edit 2:

Using just gswin64c version 9.55.0 and -dUseCropBox works as KenS said. Since I don't need Ghostscript.NET to do that, that's a good resolution.

1

There are 1 best solutions below

0
On

Using just gswin64c version 9.55.0 and -dUseCropBox works as KenS said. Since I don't need Ghostscript.NET to do that, that's a good resolution.