Calc Print Settings
Fit Print Ranges To Width/Height

OpenOffice.org 2.0

Document - ID	Specification Owner	Last Change	Status
	Daniel Rentz	2005-04-25	Final
Conforms to	StarOffice Specification Workflow v0.1, Aug 2003
Applies to	Calc, API
Task ID(s)	i8868
Category	Feature

Abstract

To increase compatibility to Microsoft Excel, Calc needs an addition in the print settings of the page style sheet. It will be possible to specify the number of horizontal and vertical pages in the “Fit To Number Of Pages” setting separately.

This specification will define how Calc will implement this feature.

i-Team Members

	Name	E-mail Address
Specification Owner	Daniel Rentz (dr)	daniel.rentz@sun.com
User Experience	Falko Tesch (ft)	falko@sun.com
Development	Daniel Rentz (dr)	daniel.rentz@sun.com
Quality Assurance	Oliver Crämer (oc)	oliver.craemer@sun.com
Documentation	Frank Peters (fpe)	fpe@sun.com

Approved for Implementation

	Approved by	Date
User Experience	Falko Tesch	2003-10-16
Development	Daniel Rentz (dr)	2003-10-13
Quality Assurance	Frank Stecher (fst)	2003-10-10
Documentation	Frank Peters (fpe)	2003-10-10
String Review	Elizabeth Matthis (em)	2003-11-07

Document Change History

Rev. Level	Change	Initials	Date
1.0	Initial version	dr	2003-06-30
1.1	Converted to new specification template	dr	2003-09-30
1.2	Review by Documentation and QA	fst/fpe	2003-10-10
1.3	Review by User Experience	ft	2003-10-16
1.4	String review	em	2003-11-07

Contents

Glossary	1

1	Motivation	1

2	Goals	1

3	Requirements and Dependencies	1

3.1	Requirements	1

3.2	Technical Dependencies	1

4	User Scenarios	1

5	Competitive Analyses	2

6	Detailed Specification	2

6.1	Error Conditions	7

7	Future Tasks	7

8	Legal Issues	7

9	Notes	7

10	References	7

Glossary

Term	Description
Reduce/enlarge printout	Existing option for printout scaling in the Page Settings Dialog
Fit print range(s) on number of pages	Existing option for printout scaling in the Page Settings Dialog
Fit print range(s) to width/height	New option for printout scaling in the “Format – Page” dialog, topic of this specification
Spin field	Numerical input field with up/down spin buttons

Motivation

Enhancing Ease-of-Use as well as easing the learning curve for MS Excel users and enhancing the user's abilities to choose the printing layout of their documents.

Goals

Interoperability with MS Excel documents.

Ease-of-Use with Excel. It is mandatory that the users finds a comparable interface within the same interface structure as in Excel.

Consistency. Although this feature should be Excel-user compatible it must fit seamlessly into the existing Calc user interface and naming conventions/glossary.

Requirements and Dependencies

Requirements

This feature will allow users to easily adopt their skills on working with MS Excel spreadsheets to migrate to Calc.

Technical Dependencies

None.

User Scenarios

Even that a spreadsheet is more of a calculation tool many user want to print out their data.

Often quite complex and big-sized tables needs to be printed to a defined paper area. Many users will try to to "patch-work" their printouts since single pages are way to small to display the full sheet content.

To get the data printed in a foreseeable format this "patch-format" needs to be defined beforehand. Thus a function for setting print ranges in width and height are very handy. The user than can define how wide and/or how high his printout should get. So he can print out his sheet for example in the format 4 pages wide and 3 pages high.

This specification will give the user exactly such tooling.

Competitive Analyses

See chapter 6 “Detailed Specification“.

Detailed Specification

Existing Functionality

Currently it is possible to specify two different print scaling options in the “Format – Page – Sheet” dialog: A sheet can be scaled using a percentage value (called “Reduce/enlarge printout” in the GUI), or specifying a maximum number of pages (called “Fit printout on number of pages”). The second option will shrink the printout until it fits to the specified value. It will never enlarge the printout.

In general, print scaling settings refer to a single sheet, because each sheet contains its own page style. Furthermore, if a sheet contains several print ranges, they are printed on separate pages, and the scaling settings are applied separately for each print range. As an example, if the page style contains the setting “Fit printout on 3 pages”, and the sheet contains 4 print ranges, this may result in up to 12 printed pages for this spreadsheet.

