<?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="textshared0201110000xml" indexer="include" status="PUBLISH">
<title id="tit" xml-lang="en-US">Print File Directly</title>
<filename>/text/shared/02/01110000.xhp</filename>
</topic>
<history>
<created date="2003-10-31T00:00:00">Sun Microsystems, Inc.</created>
<lastedited date="2004-10-12T10:12:06">UFI: added note on non-default printer that opens a dialog;
dedr: reviewed</lastedited>
</history>
</meta>
<body>
<section id="drucken">
<bookmark xml-lang="en-US" branch="index" id="bm_id3153539"><bookmark_value>printing; directly</bookmark_value>
</bookmark>
<bookmark xml-lang="en-US" branch="hid/.uno:PrintDefault" id="bm_id2956606" localize="false"/><!-- HID added by script -->
<bookmark xml-lang="en-US" branch="hid/.uno:PrintDefault" id="bm_id3144436" localize="false"/>
<paragraph role="heading" id="hd_id3153539" xml-lang="en-US" level="1" l10n="U" oldref="1"><link href="text/shared/02/01110000.xhp" name="Print File Directly">Print File Directly</link></paragraph>
<paragraph role="paragraph" id="par_id3154398" xml-lang="en-US" l10n="U" oldref="2"><ahelp hid=".uno:PrintDefault">Click the <emph>Print File Directly</emph> icon to print the active document with the current default print settings.</ahelp> These can be found in the <emph>Printer Setup</emph> dialog, which you can call with the <link href="text/shared/01/01140000.xhp" name="Printer Settings"><emph>Printer Settings</emph></link> menu command.</paragraph>
</section>
<paragraph role="paragraph" id="par_id3147275" xml-lang="en-US" l10n="CHG" oldref="3"><switchinline select="appl"><caseinline select="WRITER">If you select text or a graphic and click the <emph>Print File Direct</emph> icon, you are prompted to print the selection or the document. 
</caseinline></switchinline></paragraph>
<embed href="text/shared/00/00000401.xhp#sydrucken"/>
<switch select="sys">
<case select="WIN">
<paragraph role="note" id="par_id9547105" xml-lang="en-US" l10n="NEW">If the current document uses a printer that is not the default printer for your operating system, the <emph>Print File Direct </emph>icon opens the <link href="text/shared/01/01130000.xhp"><emph>Print</emph></link> dialog.</paragraph>
</case>
<case select="UNIX">
<paragraph role="note" id="par_idN10679" xml-lang="en-US" l10n="NEW">If the current document uses a printer that is not the default printer that was specified in the <link href="text/shared/guide/spadmin.xhp">spadmin</link>, printer administration program, the <emph>Print File Direct </emph>icon opens the <link href="text/shared/01/01130000.xhp"><emph>Print</emph></link> dialog.</paragraph>
</case>
</switch>
</body>
</helpdocument>
