-
isBIM Visus 2D 1.1.0 Stable
released this
2026-07-08 23:46:29 +01:00 | 0 commits to main since this releaseAdicionado
- Toggle global de visibilidade das anotações (pedido do Rui). Botão "olho"
na toolbar (junto ao botão Anotar) e acção no cabeçalho do painel de anotações
ligam/desligam todas as anotações como se fosse um layer — sem as apagar.
Novo storeannotationsVisible(stores/app.ts); aCanvasOverlaydeixa de
montar aAnnotationsLayerquando está desligado. Entrar no modo de anotação
força a visibilidade (não faz sentido editar anotações ocultas). i18n
toolbar.hideAnnotations/showAnnotations,measure.hideAll/showAll. - Exportação de markup PDF nativo e universal (
/Annot) com aparências. As
anotações (cotas, áreas, setas, nuvens de revisão, elipses, texto…) passam a
ser embebidas no PDF como objectos/Annotnativos com appearance stream
(/AP /N→ Form XObject) — legíveis e editáveis no Adobe Acrobat, Bluebeam
Revu, Preview do macOS (que exige/AP), Foxit e qualquer outro leitor de
PDF (já não só no sidecar JSON proprietário do DWFx). A aparência desenha o
markup em coordenadas absolutas de página (/BBox=/Rect,/Matrix
identidade): linhas com pontas de seta, polilinhas/polígonos, nuvem festonada
(bumps cúbicos), elipses (Bézier), traço sólido/tracejado/pontilhado, e texto
em Helvetica (WinAnsi). Cobre os comandos Guardar como PDF, Exportar
PDF (diálogo) e o wrapper de exportação.
Mapeamento: linha→Line, seta→Line+/LE, polilinha→PolyLine(ou
Polygonse fechada), polígono/área→Polygon(+/ICse preenchido),
nuvem→Polygon+/BE(cloudy), elipse/círculo→Circle, ângulo→PolyLine,
arco→PolyLineachatada por 3 pontos, texto→FreeText. Cores, estilos de
traço (sólido/tracejado/pontilhado/traço-ponto) e espessura preservados. - Leitura de markup PDF
/Annot(round-trip fechado). Ao abrir um PDF, os
objectos/Annotnativos são importados como anotações editáveis no
isBIM Visus:Line→linha (ou seta, se/LEtiver pontas),PolyLine→
polilinha,Polygon→polígono (+nuvem se/BEcloudy, +preenchido se/IC),
Square→polígono (4 cantos),Circle→elipse,FreeText→texto,Ink→
polilinha. Cor (/C, incl. CMYK→RGB), espessura/estilo de traço (/BS) e
texto (/Contents, UTF-16BE ou Latin-1) recuperados. Coordenadas pt→DIP com
flip Y e origem da caixa (MediaBox/CropBox). Markup criado no Acrobat,
Bluebeam ou no próprio isBIM Visus pode agora ser reaberto e editado.
Detalhe técnico
- Nova crate-API em
visus2d-pdf: móduloannot.rscomPdfMarkup+
inject_annotations()(pós-processamento dos bytes PDF vialopdf0.31 —
promovida de dev- a dependência normal), gerador de appearance streams
(Form XObjects, fonte Helvetica partilhada), eexport_document_annotated()/
inject_into_export()emdocument.rs. Conversão de coordenadas px@96→pt com
flip Y idêntica ao conteúdo de página (units.rs), garantindo coincidência ao
pixel. Funciona em ambos os pipelines (vectorial e raster legacy). - IPC:
export_pdfesave_as_pdfganham o parâmetro opcionalannotations
(Vec<AnnotationInfo>);commands/export.rs::annotations_to_markupsconverte
o modelo IPC emPdfMarkup(mantém a semântica das pontas de seta e do
modificador de nuvem). Frontend:tauri.ts(exportPdf/saveAsPdf/saveAsDwfx
partilhamannotationsPayload) eExportPdfDialogenviam o snapshot do store.
Alterado
- Toolbar de ficheiro reorganizada. O par Abrir/Guardar fica separado
por divisores de Novo / Exportar / Imprimir, clarificando o modelo de formatos
nativos (Abrir lê DWFx/PDF · Guardar grava DWFx-projecto · Exportar gera PDF).
Botões mantêm-se só-ícone (uniformidade com a linha isBIM); a distinção é
por tooltip descritiva. - Acções de PDF fundidas. O botão "Guardar como PDF" (gravação directa) foi
removido — fazia o mesmo que Exportar PDF, que passa a ser a única acção
de PDF (diálogo com DPI/páginas/modo + markup/Annot). O comando IPC
save_as_pdfmantém-se como API programática.
Corrigido
- Ecrã de arranque: o texto de arrastar-e-largar mencionava DWF, que o
visualizador não abre. Passa a indicar apenas DWFx e PDF (pt-PT e en).
Limitações conhecidas
- A aparência do
FreeTextusa Helvetica built-in (sem quebra de linha
automática nem rich text/RC); o texto longo pode exceder a caixa. - A nuvem de revisão preenchida exporta só o contorno festonado (sem o fundo a
12%). - Na leitura, a medição não é recalculada (markup importado entra como forma
livre,markup:true);Inkusa só a 1.ª sub-lista; estilos de traço de PDF
externos colapsam em sólido/tracejado. - Ainda não suportados (próxima paridade com Bluebeam): text markup
(Highlight/Underline/StrikeOut), Stamp, Callout (/CL),/Measure(cotas com
escala),/Popup+respostas (/IRT) e metadados de comentário (/M,
/CreationDate).
Testes
- Escrita:
visus2d-pdf::annottraz 13 testes unitários (flip Y, subtipos por
modo + presença de aparência, pontas de seta, nuvem/BE, preenchimento
/IC,FreeTextcom fonte, curvas de elipse, amostragem de arco, parsing de
cor, escape de texto). Leitura:visus2d-pdf-reader::annotationstraz 7
(Line→linha,/LE→seta,Polygon+/BE→nuvem,Circle→elipse,FreeText
com/sem/Contents, subtipo não suportado ignorado,/C→hex). Pendente
correr no Mac (cargo test --workspace --lib,cargo clippy --workspace --lib,npm run check) — toolchain Rust indisponível no ambiente de
preparação desta release.
Downloads
- Toggle global de visibilidade das anotações (pedido do Rui). Botão "olho"