При валидации формы на стороне клиента и длительном сабмите формы, пользователь может нажать кнопку несколько раз, чем вызовет несколько последовательных отправок форм. Эта ошибка исправлена в версии 2.0.8 либо смотреть на github.
пятница, 29 апреля 2016 г.
понедельник, 25 апреля 2016 г.
iOS9 и AppleTV2
Имеем apple tv2, которой был сделан непривязанный джэйлбрэйк и россыпь apple устройств всех мастей. В какой-то момент устройства перестали иметь возможность транслировать видео на приставку, т.е. приставка видна в AirPlay, но есть возможность транслировать только звук. Беглый поиск выявил проблему - Apple усилила безопасность и обновила протоколы обмена данных, а устройства как раз обновились до iOS9 и El Capitan.
Меню обновления на AppleTV говорит, что установлена последняя версия, а сброс настроек на заводские не работает - всё ясно, проделки джэйлбрэйка, чтобы случайно не обновить приставку. При подключении к iTunes обновить устройство тоже не удаётся.
Выход - переводим apple tv в DFU режим:
1. Подключаем питание к приставке
2. Подключаем приставку к ноутбуку
3. Открываем iTunes
4. Зажимаем на пульте кнопки "Вниз" и "Меню" на 6 секунд - диод на приставке начнет мигать
5. Зажимаем на пульте кнопки "Меню" и "Воспроизведение/Пауза" на 6 секунд
6. В iTunes появляется возможность восстановления прошивки AppleTV
7. Загрузка последней версии прошивки и установка её на приставку произойдет автоматически
четверг, 21 апреля 2016 г.
Aspose.PDF обновление полей
Столкнулся с задачей программного заполнения полей в PDF документе. Под рукой был Aspose.PDF, поэтому воспользовался им.
В результате получили обычный XML, только беда, есть поля, которые содержат вложенные поля, к ним обратиться по имени не получится, например как изменить значение поля Text6->name2?
Для этого получим названия всех полей в PDF, для простоты выгрузим в файл fields.txt
В результате видим, что доступ к дереву полей происходит через точку, а значит полное имя поля выглядит следующим образом Text6.2
Остается только поменять значение этого поля согласно инструкции
Вся информация по работе есть в официальных гайдах Aspose, но была пара моментов, которые были не описаны.
Допустим у вас есть файл PDF с полями для заполнения, например это 3-НДФЛ с сайта налоговой.
Чтобы заполнить поле, нужно всего лишь знать его имя, а этого у нас нет, восполним пробел и выгрузим название всех полей в файл.
Aspose.Pdf.Facades.Form form = new Aspose.Pdf.Facades.Form(); form.BindPdf("
example.pdf
"); System.IO.FileStream xmlOutputStream = new FileStream("
fields.xml
", FileMode.Create); form.ExportXml(xmlOutputStream); xmlOutputStream.Close(); form.Dispose();
В результате получили обычный XML, только беда, есть поля, которые содержат вложенные поля, к ним обратиться по имени не получится, например как изменить значение поля Text6->name2?
<fields> <field name="Text6"> <field name="2">
<value>760</value>
</field> </field> </fields>
Для этого получим названия всех полей в PDF, для простоты выгрузим в файл fields.txt
Aspose.Pdf.Facades.Form form = new Aspose.Pdf.Facades.Form(); form.BindPdf("example.pdf"); string[] fields = form.FieldNames; StreamWriter sw = new StreamWriter("
fields.txt
"); foreach (string field in fields) { sw.WriteLine(field); } sw.Flush(); sw.Close();
В результате видим, что доступ к дереву полей происходит через точку, а значит полное имя поля выглядит следующим образом Text6.2
Остается только поменять значение этого поля согласно инструкции
//Create Form Object
Aspose.Pdf.Facades.Form pdfForm = new Aspose.Pdf.Facades.Form();
//Open Document
pdfForm.BindPdf("input.pdf");
pdfForm.FillField("Text6.2", "Ура, работает!");
//save updated file
pdfForm.Save("output.pdf");
Подписаться на:
Сообщения (Atom)