Блог за разработка на софтуер

Статии на български

Прочетете инженерните бележки на losLab за PDF, Delphi и софтуер за документи на български

Software Development Blog

Delphi HotPDF Здравей свят: Вашата първа PDF програма

Тази допълнителна секция превръща темата от кратка демонстрация в работен контролен списък. При реална интеграция първо уточнете какъв файл влиза в процеса, кой компонент го създава или чете, какъв…

Software Development Blog

Изграждане на полета и действия на AcroForm с HotPDF в Delphi

Действие AcroForm е речник, прикрепен към изпълним модул, който казва на зрителя какво да прави, когато нещо се случи с този изпълним елемент. Щракнете върху бутон и визуализаторът прочита своя…

Software Development Blog

AES-256 PDF криптиране в Delphi: настройка на HotPDF и клопки

Флагът за разрешение за PDF не е заключване. Това е искане, което файлът прави към всичко, което го отваря, и зрителят е свободен да го игнорира. Този единствен факт решава как да разсъждавате…

Software Development Blog

Генериране на сканируеми баркодове в PDF с HotPDF в Delphi

Баркодът не е картина, с която украсявате документ. Това е измерване, а скенерът е инструментът, който го отчита. Това преформатиране решава почти всичко относно това как трябва да нарисувате такъв в…

Software Development Blog

HotPDF чертеж на платно в Delphi: векторни пътища и цвят

Тази допълнителна секция превръща темата от кратка демонстрация в работен контролен списък. При реална интеграция първо уточнете какъв файл влиза в процеса, кой компонент го създава или чете, какъв…

Software Development Blog

Чертане на диаграми в PDF с HotPDF примитиви

Тази допълнителна секция превръща темата от кратка демонстрация в работен контролен списък. При реална интеграция първо уточнете какъв файл влиза в процеса, кой компонент го създава или чете, какъв…

Software Development Blog

Оформяне на арабски и RTL текст в Delphi PDF файлове с HotPDF

Предайте арабската фразаيوضح ملف PDFкъмTextOutи отворете резултата. Буквите вървят в грешна посока и всяка една стои в изолираната си форма с видима празнина преди следващата, сякаш някой е написал…

Software Development Blog

HotPDF TextOut в Delphi: размер, стил, завъртане и разстояние

Тази допълнителна секция превръща темата от кратка демонстрация в работен контролен списък. При реална интеграция първо уточнете какъв файл влиза в процеса, кой компонент го създава или чете, какъв…

Software Development Blog

CJK вертикален текст в PDF с Delphi и HotPDF

Тази допълнителна секция превръща темата от кратка демонстрация в работен контролен списък. При реална интеграция първо уточнете какъв файл влиза в процеса, кой компонент го създава или чете, какъв…

Software Development Blog

PDF цифрови подписи и PAdES в Delphi с HotPDF

PDF подписът е предимно отчитане на байтове и именно в това отчитане нещата се объркват. Криптографията работи с код, който е одитиран в продължение на две десетилетия, и тази част почти никога не се…

Software Development Blog

Обработка на големи PDF файлове в Delphi с HotPDF Direct File API

Преброяването на страниците в сканиран архив с размер 1,4 GB би трябвало да бъде евтина операция. Извикването наLoadFromFileза такъв файл обаче променя това: HotPDF анализира данните за кръстосани…

Software Development Blog

3D цветни LUT в PDF с дискретизирани функции тип 0

Функциите на PDF са едно от по-тихите кътчета на спецификацията. Повечето разработчици ги срещат веднъж, като нещо, от което се нуждае аксиалното засенчване от Тип 2, за да избледнее между два цвята,…

Software Development Blog

OpenType GSUB стилистични алтернативи в чист Delphi

Дизайнер избира шрифт с едноетажноaза заглавия, или зачертана нула за таблици, или набор от калиграфски главни букви (swash capitals) за корица. Тези глифове вече са в шрифта. Те просто не са по…

Software Development Blog

