Печать документа с разными форматами бумаги

  • Автор темы Автор темы mikebosa
  • Дата начала Дата начала

mikebosa

Участник
Топикстартер
Сообщения
2
Реакции
0
Здравствуйте.
На работе приходится много печатать документов с большим количеством страниц. Документы присылают в формате pdf. Принтер кушает А4 и А3 с фальцовкой, далее их сшивают в тома. Но есть проблема - в файлах собраны станицы не точные размеры А4 и А3, а 297.8х211мм и 421х297.4 мм. Принтер ругается на недопустимый формат и выдает ошибку. Ковырял настройки печати выдает вариант либо все печатать в А4 либо все в А3, делить документ на два куска очень муторно так как по 800 станиц это самоубийство с учетом того что их придется еще раскладывать постранично. Работаю с файлами в адоб акробат про. И в нем не получается кропнуть страницы под человеческие размеры А4 и А3. Прошу помощи
 
Red Army Day script aka Change MediaBox
Если у Вас в файле набор А4 и А3, то можно в принципе сделать скрипт, который будет вгонять в размер к тому формату который ближе к размеру страницы.
 
Последнее редактирование:
Может как вариант пройдет печать с масштабом 99% и автовыбором размера страницы.
 
Попробуйте использовать Print Production/Preflight в Acrobat Pro. Нужно создать Custom профили Analyze на проверку формата, Fix на установку форматов А3 и А4 и Analyze and Fix на проверку и изменение, включив туда вновь созданные. Сам до конца не доковырял - терпения не хватило, но по- моему должно работать.
 
  • Спасибо
Реакции: zollinger
Традиционно, посоветую свой набор скриптов. Думаю, он вам поможет. Делить будет очень просто и быстро
 
Последнее редактирование:
  • Спасибо
Реакции: Yar и mikebosa
  • Спасибо
Реакции: ~RA~
Ребята, спасибо вам огромное за советы. Завтра буду пробовать все что посоветовали
 
не-не, там муторно не будет. Считанные секунды. Split by page size - и печатай отдельно файл с страницами А4, и отдельно файл со страницами А3, без автовыбора лотка и, соответственно, без ошибок. Тем более, что на некоторых принтерах автовыбор работает ООООЧЕНЬ странно. У меня на Konika'х он уменьшает страницку раз в 10 и печатат ее в углу листа.
Муторно может быть подбирать все это, это да. Но и то, не так страшен черт, т.к. листы будут идти в верном порядке,т.е. страницы с меньшими номерами всегда будут в начале пачки
 
Попробуйте использовать Print Production/Preflight в Acrobat Pro. Нужно создать Custom профили Analyze на проверку формата, Fix на установку форматов А3 и А4 и Analyze and Fix на проверку и изменение, включив туда вновь созданные. Сам до конца не доковырял - терпения не хватило, но по- моему должно работать.
Ну, кстати, да. Вот. Разархивировать и импортировать профиль префлайта. У меня, вроде, работает, обрабатывает страницы А4+/- 2 мм и А3+/- 2 мм, задает для них mediaBox, cropbox и trimBox стандартных А4 и А3 соответственно. То есть, не хватает - добавит, лишнее - отрежет. Могут быть нюансы, не учтенные мною, но это нужно на конкретных файлах тестировать. Да, и еще одно - он сделает все страницы горизонтальными. Но, поскольку работа идет с копией исходного файла, то это не проблема
 

Вложения

какой то капризный принтер... Разве он не должен просто предупредить, что часть изображения (0,4 мм) срежется?
Птица Fit to Paper не решит проблему?
Fit to Paper не будет разбираться А4-А3 или еще что-то, просто ужмет все страницы до заданного на принтере формата и никакого тебе автовыбора. Автовыбор и FtP взаимоисключающие опции
 
Последнее редактирование:
Кстати, из дополнительных плюсов префлайта - он еще покажет, какие страницы А4, какие А3 в отчете. Но все другие форматы он проигнорирует и никакой информации о них не даст. Впрочем, добавить такую опцию вообще не проблема
 
