Search code examples
c#visual-studio-2010ghostscriptpdfaghostscript.net

Creating PDF/A with GhostscriptProcessor


I want to convert a PDF file into PDF/A with GhostscriptProcessor, but the result is a PDF not PDF/A.

GhostscriptProcessor gsproc = new GhostscriptProcessor(Properties.Resources.gsdll32);
gsproc.StartProcessing(CreatePDFA(@"C:\test\PDF.pdf", @"C:\test\PDFA.pdf"), new GsStdio());

And the method:

CreateTestArgs(string inputPath, string outputPath)
{
    List<string> gsArgs = new List<string>();
    gsArgs.Add("-dPDFA");
    gsArgs.Add("-dBATCH");
    gsArgs.Add("-dNOPAUSEgsArgs");
    gsArgs.Add("-sDEVICE=pdfwrite");
    gsArgs.Add(@"-sOutputFile=" + outputPath);
    gsArgs.Add(@"-f" + inputPath);
    return gsArgs.ToArray();
}

If I use gswin32.exe from the commandline the result is a PDF/A file.


Solution

  • First switch is ignored. You need to add dummy switch at position 0 so the code will look like:

    string[] CreateTestArgs(string inputPath, string outputPath)
    {
        List<string> gsArgs = new List<string>();
        gsArgs.Add("-notused");
        gsArgs.Add("-dPDFA");
        gsArgs.Add("-dBATCH");
        gsArgs.Add("-dNOPAUSEgsArgs");
        gsArgs.Add("-sDEVICE=pdfwrite");
        gsArgs.Add(@"-sOutputFile=" + outputPath);
        gsArgs.Add(@"-f" + inputPath);
        return gsArgs.ToArray();
    }