Защита на модул за подписване на PDF в Delphi срещу зловредни PKCS#12 файлове

Когато подписвате PDF, обикновено мислите за ключа за подписване като за нещо, което контролирате. Той живее в генериран от вас.pfxфайл, защитен с избрана от вас парола. Кодът, който чете този файл,…

Software Development Blog

PDF отчети в Delphi с HotPDF: TextOut, шрифтове, изображения

Генерирането на отчет се свежда до поставянето на три неща върху страницата и уеднаквяването на тяхното местоположение: текст на известни координати, шрифтове, които се визуализира по еднакъв начин…

Software Development Blog

Визуализиране на таблица с данни в PDF в Delphi с HotPDF

Наборът от данни (dataset) се състои от редове и колони, докато PDF страницата е празна координатна мрежа без никаква представа за тях. Преодоляването на тази разлика е основната задача тук. В HotPDF…

Software Development Blog

Преобразуване на XFA в AcroForm в Delphi с HotPDF

Два формуляра могат да съдържат едни и същи полета и да се държат по коренно различен начин. AcroForm съхранява своите полета като обикновени PDF обекти, разположени върху реалното съдържание на…

Software Development Blog

PDF анотации в Delphi с HotPDF: Типове и координати

Анотацията не е част от съдържанието на страницата. Когато извикатеTextOutили изчертаете правоъгълник, означенията стават част от потока със съдържание (content stream) на страницата - вградени в…

Software Development Blog

RtLTextOut в HotPDF: PDF текст от дясно на ляво в Delphi

Изпратете арабското изречениеيوضح ملف PDF هذاкъм стандартнияTextOutи получената страница ще бъде грешна по два начина едновременно. Думите се изписват от ляво на дясно вместо от дясно на ляво, а…

Software Development Blog

Анализ на свойствата на PDF шрифтове с PDFium Component в Delphi

Всеки видим символ в PDF документ носи препратка към шрифта, с който е изчертан, и PDFium Component ви позволява да проследите тази препратка обратно до обекта на шрифта и да прочетете информацията за…

Software Development Blog

Одит на рисковете за сигурността на PDF с PDFium в Delphi

PDF файлът не е просто хартия. Той е контейнер, който може да носи скриптове, изпълняващи се при отваряне на файла, връзки, стартиращи външни програми, връзки, свързващи се с уеб сървъри, файлове,…

Software Development Blog

Създаване на PDF четец в Delphi с PDFium Component

Изграждането на PDF четец в Delphi се свежда до два компонента и връзката помежду им.TPdfпритежава документа: той отваря файла, декриптира го и отговаря на въпроси за брой страници и…

Software Development Blog

Извличане на изображения от PDF с PDFium Component в Delphi

PDF съхранява изображенията като първокласни обекти в своите потоци от съдържание. Когато страница препраща към снимка, сканиран документ или диаграма, данните за пикселите се намират в XObject…

Software Development Blog

Извличане на текст от PDF файлове с PDFium Component в Delphi

Извличането на текст от PDF изглежда лесно, докато не се сблъскате с документ, при който текстовият слой липсва, повреден е или е разделен на десетки малки части от символи без логичен ред. PDFium…

Software Development Blog

N-up импозиция и пренареждане на страници с PDFium

Сливането и разделянето са двете операции със страници, към които всеки посяга най-напред, и те покриват голяма част от задачите. Те обаче не покриват всичко. Има отделна група от задачи, която…

Software Development Blog

Създаване на достъпен PDF четец в Delphi с PDFium

Сляп потребител отваря тримесечен отчет във вашия нов Delphi четец, включва NVDA и чува долния колонтитул на страницата, след това колона от цифри и накрая заглавието, което всеки зрящ читател би…

Software Development Blog

Преглед на анотации в PDF с Delphi и компонента PDFium

PDF анотацията е речник, прикачен към страницата, а не маркер, нарисуван върху нея. Стандартът ISO 32000-1 §12.5 дефинира около две дузини подтипове, като всеки носи /Subtype, правоъгълник в…

