Я пытаюсь взять в PDF-файл, который имеет в центре векторную графику c, однако он содержит текст и другие логотипы вокруг страницы, которые мне не нужны. Мне нужно извлечь только векторную часть файла, так что ниже того, что я смог сделать, это создать CropBox и затем преобразовать поле кропа в растровое изображение.
Это приводит к извлечению графика c только в центре страницы, но недостатком является то, что это растровое изображение. После того, как я создаю PDF-файл, используя рамку для обрезки, если я открываю его в windows, он показывает только то, что мне нужно, однако, когда я затем импортирую его в CorelDraw или Adobe Illustrator, он все еще содержит все остальные данные, и, как я узнаю, в рамке для обрезания просто скрывается все else.
Итак, вопрос в том, как я могу go сделать это с помощью ghostscript или аналогичной бесплатной библиотеки c#, чтобы превратить мою секцию PDF с рамкой для обрезки в новый pdf с только этими данными?
private string CropPDFToBitmap()
{
try
{
CheckOutputPathExists();
string gsPath = @"C:\Program Files (x86)\gs\gs9.50\bin\gswin32c";
string argo = $"-o {this.BaseFileLocation}\\cropped\\{RemoveExtension(TargetFileName)}.pdf -sDEVICE=pdfwrite -c \"[/CropBox[281 197 531 447]\" -c \" /PAGES pdfmark\" -f {this.BaseFileLocation}\\{RemoveExtension(TargetFileName)}.pdf";
string ProductionFile = $"{ this.BaseFileLocation}\\bitmaps\\{RemoveExtension(TargetFileName)}.bmp";
string bitmapArg = $" -dUseCropBox -dNOPAUSE -sDEVICE=bmp256 -r600 -o {ProductionFile} {this.BaseFileLocation}\\cropped\\{RemoveExtension(TargetFileName)}.pdf";
// " -dUseCropBox -dNOPAUSE -sDEVICE=bmp256 -r600 -o C:\\final.bmp C:\\cropped.pdf"
//{this.BaseFileLocation}\cropped\{RemoveExtension(TargetFileName)}.pdf
var cropProcess = Process.Start(gsPath, argo);
cropProcess.WaitForExit();
var bitmapProcess = Process.Start(gsPath, bitmapArg);
bitmapProcess.WaitForExit();
return ProductionFile;
}
catch (Exception ex)
{
Debug.WriteLine("Failed {0}", ex.Message);
throw new Exception(ex.Message);
}
}