<?xml version="1.0" encoding="UTF-8"?>


<!--***********************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 ***********************************************************-->




	
<helpdocument version="1.0">
<meta>
<topic id="textswriter0103130000xml" indexer="include" status="PUBLISH">
<title id="tit" xml-lang="en-US">Print Layout</title>
<filename>/text/swriter/01/03130000.xhp</filename>
</topic>
<history>
<created date="2003-10-31T00:00:00">Sun Microsystems, Inc.</created>
<lastedited date="2005-10-31T14:41:33">converted from old format - fpe</lastedited>
</history>
</meta>
<body>
<section id="drucklayout">
<bookmark xml-lang="en-US" branch="hid/.uno:PrintLayout" id="bm_id8907078" localize="false"/>
<bookmark xml-lang="en-US" branch="hid/.uno:PrintLayout" id="bm_id3154229" localize="false"/>
<paragraph role="heading" id="hd_id3150018" xml-lang="en-US" level="1" l10n="U" oldref="1"><link href="text/swriter/01/03130000.xhp" name="Print Layout">Print Layout</link></paragraph>
<paragraph role="paragraph" id="par_id3145249" xml-lang="en-US" l10n="CHG" oldref="2"><ahelp hid=".uno:PrintLayout">Displays how the document will look when you print it.</ahelp></paragraph>
</section>
<section id="howtoget">
  <embed href="text/swriter/00/00000403.xhp#drucklayout"/>
</section>
</body>
</helpdocument>