А можно подробнее про вывод: что за принтер, что за драйвер (РИП/родной, если родной - общего плана, типа Xerox GLobal Print Driver, или конкретно под модель, PCL или PS)? Судя по вопросу, топикстартер хорошо знает опцию "по размеру страницы PDF", только так можно корректно печатать на офисной технике документы, состоящие из страниц разного размера, но конечно, дальше у него возникает проблема с неформатными страницами. Если драйвер принтера имеет возможность интерпретировать страницы близкого к A4/A3 размера как точный размер и дружит с Акробатом, то сработает, и вопрос только в том, где галка сидит (и какой вариант драйвера взять). Но скорее не имеет, и тогда надежда на Preflight или скрипты, в этом я не разбираюсь. Отмечу тут только, что требуется лишь сжатие или подрезка страниц до точного размера. Но да, с автоопределением A4 или А3. Может, есть сторонний софт или плагин для этого? Если же печать идёт через РИП, ситуация может оказаться даже сложнее, а не проще, т.к. РИП может вообще не печатать смешанные документы.

Также прошу уточнить, какой толщины тома делает ваш финишер и много ли в них вставок A3.
 
Последнее редактирование:
А можно подробнее про вывод: что за принтер, что за драйвер (РИП/родной, если родной - общего плана, типа Xerox GLobal Print Driver, или конкретно под модель, PCL или PS)? Судя по вопросу, топикстартер хорошо знает опцию "по размеру страницы PDF", только так можно корректно печатать на офисной технике документы, состоящие из страниц разного размера, но конечно, дальше у него возникает проблема с неформатными страницами. Если драйвер принтера имеет возможность интерпретировать страницы близкого к A4/A3 размера как точный размер и дружит с Акробатом, то сработает, и вопрос только в том, где галка сидит (и какой вариант драйвера взять). Но скорее не имеет, и тогда надежда на Preflight или скрипты, в этом я не разбираюсь. Отмечу тут только, что требуется лишь сжатие или подрезка страниц до точного размера. Но да, с автоопределением A4 или А3. Может, есть сторонний софт или плагин для этого? Если же печать идёт через РИП, ситуация может оказаться даже сложнее, а не проще, т.к. РИП может вообще не печатать смешанные документы.

Также прошу уточнить, какой толщины тома делает ваш финишер и много ли в них вставок A3.
RIP обычно берет pdf'ы напрямик, и нестит их, у меня, например, рипу без разницы, какие там страницы, раскидывает любые. PhotoPrint, например, так работает
 
Последнее редактирование:
Используя скриптинг в Adobe Acrobat, вы можете автоматически обрезать страницы до ближайших "А" форматов. Вот пример скрипта на JavaScript, который можно использовать:

javascript
// Определение размеров "А" форматов в миллиметрах
var formats = {
A0: { width: 841, height: 1189 },
A1: { width: 594, height: 841 },
A2: { width: 420, height: 594 },
A3: { width: 297, height: 420 },
A4: { width: 210, height: 297 },
A5: { width: 148, height: 210 },
A6: { width: 105, height: 148 },
A7: { width: 74, height: 105 }
};

// Получение текущего активного документа
var doc = app.activeDocs[0];

// Обход всех страниц документа
for (var i = 0; i < doc.numPages; i++) {
var page = doc.getPageNth(i);

// Получение текущих размеров страницы в поинтах
var currentWidth = page.mediaBox[2] - page.mediaBox[0];
var currentHeight = page.mediaBox[3] - page.mediaBox[1];

// Поиск ближайшего "А" формата по ширине и высоте
var closestFormat = null;
var minWidthDifference = Infinity;
var minHeightDifference = Infinity;

for (var format in formats) {
var widthDifference = Math.abs(formats[format].width - currentWidth);
var heightDifference = Math.abs(formats[format].height - currentHeight);

if (widthDifference < minWidthDifference && heightDifference < minHeightDifference) {
minWidthDifference = widthDifference;
minHeightDifference = heightDifference;
closestFormat = format;
}
}

// Изменение размеров страницы до ближайшего формата
page.mediaBox = [0, 0, formats[closestFormat].width, formats[closestFormat].height];
}

