#ps #idl-programming-language
#ps #idl-programming-language
Вопрос:
Как создать вывод postscript в IDL таким образом, чтобы окно заголовка (т. Е. Поле Заголовка в заголовке файла postscript) было установлено в имя файла или в произвольную строку? По умолчанию для него установлено значение «Графика, созданная IDL»:
%%Title: Graphics produced by IDL
Возможно ли изменить это из IDL, без использования скриптов после создания .ps?
Для справки, можно создать файл .ps следующим образом.
PRO test_2
device,decomposed=0
set_plot, 'ps'
device,filename="~/filename.ps",/isolatin1,xsize=8.,ysize=10.5,inches=1,$
xoffset=0.25,yoffset=0.25,landscape=0
!p.font=0
device, /helvetica, font_size=7 ; a classic sans-serif font
;
x = indgen(100)
plot, x, sin(x)
;
device,/close
set_plot,'x'
!p.thick=1 amp; !p.charthick=1 amp; !p.font=-1 amp; !x.thick=1 amp; !y.thick=1
END
Ответ №1:
Это хорошая особенность IDL — всегда есть способ!
После открытия PS-файла с set_plot
помощью, выполните следующие действия:
IDL> printf, 100, "%!PS-Adobe-3.0"
IDL> printf, 100, "%% Created with: IDL> " (recall_commands())(0)
IDL> printf, 100, "%", form='(A0,$)'
В 1-й строке создается новое объявление о том, что это PS-файл. Убедитесь, что это фактическая PS-версия, созданная вашей версией IDL.
2-я строка — это ваш комментарий — здесь печатается команда, которую вы использовали перед открытием PS-файла.
3-я строка out-комментирует объявление PS-файла, которое IDL будет печатать следующим. Таким образом, будет две из этих строк, причем вторая будет комментарием в виде результирующего «%%».
Возможно, вы захотите проверить, действительно ли LUN PS-файлов 100
. Удачи!
Комментарии:
1. Действительно, я получаю сообщение об ошибке: «PRINTF: файловый модуль не открыт: 100». Поэтому я применил harrisgeospatial.com/docs/get_lun.html вместо этого используйте OPENW, чтобы получить LUN и записать в файл, и это работает!
Ответ №2:
Вы можете открыть его как текстовый файл, найти строку, содержащую %%Title:
, изменить ее и записать новый файл. Я не думаю, что есть более простой способ сделать это без использования внешних программ.
Комментарии:
1. Это именно то, чего я хотел бы избежать, поскольку у меня много файлов для обработки. Использование скрипта для этого действительно является планом резервного копирования.
2. Я согласен с sappjw, я не думаю, что есть какой-либо способ сделать это напрямую. IDL не имеет очень навороченного интерфейса postscript, и это довольно низкий уровень.