Software Development Blog
Todas as bibliotecas de PDF incluem um "hello world", e vale a pena analisar com calma o do HotPDF, porque o programa mais pequeno que faz alguma coisa já força duas decisões que irá repetir em todos…
Software Development Blog
O erro dizPlease load the document before using BeginDoc, e surge quase sempre à segunda tentativa. O primeiro documento é gravado sem problemas. Depois, é solicitado à mesma instânciaTHotPDFque…
Software Development Blog
Uma ação AcroForm é um dicionário associado a um controlo (widget) que indica ao visualizador o que fazer quando algo acontece a esse controlo. Ao clicar num botão, o visualizador lê o seu dicionário…
Software Development Blog
Uma flag de permissão de um PDF não é um bloqueio. É apenas um pedido que o ficheiro faz ao programa que o abre, o qual o visualizador é livre de ignorar. Este facto único determina a forma como deve…
Software Development Blog
Um código de barras não é uma imagem decorativa para embelezar um documento. É uma medição, e o leitor de códigos é o instrumento que a interpreta. Esta premissa determina quase todas as decisões…
Software Development Blog
O HotPDF desenha elementos vetoriais construindo um caminho na página atual e, em seguida, solicitando a sua renderização. Não existe nenhuma etapa intermédia com imagens bitmap. Uma linha desenhada…
Software Development Blog
O HotPDF não possui nenhum objeto de gráfico. Não existe umTPDFChart, nemAddBarSeries, nem nada que receba um array de números e devolva um gráfico renderizado. Em vez disso, disponibiliza um canvas…
Software Development Blog
Passe a frase em árabeيوضح ملف PDFparaTextOute abra o resultado. As letras surgem na direção errada e cada uma delas apresenta-se na sua forma isolada, com um espaço visível antes da seguinte, como…
Software Development Blog
Todas as strings visíveis num documento HotPDF são geradas através de uma única chamada:TextOut(X, Y, angle, Text). O exemplo Hello World utiliza esta função na sua forma mais simples, com a fonte…
Software Development Blog
Ao abrir um romance japonês, a primeira coisa que nota é que o texto se desenvolve ao longo de colunas verticais e não horizontalmente em linhas, e que as colunas progridem a partir da extremidade…
Software Development Blog
Uma assinatura PDF resume-se maioritariamente a contabilidade de bytes, e é aí que as coisas correm mal. A criptografia corre em código que foi auditado durante duas décadas, e essa parte quase nunca…
Software Development Blog
Contar as páginas num arquivo digitalizado de 1,4 GB deveria ser uma operação barata. Mas chameLoadFromFilenesse ficheiro e ela deixa de ser barata: o HotPDF analisa os dados de referência cruzada e…
Software Development Blog
Gere um relatório, incorpore um tipo de letra TrueType e o resultado abre corretamente em qualquer visualizador que experimentar. Os glifos estão corretos, o texto é selecionável e o ficheiro é…
Software Development Blog
As funções PDF são uma das áreas menos exploradas da especificação. A maioria dos programadores depara-se com elas apenas uma vez, como o elemento de que um sombreado axial do Tipo 2 necessita para…
Software Development Blog
Abra um PDF produzido pelo Microsoft Word ou Excel, folheie-o e nada parecerá invulgar. Carregue-o num programa Delphi, leia o número de páginas e a contagem estará correta. Depois, guarde-o…
Software Development Blog
As hiperligações PDF são anotações URI: um retângulo que cobre uma determinada área da página que, ao ser clicado, indica ao visualizador para abrir um URL. A anotação e o texto abaixo dela são…
Software Development Blog
O PDF 1.5 introduziu duas estruturas de armazenamento que o formato de ficheiro anterior não conseguia expressar: o fluxo de objetos (object stream) e o fluxo de referência cruzada (cross-reference…
Software Development Blog
Um designer escolhe uma fonte com umade um único nível para cabeçalhos, ou um zero cortado para tabelas, ou um conjunto de maiúsculas ornamentadas (swash) para uma capa. Esses glifos já estão na…
Software Development Blog
PDF/A, PDF/X e PDF/UA são três normas distintas que resolvem problemas diferentes: arquivo a longo prazo, intercâmbio de impressão e acessibilidade. Não se trata de três caixas de seleção num único…
Software Development Blog
Quando assina um PDF, pensa normalmente na chave de assinatura como algo que controla. Ela reside num ficheiro.pfxgerado por si, protegido por uma palavra-passe que escolheu. O código que lê esse…
Software Development Blog
O ficheiro abre perfeitamente no seu computador. O Acrobat exibe-o, a pré-visualização de impressão parece correta e todas as páginas estão presentes. Depois é enviado para a tipografia ou para o…
Software Development Blog
Um relatório PDF em Delphi começa por três decisões simples: onde colocar o texto, que tipo de letra garante o mesmo aspeto no servidor e na máquina de desenvolvimento, e como inserir imagens sem…
Software Development Blog
Um conjunto de dados (dataset) é composto por linhas e colunas; uma página PDF é uma grelha de coordenadas em branco sem qualquer noção de nenhum dos dois. Fazer a ponte para essa lacuna é todo o…
Software Development Blog
Dois formulários podem conter os mesmos campos e comportar-se de formas completamente diferentes. Um AcroForm mantém os seus campos como objetos PDF normais sobrepostos ao conteúdo real da página,…
Software Development Blog
A XFA (XML Forms Architecture) foi descontinuada. A norma ISO 32000-1 refere-a na secção 12.7 com a nota de que foi removida no PDF 2.0, e os visualizadores modernos estão a abandonar…
Software Development Blog
Uma anotação não constitui conteúdo da página. Quando chama oTextOutou desenha um retângulo, os traços passam a fazer parte do fluxo de conteúdo da página, integrados nos bytes que o renderizador…
Software Development Blog
Envie a frase em árabeيوضح ملف PDF هذاpara oTextOutnormal e a página gerada estará incorreta de duas formas ao mesmo tempo. As palavras correm da esquerda para a direita em vez da direita para a…
Software Development Blog
Cada caráter visível num PDF contém uma referência à fonte que o desenhou, e o PDFium Component permite-lhe seguir essa referência de volta para o objeto de fonte e ler o que ele sabe. A unidade de acesso…
Software Development Blog
Um PDF não é apenas papel. É um contentor que pode transportar scripts que são executados quando o ficheiro abre, hiperligações que iniciam programas externos, hiperligações que acedem a servidores…
Software Development Blog
Um visualizador de PDF em Delphi resume-se a dois componentes e à ligação entre eles. OTPdfé o proprietário do documento: abre o ficheiro, desencripta-o e responde a questões sobre a contagem de…
Software Development Blog
Uma equipa de processamento de sinistros tinha trinta anos de ficheiros em papel a passar por um digitalizador alimentado por folhas. O digitalizador gerava um JPEG por página para uma pasta, com…
Software Development Blog
A renderização de uma página de PDF para JPEG consiste em duas operações que as pessoas tendem a executar juntas e depois a depurar separadamente. Primeiro, rasteriza-se a página num bitmap de píxeis…
Software Development Blog
O PDFium tem reputação como motor de visualização, sendo o renderizador por trás do separador de PDF do Chrome. Por isso, a primeira coisa a esclarecer é que o PDFium Component também pode construir um…
Software Development Blog
O PDF armazena as imagens como objetos de primeira classe dentro dos seus fluxos de conteúdo. Quando uma página faz referência a uma fotografia, a uma digitalização ou a um diagrama, os dados de…
Software Development Blog
A extração de texto de PDF parece simples até se deparar com um documento onde a camada de texto está ausente, corrompida ou dividida por dezenas de pequenas sequências de caracteres sem qualquer…
Software Development Blog
Um binding Pascal para uma biblioteca C lê-se como Pascal vulgar. Chama-se um método, recebe-se um registo (record) de volta, liberta-se o que foi alocado. O problema é que o PDFium é uma biblioteca…
Software Development Blog
O PDFium Component expõe a fusão de PDFs através de um único método: oImportPages. O padrão é sempre o mesmo: criar um documento de destino vazio, abrir cada ficheiro de origem, chamar oImportPagespara…
Software Development Blog
Juntar (merge) e dividir (split) são as duas operações de página a que todos recorrem primeiro, e cobrem bastante terreno. Mas não abrangem tudo. Existe uma família distinta de tarefas que reorganiza…
Software Development Blog
Um utilizador cego abre um relatório trimestral no seu novo visualizador em Delphi, ativa o NVDA e ouve o rodapé da página, depois uma coluna de números e, finalmente, o título que qualquer leitor…
Software Development Blog
Uma anotação PDF é um dicionário anexado a uma página, não uma marca nela desenhada. A norma ISO 32000-1 §12.5 define cerca de duas dezenas de subtipos, e cada um transporta um /Subtype, um retângulo…
Software Development Blog
Pressione Tab num formulário PDF criado pelo seu código e o cursor poderá aterrar dois campos além de onde deveria, ignorar completamente a segunda coluna ou voltar ao topo após o terceiro campo em…
Software Development Blog
O Delphi e o Lazarus compilam o mesmo Object Pascal, e essa semelhança superficial é precisamente o que torna a portabilidade de um visualizador entre eles enganadora. As duas cadeias de ferramentas…
Software Development Blog
Um leitor com baixa visão não consegue distinguir texto preto numa página branca com o contraste padrão, pelo que solicita um modo escuro. A resposta ingénua é inverter todos os píxeis da página…
Software Development Blog
Um painel de receção e análise de PDF (pdf intake review workbench) é um pequeno programa com uma única tarefa: analisar cada ficheiro antes que qualquer processo posterior o possa manipular. Para…
Software Development Blog
Uma ferramenta de preflight em lote (batch preflight tool) é um programa de consola sem interface gráfica que, apontado para uma pasta de ficheiros PDF, valida cada um deles em relação aos padrões de…
Software Development Blog
Mantenha premido o botão de zoom num visualizador de PDF simples e observe o gráfico do processador (CPU). Um único premir do botão de zoom por repetição automática aciona mais de uma dúzia de passos…
Software Development Blog
Pré-visualizar um PDF não confiável dentro da sua própria aplicação é uma decisão de execução, e a parte que importa não é o visual do visualizador, mas o que o painel se recusa a fazer de forma…
Software Development Blog
Uma funcionalidade de leitura em voz alta tem uma tarefa visível além da voz: à medida que cada palavra é falada, deve destacá-la na página e mantê-la visível. Para tal, necessita do retângulo…
Software Development Blog
As coordenadas do PDF estão em pontos, as coordenadas da impressora estão em unidades de dispositivo, e as duas não têm qualquer relação entre si até que as converta deliberadamente. Essa…
Software Development Blog
Aplicar uma marca de água ou um logótipo em todas as páginas de um documento assemelha-se a uma tarefa de cinco minutos até abrir o resultado num inspetor de tamanho de ficheiro. A abordagem óbvia…
Software Development Blog
O PDFium Component disponibiliza um único método para divisão de PDF:ImportPages. Tudo o resto, quer esteja a isolar uma única página, a cortar em limites arbitrários ou a seguir a própria estrutura de…
Software Development Blog
Um arquivo digitalizado pode atingir vários gigabytes num único PDF. Um visualizador que abra esse ficheiro normalmente deseja apresentar apenas uma página: talvez a tabela de conteúdos, ou a página…
Software Development Blog
Dois documentos abertos em simultâneo, com o mesmo número de página, cada um no seu próprio painel com barra de rolagem: este é o núcleo de um visualizador de comparação. O PDFium Component disponibiliza…
Software Development Blog
Imagine que escreve um validador simples. Este abre um PDF, procura o fim, localizastartxref, lê o desvio e espera encontrar a palavra-chavexrefcom uma tabela de referência cruzada de largura fixa…
Software Development Blog
Os anexos de ficheiros PDF são armazenados na árvore de ficheiros incorporados do documento, uma estrutura que a maioria dos visualizadores apresenta sob a forma de um painel de clipe de papel ou de…
Software Development Blog
Um código de barras numa etiqueta de envio ou numa fatura tem uma única função, que é ser lido por um leitor na primeira passagem. A sua sobrevivência a essa leitura é decidida muito antes de a…
Software Development Blog
Um painel de trabalho que encadeia a validação de conformidade com a assinatura digital tem de coordenar quatro etapas, nesta ordem, e mantê-las vinculadas a um único conjunto de bytes durante todo o…
Software Development Blog
Eis um problema que surge no instante em que uma biblioteca PDF sai da sua linguagem nativa. Tem um binding que funciona perfeitamente a partir de C# em Windows. Precisa das mesmas chamadas a partir…
Software Development Blog
Uma flag de permissão não constitui um mecanismo de segurança. O bit que indica "cópia proibida" reside no mesmo dicionário /Encrypt da criptografia, o que lhe confere uma aparente capacidade de…
Software Development Blog
A maioria dos programadores pensa numa página PDF como uma folha de papel com texto e imagens. Um PDF georreferenciado é mais do que isso. Transporta informação suficiente para obter um ponto na…
Software Development Blog
Um campo de formulário PDF por si só é apenas uma caixa que contém um valor. O que faz um formulário comportar-se como uma pequena aplicação é a ação associada a ele: um clique que oculta uma secção,…
Software Development Blog
Juntar ou dividir um PDF com dois gigabytes de forma convencional custa-lhe duas coisas ao mesmo tempo: tempo de relógio e espaço de endereçamento. A forma convencional consiste em carregar cada…
Software Development Blog
Três rasterizadores podem ler o mesmo PDF e discordar quanto ao seu aspeto. O motor integrado do PDFlibPas é o que é distribuído sem ficheiros adicionais e renderiza tudo com competência, razão pela…
Software Development Blog
Um topógrafo abre uma planta de implantação e pretende ocultar as curvas de nível enquanto as redes de infraestruturas permanecem ativas. Um revisor quer as anotações de revisão visíveis no ecrã e…
Software Development Blog
Validar uma assinatura PAdES implica verificar três aspetos independentes, sendo que uma marca de confirmação verde num visualizador apenas indica o sucesso do terceiro. Primeiro, a…
Software Development Blog
As normas PDF/A e PDF/UA respondem a duas questões totalmente independentes, e tratá-las como um único requisito de acessibilidade e arquivo é a forma mais fácil de ficheiros corrompidos chegarem a…
Software Development Blog
A renderização de uma página PDF num contexto de dispositivo (device context) do Windows para pré-visualização de impressão coloca três sistemas de coordenadas na mesma linha de código, e eles…
Software Development Blog
Um PDF acessível baseia-se numa estrutura que a página visível nunca mostra: a árvore de estrutura definida na norma ISO 32000-1 §14.7. Trata-se de uma hierarquia lógica de cabeçalhos, parágrafos,…
Software Development Blog
Extrair texto, imagens e fontes de um PDF existente parece ser um problema resolvido até passar um corpus real pelo sistema. Aponte um indexador de pesquisa para quarenta mil ficheiros de clientes e…
Software Development Blog
Um PDF não é um mero documento que se abre. Trata-se de um pequeno programa que corre. Cada tipo de letra incorporado é um intérprete baseado em stack à espera de charstrings, cada imagem é um…
Software Development Blog
A maior parte do código Delphi que interage com PDF trata o formato como um contentor para duas coisas: blocos de texto e alguns bitmaps posicionados. Essa visão é correta até certo ponto, mas deixa…
Software Development Blog
Quase todas as partes do formato binário legado do Excel consistem num registo único com um tipo limpo de dois bytes e um comprimento de dois bytes. Uma célula é umLABELSSTou umNUMBER. Uma região…
Software Development Blog
Qualquer elemento que flutue sobre a grelha de uma folha de cálculo (um gráfico, um logótipo, um carimbo, uma caixa de chamada) é um objeto de desenho, e um objeto de desenho é definido por duas…
Software Development Blog
Altere o nome de uma folha de cálculo de "Summary" para "Overview" num livro gerado, e todas as hiperligações internas que apontavam paraSummary!A1deixam de funcionar. Não ocorre nenhuma exceção ao…
Software Development Blog
Uma regra de formatação condicional no OOXML consiste em dois elementos distintos sob o mesmo nome. A condição (uma comparação, uma fórmula, uma correspondência de texto) determina as células…
Software Development Blog
Imagine um processamento noturno que cria um livro de faturas por código e o exporta como CSV para ser importado por um sistema posterior. Os números parecem corretos no Excel. O ficheiro CSV abre…
Software Development Blog
Três funcionalidades no HotXLS partilham uma folha de cálculo mas operam sobre objetos totalmente diferentes, e os problemas começam quando se assume que realizam tarefas semelhantes. A validação de…
Software Development Blog
Transformar o resultado de uma consulta num relatório de Excel é resolver três problemas em simultâneo. Cada tipo de campo do Delphi tem de ser registado na célula com o tipo de Excel correto, a…
Software Development Blog
Abra uma folha de cálculo, clique numa célula que apresente2026-06-19e a barra de fórmulas continuará a indicar uma data. Leia a mesma célula a partir do Delphi e obterá o número46192. Ambas as…
Software Development Blog
Um nome definido é um rótulo que representa uma constante, um intervalo de células ou uma expressão de fórmula, armazenado uma vez no livro e referenciado simbolicamente em todos os locais onde é…
Software Development Blog
A família de engenharia no Excel assemelha-se à secção mais simples da referência de funções. ODEC2BINconverte um número numa cadeia de texto binária. OHEX2DECfaz o processo inverso. OIMSUMsoma dois…
Software Development Blog
Uma biblioteca de folhas de cálculo que apenas armazena strings de fórmulas e uma biblioteca com um motor de fórmulas funcional são dois produtos diferentes que parecem idênticos até ao momento em…
Software Development Blog
Quando uma exportação de 300 000 linhas rebenta com o orçamento de memória, a culpa costuma ser atribuída ao número de linhas. Mas este costuma ser inocente. As partes mais dispendiosas de um livro…
Software Development Blog
Se iterar pelas células de um modelo de relatório acabado de abrir, um título unido comporta-se como uma fuga de informação. LêA1e obtém 'Quarterly Statement'; lê deB1aF1, que visivelmente se…
Software Development Blog
Um backend de relatórios em Delphi que emite ficheiros .xlsx há anos depara-se com um novo requisito: as regras de contratação pública de um cliente exigem outputs no formato OpenDocument…
Software Development Blog
Escreve um livro (workbook), encripta-o com uma palavra-passe, entrega o ficheiro a um colega, e este abre-o no Excel. O Excel solicita a palavra-passe. O colega digita-a, e o Excel aceita-a. Até…
Software Development Blog
Se a única função de um servidor é emitir ficheiros Excel, não há qualquer razão para executar o Excel nele. Instalar o Office num agente de build ou num serviço de relatórios para o controlar…
Software Development Blog
Três grupos de definições de folhas de cálculo nada têm a ver com os valores das células e tudo a ver com o comportamento do ficheiro após sair do seu código. A proteção de folhas determina quais as…
Software Development Blog
Por vezes, a única pergunta que uma rotina de triagem de entrada necessita de ver respondida é estrutural: se este livro tem uma folha chamada 'Mapping', ou quantos separadores possui. Responder a…
Software Development Blog
Digite=NORM.DIST(115,100,15,TRUE)numa célula e o Excel devolve 0.8413447 sem demoras. A chamada parece uma simples consulta. Mas não é. Por trás desse número único está a distribuição normal…
Software Development Blog
Imagine que um serviço noturno em Delphi gera um XLSX por cliente, algumas centenas de ficheiros, alguns dos quais com 400 000 linhas. Analise o seu perfil de execução e a surpresa raramente estará…
Software Development Blog
A forma mais fiável de produzir um relatório Excel estilizado a partir de Delphi consiste em começar com um livro de cálculo que um designer já tenha construído. Alguém na área financeira desenha a…
Software Development Blog
Uma folha de cálculo contém uma coluna de nomes de clientes. Alguns estão em chinês, outros em cirílico, uns quantos apresentam tremas alemães ou um acento francês. Exporta a folha para CSV e abre o…
Software Development Blog
Considere uma tarefa que quase nada faz: abrir um livro mensal, escrever a data de hoje numa célula e guardá-lo de volta. Execute isso através de um serviço vezes suficientes e surgirá uma reclamação…
Software Development Blog
Um trabalho de normalização em lote de folhas de cálculo representa três problemas sob a mesma capa. Tem um arquivo de formatos mistos:.xlsda era BIFF,.xlsxmoderno, uma dispersão de ficheiros.odsde…
Software Development Blog
Uma folha de cálculo carrega duas camadas de identidade. Há a grelha de células e há os metadados do documento que a acompanham: título, autor, empresa, palavras-chave e carimbos de data/hora. O…
Software Development Blog
O Excel expõe duas coisas designadas por 'palavra-passe', mas apenas uma delas constitui encriptação real. A palavra-passe de abertura aciona uma cifra real: sem ela, o ficheiro não pode de todo ser…
Software Development Blog
No seu âmago, um PDF é um contentor de texto simples. Abra a maioria dos ficheiros num editor hexadecimal e o topo é legível: um comentário da versão, depois uma série de objetos numerados, seguidos…
Software Development Blog
O sintoma manifestou-se num utilitário de cópia de páginas construído sobre oComponente HotPDF: ao solicitar a página 1 de um documento de três páginas, este produzia sistematicamente a página 2. A…
Software Development Blog
O dicionário de Catálogo (Catalog) do PDF possui exatamente uma chave de navegação obrigatória:/Pages. Essa chave deve apontar para um objeto indireto do tipo/Pages, que por sua vez contém a…
Software Development Blog
No seu âmago, um ficheiro PDF é uma coleção de objetos que apontam uns para os outros. Se retirarmos a compressão, o registo estrutural de referências cruzadas e os offsets de bytes, o que resta é um…
Software Development Blog
Remova as descrições das páginas e restará uma fina camada de estrutura que ninguém imprime, mas da qual todos os leitores, indexadores e sistemas de arquivo dependem. Um objeto de página nada sabe…
Software Development Blog
Coloque um relatório digitalizado de 80 MB atrás de uma ligação, abra-o num navegador e observe o que acontece: o leitor mostra uma página em branco até que uma grande parte desses bytes tenha…
Software Development Blog
Uma página PDF não armazena píxeis nem armazena uma árvore de objetos geométricos da forma que o SVG faz. Armazena um programa. Cada linha, curva, preenchimento e imagem posicionada na página é o…
Software Development Blog
Um PDF que parece perfeito no seu computador e é renderizado como uma linha de caixas vazias no de outra pessoa é o defeito de tipo de letra mais comum em software de documentos, e quase nunca…
Software Development Blog
Um leitor de PDF não começa no início do ficheiro. Começa no fim. Os últimos bytes contêm o endereço de tudo o resto, e um analisador (parser) que não compreenda essa ordem lerá incorretamente o…
Software Development Blog
O objeto número 1 não é a página 1. Esse simples facto perturba mais código de processamento de PDF do que qualquer outro aspeto do formato, e compreender a razão exige olhar além do que o…
Software Development Blog
A página 1 de um PDF não é o objeto 1. Essa distinção é a causa mais comum de erros de extração de páginas incorretas em analisadores de PDF, e a solução passa por ler a especificação em vez dos…
Software Development Blog
O PDF é uma coleção de objetos numerados localizados através de uma tabela de referências cruzadas. Esse modelo rege a incorporação, assinaturas e atualizações
Software Development Blog
Biblioteca Delphi de código aberto com WebRTC, controlos FireMonkey com buffer GPU, análise JSON/BSON e MongoDB. Compatibilidade com a versão 11.1 Alexandria
Software Development Blog
Ao manter um componente VCL escrito em Delphi mas consumido por utilizadores tanto de Delphi como de C++Builder, apercebe-se rapidamente de que os dois sistemas de compilação tratam as dependências…
Software Development Blog
Os erros de verificação de intervalo (range check errors) em bibliotecas PDF em Delphi têm a reputação de ser difíceis de identificar porque não seguem um padrão de entrada consistente. O mesmo…
Software Development Blog
OTDateTimePickeradquiriu uma propriedadeFormatalgures entre o Delphi 5 e o Delphi 6. O limite exato da versão raramente é documentado de forma confiável e, quando se depara com ele, o compilador…
Software Development Blog
A estruturaLOGBRUSHtem duas vidas distintas na API do Windows. Uma é o descritor de objeto GDI ativo que a funçãoCreateBrushIndirectaceita. A outra é o seu homólogo serializado dentro de um registo…
Software Development Blog
Colocar umTHotPDFnum formulário em tempo de desenho é aceitável para um protótipo rápido, mas vincula o ciclo de vida do componente ao do formulário, o que raramente é o pretendido em código de…
Software Development Blog
Ao processar grandes lotes de folhas de cálculo Excel num canal automatizado, raramente quer carregar todo o documento para a memória apenas para descobrir o que é. Muitas vezes, os metadados…
Software Development Blog
A instrução original_ftolno Delphi de 32 bits parece um truque inteligente de uma única linha: um wrapper de função Pascal que recorre a assembly inline para manipular a palavra de controlo do FPU…
Software Development Blog
Os serviços de assinatura online resolvem um problema logístico específico: obter uma assinatura num documento quando o signatário não tem software de PDF, não tem tempo para imprimir e não tem…
Software Development Blog
Em fluxos de trabalho de impressão empresarial, arquivo e conformidade de documentos, um ficheiro PDF não pode simplesmente ser "renderizado". Deve ser auditado. Um PDF pode conter grupos de…
Software Development Blog
A acessibilidade já não é uma funcionalidade opcional no desenvolvimento de software moderno. Ao abrigo de regulamentações como a ADA (Lei dos Americanos com Deficiência) e a Diretiva de…
Software Development Blog
Uma única página A4 renderizada num zoom de leitura confortável ocupa cerca de alguns megabytes de um bitmap de 32 bits. Multiplique isso por um contrato de 400 páginas e a aritmética deixa de ser…
Software Development Blog
Ao desenvolver soluções documentais empresariais, irá inevitavelmente deparar-se com PDFs gerados por uma enorme variedade de ferramentas, desde software Adobe topo de gama a bibliotecas de código…
Software Development Blog
Nos setores jurídico, financeiro e da saúde, gerar grandes volumes de documentos PDF é uma prática padrão. No entanto, produzir os documentos é apenas metade da batalha; protegê-los é igualmente…
Software Development Blog
Três bibliotecas. Três tarefas distintas. Escolher a errada custar-lhe-á semanas de contornos técnicos e soluções provisórias; escolher as três quando apenas precisa de uma trará custos de manutenção…
Software Development Blog
Os documentos PDF são incrivelmente poderosos, mas esse poder acarreta riscos de segurança inerentes. Como os PDFs suportam ficheiros incorporados, JavaScript interativo e fluxos binários complexos,…
Software Development Blog
O processamento de PDFs normais (1MB a 10MB) em Delphi é simples utilizando classes de fluxo (stream) padrão comoTFileStreamouTMemoryStream. No entanto, quando tem a tarefa de processar PDFs à escala…
Software Development Blog
Dois minutos para copiar três páginas de um PDF de 40 páginas não é um problema de otimização de desempenho. É um sinal de que está a ser utilizado o caminho de API errado. Quando vi pela primeira…
Software Development Blog
As dimensões de uma página PDF são fixadas no momento em que a página é criada, pelo que não é possível simplesmente redimensionar o conteúdo no lugar da mesma forma que se redimensionaria uma…
Software Development Blog
O RTF existe há tempo suficiente para aparecer em sítios que ninguém planeou: geradores de relatórios legados, pipelines de impressão em série, arquivos de documentos jurídicos anteriores aos…