Software Development Blog
Тази допълнителна секция превръща темата от кратка демонстрация в работен контролен списък. При реална интеграция първо уточнете какъв файл влиза в процеса, кой компонент го създава или чете, какъв…
Software Development Blog
Тази допълнителна секция превръща темата от кратка демонстрация в работен контролен списък. При реална интеграция първо уточнете какъв файл влиза в процеса, кой компонент го създава или чете, какъв…
Software Development Blog
Действие AcroForm е речник, прикрепен към изпълним модул, който казва на зрителя какво да прави, когато нещо се случи с този изпълним елемент. Щракнете върху бутон и визуализаторът прочита своя…
Software Development Blog
Флагът за разрешение за PDF не е заключване. Това е искане, което файлът прави към всичко, което го отваря, и зрителят е свободен да го игнорира. Този единствен факт решава как да разсъждавате…
Software Development Blog
Баркодът не е картина, с която украсявате документ. Това е измерване, а скенерът е инструментът, който го отчита. Това преформатиране решава почти всичко относно това как трябва да нарисувате такъв в…
Software Development Blog
Тази допълнителна секция превръща темата от кратка демонстрация в работен контролен списък. При реална интеграция първо уточнете какъв файл влиза в процеса, кой компонент го създава или чете, какъв…
Software Development Blog
Тази допълнителна секция превръща темата от кратка демонстрация в работен контролен списък. При реална интеграция първо уточнете какъв файл влиза в процеса, кой компонент го създава или чете, какъв…
Software Development Blog
Предайте арабската фразаيوضح ملف PDFкъмTextOutи отворете резултата. Буквите вървят в грешна посока и всяка една стои в изолираната си форма с видима празнина преди следващата, сякаш някой е написал…
Software Development Blog
Тази допълнителна секция превръща темата от кратка демонстрация в работен контролен списък. При реална интеграция първо уточнете какъв файл влиза в процеса, кой компонент го създава или чете, какъв…
Software Development Blog
Тази допълнителна секция превръща темата от кратка демонстрация в работен контролен списък. При реална интеграция първо уточнете какъв файл влиза в процеса, кой компонент го създава или чете, какъв…
Software Development Blog
PDF подписът е предимно отчитане на байтове и именно в това отчитане нещата се объркват. Криптографията работи с код, който е одитиран в продължение на две десетилетия, и тази част почти никога не се…
Software Development Blog
Преброяването на страниците в сканиран архив с размер 1,4 GB би трябвало да бъде евтина операция. Извикването наLoadFromFileза такъв файл обаче променя това: HotPDF анализира данните за кръстосани…
Software Development Blog
Генерирайте отчет, вградете TrueType шрифт и изходният файл се отваря правилно във всеки четец, който опитате. Глифовете са правилни, текстът може да се избира, файлът е валиден. Единственото нещо,…
Software Development Blog
Функциите на PDF са едно от по-тихите кътчета на спецификацията. Повечето разработчици ги срещат веднъж, като нещо, от което се нуждае аксиалното засенчване от Тип 2, за да избледнее между два цвята,…
Software Development Blog
Отворете PDF файл, създаден от Microsoft Word или Excel, прелистете го и нищо не изглежда необичайно. Заредете го в програма на Delphi, прочетете броя на страниците и числото е правилно. След това го…
Software Development Blog
PDF хипервръзките са URI анотации: правоъгълник, покриващ определена област от страницата, който при щракване указва на четеца да отвори даден URL адрес. Анотацията и текстът под нея са напълно…
Software Development Blog
PDF 1.5 въведе две структури за съхранение, които по-ранният файлов формат не можеше да изрази: поток от обекти (object stream) и поток от кръстосани препратки (cross-reference stream). Потокът от…
Software Development Blog
Дизайнер избира шрифт с едноетажноaза заглавия, или зачертана нула за таблици, или набор от калиграфски главни букви (swash capitals) за корица. Тези глифове вече са в шрифта. Те просто не са по…
Software Development Blog
PDF/A, PDF/X и PDF/UA са три различни стандарта, решаващи три различни проблема: дългосрочно архивиране, обмен на файлове за печат и достъпност. Те не са просто три отметки в един формуляр за…
Software Development Blog
Когато подписвате PDF, обикновено мислите за ключа за подписване като за нещо, което контролирате. Той живее в генериран от вас.pfxфайл, защитен с избрана от вас парола. Кодът, който чете този файл,…
Software Development Blog
Файлът се отваря безпроблемно на вашия компютър. Acrobat го визуализира, предпечатният преглед изглежда правилен, всяка страница е на мястото си. След това той отива в печатницата или в архивната…
Software Development Blog
Генерирането на отчет се свежда до поставянето на три неща върху страницата и уеднаквяването на тяхното местоположение: текст на известни координати, шрифтове, които се визуализира по еднакъв начин…
Software Development Blog
Наборът от данни (dataset) се състои от редове и колони, докато PDF страницата е празна координатна мрежа без никаква представа за тях. Преодоляването на тази разлика е основната задача тук. В HotPDF…
Software Development Blog
Два формуляра могат да съдържат едни и същи полета и да се държат по коренно различен начин. AcroForm съхранява своите полета като обикновени PDF обекти, разположени върху реалното съдържание на…
Software Development Blog
XFA, архитектурата на XML форми (XML Forms Architecture), е остаряла (deprecated). ISO 32000-1 я носи в §12.7 с бележката, че е премахната от PDF 2.0, а модерните четци спират своите XFA машини една…
Software Development Blog
Анотацията не е част от съдържанието на страницата. Когато извикатеTextOutили изчертаете правоъгълник, означенията стават част от потока със съдържание (content stream) на страницата - вградени в…
Software Development Blog
Изпратете арабското изречениеيوضح ملف PDF هذاкъм стандартнияTextOutи получената страница ще бъде грешна по два начина едновременно. Думите се изписват от ляво на дясно вместо от дясно на ляво, а…
Software Development Blog
Всеки видим символ в PDF документ носи препратка към шрифта, с който е изчертан, и PDFium Component ви позволява да проследите тази препратка обратно до обекта на шрифта и да прочетете информацията за…
Software Development Blog
PDF файлът не е просто хартия. Той е контейнер, който може да носи скриптове, изпълняващи се при отваряне на файла, връзки, стартиращи външни програми, връзки, свързващи се с уеб сървъри, файлове,…
Software Development Blog
Изграждането на PDF четец в Delphi се свежда до два компонента и връзката помежду им.TPdfпритежава документа: той отваря файла, декриптира го и отговаря на въпроси за брой страници и…
Software Development Blog
Екип за обработка на искове разполага с хартиени архиви от тридесет години, преминали през скенер с автоматично подаване на листове. Скенерът записва по един JPEG файл за всяка страница в папка с…
Software Development Blog
Изобразяването на PDF страница в JPEG се състои от две операции, които разработчиците често обединяват в една, а след това дебъгват поотделно. Първо растеризирате страницата в растерно изображение…
Software Development Blog
PDFium е известен най-вече като двигател за разглеждане на документи - рендериращото ядро зад PDF раздела в Chrome. Затова първото нещо, което трябва да уточним, е че PDFium Component може също така да…
Software Development Blog
PDF съхранява изображенията като първокласни обекти в своите потоци от съдържание. Когато страница препраща към снимка, сканиран документ или диаграма, данните за пикселите се намират в XObject…
Software Development Blog
Извличането на текст от PDF изглежда лесно, докато не се сблъскате с документ, при който текстовият слой липсва, повреден е или е разделен на десетки малки части от символи без логичен ред. PDFium…
Software Development Blog
Pascal обвивката над C библиотека се чете като обикновен Pascal. Извиквате метод, получавате запис обратно, освобождавате това, което сте разпределили. Проблемът е, че PDFium е C и C++ библиотека със…
Software Development Blog
PDFium Component предлага обединяване на PDF чрез един единствен метод:ImportPages. Моделът винаги е един и същ: създаване на празен краен документ, отваряне на всеки изходен файл, извикване…
Software Development Blog
Сливането и разделянето са двете операции със страници, към които всеки посяга най-напред, и те покриват голяма част от задачите. Те обаче не покриват всичко. Има отделна група от задачи, която…
Software Development Blog
Сляп потребител отваря тримесечен отчет във вашия нов Delphi четец, включва NVDA и чува долния колонтитул на страницата, след това колона от цифри и накрая заглавието, което всеки зрящ читател би…
Software Development Blog
PDF анотацията е речник, прикачен към страницата, а не маркер, нарисуван върху нея. Стандартът ISO 32000-1 §12.5 дефинира около две дузини подтипове, като всеки носи /Subtype, правоъгълник в…
Software Development Blog
Натиснете Tab в PDF формуляр, изграден от вашия код, и курсорът ще се озове на две полета разстояние от мястото, където трябва, или ще пропусне изцяло втората колона, или ще се върне в началото след…
Software Development Blog
Delphi и Lazarus компилират един и същ Object Pascal и именно това повърхностно сходство прави портирането на визуализатор между тях толкова измамно. Двете вериги от инструменти (toolchains) се…
Software Development Blog
Читател с лошо зрение не може да различи черен текст на бяла страница при стандартния контраст, затова изисква тъмен режим. Лесното решение е да се инвертира всеки пиксел от рендираната страница. То…
Software Development Blog
Работната среда за приемане и преглед на PDF е малка програма с една задача: да провери всеки файл, преди каквито и да било следващие процеси да получат достъп до него. За да направи това, тя трябва…
Software Development Blog
Пакетният инструмент за проверка (preflight) е конзолна програма без прозорец, насочена към папка с PDF файлове, която проверява всеки от тях спрямо посочените от вас стандарти за съответствие и…
Software Development Blog
Задръжте натиснат бутона за мащабиране в обикновен PDF визуализатор и наблюдавайте графиката на процесора (CPU). Еднократното натискане на контрола за автоматично повтаряне на мащаба задейства дузина…
Software Development Blog
Прегледът на ненадежден PDF файл във вашето собствено приложение е оперативно решение и това, което има значение, не е интерфейсът (chrome) на визуализатора, а това, което панелът отказва да направи…
Software Development Blog
Функцията за четене на глас има една видима задача освен самия глас: докато всяка дума се произнася, тя трябва да я осветява на страницата и да я държи в полезрението. За да постигнете това, се…
Software Development Blog
Координатите в PDF са в точки (points), а тези на принтера са в хардуерни единици на устройството (device units). Двете системи нямат нищо общо помежду си, докато не ги преобразувате съзнателно. Това…
Software Development Blog
Поставянето на воден знак или лого на всяка страница от документ изглежда като петминутна работа, докато не отворите резултата в инспектор за размер на файла. Очевидният подход е да обходите…
Software Development Blog
PDFium Component предоставя един основен механизъм за разделяне на PDF документи: импортиране на избрани страници от изходен файл в нов документ. Дали отделяте всяка страница самостоятелно, правите файлове…
Software Development Blog
Сканиран архив може да достигне до няколко гигабайта в един PDF файл. Четец, който отваря такъв файл, обикновено иска да покаже една страница, може би съдържанието или страница, на която потребителят…
Software Development Blog
Два документа, отворени едновременно на една и съща страница, всеки в свой собствен панел с възможност за превъртане: това е същността на четеца за сравнение. PDFium Component постига това чрез прост…
Software Development Blog
Пишете малък валидатор. Той отваря PDF, търси до края, намираstartxref, чете отместването и очаква да попадне на ключовата думаxrefс таблица с кръстосани препратки с фиксирана ширина под нея. От тази…
Software Development Blog
Прикачените файлове в PDF се съхраняват в йерархичната структура за вградени файлове на документа, структура, която повечето програми за преглед показват като панел с кламер или странична лента за…
Software Development Blog
Баркодът върху етикет за доставка или фактура има една задача, и тя е да бъде разчетен от скенер от първия път. Дали ще премине успешно този опит, се решава много преди пакетът да достигне до склада.…
Software Development Blog
Работната среда, която свързва валидирането на съвместимост с цифровото подписване, трябва да координира четири стъпки в определен ред и да ги поддържа обвързани с един и същ набор от байтове през…
Software Development Blog
Ето един проблем, който се появява в момента, в който една PDF библиотека напусне родния си език. Имате интеграция, която работи перфектно от C# в Windows. Нуждаете се от същите извиквания от Python…
Software Development Blog
Флагът за права не е защитен механизъм. Битът, който забранява копирането, се намира в същия речник/Encrypt, където се съхранява и криптографията. Това му придава илюзия за сигурност, каквато той…
Software Development Blog
Повечето разработчици си представят PDF страницата като лист хартия с текст и картини върху него. Геореферираният PDF е нещо повече от това. Той носи достатъчно информация, за да вземе точка от…
Software Development Blog
Само по себе си полето във форма на PDF е просто кутия, която съдържа стойност. Това, което кара една форма да се държи като малко приложение, е действието, прикрепено към нея: щракване, което скрива…
Software Development Blog
Обединяването или разделянето на двугигабайтов PDF файл по стандартния начин води до два основни проблема: загуба на време и препълване на адресното пространство. Стандартният начин включва зареждане…
Software Development Blog
Три различни растерни ядра могат да заредят един и същ PDF документ и да го покажат по различен начин. Вграденото ядро в PDFlibPas се разпространява без допълнителни външни файлове и се справя…
Software Development Blog
Геодезист отваря генерален план и иска хоризонталите да бъдат скрити, докато подземните комуникации останат показани. Рецензент иска червените анотации за корекции да се виждат на екрана, но да…
Software Development Blog
Валидирането на един PAdES подпис изисква проверка на три независими неща, а зелената отметка в програмата за преглед ви информира само за третото. Първо: масивът/ByteRangeтрябва да покрива…
Software Development Blog
Стандартите PDF/A и PDF/UA отговарят на два коренно различни въпроса, а разглеждането им като обща отметка за достъпност и архивиране води до изпращането на некоректни файлове в архива под предлог,…
Software Development Blog
Рендирането на PDF страница върху контекст на устройство (device context) на Windows за предварителен преглед на печат събира три координатни системи в един и същ ред код, които рядко съвпадат. PDF…
Software Development Blog
Достъпният PDF се основава на една структура, която видимата страница никога не показва: дървото на структурата (structure tree), дефинирано в ISO 32000-1 §14.7. Това е логическа йерархия от…
Software Development Blog
Извличането на текст, изображения и шрифтове от съществуващ PDF изглежда лесна задача, докато не се сблъскате с реални документи. Пуснете модул за търсене върху четиридесет хиляди клиентски файла и…
Software Development Blog
PDF не е просто документ, който отваряте. Той е малка програма, която изпълнявате. Всеки вграден шрифт е базиран на стек интерпретатор, чакащ charstrings, всяко изображение е декодер, захранван с…
Software Development Blog
Повечето Delphi кодове, които докосват PDF, третират формата като контейнер за две неща: текстови блокове и няколко разположени растерни изображения. Тази гледна точка е правилна, доколкото се…
Software Development Blog
Почти всяка част от наследения двоичен формат на Excel е единичен запис с изчистен двубайтов тип и двубайтова дължина. Дадена клетка еLABELSSTилиNUMBER. Слята област еMERGEDCELLS. Можете да прочетете…
Software Development Blog
Всеки обект, който плава над мрежата на работния лист (диаграма, лого, печат, текстово поле), е графичен обект (drawing object). Графичният обект се дефинира от две неща: какъв е той и къде е…
Software Development Blog
Преименувайте лист от „Summary - на „Overview - в генерирана работна книга и всяка вътрешна връзка, която сочи къмSummary!A1, ще спре да работи. Без изключение при запис, без съобщение при отваряне.…
Software Development Blog
Условното форматиране в OOXML се състои от две отделни части. Условието (сравнение, формула или съвпадение) определя кои клетки се класифицират. Външният вид (диференциален стил, илиdxfсъгласно…
Software Development Blog
Представете си автоматизирана задача, която генерира фактура в код и я записва като CSV за импортиране в друга система. Числата изглеждат вярно в Excel, а CSV файлът се отваря без проблем в текстов…
Software Development Blog
Три функции в HotXLS споделят един работен лист, но работят с напълно различни обекти, и проблемите започват, когато приемете, че правят сходни неща. Валидирането на данни прикрепя правило към…
Software Development Blog
Преобразуването на резултат от заявка в Excel отчет се състои от три основни стъпки: съпоставяне на полетата от Delphi към правилните типове в Excel, оформяне на заглавния ред като отчет (а не като…
Software Development Blog
Отворете електронна таблица, щракнете върху клетка, която показва2026-06-19, и лентата за формули все още чете дата. Прочетете същата клетка от Delphi и получавате числото46192. И двата изгледа са…
Software Development Blog
Преименувайте лист от „Summary - на „Overview - в генерирана книга и всяка вътрешна формула, която сочи къмSummary!A1, ще спре да работи без съобщение при запис или отваряне. Формулата продължава да…
Software Development Blog
Инженерното семейство функции в Excel изглежда като най-лесната част от справочника с функции.DEC2BINпревръща число в двоичен низ.HEX2DECго връща обратно.IMSUMсъбира две комплексни числа. Всяка от…
Software Development Blog
Библиотека за електронни таблици, която съхранява само низове с формули, и библиотека с работещ изчислителен двигател за формули са два различни продукта, които изглеждат идентични до момента, вкоито…
Software Development Blog
Когато експорт на 300 000 реда надхвърли лимита си на памет, обикновено се обвинява броят на редовете. Броят на редовете обикновено е невинен. Скъпите части на голяма работна книга са тези, които се…
Software Development Blog
Обходете клетките на току-що отворен шаблон за отчет и обединеното заглавие ще се държи като теч. Вие чететеA1и получавате "Quarterly Statement"; четете отB1доF1, които видимо се намират под същия…
Software Development Blog
Бекенд за отчети в Delphi, който от години генерира .xlsx, получава ново изискване: правилата за обществени поръчки на клиент от публичния сектор изискват изход под формата на OpenDocument…
Software Development Blog
Пишете работна книга, шифрирате я с парола, предавате файла на колега и колегата го отваря в Excel. Excel иска парола. Колегата я въвежда и Excel я приема. Дотук шифрирането изглежда правилно. След…
Software Development Blog
Ако единствената задача на сървъра е да генерира Excel файлове, той няма никаква работа да изпълнява Excel. Инсталирането на Office на изграждащ агент (build agent) или услуга за отчети, за да се…
Software Development Blog
Три групи настройки на работни листове нямат нищо общо със стойностите на клетките и имат всичко общо с това как се държи файлът, след като излезе от вашия код. Защитата на листа определя кои клетки…
Software Development Blog
Понякога единственият въпрос, на който входящата рутина трябва да отговори, е структурен: има ли тази работна книга лист, наречен "Mapping", или колко раздели (tabs) съдържа тя. Отговорът на това…
Software Development Blog
Въведете=NORM.DIST(115,100,15,TRUE)в клетка и Excel връща 0.8413447 без никакви формалности. Извикването изглежда как търсене в таблица. Не е. Зад това единствено число стои кумулативното нормално…
Software Development Blog
Да предположим, че нощна Delphi услуга генерира по един XLSX файл за всеки клиент - общо няколкостотин файла, някои от които с ширина 400 000 реда. Профилирайте я и изненадата рядко ще бъде цикълът…
Software Development Blog
Надеждният начин за създаване на стилизиран Excel отчет от Delphi е да се започне от работна книга, която дизайнер вече е изградил. Някой от финансовия отдел оформя фактурата в Excel: логото,…
Software Development Blog
Електронна таблица съдържа колона с имена на клиенти. Някои са на китайски, някои на кирилица, няколко носят немски умлаути или френско ударение. Експортирате я в CSV и отваряте резултата - всеки…
Software Development Blog
Представете си задача, която не прави почти нищо: отваря месечна работна книга, записва днешната дата в една клетка и я записва обратно. Пуснете това през услуга достатъчно често и рано или късно ще…
Software Development Blog
Задачата по масово нормализиране на електронни таблици е три проблема под едно наметало. Имате архив от смесени формати:.xlsот ерата на BIFF, модерен.xlsx, разпръснати.odsфайлове от някой експеримент…
Software Development Blog
Една електронна таблица носи два слоя идентичност. Има мрежа от клетки и има метаданни на документа, които вървят заедно с нея: заглавие, автор, компания, ключови думи, клейма за време. Excel никога…
Software Development Blog
Excel предлага две неща, наречени „парола?? и само едно от тях е шифриране. Паролата за отваряне задейства истински шифър: без нея файлът изобщо не може да бъде прочетен. Паролите за защита на…
Software Development Blog
В своята същност PDF е текстов контейнер с обикновен текст. Отворете повечето файлове в шестнадесетичен (hex) редактор и горната част ще бъде четлива: коментар за версията, след това поредица от…
Software Development Blog
Симптомът се появи в помощна програма за копиране на страници, изградена върхуHotPDF Component: изискването на страница 1 от документ от три страници последователно произвеждаше страница 2.…
Software Development Blog
Речникът на каталога на PDF (Catalog dictionary) има точно един задължителен навигационен ключ:/Pages. Този ключ трябва да сочи към непряк обект от тип/Pages, който от своя страна съдържа…
Software Development Blog
В своята същност PDF файлът е колекция от обекти, които сочат един към друг. Премахнете компресията, воденето на кръстосани препратки и байтовите отмествания, и това, което остава, е граф: малък…
Software Development Blog
Премахнете описанията на страниците и ще останете с тънък слой структура, която никой не печата, но от която зависи всеки четец, индексатор и архивираща система. Обектът на страницата не знае нищо за…
Software Development Blog
Поставете сканиран отчет от 80 MB зад връзка, отворете го в браузър и вижте какво се случва: програмата за преглед стои на празен екран, докато не пристигне голяма част от тези байтове, след което…
Software Development Blog
PDF страницата не съхранява пиксели и не съхранява дърво от обекти на форми по начина, покоито го прави SVG. Тя съхранява програма. Всяка линия, крива, запълване и разположено изображение на…
Software Development Blog
PDF файл, който изглежда перфектно на вашия компютър, но се рендерира като поредица от празни квадратчета на чужд, е най-често срещаният дефект с шрифтовете в софтуера за документи, и това почти…
Software Development Blog
PDF четецът не започва от началото на файла. Той започва от края. Последните няколко байта съдържат адреса на всичко останало, а парсер, който не разбира тази последователност, ще разчете грешно…
Software Development Blog
Обект номер 1 не е страница 1. Този факт обърква софтуера за обработка на PDF по-често от всеки друг аспект на формата, а за да разберем защо, трябва да погледнем отвъд това, което визуализаторът…
Software Development Blog
Страница 1 на PDF файл не е обект 1. Това различие е най-честият източник на грешки при извличане на страници в PDF парсерите, а решението е в четенето на спецификацията, а не на байтовете на файла
Software Development Blog
PDF не е формат за документи по начина, по който са Word или RTF. Тези формати съхраняват последователност от съдържание, което визуализаторът интерпретира в момента на показване, така че резултатът…
Software Development Blog
Alcinoe е библиотека с компоненти с отворен код за Delphi и C++Builder, разработвана в GitHub от Zeus64. Тя покрива области, които VCL и FireMonkey RTL оставят на външни доставчици: видео плейър с…
Software Development Blog
Когато поддържате VCL компонент, написан на Delphi, но използван от потребители както на Delphi, така и на C++Builder, бързо осъзнавате, че двете системи за изграждане третират зависимостите по много…
Software Development Blog
Грешките при проверка на диапазона (range check errors) в Delphi PDF библиотеките имат репутацията на трудни за откриване, тъй като не следват последователен модел на възникване. Един и същ документ…
Software Development Blog
КомпонентътTDateTimePickerполучи свойствотоFormatнякъде между версии Delphi 5 и Delphi 6. Точната граница между версиите рядко е документирана по начин, на който да се доверите, и когато се сблъскате…
Software Development Blog
СтруктуратаLOGBRUSHима два различни жизнени цикъла в Windows API. Единият е активният дескриптор на GDI обект, койтоCreateBrushIndirectприема. Другият е неговият сериализиран еквивалент в запис на…
Software Development Blog
Поставянето наTHotPDFвърху форма по време на разработка (design time) е удобно за бърз прототип, но това обвързва жизнения цикъл на компонента с този на формата, което рядко е желателно в…
Software Development Blog
Когато обработвате големи партиди Excel електронни таблици в автоматизиран конвейер, рядко искате да заредите целия документ в паметта, само за да разберете какъв е той. Често метаданните, вградени…
Software Development Blog
Оригиналният израз_ftolв 32-битова Delphi изглежда като умно едноредово решение: обвивка на Pascal функция, която преминава във вграден асемблер, за да манипулира контролната дума на x87 FPU, да…
Software Development Blog
Услугите за онлайн подписване решават конкретен логистичен проблем: получаване на подпис върху документ, когато подписващият няма софтуер за PDF, няма време да печата и няма факс машина. DigiSigner…
Software Development Blog
В работните процеси за корпоративен печат, архивиране и съответствие на документи (compliance), PDF файлът не може просто да бъде "изобразен". Той трябва да бъде одитиран. Даден PDF файл може да…
Software Development Blog
Достъпността вече не е опционална функция в съвременната разработка на софтуер. Съгласно регулации като ADA (Закон за американците с увреждания) и Директивата на ЕС за уеб достъпност, софтуерът,…
Software Development Blog
Единична страница А4, изобразена с удобен за четене мащаб, е от порядъка на няколко мегабайта 32-битова растерна графика. Умножете това по договор от 400 страници и аритметиката престава да бъде…
Software Development Blog
Когато разработвате корпоративни решения за документи, неизбежно ще срещнете PDF файлове, генерирани от огромно разнообразие от инструменти – от софтуер от висок клас на Adobe до пълни с грешки…
Software Development Blog
В правни, финансови и архивни системи големите PDF файлове често трябва да бъдат криптирани веднага след генериране. Ако всеки документ се зарежда изцяло в паметта, обработката на гигабайтови архиви…
Software Development Blog
Три библиотеки. Три различни задачи. Изборът на грешната ви коства седмици в търсене на заобиколни решения, а изборът на трите, когато ви трябва само една, ви носи допълнителни разходи за поддръжка,…
Software Development Blog
PDF документите са невероятно мощни, но тази мощност идва с присъщи рискове за сигурността. Тъй като PDF файловете поддържат вградени файлове, интерактивен JavaScript и сложни бинарни потоци, те…
Software Development Blog
Обработката на стандартни PDF файлове (от 1MB до 10MB) в Delphi е лесна с помощта на стандартни класове за потоци катоTFileStreamилиTMemoryStream. Въпреки това, когато имате за задача да обработвате…
Software Development Blog
Две минути за копиране на три страници от PDF файл с общо 40 страници не е проблем за оптимизиране на производителността. Това е сигнал, че се използва грешен път в API. Когато за първи път видях…
Software Development Blog
Размерите на страниците на PDF са фиксирани в момента на създаване на страницата, така че не можете просто да преоразмерите съдържанието на място, както бихте направили с изображение. Моделът на…
Software Development Blog
RTF форматът съществува достатъчно дълго, за да се появи на места, за които никой не е планирал: стари генератори на отчети, конвейери за поща по шаблон, архиви с правни документи, създадени преди…