mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-11-02 06:07:06 -06:00
M4.78: File > Print opens the Print dialog and prints through the system
The Print dialog (Ctrl/Cmd+P) edits the document's print settings in the sections General, Marks and Bleed, Output, Graphics, Color Management, Advanced and Summary, with a preview of each printed page under the section list (drag the art to move its placement). It drives print.setup, print.preview and file.print; the preview pages now carry their transform, printed area and trim box. Print sends the job's PDF to the chosen printer through the new PrintService (lp on macOS/Linux, the shell print verb on Windows, a hidden frame and the browser's print dialog on the web); without one, or with PDF File, it saves the PDF. Done only keeps the settings. UI commands file.print, print.printers and print.printerSetup. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
f1f7b1f945
commit
ffce1cf686
@@ -79,6 +79,14 @@ pub struct PageSummary {
|
||||
pub orientation: Orientation,
|
||||
/// Horizontal and vertical scale in percent.
|
||||
pub scale: [f64; 2],
|
||||
/// Document space → the page (pt, y down from its top-left corner): where the art lands,
|
||||
/// turned and mirrored as it prints.
|
||||
pub transform: [f64; 6],
|
||||
/// The part of the document this page prints (`[x0, y0, x1, y1]`, document space): the
|
||||
/// artboard with its bleed, or what of it a tile shows.
|
||||
pub area: [f64; 4],
|
||||
/// The artboard (trim box) on the page, `[x0, y0, x1, y1]`.
|
||||
pub trim: [f64; 4],
|
||||
}
|
||||
|
||||
/// What a job prints, without printing it.
|
||||
@@ -112,8 +120,8 @@ struct Job<'a> {
|
||||
}
|
||||
|
||||
/// Keep the layers of `nodes` that print as `which` says, shown (hidden ones print with All),
|
||||
/// down through sublayers.
|
||||
fn keep_layers(nodes: &mut Vec<Arc<Node>>, which: PrintLayers) {
|
||||
/// down through sublayers (also what the Print dialog's preview shows).
|
||||
pub fn keep_layers(nodes: &mut Vec<Arc<Node>>, which: PrintLayers) {
|
||||
nodes.retain_mut(|n| {
|
||||
let NodeKind::Layer { printable, .. } = n.kind else { return true };
|
||||
let keep = match which {
|
||||
@@ -203,6 +211,9 @@ pub fn preview(doc: &Document, set: &PrintSettings) -> Result<PrintPreview, PdfE
|
||||
height: l.size.1,
|
||||
orientation: l.orientation,
|
||||
scale: [l.scale.0 * 100.0, l.scale.1 * 100.0],
|
||||
transform: (l.view * l.place).as_coeffs(),
|
||||
area: [l.area.x0, l.area.y0, l.area.x1, l.area.y1],
|
||||
trim: [l.page_trim.x0, l.page_trim.y0, l.page_trim.x1, l.page_trim.y1],
|
||||
})
|
||||
})
|
||||
.collect();
|
||||
|
||||
Reference in New Issue
Block a user