// Сохранение изменений в документе
doc.saveAs("<ваш путь к сохранению>");


Этот скрипт обходит все страницы в документе и изменяет их размеры до ближайших "А" форматов, используя определенный набор размеров. Необходимо заменить <ваш путь к сохранению> на путь, по которому вы хотите сохранить измененный документ.

Обратите внимание, что использование скриптов требует определенных знаний и опыта в программировании. Рекомендуется ознакомиться с документацией Adobe Acrobat и пройти соответствующие обучающие курсы, чтобы успешно использовать скрипты в вашей работе.
 
Мне с телефона на ярком солнце плохо видно, что я ответил, но похоже, что поинты сравниваются с миллиметрами. Надо дописать приводилку или в коллекцию забить в поинтах.
 
Последнее редактирование:
Мне с телефона на ярком солнце плохо видно, что я ответил, но похоже, что поинты сравниваются с миллиметрами. Надо дописать приводилку или в коллекцию забить в поинтах.
JavaScript:
const MMRAT = 2.834; //  ratio to convert pt to mm
//  конвертирует из пунктов в миллиметры
function cnvPtToMm(pt) {
    return pt / MMRATIO;
};

//  конвертирует из миллиметров в пункты
function cnvMmToPt(mm) {
    return mm * MMRATIO;
};
 
Рекомендуется ознакомиться с документацией Adobe Acrobat и пройти соответствующие обучающие курсы, чтобы успешно использовать скрипты в вашей работе.
о, курсы. Это я лоханулся, конечно, в университете на программиста выучился
 
Последнее редактирование:
Используя скриптинг в Adobe Acrobat, вы можете автоматически обрезать страницы до ближайших "А" форматов. Вот пример скрипта на JavaScript, который можно использовать:

javascript
// Определение размеров "А" форматов в миллиметрах
var formats = {
A0: { width: 841, height: 1189 },
A1: { width: 594, height: 841 },
A2: { width: 420, height: 594 },
A3: { width: 297, height: 420 },
A4: { width: 210, height: 297 },
A5: { width: 148, height: 210 },
A6: { width: 105, height: 148 },
A7: { width: 74, height: 105 }
};

// Получение текущего активного документа
var doc = app.activeDocs[0];

// Обход всех страниц документа
for (var i = 0; i < doc.numPages; i++) {
var page = doc.getPageNth(i);

// Получение текущих размеров страницы в поинтах
var currentWidth = page.mediaBox[2] - page.mediaBox[0];
var currentHeight = page.mediaBox[3] - page.mediaBox[1];

// Поиск ближайшего "А" формата по ширине и высоте
var closestFormat = null;
var minWidthDifference = Infinity;
var minHeightDifference = Infinity;

for (var format in formats) {
var widthDifference = Math.abs(formats[format].width - currentWidth);
var heightDifference = Math.abs(formats[format].height - currentHeight);

if (widthDifference < minWidthDifference && heightDifference < minHeightDifference) {
minWidthDifference = widthDifference;
minHeightDifference = heightDifference;
closestFormat = format;
}
}

// Изменение размеров страницы до ближайшего формата
page.mediaBox = [0, 0, formats[closestFormat].width, formats[closestFormat].height];
}

// Сохранение изменений в документе
doc.saveAs("<ваш путь к сохранению>");


Этот скрипт обходит все страницы в документе и изменяет их размеры до ближайших "А" форматов, используя определенный набор размеров. Необходимо заменить <ваш путь к сохранению> на путь, по которому вы хотите сохранить измененный документ.

Обратите внимание, что использование скриптов требует определенных знаний и опыта в программировании. Рекомендуется ознакомиться с документацией Adobe Acrobat и пройти соответствующие обучающие курсы, чтобы успешно использовать скрипты в вашей работе.
TypeError: doc.getPageNth is not a function 'popcorn'