This is a good chance to change the name of the scaling type “Fit printout on number of pages” to better reflect this behavior. The tern “printout”, which suggests the entire spreadsheet document, will be replaced by “print range(s)”. The other option “Reduce/enlarge printout“ does not need to be changed (the name “Reduce/enlarge print range(s)” would be confusing, as the print ranges themselves are not changed).

Figure 1: The old "Sheet" tab page New Functionality

A new option will be added with two separate settings: The maximum number of pages in horizontal direction and the maximum number of pages in vertical direction, called “Fit print range(s) to width/height”. The number of pages in width and height can be specified separately. Similar to the old “Fit print range(s) on number of pages” setting, the print ranges may be shrunken, but they will never be enlarged.

There are different possibilities to specify the number of pages:

Width and height are present: The maximum size of each print range is fixed to these settings. The print ranges are always scaled proportional in width and height, therefore the resulting number of printed pages may be less.
Example: The settings are 2 pages in width, and 3 pages in height. The spreadsheet is scaled down to fit the width of 2 pages, but that may result in a height of 1 page. Therefore only 2 pages are printed, not 6 pages.

Only width is specified, height is left empty: Scale so that the width of a print range matches the specified width, take as many pages in height as needed.

Only height specified, width is left empty: Scale so that the height of a print range matches the specified height, take as many pages in width as needed.

A value that is left empty is recalculated automatically by Calc whenever the document is printed. Changes in the spreadsheet may cause a different number of pages for the next printout. The “File – Print preview” function will show how many pages are needed with the current settings.

User Interface

The entire “Scale” section of the “Format – Page – Sheet” tab page needs to be redesigned to be able to include all new settings. The option buttons are replaced by a drop-down list box. The new option “Fit print range(s) to width/height” is added to this list box, at second position (figure 2).

Furthermore fixed texts with mnemonic characters will be added for all spin fields.

Figure 2: Option buttons are replaced by a list box The following list describes the additional controls displayed in each scaling mode:

“Reduce/enlarge printout”: A spin field specifying the amount of reducing/enlarging follows at the same height as the list box (figure 2). The valid range of this spin field remains 10%...400%. A new fixed text is added to allow to reach the spin field via keyboard.

“Fit print range(s) to width/height”: Two spin fields are shown (figure 3). The upper spin field contains the width and is described by the fixed text “Width in pages”. The lower spin field contains the height. It is described by the fixed text “Height in pages”. If one of the fields is cleared completely, it will indicate the automatic state of that value discussed above. Both spin fields allow to set a value in the range 1...1000. If on leaving the dialog both spin fields are empty, the scaling is reset to “Reduce/enlarge printout” and 100%.

Figure 3: New option “Fit print range(s) to width/height” “Fit print range(s) on number of pages”: A spin field specifying the total number of pages follows at the same height as the list box (see figure 4). The allowed range of values is 1...1000. A new fixed text “Number of pages” is added to provide a mnemonic character.

Figure 4: Old option “Fit print range(s) on number of pages” Each spin fields will check and correct the contained value whenever the focus leaves it. If the entered value is too high, it will be set to the maximum, if it is too low, it will be set to the minimum value.

All values entered for the different options will be preserved as long as the dialog is opened. Only the settings of the selected scaling mode are stored at the document, if the dialog is left.

The old implementation of this dialog has set the focus to the spin field automatically, if an option button was clicked. The new implementation will not support this anymore to be able to travel with the cursor keys through the entries of the list box. Nevertheless always the spin field(s) related to the currently activated list box entry are shown.

The new option needs to be represented in the tab page “Format – Page – Organizer”. The entire option is shown as “Fit print range(s) to width/height”, followed by the current page numbers for width and height. If a value is left empty, the word “automatic” will occur. Example: “Fit print range(s) to width/height (Width: 2 page(s), Height: automatic)”. While adding this description, the representation of the old options will be changed too, to be more descriptive and consistent with the GUI elements (see string list below).

String list for tab page “Format – Page – Sheet”

