forked from chromiumembedded/java-cef
-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathCefPdfPrintSettings.java
More file actions
130 lines (113 loc) · 4.1 KB
/
CefPdfPrintSettings.java
File metadata and controls
130 lines (113 loc) · 4.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
// Copyright (c) 2017 The Chromium Embedded Framework Authors. All rights
// reserved. Use of this source code is governed by a BSD-style license that
// can be found in the LICENSE file.
package org.cef.misc;
/**
* PDF print settings for browser.printToPDF()
*/
public class CefPdfPrintSettings {
public enum MarginType {
// Default margins.
DEFAULT,
// No margins
NONE,
// Custom margins using the values from CefPdfPrintSettings
CUSTOM
}
/**
* Set to true for landscape mode or false for portrait mode.
*/
public boolean landscape;
/**
* Set to true to print background graphics or false to not print
* background graphics.
*/
public boolean print_background;
/**
* The percentage to scale the PDF by before printing (e.g. .5 is 50%).
* If this value is less than or equal to zero the default value of 1.0
* will be used.
*/
public double scale;
/**
* Output paper size in inches. If either of these values is less than or
* equal to zero then the default paper size (letter, 8.5 x 11 inches) will
* be used.
*/
public double paper_width;
public double paper_height;
/**
* Set to true to prefer page size as defined by css. Defaults to false
* in which case the content will be scaled to fit the paper size.
*/
public boolean prefer_css_page_size;
/**
* Margin type.
*/
public MarginType margin_type;
/**
* Margins in inches. Only used if margin_type is set to CUSTOM.
*/
public double margin_top;
public double margin_right;
public double margin_bottom;
public double margin_left;
/**
* Paper ranges to print, one based, e.g., '1-5, 8, 11-13'. Pages are printed
* in the document order, not in the order specified, and no more than once.
* Defaults to empty string, which implies the entire document is printed.
* The page numbers are quietly capped to actual page count of the document,
* and ranges beyond the end of the document are ignored. If this results in
* no pages to print, an error is reported. It is an error to specify a range
* with start greater than end.
*/
public String page_ranges;
/**
* Set to true to print headers and footers or false to not print
* headers and footers. Modify header_template and/or footer_template to
* customize the display.
*/
public boolean display_header_footer;
/**
* HTML template for the print header. Only displayed if
* |display_header_footer| is true (1). Should be valid HTML markup with
* the following classes used to inject printing values into them:
*
* - date: formatted print date
* - title: document title
* - url: document location
* - pageNumber: current page number
* - totalPages: total pages in the document
*
* For example, "<span class=title></span>" would generate a span containing
* the title.
*/
public String header_template;
/**
* HTML template for the print footer. Only displayed if
* |display_header_footer| is true (1). Uses the same format as
* |header_template|.
*/
public String footer_template;
public CefPdfPrintSettings() {}
@Override
public CefPdfPrintSettings clone() {
CefPdfPrintSettings tmp = new CefPdfPrintSettings();
tmp.landscape = this.landscape;
tmp.print_background = this.print_background;
tmp.scale = this.scale;
tmp.paper_width = this.paper_width;
tmp.paper_height = this.paper_height;
tmp.prefer_css_page_size = this.prefer_css_page_size;
tmp.margin_type = this.margin_type;
tmp.margin_top = this.margin_top;
tmp.margin_bottom = this.margin_bottom;
tmp.margin_right = this.margin_right;
tmp.margin_left = this.margin_left;
tmp.page_ranges = this.page_ranges;
tmp.display_header_footer = this.display_header_footer;
tmp.header_template = this.header_template;
tmp.footer_template = this.footer_template;
return tmp;
}
}