Возникла у меня проблема - есть куча файлов PDF, из которых я выбираю макросом 3 штуки (которые вообще-то являются одним, но из-за большого размера этот большой делят на 3 куска, допустим, 50 страниц, 40 и 37 = всего 127 страниц) (в других файлах может быть всего не 127 а любое другое количество страниц). И вот из этих 3-х файлов мне нужно распечатать 3 страницы - первую, последнюю и n-ю (n определяется отдельным кодом (который сейчас не важен, допустим, что n = 63) в зависимости от различных показателей в файле Excel и может быть любым от 1 до 127).
Все осложняется еще тем, что на компе стоит Adobe Reader но НЕ стоит Adobe Acrobat (платный он, низззя), следовательно, нет библиотеки, работающей с AcroExch.
Как побороть эту заразу, кто что посоветовать может? Прикладываю для поиграться два произвольных двустраничных PDF, а мой код в Excel в данном случае не так важен - он просто определяет число n.
Здравствуйте!
Возникла у меня проблема - есть куча файлов PDF, из которых я выбираю макросом 3 штуки (которые вообще-то являются одним, но из-за большого размера этот большой делят на 3 куска, допустим, 50 страниц, 40 и 37 = всего 127 страниц) (в других файлах может быть всего не 127 а любое другое количество страниц). И вот из этих 3-х файлов мне нужно распечатать 3 страницы - первую, последнюю и n-ю (n определяется отдельным кодом (который сейчас не важен, допустим, что n = 63) в зависимости от различных показателей в файле Excel и может быть любым от 1 до 127).
Все осложняется еще тем, что на компе стоит Adobe Reader но НЕ стоит Adobe Acrobat (платный он, низззя), следовательно, нет библиотеки, работающей с AcroExch.
Как побороть эту заразу, кто что посоветовать может? Прикладываю для поиграться два произвольных двустраничных PDF, а мой код в Excel в данном случае не так важен - он просто определяет число n._Boroda_
Уточнение - файлы PDF называются по типу "Файл 1", "Файл 2" и "Файл 3", поэтому определить первый, второй и третий из них легко.
Rioran, я правильно тебя понял, что ты предлагаешь из Excel открыть Word, а уже оттуда попытаться определить название того файла PDF, который нужен для распечатки n-ого листа и распечатать его? Кстати, я могу ошибаться, но стандартный файл PDF вроде защищен от изменений (или нет?). Сейчас у меня дома, конечно, нет реального файла, но могу сказать сразу, что PDF-ки делают люди, которым просто показали, на какие кнопки на сканере жать, следовательно, файлы должны быть именно стандартными.
Уточнение - файлы PDF называются по типу "Файл 1", "Файл 2" и "Файл 3", поэтому определить первый, второй и третий из них легко.
Rioran, я правильно тебя понял, что ты предлагаешь из Excel открыть Word, а уже оттуда попытаться определить название того файла PDF, который нужен для распечатки n-ого листа и распечатать его? Кстати, я могу ошибаться, но стандартный файл PDF вроде защищен от изменений (или нет?). Сейчас у меня дома, конечно, нет реального файла, но могу сказать сразу, что PDF-ки делают люди, которым просто показали, на какие кнопки на сканере жать, следовательно, файлы должны быть именно стандартными._Boroda_
Ну да, так оно и есть. На всякий случай поясню: есть акт - большая простыня (я не знаю - бумажная или компьютерная, но предполагаю, что бумажная) и из нее делают (не знаю кто) PDF-ку, чтобы приложить ее к этому акту в 1С. Конечно же, PDF-ка картинкой неизменяемой. Таких актов несколько тысяч штук. В каждом из этих актов множество накладных. И вот наступил счастливый день, когда нашим нежно любимым юристам понадобилось для нескольких тысяч накладных распечатать первый лист акта (с шапкой), в котором эта накладная сидит, последний лист (с подписями) и тот лист, на котором эта накладная как раз и написана. Своими методами (не из PDF), я нашел номера нужных листов, которые нужно печатать, а вот теперь встал вопрос - как распечатать из PDF именно этот лист. Ну и до кучи первый и последний. Но, решив вопрос с печатью произвольного листа, печать первого и последнего уже проблемой не будет, думаю.
Вот что значит не уметь вопросы на форуме задавать - сколько уточнений уже появляется.
Ну да, так оно и есть. На всякий случай поясню: есть акт - большая простыня (я не знаю - бумажная или компьютерная, но предполагаю, что бумажная) и из нее делают (не знаю кто) PDF-ку, чтобы приложить ее к этому акту в 1С. Конечно же, PDF-ка картинкой неизменяемой. Таких актов несколько тысяч штук. В каждом из этих актов множество накладных. И вот наступил счастливый день, когда нашим нежно любимым юристам понадобилось для нескольких тысяч накладных распечатать первый лист акта (с шапкой), в котором эта накладная сидит, последний лист (с подписями) и тот лист, на котором эта накладная как раз и написана. Своими методами (не из PDF), я нашел номера нужных листов, которые нужно печатать, а вот теперь встал вопрос - как распечатать из PDF именно этот лист. Ну и до кучи первый и последний. Но, решив вопрос с печатью произвольного листа, печать первого и последнего уже проблемой не будет, думаю.
Вот что значит не уметь вопросы на форуме задавать - сколько уточнений уже появляется._Boroda_
Если вопрос не решится,могу написать утилиту. Ей в командную строку путь к файлу,номера страниц,имя выходного файла. Результат: Она склеит нужные листы в заданном порядке и сохранит отдельным файлом. Если пояснить правила поиска нужных страниц,то и командная строка не понадобится
Если вопрос не решится,могу написать утилиту. Ей в командную строку путь к файлу,номера страниц,имя выходного файла. Результат: Она склеит нужные листы в заданном порядке и сохранит отдельным файлом. Если пояснить правила поиска нужных страниц,то и командная строка не понадобитсяdoober
Сергей, спасибо. Предложение шикарное, только я ж так не могу, что мне написали, а я только пользуюсь и радуюсь, мне бы самому еще нужно в этом хоть немного разобраться.
Командную строку из VBA я тоже пытал, но дошел только до возможности распечатать весь файл целиком. Про склеить листы тоже думал (как мысль одинаково идет!), но снова уперся в нахождение листов с конкретными номерами. В итоге пришел к тому, что собирался поставить бету Акробата на 30 дней, попытаться спереть оттуда библиотеки и работать с ними - там я примерно знаю, как сделать. А если спереть не получится, то через 30 дней опять поставить нового Акробата. Но, конечно же, это только костыль. Потому и решил задать свой первый вопрос на екселевских форумах, что разобраться хочу.
Очередное уточнение с моей стороны: мне были выданы 2 файла, в одном список нужных накладных с датами, про другой написал ниже. После некоторых телодвижений макросом в итоге получилось несколько нужных столбцов - номер накладной, ее дата (вернее, последний день той пятидневки месяца, в которую эта дата попадает - 05/01, 10/01, ..., 31/01, 05/02, ..., 28/02, 01/03, ...), и три числа, обозначающие номера листов, которые нужно распечатать. Кстати, я выше неверно написал - есть большая простынь-пятидневка, в ней куча актов, а в каждом акте куча накладных - все это теоретически должно быть в одном файле PDF, но его зачем-то разбивают на 3. То есть, получается так, что эти 3 числа, обозначающие номера нужных листов, они все произвольные, а не первый, произвольный и последний, как я раньше писал. Но эти числа я уже нашел и вывел в файле. Пример прикладываю, он на 5 строк, а реально строк будет пару-тройку тысяч. Более того, такие запросы на распечатку будут поступать периодически. Кстати, про тот файл Excel, что мне дают - я не знаю (и никто мне сказать не может) откуда он, то такое ощущение, что это бывший текстовик, преобразованный в Excel, в котором всё аналогично общему большому файлу пятидневки. Правда, листы Excel, конечно, не соответствуют реальным листам PDF, но в отдельном столбце Excelевского файла каждое начало листа для файла PDF пронумеровано. Вот оттуда я и выковыриваю по номеру накладной нужные числа - номера листов. Еще про файлы PDF - в одной папке туча подпапок, по одной на каждую пятидневку, а в каждой подпапке по 3 (иногда 1 или 2, но это редко) файла PDF.
Сергей, спасибо. Предложение шикарное, только я ж так не могу, что мне написали, а я только пользуюсь и радуюсь, мне бы самому еще нужно в этом хоть немного разобраться.
Командную строку из VBA я тоже пытал, но дошел только до возможности распечатать весь файл целиком. Про склеить листы тоже думал (как мысль одинаково идет!), но снова уперся в нахождение листов с конкретными номерами. В итоге пришел к тому, что собирался поставить бету Акробата на 30 дней, попытаться спереть оттуда библиотеки и работать с ними - там я примерно знаю, как сделать. А если спереть не получится, то через 30 дней опять поставить нового Акробата. Но, конечно же, это только костыль. Потому и решил задать свой первый вопрос на екселевских форумах, что разобраться хочу.
Очередное уточнение с моей стороны: мне были выданы 2 файла, в одном список нужных накладных с датами, про другой написал ниже. После некоторых телодвижений макросом в итоге получилось несколько нужных столбцов - номер накладной, ее дата (вернее, последний день той пятидневки месяца, в которую эта дата попадает - 05/01, 10/01, ..., 31/01, 05/02, ..., 28/02, 01/03, ...), и три числа, обозначающие номера листов, которые нужно распечатать. Кстати, я выше неверно написал - есть большая простынь-пятидневка, в ней куча актов, а в каждом акте куча накладных - все это теоретически должно быть в одном файле PDF, но его зачем-то разбивают на 3. То есть, получается так, что эти 3 числа, обозначающие номера нужных листов, они все произвольные, а не первый, произвольный и последний, как я раньше писал. Но эти числа я уже нашел и вывел в файле. Пример прикладываю, он на 5 строк, а реально строк будет пару-тройку тысяч. Более того, такие запросы на распечатку будут поступать периодически. Кстати, про тот файл Excel, что мне дают - я не знаю (и никто мне сказать не может) откуда он, то такое ощущение, что это бывший текстовик, преобразованный в Excel, в котором всё аналогично общему большому файлу пятидневки. Правда, листы Excel, конечно, не соответствуют реальным листам PDF, но в отдельном столбце Excelевского файла каждое начало листа для файла PDF пронумеровано. Вот оттуда я и выковыриваю по номеру накладной нужные числа - номера листов. Еще про файлы PDF - в одной папке туча подпапок, по одной на каждую пятидневку, а в каждой подпапке по 3 (иногда 1 или 2, но это редко) файла PDF._Boroda_
Можно попробовать воспользоваться вместо AcrobatReader прогой FoxitReader. Хотя в ней тоже нет возможности задать конкретные листы для печати при использовании командной строки (синтаксис печати там аналогичен командной строке AcroRd), но у неё хотя бы в интерфейсе СтраницыПечати присутствует возможность задавать конкретные номера распечатываемых страниц/диапазонов через запятую (в отличие от акробата, насколько я помню). Т.е. это означает, что при использовании OLE можно открыть объект ФокситРидера с нужным файлом, и дать ему команду на распечатку только нужного, а потом закрыть (типа как в примере Rioran с Word'ом).
Можно попробовать воспользоваться вместо AcrobatReader прогой FoxitReader. Хотя в ней тоже нет возможности задать конкретные листы для печати при использовании командной строки (синтаксис печати там аналогичен командной строке AcroRd), но у неё хотя бы в интерфейсе СтраницыПечати присутствует возможность задавать конкретные номера распечатываемых страниц/диапазонов через запятую (в отличие от акробата, насколько я помню). Т.е. это означает, что при использовании OLE можно открыть объект ФокситРидера с нужным файлом, и дать ему команду на распечатку только нужного, а потом закрыть (типа как в примере Rioran с Word'ом).AndreTM
Предложение шикарное, только я ж так не могу, что мне написали, а я только пользуюсь и радуюсь, мне бы самому еще нужно в этом хоть немного разобраться.
Александр,я подожду, когда созреешь Надумаешь,скинешь файлик на мыло с пояснениями,прочитаю,создам файл для печати По поводу Акробата-не люблю с ним работать,проще через другие библы с файлом работать.
Цитата
Предложение шикарное, только я ж так не могу, что мне написали, а я только пользуюсь и радуюсь, мне бы самому еще нужно в этом хоть немного разобраться.
Александр,я подожду, когда созреешь Надумаешь,скинешь файлик на мыло с пояснениями,прочитаю,создам файл для печати По поводу Акробата-не люблю с ним работать,проще через другие библы с файлом работать.doober
_Boroda_, мне правда как-то неловко что-то писать таким знатокам, просто сегодня наткнулся случайно на тему, там приведено несколько вариантов получения ссылки на страницу в PDF файле. Даже с объектом IE попробовал с печатью через ExecWB - не получилось. http://excel.tips.net/T003350....le.html хотя, Вы наверняка все это уже перебрали, но все же вдруг поможет чем-то
_Boroda_, мне правда как-то неловко что-то писать таким знатокам, просто сегодня наткнулся случайно на тему, там приведено несколько вариантов получения ссылки на страницу в PDF файле. Даже с объектом IE попробовал с печатью через ExecWB - не получилось. http://excel.tips.net/T003350....le.html хотя, Вы наверняка все это уже перебрали, но все же вдруг поможет чем-тоEvgenyD
Rioran, я правильно тебя понял, что ты предлагаешь из Excel открыть Word, а уже оттуда попытаться определить название того файла PDF, который нужен для распечатки n-ого листа и распечатать его?
Да. Или можно определить нужные файлы через Excel (что у тебя уже сделано), а на Word уже передать "кого печатать" и "какую страницу" аргументами.
Rioran, я правильно тебя понял, что ты предлагаешь из Excel открыть Word, а уже оттуда попытаться определить название того файла PDF, который нужен для распечатки n-ого листа и распечатать его?
Да. Или можно определить нужные файлы через Excel (что у тебя уже сделано), а на Word уже передать "кого печатать" и "какую страницу" аргументами.Rioran
Роман, Москва, voronov_rv@mail.ru Яндекс-Деньги: 41001312674279