Проблема очень странная закономерностей пока не нашел. Суть заключается в том что картинки (QR коды) сами по себе съезжают.. ТОЛЬКО при выводе на печать, хотя визуально расположены правильно. QR коды вставляет в excel программа написанная мной на Python. Картинки строго привязаны к определенной ячейке через каждые 30 строк (34, 64, 94...). Как я делаю: 1)Создаю чистый документ 2)Программой вставляю QR коды, строго привязывая к определенным ячейкам 34, 64, 94 .... 3)Выравниваю область печати макросом: [vba]
Код
Sub PageBreak() r = Int(Range(ActiveSheet.PageSetup.PrintArea).Rows.Count / 62) c = Int(Range(ActiveSheet.PageSetup.PrintArea).Columns.Count / 12) For i = 1 To r Set ActiveSheet.HPageBreaks(i).Location = Range("A" & i * 62 + 1) Next i For i = 1 To c Set ActiveSheet.VPageBreaks(i).Location = Cells(1, i * 12 + 1) Next i End Sub
[/vba] 4) Вставляю из другого документа данные 5)Пытаюсь отправить на печать - и ВСЕ QR коды сползают.
Проблема очень странная закономерностей пока не нашел. Суть заключается в том что картинки (QR коды) сами по себе съезжают.. ТОЛЬКО при выводе на печать, хотя визуально расположены правильно. QR коды вставляет в excel программа написанная мной на Python. Картинки строго привязаны к определенной ячейке через каждые 30 строк (34, 64, 94...). Как я делаю: 1)Создаю чистый документ 2)Программой вставляю QR коды, строго привязывая к определенным ячейкам 34, 64, 94 .... 3)Выравниваю область печати макросом: [vba]
Код
Sub PageBreak() r = Int(Range(ActiveSheet.PageSetup.PrintArea).Rows.Count / 62) c = Int(Range(ActiveSheet.PageSetup.PrintArea).Columns.Count / 12) For i = 1 To r Set ActiveSheet.HPageBreaks(i).Location = Range("A" & i * 62 + 1) Next i For i = 1 To c Set ActiveSheet.VPageBreaks(i).Location = Cells(1, i * 12 + 1) Next i End Sub
[/vba] 4) Вставляю из другого документа данные 5)Пытаюсь отправить на печать - и ВСЕ QR коды сползают.omon3
то может просто учесть это при выравнивании области печати и не мучиться?
Я кажется понял в чем проблема. Попробую объяснить. Возьмем уже редактированный файл excel с какими то настройками параметров печати. Я использую для работы с excel библиотеку openpyxl в Python. Она вставляет картинки, привязывая их к определенным ячейкам, НО открывает (как же не просто объяснить то) и работает с документом в своих каких-то параметрах (размерах) страниц, ячеек и.т.д. - скорее всего по умолчанию екселя (те параметры которые заданы если создать новый документ). Открыв, она вставляет картинки с настройками (Правая кнопка мыши по картинке->Размер и свойства->Свойства->Привязка объекта к фону->флажок НЕ перемещать и не изменять размеры) - не перемещать и не изменять размеры. Далее она сохраняет весь документ, но уже с ПОЛЬЗОВАТЕЛЬСКИМИ параметрами. НО у нас то строгая привязка к фону - и все картинки съезжают, как бы мы не редактировали параметры печати. ЕСЛИ же переставить флажок на перемещать и изменять объект вместе с ячейками - все QR коды встанут на свои места.
то может просто учесть это при выравнивании области печати и не мучиться?
Я кажется понял в чем проблема. Попробую объяснить. Возьмем уже редактированный файл excel с какими то настройками параметров печати. Я использую для работы с excel библиотеку openpyxl в Python. Она вставляет картинки, привязывая их к определенным ячейкам, НО открывает (как же не просто объяснить то) и работает с документом в своих каких-то параметрах (размерах) страниц, ячеек и.т.д. - скорее всего по умолчанию екселя (те параметры которые заданы если создать новый документ). Открыв, она вставляет картинки с настройками (Правая кнопка мыши по картинке->Размер и свойства->Свойства->Привязка объекта к фону->флажок НЕ перемещать и не изменять размеры) - не перемещать и не изменять размеры. Далее она сохраняет весь документ, но уже с ПОЛЬЗОВАТЕЛЬСКИМИ параметрами. НО у нас то строгая привязка к фону - и все картинки съезжают, как бы мы не редактировали параметры печати. ЕСЛИ же переставить флажок на перемещать и изменять объект вместе с ячейками - все QR коды встанут на свои места.omon3
Сообщение отредактировал omon3 - Суббота, 27.02.2016, 23:15