Software Development Blog

Визуализатор на PDF за Lazarus и Free Pascal с PDFium

Delphi и Lazarus компилират един и същ Object Pascal и именно това повърхностно сходство прави портирането на визуализатор между тях толкова измамно. Двете вериги от инструменти (toolchains) се…

Software Development Blog

Филтри за цвят при лошо зрение в PDF с Delphi и PDFium

Читател с лошо зрение не може да различи черен текст на бяла страница при стандартния контраст, затова изисква тъмен режим. Лесното решение е да се инвертира всеки пиксел от рендираната страница. То…

Software Development Blog

Работна среда за приемане и преглед на PDF с PDFium в Delphi

Работната среда за приемане и преглед на PDF е малка програма с една задача: да провери всеки файл, преди каквито и да било следващие процеси да получат достъп до него. За да направи това, тя трябва…

Software Development Blog

PDFium Delphi Viewer: Кеширане на рендирането и тактики за плавно мащабиране

Задръжте натиснат бутона за мащабиране в обикновен PDF визуализатор и наблюдавайте графиката на процесора (CPU). Еднократното натискане на контрола за автоматично повтаряне на мащаба задейства дузина…

Software Development Blog

Сигурен преглед на PDF в Delphi приложения с PDFium Component

Прегледът на ненадежден PDF файл във вашето собствено приложение е оперативно решение и това, което има значение, не е интерфейсът (chrome) на визуализатора, а това, което панелът отказва да направи…

Software Development Blog

Печат на PDF документи с PDFium Component в Delphi

Координатите в PDF са в точки (points), а тези на принтера са в хардуерни единици на устройството (device units). Двете системи нямат нищо общо помежду си, докато не ги преобразувате съзнателно. Това…

Software Development Blog

Многократни печати на страници чрез Form XObjects с PDFium

Поставянето на воден знак или лого на всяка страница от документ изглежда като петминутна работа, докато не отворите резултата в инспектор за размер на файла. Очевидният подход е да обходите…

Software Development Blog

Разделяне на PDF документи с PDFium Component в Delphi

PDFium Component предоставя един основен механизъм за разделяне на PDF документи: импортиране на избрани страници от изходен файл в нов документ. Дали отделяте всяка страница самостоятелно, правите файлове…

Software Development Blog

Поточно предаване на огромни PDF файлове при поискване с PDFium в Delphi

Сканиран архив може да достигне до няколко гигабайта в един PDF файл. Четец, който отваря такъв файл, обикновено иска да покаже една страница, може би съдържанието или страница, на която потребителят…

Software Development Blog

Прикачени файлове в PDF в Delphi с PDFium Component: Четене, добавяне, изтриване

Прикачените файлове в PDF се съхраняват в йерархичната структура за вградени файлове на документа, структура, която повечето програми за преглед показват като панел с кламер или странична лента за…

Software Development Blog

Баркодове в PDF с Delphi: QR, PDF417, DataMatrix

Баркодът върху етикет за доставка или фактура има една задача, и тя е да бъде разчетен от скенер от първия път. Дали ще премине успешно този опит, се решава много преди пакетът да достигне до склада.…

Software Development Blog

Изграждане на работна среда за съвместимост и подписване в Delphi с PDFlibPas

Работната среда, която свързва валидирането на съвместимост с цифровото подписване, трябва да координира четири стъпки в определен ред и да ги поддържа обвързани с един и същ набор от байтове през…

Software Development Blog

Библиотеки от тип DLL, ActiveX и dylib в PDFlibPas: Извикване на PDF ядрото от всеки език за програмиране

Ето един проблем, който се появява в момента, в който една PDF библиотека напусне родния си език. Имате интеграция, която работи перфектно от C# в Windows. Нуждаете се от същите извиквания от Python…

Software Development Blog

Одит на PDF шифриране и права в Delphi с PDFlibPas

Флагът за права не е защитен механизъм. Битът, който забранява копирането, се намира в същия речник/Encrypt, където се съхранява и криптографията. Това му придава илюзия за сигурност, каквато той…