Item	English	German	Comments
Changes in old existing controls (double or badly defined shortcuts)
Option button	~Left to right, then down		old: L~eft
Checkbox	Ch~arts		old: ~Charts
Checkbox	Zero ~values		old: val~ues
Option button		Von ~links nach rechts, dann nach unten	old: lin~ks
Checkbox		Erste ~Seitenzahl	old: Seiten~zahl
Checkbox		Zeilen- & Spalten~köpfe	old: Sp~altenköpfe
Checkbox		Z~eichenobjekte	old: Zeichenob~jekte
Checkbox		Null~werte	old: N~ullwerte
Changes in “Scale” section
Fixed text for list box	Scaling ~mode	Skalierungs~modus	
3 entries in “Scaling mode” list box	Reduce/enlarge printout Fit print range(s) to width/height Fit print range(s) on number of pages	Ausdruck verkleinern/vergrößern Druckbereich(e) auf Breite/Höhe anpassen Druckbereich(e) auf Seitenzahl anpassen	
Scaling spin field	~Scaling factor	Sk~alierungsfaktor	New fixed text
Width spin field	~Width in pages	Br~eite in Seiten	New fixed text
Height spin field	H~eight in pages	H~öhe in Seiten	New fixed text
Pages spin field	N~umber of pages	Seiten~anzahl	New fixed text

String list for tab page “Format – Page – Organizer”, list of contained page attributes

Figure 5: The “Organizer” tab page, showing the new option(highlighted)

Item	English	German	Comments
Representation of the new option, width and height are set	Fit print range(s) to width/height (Width: x page(s), Height: y page(s))	Druckbereich(e) auf Breite/Höhe anpassen (Breite: x Seite(n), Höhe: y Seite(n))	x and y are replaced by current width/height
Representation of the new option, width is automatic	Fit print range(s) to width/height (Width: automatic, Height: y page(s))	Druckbereich(e) auf Breite/Höhe anpassen (Breite: auto­matisch, Höhe: y Seite(n))	y is replaced by current height
Representation of the new option, height is automatic	Fit print range(s) to width/height (Width: x page(s), Height: automatic)	Druckbereich(e) auf Breite/Höhe anpassen (Breite: x Seite(n), Höhe: automatisch)	x is replaced by current width
Old representation of the “Reduce/enlarge printout” option	Reduce/enlarge printout: x%	Ausdruck verkleinern/vergrößern: x%	old text: “All to [%]: x%”
Old representation of the “Fit print range(s) on number of pages” option	Fit print range(s) on number of pages: x page(s)	Druckbereich(e) auf Seitenzahl anpassen: x Seite(n)	old text: “Max. no of pages: x”

Tab Order

The new list box will replace the old option buttons at the same place in the tab order. The next control in the tab order is (are) the currently visible spin field(s). In case of the new option “Fit print range(s) to width/height” the upper spin field (Width) precedes the lower (Height).

Key Board Shortcuts

See shortcuts in the string list above. Other global shortcuts will not be added.

Error Conditions

The spin fields will immediately correct values out of valid range (when focus leaves the field). If both Width and Height field are empty (Automatic state), the option “Reduce/enlarge printout“ with 100% is used.

Future Tasks

See chapter “Notes” below.

Legal Issues

None.

Notes

1)

EM: I'm confused by the label of the top section of this tab page “Page order”. I expect to be formatting my sheet. Nowhere does it say anything in the top part about page order for printing. I like the graphic preview, but since spreadsheets are megawide I don't understand how four of them could fit on one sheet of paper. Or is this the preview of the order in which the print ranges on my spreadsheet will be spit out of the printer? You see what I mean, this is not as intuitive as it could be.

DR: The entire dialog needs a review and redesign. But this will not be part of this specification, but will be a future task. The image visualizing the page order is indeed wrong. It should show 4 sheets of paper, all containing a part of a spreadsheet, instead of 1 sheet of paper with 4 spreadsheets.

2)

EM: I'm worried about the “right to left” direction for Left to right/CTL languages. (see the two options at the top of tab page) Have you considered this? Maybe we need to change the text to read as some other products have it “over, then down” etc. instead of explicitly saying “right” or “left”. Then the translation would be correct for all directions because “over” can be either way and the preview would show it.

DR: The page style does not know anything about the sheets using it. There may be a sheet set to left-to-right, and a sheet set to right-to-left, and both use the same page style. So the only way would be to choose a neutral text without the words “left” or “right”.

References

OpenOffice.org issue: http://www.openoffice.org/issues/show_bug.cgi?id=8868

PCD-ID: MSInteroperability-8

Calc Print Settings – Fit print range(s) to width/height

Page 7

http://specs.openoffice.org/calc/compatibility/fittopages.sxw

Calc Print Settings - Fit Printout to Width/Height

Daniel Rentz

2003-09-24T12:39:05

Matthias Müller-Prove