diff --git a/NEWS.md b/NEWS.md index 5eac151..0a6a6ea 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,7 @@ # gridify 0.7.7.9000 +* Added section on pipeline security and PDF searchability to `README.md`, `gridify` vignette, and `transparency` vignette. + # gridify 0.7.7 * Updated `README.md` file. diff --git a/README.md b/README.md index 28bd723..802275c 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,12 @@ Whilst **rtables** are not directly supported, we can use **rtables** with `grid As `gridify` is based on the graphical tool **grid**, any figure or table inputs are converted to a `grob` object in `gridify` and the result of using -`gridify` is always a graphical image. +`gridify` is always a graphical image. This is by design: by unifying +tables and figures into scalable vector graphics, `gridify` locks the +layout so it cannot break across environments — no shifting columns, no +reflowing text. The output is stable enough for final PDF submissions +(e.g. eCTD) while the text stays clear, searchable, and copy-able at +any zoom level. ## Installation @@ -143,6 +148,28 @@ For more information please visit the following vignettes: `vignette("transparency", package = "gridify")` - How to extract the raw grid code to reproduce a `gridify` object. +### "No-Touch" Pipelines + +`gridify` outputs are graphical — they **cannot be hand-edited** like +Word or Excel. Once a PDF or PNG is produced, the content is locked: +nothing to retype, nothing to rephrase. Unlike Word/RTF, the layout +will not reflow or break when opened on a different machine. This is +useful in validated environments where any manual change after +generation is a compliance issue, and especially for final eCTD +submissions where formatting must be pixel-stable. + +### PDF Text is Still Searchable + +Because `gridify` uses R's vector graphics engine, text in PDFs +(exported with `export_to()`) is **real text**, not a flat image. +Reviewers can: + +- use Ctrl+F / Cmd+F to search, +- copy & paste values for checks, +- zoom in without losing clarity. + +So the output is uneditable *and* searchable at the same time. + ## Related packages Other packages exist which add headers, footers, and other elements to figures and tables; most of the input classes to `gridify` already support these features. diff --git a/vignettes/gridify.Rmd b/vignettes/gridify.Rmd index 85cbb56..e262a7c 100644 --- a/vignettes/gridify.Rmd +++ b/vignettes/gridify.Rmd @@ -206,6 +206,27 @@ To save `gridify` drawings to files see `vignette("simple_examples", package = " - **Custom Layout**: `vignette("create_custom_layout", package = "gridify")` - **Transparency**: `vignette("transparency", package = "gridify")` +## A Note on Security and Searchability + +Two things worth knowing about `gridify` outputs in regulated settings: + +### Outputs Cannot Be Hand-Edited + +`gridify` produces graphical objects, not editable documents. +Unlike Word or Excel, there is nothing to retype or change by hand after the output is generated. +This matters in validated environments where manual modifications are not allowed. + +### PDF Text is Searchable + +Even though the output is graphical, text in PDFs (via `export_to()`) is **real text** — not a flat image. +R's vector graphics engine keeps the characters selectable, so reviewers can: + +- search with Ctrl+F / Cmd+F, +- copy & paste text, +- zoom without losing quality. + +In short: the output is locked down but still easy to work with for review. + ## Conclusion That’s it! `gridify` enables you to consistently position text elements around any figures or tables, all while letting you leverage base R `grid` for maximum control and transparency. diff --git a/vignettes/transparency.Rmd b/vignettes/transparency.Rmd index 3c42d6d..694e512 100644 --- a/vignettes/transparency.Rmd +++ b/vignettes/transparency.Rmd @@ -97,8 +97,17 @@ Through meta-programming, `gridify` captures all `grid` calls required to produc 3. **Audit and Debugging** The ability to retrieve the full `grid` calls makes it straightforward to diagnose layout issues or confirm that all elements are placed correctly. +4. **"No-Touch" Outputs** + `gridify` outputs are graphical — they cannot be hand-edited after generation. + Together with the auditable `grid` code, this is helpful in validated workflows where manual changes are not allowed. + +5. **PDF Text is Searchable** + Text in PDFs from `export_to()` is real, selectable text — not a flat image. + Reviewers can search (Ctrl+F), copy & paste, and zoom without losing quality. + ## Conclusion -By providing direct access to the underlying `grid` code, `gridify` prioritizes **transparency**. +By exposing the underlying `grid` code, `gridify` keeps things **transparent**. +The outputs are also uneditable yet searchable, which is a practical combination for regulated environments. For more details on other aspects like reproducibility, consistency, and advanced layouts, check out our package documentation and additional vignettes.