Software Development Blog

GeoPDF в Delphi: Геопространствени координати с PDFlibPas

Повечето разработчици си представят PDF страницата като лист хартия с текст и картини върху него. Геореферираният PDF е нещо повече от това. Той носи достатъчно информация, за да вземе точка от…

Software Development Blog

Интерактивни PDF форми в Delphi: Действия и JavaScript

Само по себе си полето във форма на PDF е просто кутия, която съдържа стойност. Това, което кара една форма да се държи като малко приложение, е действието, прикрепено към нея: щракване, което скрива…

Software Development Blog

Обединяване и разделяне на гигабайтови PDF файлове в Delphi с директен достъп от PDFlibPas

Обединяването или разделянето на двугигабайтов PDF файл по стандартния начин води до два основни проблема: загуба на време и препълване на адресното пространство. Стандартният начин включва зареждане…

Software Development Blog

PDF слоеве в Delphi: Незадължителни групи съдържание (OCG)

Геодезист отваря генерален план и иска хоризонталите да бъдат скрити, докато подземните комуникации останат показани. Рецензент иска червените анотации за корекции да се виждат на екрана, но да…

Software Development Blog

PDF/A и PDF/UA проверка в Delphi с PDFlibPas

Стандартите PDF/A и PDF/UA отговарят на два коренно различни въпроса, а разглеждането им като обща отметка за достъпност и архивиране води до изпращането на некоректни файлове в архива под предлог,…

Software Development Blog

Векторна графика в PDF с Delphi: Пътища и градиенти

Повечето Delphi кодове, които докосват PDF, третират формата като контейнер за две неща: текстови блокове и няколко разположени растерни изображения. Тази гледна точка е правилна, доколкото се…

Software Development Blog

Серийни дати на Excel в Delphi: 1900 срещу 1904 и numFmt

Отворете електронна таблица, щракнете върху клетка, която показва2026-06-19, и лентата за формули все още чете дата. Прочетете същата клетка от Delphi и получавате числото46192. И двата изгледа са…

Software Development Blog

Инженерни функции в Delphi: Преобразуване на бройни системи, комплексни числа

Инженерното семейство функции в Excel изглежда като най-лесната част от справочника с функции.DEC2BINпревръща число в двоичен низ.HEX2DECго връща обратно.IMSUMсъбира две комплексни числа. Всяка от…

Software Development Blog

Отваряне и записване на ODS файлове в Delphi с HotXLS

Бекенд за отчети в Delphi, който от години генерира .xlsx, получава ново изискване: правилата за обществени поръчки на клиент от публичния сектор изискват изход под формата на OpenDocument…

Software Development Blog

Статистически функции на Excel в Delphi: NORM, CHISQ, BETA

Въведете=NORM.DIST(115,100,15,TRUE)в клетка и Excel връща 0.8413447 без никакви формалности. Извикването изглежда как търсене в таблица. Не е. Зад това единствено число стои кумулативното нормално…

Software Development Blog

HotXLS: Запазване на VBA макроси и външни препратки в Delphi

Представете си задача, която не прави почти нищо: отваря месечна работна книга, записва днешната дата в една клетка и я записва обратно. Пуснете това през услуга достатъчно често и рано или късно ще…

Software Development Blog

Изграждане на работен плот за одит и конвертиране на работни книги в Delphi с HotXLS

Задачата по масово нормализиране на електронни таблици е три проблема под едно наметало. Имате архив от смесени формати:.xlsот ерата на BIFF, модерен.xlsx, разпръснати.odsфайлове от някой експеримент…

Software Development Blog

Настройване на свойства на Excel документи и метаданни на работни книги в Delphi с HotXLS

Една електронна таблица носи два слоя идентичност. Има мрежа от клетки и има метаданни на документа, които вървят заедно с нея: заглавие, автор, компания, ключови думи, клейма за време. Excel никога…

Software Development Blog

