Я использую Matlab для вывода многостраничный файл с PS:Ghostscript ошибка преобразования многостраничный PS в многостраничный PDF с помощью pdfwrite
print(figure, '-dpsc2', fullfile(folder, [file '.ps']), '-r600', '-append')
, а затем с помощью Matlab для вызова Ghostscript для преобразования полученного PS файл в формате PDF:
system(['"' gsPath '" -sDEVICE=pdfwrite \
-dDEVICEWIDTHPOINTS=' num2str(int32(width*72)) ' \
-dDEVICEHEIGHTPOINTS=' num2str(int32(height*72)) ' \
-dPDFFitPage \
-o "' fullfile(folder, [file '.pdf']) '" "' fullfile(folder, [file '.ps']) '"']);
, который просто очень трудно читаемый способ писать что-то вдоль линий
gswin64c -sDEVICE=pdfwrite^
-dDEVICEWIDTHPOINTS=100^
-dDEVICEHEIGHTPOINTS=100^
-dPDFFitPage^
-o "C:\folder\output.pdf" "C:\folder\input.ps"
, где я привел в пример значения для размеров устройства и путей ввода-вывода. Когда я использую этот код для печати одной фигуры (одной страницы) в PDF, все работает отлично. Однако при печати нескольких фигур (несколько страниц) PDF, Ghostscript выдает ошибку:
GPL Ghostscript 9.06 (2012-08-08)
Copyright (C) 2012 Artifex Software, Inc. All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
**** Unable to open the initial device, quitting.
Теперь, если я удалить -dDEVICEWIDTHPOINTS=100 -dDEVICEHEIGHTPOINTS=100
часть моей команды Ghostscript и снова попытаться напечатать несколько цифр в формате PDF, это работает штраф (за исключением того, что размер страницы отличается от того, что я хочу).
GPL Ghostscript 9.06 (2012-08-08)
Copyright (C) 2012 Artifex Software, Inc. All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Loading NimbusSanL-Regu font from %rom%Resource/Font/NimbusSanL-Regu... 4032872 2490784 2311720 1014184 2 done.
Неужели кто-нибудь еще сталкивается с подобной проблемой и нашел обходное решение для этой проблемы? Один из ключей здесь заключается в том, что мне нужно иметь возможность контролировать размер страницы созданного PDF-файла. Благодаря!
Вы, возможно, потребуется дважды ваши обратные слэши. Postscript интерпретирует обратную косую черту как escape. –
Если вы считаете, что обнаружили ошибку, сообщите об этом как на bugs.ghostscript.com – KenS