Symbian3/SDK/Source/GUID-51C6E337-9E68-542A-B785-670417A55CEF.dita
author Dominic Pinkman <Dominic.Pinkman@Nokia.com>
Thu, 21 Jan 2010 18:18:20 +0000
changeset 0 89d6a7a84779
permissions -rw-r--r--
Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
89d6a7a84779 Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
     1
<?xml version="1.0" encoding="utf-8"?>
89d6a7a84779 Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
     2
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
89d6a7a84779 Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
     3
<!-- This component and the accompanying materials are made available under the terms of the License 
89d6a7a84779 Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
     4
"Eclipse Public License v1.0" which accompanies this distribution, 
89d6a7a84779 Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
     5
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
89d6a7a84779 Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
     6
<!-- Initial Contributors:
89d6a7a84779 Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
     7
    Nokia Corporation - initial contribution.
89d6a7a84779 Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
     8
Contributors: 
89d6a7a84779 Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
     9
-->
89d6a7a84779 Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
    10
<!DOCTYPE concept
89d6a7a84779 Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
    11
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
89d6a7a84779 Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385
Dominic Pinkman <Dominic.Pinkman@Nokia.com>
parents:
diff changeset
    12
<concept xml:lang="en" id="GUID-51C6E337-9E68-542A-B785-670417A55CEF"><title>Printing</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Printing is fully supported within the Symbian text model. It requires that documents be paginated, so that the page for each element of the document may be identified. A page region printer for printing multi-page documents is required. Then, there are various editing and preview requirements.</p> <section><title>Printing</title> <p>The print system specifies a page region printer interface using the <xref href="GUID-2C4DA17D-16ED-35C7-B936-1FF121C86FB2.dita"><apiname>MPageRegionPrinter</apiname></xref> class. Text views provides <xref href="GUID-7AB01170-2B13-3E3E-9B04-7F0EEEA36030.dita"><apiname>CTextPageRegionPrinter</apiname></xref> which implements this interface. This allows a large text object to be printed essentially by specifying a print setup and requesting the <codeph>CTextPageRegionPrinter</codeph> to start printing.</p> </section> <section><title>Pagination</title> <p>Printing a large document requires that it be split into pages. It is also necessary to be able to identify the pagination of a document for other purposes — for example, so that the user can know which page he or she is working on while editing the document, and so that fields containing page numbers can be maintained while editing.</p> <p>On the other hand, pagination is an expensive operation requiring that the entire document be laid out so that line heights and line breaks can be determined, and the document position associated with each page break can be determined.</p> <p>The <xref href="GUID-1FFB0E19-F0CB-39DC-9EE7-2F3C082FF0CA.dita"><apiname>CTextPaginator</apiname></xref> class is an active object which, acting like a separate non-pre-emptive thread of execution, performs pagination incrementally, without noticeably interrupting the process of handling user input. This class allows a document's pagination to be maintained roughly during periods of intense user activity, and then for the system to catch up when the user activity slows down or stops.</p> </section> <section><title>Selective printing</title> <p>Text objects are used in contexts where pagination is inappropriate. For instance, each cell in a spreadsheet may contain a text object. In this case, pagination is controlled by the application program, but text views may be used to determine the size of each object, and to draw each object during banded printing.</p> </section> <section><title>WYSIWYG mode</title> <p>As well as screen layout and printer layout, <xref href="GUID-FEE7C848-2E93-3848-A3DA-7EAA533615AF.dita"><apiname>CTextLayout</apiname></xref> supports a WYSIWYG layout mode so that the final appearance of the document on the printer can be judged in advance, even while editing.</p> <p>In screen layout mode, font specifications in the text object are mapped onto their nearest available screen font, and this screen font is used for both layout and display purposes.</p> <p>In printer layout mode, font specifications in the text object are mapped onto their nearest available font from the selected print setup, and this font is used for layout and display. For this purpose, printer drivers supply font metrics to be used by applications such as text layout. But they do not need to supply font bitmaps or outlines, since these are needed only by the printer.</p> <p>WYSIWYG mode is in between these two. Font specifications in the document are used to select the font metrics from the print setup, but a font from the screen’s font store. The printer font metrics are used to lay out the document, and the screen font is used to draw the view on the screen. This provides fully accurate layout while editing the document. The cost is slightly higher overheads for formatting, and some degradation in the aesthetic quality of the view — but the WYSIWYG mode has been carefully designed to optimize aesthetics, within the context of the WYSIWYG requirements.</p> </section> <section><title>Print preview</title> <p>Finally, text layout supports a printer preview display. This also uses printer metrics but, since on the one hand a print preview displays many pages and is therefore potentially expensive on memory, and on the other hand not all the features of a document can be seen anyway in print preview mode, the print preview mode takes steps to reduce unnecessary memory overhead from layout.</p> </section> </conbody></concept>