Шифриране на XLSX изход с AES в Delphi: какво записва функцията SaveAsEncrypted на HotXLS

Excel предлага две неща, наречени „парола?? и само едно от тях е шифриране. Паролата за отваряне задейства истински шифър: без нея файлът изобщо не може да бъде прочетен. Паролите за защита на…

Software Development Blog

Изграждане на минимален PDF файл ръчно: Петте обекта, които са ви необходими

В своята същност PDF е текстов контейнер с обикновен текст. Отворете повечето файлове в шестнадесетичен (hex) редактор и горната част ще бъде четлива: коментар за версията, след това поредица от…

Software Development Blog

PDF файл без речник Pages: Последици за анализа

Речникът на каталога на PDF (Catalog dictionary) има точно един задължителен навигационен ключ:/Pages. Този ключ трябва да сочи към непряк обект от тип/Pages, който от своя страна съдържа…

Software Development Blog

Обяснение на метаданните, отметките и анотациите в PDF

Премахнете описанията на страниците и ще останете с тънък слой структура, която никой не печата, но от която зависи всеки четец, индексатор и архивираща система. Обектът на страницата не знае нищо за…

Software Development Blog

Линеаризация на PDF и Fast Web View: Как работи

Поставете сканиран отчет от 80 MB зад връзка, отворете го в браузър и вижте какво се случва: програмата за преглед стои на празен екран, докато не пристигне голяма част от тези байтове, след което…

Software Development Blog

Структура на PDF файл: Header, Body, Xref и Trailer

PDF четецът не започва от началото на файла. Той започва от края. Последните няколко байта съдържат адреса на всичко останало, а парсер, който не разбира тази последователност, ще разчете грешно…

Software Development Blog

Подредба на PDF страници: Как дървото от страници управлява последователността

Обект номер 1 не е страница 1. Този факт обърква софтуера за обработка на PDF по-често от всеки друг аспект на формата, а за да разберем защо, трябва да погледнем отвъд това, което визуализаторът…

Software Development Blog

Delphi Excel компоненти, съвместими с C++Builder

Когато поддържате VCL компонент, написан на Delphi, но използван от потребители както на Delphi, така и на C++Builder, бързо осъзнавате, че двете системи за изграждане третират зависимостите по много…

Software Development Blog

Формат на TDateTimePicker в Delphi 5: DateTime_SetFormat

КомпонентътTDateTimePickerполучи свойствотоFormatнякъде между версии Delphi 5 и Delphi 6. Точната граница между версиите рядко е документирана по начин, на който да се доверите, и когато се сблъскате…

Software Development Blog

Извличане на обобщена информация за документи от Excel файлове в Delphi

Когато обработвате големи партиди Excel електронни таблици в автоматизиран конвейер, рядко искате да заредите целия документ в паметта, само за да разберете какъв е той. Често метаданните, вградени…

Software Development Blog

Изграждане на достъпни PDF зрители с Text-to-Speech в Delphi

Достъпността вече не е опционална функция в съвременната разработка на софтуер. Съгласно регулации като ADA (Закон за американците с увреждания) и Директивата на ЕС за уеб достъпност, софтуерът,…

Software Development Blog

PDF библиотеки на losLab за Delphi: HotPDF, PDFium и PDFlibPas

Три библиотеки. Три различни задачи. Изборът на грешната ви коства седмици в търсене на заобиколни решения, а изборът на трите, когато ви трябва само една, ви носи допълнителни разходи за поддръжка,…

Software Development Blog

Безопасен за паметта анализ на PDF в Delphi

PDF документите са невероятно мощни, но тази мощност идва с присъщи рискове за сигурността. Тъй като PDF файловете поддържат вградени файлове, интерактивен JavaScript и сложни бинарни потоци, те…

Software Development Blog

Конвертиране на RTF в PDF в Delphi с PDF библиотеката на losLab

RTF форматът съществува достатъчно дълго, за да се появи на места, за които никой не е планирал: стари генератори на отчети, конвейери за поща по шаблон, архиви с правни документи, създадени преди…