Skip to content

Audit: the LibreOffice reference for the #1220 deck seats page 8's value tick labels 7.68pt right of the native export #1860

Closed

Description

@developer0hye

Summary

With #1663's horizontal calibration in place, page 8's value tick labels land
where the native PowerPoint export puts them, and the LibreOffice Impress
reference attached to #1220 is revealed to seat that label column 7.68pt to the
right of native while placing the plot's own edges in the same place. Every
layout-audit dx finding on 800..0 on this page therefore carries a
reference-side component that no converter change can remove.

This is the horizontal counterpart of #1676, which measures the same
reference's own vertical plot seat.

Measured

Fixture: page 8 of GENERAL SERVICES.pptx (#1220, input SHA-256
17924ec3b27646a2c1b2bb711b845360b713cc7052b3cdde9df752f9ceded3a9). Chart frame
689.187 x 221.058pt at (134.813, 270.0), value axis Arial 11.97pt, labels
0/200/400/600/800.

Ink extent of the 800 label, measured on 150 DPI pdftoppm renders (one pixel
is 0.48pt):

native PowerPoint 16.113.1 LibreOffice Impress 26.2.5.2 office2pdf at #1663
label ink left 142.000 149.680 142.000
label ink right 161.200 168.400 161.200
plot left edge 171.575 171.468 171.583

The two exporters agree on the plot's left edge to 0.107pt and disagree on where
the label column ends by 7.20pt, so the reference is not reserving a different
gutter — it is right-aligning the labels inside the one it reserves at its own
position.

The reference PDF is SHA-256
8c8f471d8baaf0abd79e752ef49951c240752d36e4512651f6cb9a7cfffb650f; the native
export is adec062605a45f1b6884252e9f4e199dee2da029e975845c258f4a7c38c820e1.

Effect on the audit

compare_layout.py --page 8 --audit --fine-shift 0.5 against the reference
reports 0 dx -7.34pt and 200..800 dx -7.30pt. Before #1663 those read
+0.98 to +1.01pt, because the uncalibrated gutter happened to put our labels
near the reference's rather than near PowerPoint's.

Expected

Recorded as a reference-side difference for this page, in the same way #1676
records the reference's own vertical plot seat, #1670 its right-legend layout
and #1664 its font substitutions.

Related: #1663, #1676, #1670, #1664, #1220

Activity

  1. developer0hye commented on Oct 6, 2026

    @developer0hye
    OwnerAuthor

    Verified the page-8 horizontal tick-label reference difference against the fresh current-main output and the native PowerPoint export.

    • Source: the #1220 attachment
    • Source SHA-256: 17924ec3b27646a2c1b2bb711b845360b713cc7052b3cdde9df752f9ceded3a9
    • Supplied reference: LibreOffice Impress 26.2.5.2 (X86_64); PDF SHA-256 8c8f471d8baaf0abd79e752ef49951c240752d36e4512651f6cb9a7cfffb650f
    • Native export: Microsoft PowerPoint 16.113.3 on macOS 26.6.2 build 25G83; PDF SHA-256 6a18edd852804ae4cfd5fe10438b25fbbe4a140871b1506eacee2f7bc134bbc8
    • Current office2pdf output: built from e019d103c32a17268128401cb2d33d620ceccf33; PDF SHA-256 47ddfd4ffaa608b27604cc4f987a923aef546ec4c4955bb530823bef57e99ff8; all three PDFs contain 15 pages at 960 x 540 pt.

    The fresh page-8 layout audit reports these reference-to-current-output shifts:

    Label dx (pt) dy (pt)
    800 -7.30069 -8.93435
    600 -7.30069 -8.40940
    400 -7.30069 -7.91246
    200 -7.30069 -7.38752
    0 -7.33740 -6.89060

    At 150 DPI, the current-output tick-label crop aligns horizontally with the native PowerPoint image. For 800, the already-recorded ink starts are 142.000 pt in native PowerPoint and office2pdf versus 149.680 pt in the LibreOffice reference; the plot left edges remain within 0.12 pt across the three exports. This confirms that the supplied reference seats the value-label column to the right of the native/current output.

    The text-layer check also exposed a reference-side footer difference already tracked by #1664: every normalized word token from the LibreOffice extraction is present in the current output, while the output additionally extracts Internal; the LibreOffice page image wraps that footer word onto a second line. The 400 token's extraction order differs around the legend, with no token loss. The native PDF rasterizes most page-8 chart/table/footer text, so it is not a text-layer oracle for those labels.

    The updated issue-local manifest records exact dispositions for all five tick-label shifts and the three tick-label render clusters. The fresh strict page-8 cluster report passes with 100/100 clusters dispositioned. The before and after evidence images are byte-identical because this PR records a verified reference difference without changing converter output.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions