Editor de PDF desktop · Processamento local
Edite o texto.Preserve a identidade.
Fonte, corpo, cor e posição respeitados na edição.
Troca o texto de um PDF preservando a fonte, e recusa quando não dá.
- Tauri
- Rust
- PDFium
- React
Editor de PDF desktop · Processamento local
Edite o texto.Preserve a identidade.
Fonte, corpo, cor e posição respeitados na edição.
- Tauri
- Rust
- PDFium
- React
Troca o texto de um PDF preservando a fonte, e recusa quando não dá.
- Tauri
- Rust
- PDFium
- React
O clique no texto
A tela e o motor leem o PDF diferente. A geometria une os dois.
O que você vê vem de uma biblioteca; o que o programa edita vem de outra, e elas cortam o texto de jeitos diferentes. Para saber qual objeto editar, o programa não chuta: pergunta, em três passos, que caixa contém o ponto. Arraste o trecho e veja a decisão mudar.
Arraste o trecho (laranja) na página
A decisão
- 1Quem contém o ponto central (base + 0,32 do corpo)?
- 2Quem cruza a caixa do trecho (−0,25 a +0,9 do corpo)?
- 3Quem está mais perto (até 1,5 corpo e 2× melhor que o segundo)?
#0 contém o centro do trecho, é ele.
- Trecho
- DADOS DO APARTAMENTO
- x · y
- 40 · 92 pt
- Objetos
- 2
As regras são as do programa (matchObject.ts): o ponto é a linha de base mais 0,32 do corpo; a caixa vai de −0,25 a +0,9 do corpo; sem um vencedor claro, ele recusa em vez de editar o texto errado. A página e os objetos aqui são de exemplo, em pontos de PDF.

Cada fonte tem seus limites. O editor mostra.
Inspeção de fontes e caracteres disponíveis antes de aplicar.
Um PDF costuma levar só os caracteres que usa de cada fonte. Antes de trocar um texto, o programa lê o nome da fonte, a permissão do fabricante e os caracteres que ela tem, e depois de gravar, relê para conferir. Escolha uma fonte, escreva e aplique.
A fonte do trecho
O que o nome diz
- Subconjunto
- Sim
- Família
- Segoe
- Peso
- 700
- Itálico
- Não
- Permissão do fabricante (fsType)
- 0, instalável, sem restrição
Caracteres disponíveis (clique para inserir)
- Já existia no original
- Nova, a fonte tem
- A fonte não tem
As regras são as do programa (pdf_engine.rs e font_rights.rs): 6 maiúsculas e + no nome indicam subconjunto; a permissão 4 ou 2 só barra caractere novo; depois de gravar, o motor relê o texto e, se algo não saiu, não grava. Mais de 0,5 pt de largura conta como mais largo. As fontes e a largura aqui são de exemplo.

Claro ou escuro. Desfazer em 20 passos.
Tauri 2, Rust e PDFium com React e TypeScript.
Projeto autoralDesfazer uma edição de PDF invertendo a operação não devolve o arquivo exato. Por isso o programa guarda uma cópia inteira a cada passo, e para em 20, para não travar. Edite, desfaça com Ctrl+Z e veja a pilha encher e esquecer.
FIAÇÃO ELÉTRICA
DADOS DO APARTAMENTO
Quadro na Área de Serviço
Cozinha ao lado da AS
QUADRO DE DISTRIBUIÇÃO
C1 10A Iluminação Sala
Cópias guardadas0/20
Memória (PDF de 5 MB)0 × 5 MB = 0 MB
As telas de verdade
As regras são as do programa (useHistory.ts): cada passo guarda os bytes do documento; o limite é 20 e o 21º descarta o mais antigo; editar depois de desfazer apaga o que estava à frente. Ctrl+Z desfaz, Ctrl+Y ou Ctrl+Shift+Z refazem, Ctrl+S salva. O zoom anda de 25% a 400%. O documento aqui é de exemplo.
As tecnologias
Do que é feito, peça por peça
Duas bibliotecas de PDF trabalhando juntas: o pdf.js desenha a página na tela, e o PDFium, chamado pelo Rust, faz a edição de verdade, com 23 comandos entre a tela e o motor. Escolha uma peça para ver o que ela faz aqui e em que arquivo está.
8tecnologias, em 2 camadas
Tela
Motor




Aplicativos desktopWebRecorder Pro