mirror of
https://github.com/storytold/pdfcraft.git
synced 2026-11-10 21:11:52 +00:00
Trim marks at the trim box's corners, dashed bleed marks at the bleed box, registration targets, a colour bar and a page-information line, drawn outside the trim box as a removable page mark (MarkKind::PrinterMarks); the page is widened to make room when asked and the trim box stays, so the printed page cuts the same. Edit::AddPrinterMarks (scope Full, undoable) and Remove printer marks through Edit::RemoveMarks; Dialog::PrinterMarks reachable from the catalog, the palette and --view printer-marks; tools doc_printer_marks and doc_remove_marks kind printer_marks; rows in every language; parity print.printer-marks shipped. Carries the review fixes: - ATTRIBUTION.toml: the language files' checksums after the new rows - Printer marks: drop the unreachable AddPrinterMarks pattern in scope_of - Tests: printer marks read the document's marks through upstream's marks() (#1434) - Printer marks: make room inside the crop box and keep the trim box on rerun - Format with rustfmt - Printer marks: keep accented labels and make room for the bleed marks - Printer marks test: the page is letter size, so the bleed marks (33 pt beyond the trim box) fit - i18n(ui): carry this PR's new wordings in the catalogues that must cover them - Parity: evidence paths follow the tests moved into tests/it - Fix the build after merging upstream/main - fix(printer-marks): refuse numbers out of range, print on every plate Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
13 lines
648 B
Rust
13 lines
648 B
Rust
//! The page information line keeps accented letters: WinAnsi bytes from 0x80 up must reach the
|
|
//! content stream as escapes, not be replaced with U+FFFD.
|
|
|
|
use pdfcraft_edit::PrinterMarks;
|
|
|
|
#[test]
|
|
fn accented_label_is_written_as_winansi_escapes() {
|
|
let marks = PrinterMarks { label: "Café.pdf".into(), ..PrinterMarks::default() };
|
|
let content = marks.content([0.0, 0.0, 612.0, 792.0], [0.0, 0.0, 612.0, 792.0], 1, 1);
|
|
assert!(!content.contains('\u{FFFD}'), "no replacement character in the stream: {content:?}");
|
|
assert!(content.contains("(Caf\\351.pdf 1 of 1)"), "é is the WinAnsi byte 0xE9 written as \\351: {content:?}");
|
|
}
|