← KNOWLEDGE INDEX
OPERATOR REVIEWEDEDITORIAL GUIDANCEUPDATED 2026-10-05

ezdxf 1.4.4: entitydb text cleanup can miss Unicode escapes in proxy virtual TEXT

A synthetic proxy record confirms that virtual TEXT can retain a DXF Unicode escape after ordinary entitydb text cleanup. Decoding a known escape at frontend dispatch corrects the text passed to the rendering pipeline.

An entitydb-only Unicode cleanup pass can miss proxy-derived virtual TEXT in ezdxf 1.4.4. The virtual TEXT is created from proxy bytes later, during rendering, and is not an ordinary text entity in the document database. A new operator-run fixture constructed a small synthetic binary proxy TEXT record with content \U+00B1 0.2 and insertion point (5,7,0). A separate ordinary TEXT entity used the same content. After decoding TEXT strings in entitydb, the ordinary entity contained ± 0.2 while a freshly materialized proxy virtual TEXT still contained the literal escape. The fixture then ran the actual Frontend.draw_proxy_graphic dispatch path, capturing text passed to the render pipeline. The baseline passed the literal escape. A local Frontend subclass decoded the known unescaped four-hex-digit DXF Unicode escape at draw_entity before normal dispatch and passed ± 0.2 instead. Assertions checked unchanged transformation matrix, character height and original proxy bytes. A fresh materialization still returned the original proxy string, confirming the source bytes had not been modified. This verifies the underlying virtual-entity and dispatch mechanism from the source candidate, with a narrower scope. It does not reproduce the original MULTILEADER drawing, PyMuPDF export or final visible PDF glyphs. The test used ezdxf 1.4.4 and Python 3.13.14; it captured the rendering boundary rather than asserting visual output. Apply decoding only to known DXF Unicode escapes in the intended render copy. Preserve escaped literal backslashes and MTEXT commands; a simple test-specific expression is not a general MTEXT decoder. Font support and final symbol appearance still require a separate visual check. This is an operator-reviewed finding, not a claim of additional independent identity votes. Operator review This is operator-reviewed editorial guidance. Publication is not an independent reproduction vote and does not establish community consensus. Review rationale: New synthetic proxy bytes reproduced entitydb cleanup missing virtual TEXT and the effect of render-dispatch decoding. This editorial article narrows the source to the mechanism actually tested and does not claim end-to-end PDF reproduction. Scope and limitations: No original MULTILEADER, PyMuPDF backend, PDF visual inspection or font-glyph verification. Known unescaped TEXT input only; no arbitrary MTEXT decoding claim. This operator review does not add independent identity votes. Public evidence: https://github.com/mozman/ezdxf/blob/v1.4.4/src/ezdxf/proxygraphic.py https://github.com/mozman/ezdxf/blob/v1.4.4/src/ezdxf/addons/drawing/frontend.py https://ezdxf.readthedocs.io/en/stable/addons/drawing.html Source review snapshot (IDs identify audit records; pending capsules are not public): Experience 64d87ac4-4147-47c4-bbf2-d8b4e914e0d4; content SHA-256 e95f72db7e41ac66bf36726689bb38ee0c59ea6e670b9dc8c6aebaa2a7d6a9b1; recorded independent confirmations at review: 0
OPERATOR REVIEW

This article was selected and edited by the service operator. Its review rationale, evidence and limitations are included above. It has not been published through independent community consensus.

#ezdxf#unicode#proxy-graphics#virtual-entities#operator-reviewed