Йоксель » Главный форум

Прозрачный фон картинки в PDF

(10 posts)
  1. Здравствуйте!
    Проблема: есть сохраненный из 1С файл XLS с текстом и картинкой. В EXCEL вижу что фон картинки - прозрачный, и за ней виден текст.
    А после конвертации в PDF прозрачность фона - исчезает, да вдобавок еще появляется ненужная рамка у картинки.
    Как побороть сию неприятность ????????????
    ОЧ-Ч-Ч-Ч-Ч-ЧЕНЬ НУЖНО ! ! !
    Файл XLS (сохранялся в формате XLS97), полученный из 1С - готов прислать на анализ.

    Отправлено 14 года(лет) назад #
  2. Это смотря как происходит "конвертация в PDF". Например, сохраняем из восьмерки в MXL7 и открываем Йокселем. Тогда в 99% случаев прозрачности не будет (прозрачность в этом случае будет только для картинок EMF/WMF). Если сохранять в xl97, а уже этот файл открывать Йокселем, то не исключено, что можно будет добиться прозрачности. Но не факт. Лучший способ - создать изначально документ в формате xl97, в него вставить картинки в формате PNG с прозрачностью. Когда требуется получить PDF, то открываем этот XLS-документ Йокселем, средствами Йокселя подправляем, где нужно, результат экспортируем в PDF.

    Отправлено 14 года(лет) назад #
  3. Не понял...
    Так я вроде именно так и делаю! Сохраняю из 1С файл с наложенной картинкой (*.PNG) с прозрачным фоном в формате XLS97. Его же и открываю Йокселем. Конвертирую. И результат - ПРОЗРАЧНОСТЬ ПРОПАЛА ! ! !
    Вот как все делается:
    ===================================================================
    // Для присоединения документа к письму как вложение
    // сохраним файл накладной (ВРЕМЕННО, формат = XLS97)
    Попытка
    ЭлементыФормы.ПолеТабличногоДокумента.Записать(КаталогВременныхФайлов()+"MyFile.xls", ТипФайлаТабличногоДокумента.XLS97);
    Исключение
    Предупреждение("Ошибка при записи. Файл не записан.");
    КонецПопытки;

    // Сконвертируем файл накладной (ВРЕМЕННЫЙ) из формата XLS в формат PDF
    Попытка
    ЗагрузитьВнешнююКомпоненту(КаталогПрограммы() + "Yoksel.dll");

    Йоксель = ПолучитьCOMОбъект("","Йоксель");
    КонвертерPDF = Йоксель.СоздатьГрафическийКонвертерPDF();
    // КонвертерPNG = Йоксель.СоздатьГрафическийКонвертер();
    Исключение
    Предупреждение("Не удалось загрузить внешнюю компоненту Yoksel!", 20);
    Возврат;
    КонецПопытки;

    // Конвертируем временный файл в формат pdf
    Попытка
    Таб = Йоксель.СоздатьТабличныйДокумент();
    Таб.Открыть(КаталогВременныхФайлов()+ "MyFile.xls", "2");
    Таб.ПараметрыПечати.Ориентация = 2;
    КонвертерPDF.Документ = Таб;
    // // Установим размер страницы в А4
    КонвертерPDF.КоличествоБитНаПиксел = 24; //1, 4, 8, 24
    КонвертерPDF.ШиринаСтраницы = 11907;
    КонвертерPDF.ВысотаСтраницы = 16840;
    КонвертерPDF.ПолеСлева = 1134; // в твипах (1 твип = 1/567 см)
    КонвертерPDF.ЗаписатьВФайл(КаталогВременныхФайлов()+ "MyFile.pdf");
    Исключение
    Сообщить(ОписаниеОшибки(), СтатусСообщения.Важное);
    Возврат;
    КонецПопытки;
    =====================================================================
    Ну и что здесь нужно исправить, чтоб фон сохранить прозрачным ???????????????

    Отправлено 14 года(лет) назад #
  4. Насколько я помню, 1С вообще не поддерживает PNG. Когда вставляем в документ PNG-картинку, она преобразуется в другой формат.

    Отправлено 14 года(лет) назад #
  5. Ну так каково будет решение в моей ситуации ?
    Буду очень признателен за ПОДРОБНУЮ ИНСТРУКЦИЮ (желательно с примером)
    Заранее спасибо!

    Отправлено 14 года(лет) назад #
  6. Еще раз проверил - в 1С я выбираю добавление картинки именно формата PNG!
    (Правда там этот формат идет в общей строке форматов вида:
    Все картинки (*.bmp, *.dib, *.rle, *.gif, *.jpg, *.jpeg, *.png
    и понять - делает ли 1С внутреннее преобразование формата - неясно...)
    НО: если посмотреть ПРОМЕЖУТОЧНЫЙ файл *.XLS - то в нем все в порядке: фон прозрачный!
    П О М О Г И Т Е ! ! ! !

    Отправлено 14 года(лет) назад #
  7. > Ну так каково будет решение в моей ситуации

    Я уже писал - работать с шаблоном в файле XLS, где вставлена PNG-картинка с прозрачностью. Шаблон должен быть сформирован Excel'ем, а не 1С.

    > Буду очень признателен за ПОДРОБНУЮ ИНСТРУКЦИЮ (желательно с примером)

    Нет уж. Сам давай.

    > Еще раз проверил - в 1С я выбираю добавление картинки именно формата PNG!

    Это ничего не значит. В 1С 7.7 можно, например, вставлять JPEG-картинки, тогда как в документе может быть только BMP. Здесь какой-то, скорее всего стандартный виндовый, механизм задействуется, через который 1С загружает картинки из неподдерживаемых ей форматов.

    > если посмотреть ПРОМЕЖУТОЧНЫЙ файл *.XLS - то в нем все в порядке: фон прозрачный!

    Все может быть. В конце концов Йоксель не поддерживает абсолютно все возможности Excel.

    Повторяю еще раз, Йоксель поддерживает прозрачность только для картинок EMF/WMF или PNG. Поэтому в документе должна быть картинка именно в таких форматах. Реальный способ этого добиться - использовать шаблон в формате XLS. Процесс формирования документа может выглядеть так: формируем документ без картинки через 1С. Как либо загружаем его в документ Йокселя. В отдельном документе Йокселя открываем шаблон XLS с картинкой. В этот документ с картинкой вставляем в начало строки из документа, сформированного в 1С (ТабличныйДокумент.ВставитьОбласть). Получается конечный документ, который потом преобразуем в картинку.

    Отправлено 14 года(лет) назад #
  8. Здорово... (:-()
    А вот что говорит Альма-1С по такому поводу:
    Ссылка: _http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=567051
    Q: ... Подскажите как можно из 1С выгрузить картинку в Excel с сохранением прозрачности фона???

    A: В Excel 97 и 2007 можно экспортировать картинки с прозрачным фоном при соблюдении следующих условий:
    - картинка не векторная
    - РазмерКартинки = Растянуть
    - Узор = Нет заливки
    --------------------------
    Так и делал. Итог - см.выше...
    Черт-те-что !
    "Все мозги разбил на части,
    Все извилины заплел.
    И Канатчиковы власти
    Колют нам второй укол..."

    Отправлено 14 года(лет) назад #
  9. Перечитай тему еще раз.

    Отправлено 14 года(лет) назад #
  10. Ёпрст
    Участник

    (0) печатай на doPdfPrinter , он не портит прозрачность картинок

    Отправлено 14 года(лет) назад #

RSS экспорт этой темы

Отправить сообщение

Вы должны войти в систему, чтобы оставлять сообщения.