<?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="textsimpressguidepage_copyxml" indexer="include" status="PUBLISH">
<title id="tit" xml-lang="en-US">Copying Slides From Other Presentations</title>
<filename>/text/simpress/guide/page_copy.xhp</filename>
</topic>
<history>
<created date="2003-10-31T00:00:00">Sun Microsystems, Inc.</created>
<lastedited date="2006-04-18T14:16:06">converted from old format - fpe</lastedited>
</history>
</meta>
<body>
<bookmark xml-lang="en-US" branch="index" id="bm_id3146971"><bookmark_value>copying; slides</bookmark_value>
<bookmark_value>slides; copying between documents</bookmark_value>
<bookmark_value>pages; copying</bookmark_value>
<bookmark_value>inserting; slides from files</bookmark_value>
<bookmark_value>pasting;slides from other presentations</bookmark_value>
</bookmark><comment>mw added "pasting;"</comment>
<paragraph role="heading" id="hd_id3146971" xml-lang="en-US" level="1" l10n="U" oldref="1"><variable id="page_copy"><link href="text/simpress/guide/page_copy.xhp" name="Copying Slides From Other Presentations">Copying Slides From Other Presentations</link>
</variable></paragraph>
<paragraph role="paragraph" id="par_id3149378" xml-lang="en-US" l10n="U" oldref="7">You can insert slides from another presentation into the current presentation. You can also copy and paste slides between presentations.</paragraph>
<paragraph role="heading" id="hd_id3153418" xml-lang="en-US" level="3" l10n="U" oldref="8">To insert a slide from another presentation:</paragraph>
<list type="ordered">
<listitem>
<paragraph role="listitem" id="par_id3149018" xml-lang="en-US" l10n="U" oldref="3">Open a presentation, and choose <emph>View - Normal</emph>.</paragraph>
</listitem>
<listitem>
<paragraph role="listitem" id="par_id3154702" xml-lang="en-US" l10n="U" oldref="9">Choose <emph>Insert - File</emph>.</paragraph>
</listitem>
<listitem>
<paragraph role="listitem" id="par_id3159238" xml-lang="en-US" l10n="U" oldref="10">Locate the presentation file containing the slide that you want to insert, and click <emph>Insert</emph>.</paragraph>
</listitem>
<listitem>
<paragraph role="listitem" id="par_id3148837" xml-lang="en-US" l10n="U" oldref="4">Click the plus sign next to the icon for the presentation file, and then select the slide(s) that you want to insert.</paragraph>
</listitem>
<listitem>
<paragraph role="listitem" id="par_id3148869" xml-lang="en-US" l10n="U" oldref="11">Click <emph>OK</emph>.</paragraph>
</listitem>
</list>
<paragraph role="heading" id="hd_id3154651" xml-lang="en-US" level="3" l10n="U" oldref="12">To copy and paste slides between presentations:</paragraph>
<list type="ordered">
<listitem>
<paragraph role="listitem" id="par_id3153812" xml-lang="en-US" l10n="U" oldref="13">Open the presentations that you want to copy and paste between.</paragraph>
</listitem>
<listitem>
<paragraph role="listitem" id="par_id3153073" xml-lang="en-US" l10n="U" oldref="14">In the presentation containing the slide(s) that you want to copy, choose<emph> View - Slide Sorter</emph>.</paragraph>
</listitem>
<listitem>
<paragraph role="listitem" id="par_id3147401" xml-lang="en-US" l10n="U" oldref="5">Select the slide(s), and then choose<emph> Edit - Copy</emph>.</paragraph>
</listitem>
<listitem>
<paragraph role="listitem" id="par_id3147298" xml-lang="en-US" l10n="U" oldref="15">Change to the presentation where you want to paste the slide(s), and then choose <emph>View - Normal</emph>.</paragraph>
</listitem>
<listitem>
<paragraph role="listitem" id="par_id3156401" xml-lang="en-US" l10n="U" oldref="16">Select the slide that you want the copied slide to follow, and then choose <emph>Edit - Paste</emph>.</paragraph>
</listitem>
</list>
<embed href="text/shared/00/00000004.xhp#related"/>
<paragraph role="paragraph" id="par_id3150655" xml-lang="en-US" l10n="U" oldref="6"><link href="text/simpress/01/04110000.xhp" name="Insert - File">Insert - File</link></paragraph>
</body>
</helpdocument>
