Да, проблема здесь в том, что Ghostscript не может знать, сколько страниц будет в конечном файле, когда он обрабатывает первый файл, и, что более важно, какими будут номера объектов этих страниц.
Теперь аннотация / Dest для ссылки может выглядеть примерно так: [page / XYZ left top zoom]
«page» в данном случае - это объект страницы, это косвенная ссылка на объект PDF, поэтому / Ссылка на странице 1, которая ссылается на страницу 2, может выглядеть примерно так:
[18 0 R / XYZ 0 792 1]
если мы предположим, что страница 2 является объектом № 18 в выходном файле PDF.
При обработке аннотаций интерпретатор PDF выполняет их как последнее, что он делает с входным файлом PDF. Это означает, что все страницы заполнены, поэтому устройство pdfwrite знает, что страница 2 имеет (например) номер объекта 18. Таким образом, нет никаких проблем в выяснении, какая страница связана с каким номером объекта.
Но в вашем случае вы запускаете первый файл полностью, затем запускаете аннотации (перед выполнением второго файла). В то время одна или несколько ссылок указывают на страницу, которая еще не существует. Поскольку невозможно узнать, какой будет номер объекта на этой странице , который будет при выполнении последующих файлов, устройство pdfwrite не сможет обработать аннотацию Link.
Так что я боюсь, что вы не можете тривиально делать то, что вы хотите с Ghostscript. На самом деле, я не могу понять, как вы можете получить ваш файл содержимого, чтобы иметь на нем ссылки такого рода.
Вы можете сделать это по моде, но это гораздо сложнее, чем просто связать файлы вместе. Вы можете оставить все аннотации Link на первой странице, обработать все файлы PDF вместе, а затем отправить после обработки все файлы PDF, которые описывают аннотации Link, которые вы хотите создать, после загрузки всех PDF-файлов.
Я, возможно, упускаю суть, конечно; Вы не предоставили примеры файлов для просмотра, поэтому я не могу сказать, какие аннотации и дескрипторы Link использует ваш файл в настоящее время.
Попутно заметим, что устройство pdfwrite не «объединяет» PDF-файлы, это гораздо более сложный процесс. Вы можете найти документально оформленный процесс здесь , и я думаю, что его стоит прочитать, чтобы вы могли получить представление о возможностях и ограничениях устройства в этом случае.
Фундаментально Ghostscript и документ pdfwrite не предназначены для редактирования или манипулирования PDF-файлами.