Author: kiwiwings
Date: Sun Dec  1 23:09:58 2019
New Revision: 1870695

URL: http://svn.apache.org/viewvc?rev=1870695&view=rev
Log:
add rendering info actually ...

Added:
    poi/site/publish/components/slideshow/ppt-wmf-emf-renderer.html

Added: poi/site/publish/components/slideshow/ppt-wmf-emf-renderer.html
URL: 
http://svn.apache.org/viewvc/poi/site/publish/components/slideshow/ppt-wmf-emf-renderer.html?rev=1870695&view=auto
==============================================================================
--- poi/site/publish/components/slideshow/ppt-wmf-emf-renderer.html (added)
+++ poi/site/publish/components/slideshow/ppt-wmf-emf-renderer.html Sun Dec  1 
23:09:58 2019
@@ -0,0 +1,668 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="Apache Forrest" name="Generator">
+<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-skin-name" content="pelt">
+<title>Rendering slideshows, WMF, EMF and EMF+</title>
+<link type="text/css" href="../../skin/basic.css" rel="stylesheet">
+<link media="screen" type="text/css" href="../../skin/screen.css" 
rel="stylesheet">
+<link media="print" type="text/css" href="../../skin/print.css" 
rel="stylesheet">
+<link type="text/css" href="../../skin/profile.css" rel="stylesheet">
+<script src="../../skin/getBlank.js" language="javascript" 
type="text/javascript"></script><script src="../../skin/getMenu.js" 
language="javascript" type="text/javascript"></script><script 
src="../../skin/fontsize.js" language="javascript" 
type="text/javascript"></script>
+<link rel="shortcut icon" href="../../images/favicon.ico">
+</head>
+<body onload="init()">
+<script type="text/javascript">ndeSetTextSize();</script>
+<div id="top">
+<!--+
+    |breadtrail
+    +-->
+<div class="breadtrail">
+<a href="https://www.apache.org";>Apache Software Foundation</a> &gt; <a 
href="https://poi.apache.org";>Apache POI</a><script 
src="../../skin/breadcrumbs.js" language="JavaScript" 
type="text/javascript"></script>
+</div>
+<!--+
+    |header
+    +-->
+<div class="header">
+<!--+
+    |start group logo
+    +-->
+<div class="grouplogo">
+<a href="https://www.apache.org";><img class="logoImage" alt="Apache Software 
Foundation" src="../../images/group-logo.png" title="The Apache Software 
Foundation is a cornerstone of the modern Open Source software ecosystem 
&ndash; supporting some of the most widely used and important software 
solutions powering today's Internet economy."></a>
+</div>
+<!--+
+    |end group logo
+    +-->
+<!--+
+    |start Project Logo
+    +-->
+<div class="projectlogo">
+<a href="https://poi.apache.org";><img class="logoImage" alt="Apache POI" 
src="../../images/project-header.png" title="Apache POI is well-known in the 
Java field as a library for reading and writing Microsoft Office file formats, 
such as Excel, PowerPoint, Word, Visio, Publisher and Outlook. It supports both 
the older (OLE2) and new (OOXML - Office Open XML) formats."></a>
+</div>
+<!--+
+    |end Project Logo
+    +-->
+<!--+
+    |start Search
+    +-->
+<div class="searchbox">
+<form action="http://www.google.com/search"; method="get" class="roundtopsmall">
+<input value="poi.apache.org" name="sitesearch" type="hidden"><input 
onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" 
id="query" type="text" value="Search the site with google">&nbsp; 
+                    <input name="Search" value="Search" type="submit">
+</form>
+</div>
+<!--+
+    |end search
+    +-->
+<!--+
+    |start Tabs
+    +-->
+<ul id="tabs">
+<li>
+<a class="unselected" href="../../index.html">Home</a>
+</li>
+<li>
+<a class="unselected" href="../../help/index.html">Help</a>
+</li>
+<li class="current">
+<a class="selected" href="../../components/index.html">Component APIs</a>
+</li>
+<li>
+<a class="unselected" href="../../devel/index.html">Getting Involved</a>
+</li>
+</ul>
+<!--+
+    |end Tabs
+    +-->
+</div>
+</div>
+<div id="main">
+<div id="publishedStrip">
+<!--+
+    |start Subtabs
+    +-->
+<div id="level2tabs"></div>
+<!--+
+    |end Endtabs
+    +-->
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+//  --></script>
+</div>
+<!--+
+    |breadtrail
+    +-->
+<div class="breadtrail">
+
+             &nbsp;
+           </div>
+<!--+
+    |start Menu, mainarea
+    +-->
+<!--+
+    |start Menu
+    +-->
+<div id="menu">
+<div onclick="SwitchMenu('menu_selected_1.1', '../../skin/')" 
id="menu_selected_1.1Title" class="menutitle" style="background-image: 
url('../../skin/images/chapter_open.gif');">Component APIs</div>
+<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: 
block;">
+<div class="menuitem">
+<a href="../../components/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../../apidocs/dev/index.html">Javadocs</a>
+</div>
+<div onclick="SwitchMenu('menu_1.1.3', '../../skin/')" id="menu_1.1.3Title" 
class="menutitle">Excel (HSSF/XSSF)</div>
+<div id="menu_1.1.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../components/spreadsheet/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../../components/spreadsheet/quick-guide.html">Quick Guide</a>
+</div>
+<div class="menuitem">
+<a href="../../components/spreadsheet/how-to.html">HOWTO</a>
+</div>
+<div class="menuitem">
+<a href="../../components/spreadsheet/converting.html">HSSF to SS 
Converting</a>
+</div>
+<div class="menuitem">
+<a href="../../components/spreadsheet/formula.html">Formula Support</a>
+</div>
+<div class="menuitem">
+<a href="../../components/spreadsheet/eval.html">Formula Evaluation</a>
+</div>
+<div class="menuitem">
+<a href="../../components/spreadsheet/eval-devguide.html">Eval Dev Guide</a>
+</div>
+<div class="menuitem">
+<a href="../../components/spreadsheet/examples.html">Examples</a>
+</div>
+<div class="menuitem">
+<a href="../../components/spreadsheet/use-case.html">Use Case</a>
+</div>
+<div class="menuitem">
+<a href="../../components/spreadsheet/diagrams.html">Pictorial Docs</a>
+</div>
+<div class="menuitem">
+<a href="../../components/spreadsheet/limitations.html">Limitations</a>
+</div>
+<div class="menuitem">
+<a href="../../components/spreadsheet/user-defined-functions.html">User 
Defined Functions</a>
+</div>
+<div class="menuitem">
+<a href="../../components/spreadsheet/excelant.html">ExcelAnt Tests</a>
+</div>
+<div class="menuitem">
+<a href="../../components/spreadsheet/hacking-hssf.html">Hacking HSSF</a>
+</div>
+<div class="menuitem">
+<a href="../../components/spreadsheet/record-generator.html">Record 
Generator</a>
+</div>
+<div class="menuitem">
+<a href="../../components/spreadsheet/chart.html">Charts</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_selected_1.1.4', '../../skin/')" 
id="menu_selected_1.1.4Title" class="menutitle" style="background-image: 
url('../../skin/images/chapter_open.gif');">PowerPoint (HSLF/XSLF)</div>
+<div id="menu_selected_1.1.4" class="selectedmenuitemgroup" style="display: 
block;">
+<div class="menuitem">
+<a href="../../components/slideshow/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../../components/slideshow/quick-guide.html">Quick Guide</a>
+</div>
+<div class="menuitem">
+<a href="../../components/slideshow/how-to-shapes.html">HSLF Cookbook</a>
+</div>
+<div class="menuitem">
+<a href="../../components/slideshow/xslf-cookbook.html">XSLF Cookbook</a>
+</div>
+<div class="menupage">
+<div class="menupagetitle">Render SL/WMF/EMF</div>
+</div>
+<div class="menuitem">
+<a href="../../components/slideshow/ppt-file-format.html">PPT File Format</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.5', '../../skin/')" id="menu_1.1.5Title" 
class="menutitle">Word (HWPF/XWPF)</div>
+<div id="menu_1.1.5" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../components/document/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../../components/document/quick-guide.html">HWPF Quick Guide</a>
+</div>
+<div class="menuitem">
+<a href="../../components/document/quick-guide-xwpf.html">XWPF Quick Guide</a>
+</div>
+<div class="menuitem">
+<a href="../../components/document/docoverview.html">HWPF Format</a>
+</div>
+<div class="menuitem">
+<a href="../../components/document/projectplan.html">HWPF Project plan</a>
+</div>
+</div>
+<div class="menuitem">
+<a href="../../components/hsmf/index.html">Outlook (HSMF)</a>
+</div>
+<div class="menuitem">
+<a href="../../components/diagram/index.html">Visio (HDGF+XDGF)</a>
+</div>
+<div onclick="SwitchMenu('menu_1.1.8', '../../skin/')" id="menu_1.1.8Title" 
class="menutitle">Publisher (HPBF)</div>
+<div id="menu_1.1.8" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../components/hpbf/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../../components/hpbf/file-format.html">File Format</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.9', '../../skin/')" id="menu_1.1.9Title" 
class="menutitle">OLE2 Filesystem (POIFS)</div>
+<div id="menu_1.1.9" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../components/poifs/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../../components/poifs/how-to.html">How To</a>
+</div>
+<div class="menuitem">
+<a href="../../components/poifs/embeded.html">Embedded Documents</a>
+</div>
+<div class="menuitem">
+<a href="../../components/poifs/fileformat.html">File System Documentation</a>
+</div>
+<div class="menuitem">
+<a href="../../components/poifs/usecases.html">Use Cases</a>
+</div>
+<div class="menuitem">
+<a href="../../components/poifs/design.html">Design</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.10', '../../skin/')" id="menu_1.1.10Title" 
class="menutitle">OLE2 Document Props (HPSF)</div>
+<div id="menu_1.1.10" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../components/hpsf/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../../components/hpsf/how-to.html">How To</a>
+</div>
+<div class="menuitem">
+<a href="../../components/hpsf/thumbnails.html">Thumbnails</a>
+</div>
+<div class="menuitem">
+<a href="../../components/hpsf/internals.html">Internals</a>
+</div>
+<div class="menuitem">
+<a href="../../components/hpsf/todo.html">To Do</a>
+</div>
+</div>
+<div class="menuitem">
+<a href="../../components/hmef/index.html">TNEF (HMEF) for winmail.dat</a>
+</div>
+<div class="menuitem">
+<a href="../../components/oxml4j/index.html">OpenXML4J (OOXML)</a>
+</div>
+<div class="menuitem">
+<a href="../../components/logging.html">Logging framework</a>
+</div>
+</div>
+<div id="credit"></div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt="" 
src="../../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<!--+
+  |alternative credits
+  +-->
+<div id="credit2">
+<a href="https://donate.apache.org/";><img border="0" title="Support Apache" 
alt="Support Apache - logo" src="../../images/support-asf.png" style="width: 
125px;height: 125px;"></a><a 
href="https://www.apache.org/foundation/press/kit/#poweredby";><img border="0" 
title="powered by POI" alt="powered by POI - logo" 
src="../../images/poweredby-poi-logo.png" style="width: 125px;height: 
125px;"></a>
+</div>
+</div>
+<!--+
+    |end Menu
+    +-->
+<!--+
+    |start content
+    +-->
+<div id="content">
+<h1>Rendering slideshows, WMF, EMF and EMF+</h1>
+<div id="front-matter"></div>
+        
+<a name="Rendering+slideshows%2C+WMF%2C+EMF+and+EMF%2B"></a>
+<h2 class="boxed">Rendering slideshows, WMF, EMF and EMF+</h2>
+<div class="section">
+<p>
+                For rendering slideshow (HSLF/XSLF), WMF, EMF and EMF+ 
pictures, POI provides an utility class
+                <a 
href="https://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xslf/util/PPTX2PNG.java?view=markup";>
+                    PPTX2PNG</a>:
+            </p>
+<div class="code">
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">Usage: PPTX2PNG [options] 
&lt;ppt or pptx file or 'stdin'</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">Options:</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    -scale &lt;float&gt;    
scale factor</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    -fixSide &lt;side&gt;   
specify side (long,short,width,height) to fix - use &lt;scale&gt; as amount of 
pixels</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    -slide &lt;integer&gt;  
1-based index of a slide to render</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    -format &lt;type&gt;    
png,gif,jpg (,null for testing)</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    -outdir &lt;dir&gt;     
output directory, defaults to origin of the ppt/pptx file</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    -outfile &lt;file&gt;   
output filename, defaults to "${basename}-${slideno}.${format}"</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    -outpat &lt;pattern&gt; 
output filename pattern, defaults to "${basename}-${slideno}.${format}"</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">                      
patterns: basename, slideno, format, ext</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    -dump &lt;file&gt;      
dump the annotated records to a file</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    -quiet            do 
not write to console (for normal processing)</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    -ignoreParse      
ignore parsing error and continue with the records read until the error</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    -extractEmbedded  
extract embedded parts</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+</div>
+</div>
+        
+<a name="Integrate+rendering+in+your+code"></a>
+<h2 class="boxed">Integrate rendering in your code</h2>
+<div class="section">
+<a name="%231+-+Use+PPTX2PNG+via+file+or+stdin"></a>
+<h3 class="boxed">#1 - Use PPTX2PNG via file or stdin</h3>
+<p>For file system access, you need to save your slideshow/WMF/EMF/EMF+ first 
to disc and then call <span class="codefrag">
+                    PPTX2PNG.main()
+                </span> with the corresponding parameters.
+                </p>
+<p>for stdin access, you need to redirect <span 
class="codefrag">System.in</span> before:
+                </p>
+<div class="code">
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">/* the file content 
*/</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">InputStream is = ...;</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">/* Save and set System.in 
*/</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">InputStream oldIn = 
System.in;</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">try {</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    System.setIn(is);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    String[] args = {</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">        "-format", "png", 
// png,gif,jpg or null for test</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">        "-outdir", new 
File("out/").getCanonicalPath(),</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">        "-outfile", 
"export.png",</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">        "-fixside", 
"long",</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">        "-scale", 
"800",</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">        
"-ignoreParse",</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">        "stdin"</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    };</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    
PPTX2PNG.main(args);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">} finally {</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    
System.setIn(oldIn);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">}</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+</div>
+<a name="%232+-+Render+WMF+%2F+EMF+%2F+EMF%2B+via+the+*Picture+classes"></a>
+<h3 class="boxed">#2 - Render WMF / EMF / EMF+ via the *Picture classes</h3>
+<div class="code">
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">File f = 
samples.getFile("santa.wmf");</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">try (FileInputStream fis = 
new FileInputStream(f)) {</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    // for WMF</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    HwmfPicture wmf = new 
HwmfPicture(fis);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    // for EMF / EMF+</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    HemfPicture emf = new 
HemfPicture(fis);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    Dimension dim = 
wmf.getSize();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    int width = 
Units.pointsToPixel(dim.getWidth());</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    // keep aspect ratio 
for height</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    int height = 
Units.pointsToPixel(dim.getHeight());</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    double max = 
Math.max(width, height);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    if (max &gt; 1500) 
{</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    width *= 
1500/max;</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    height *= 
1500/max;</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    }</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    BufferedImage bufImg = 
new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    Graphics2D g = 
bufImg.createGraphics();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, 
RenderingHints.VALUE_ANTIALIAS_ON);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    
g.setRenderingHint(RenderingHints.KEY_RENDERING, 
RenderingHints.VALUE_RENDER_QUALITY);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, 
RenderingHints.VALUE_INTERPOLATION_BICUBIC);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    
g.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, 
RenderingHints.VALUE_FRACTIONALMETRICS_ON);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    wmf.draw(g, new 
Rectangle2D.Double(0,0,width,height));</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    g.dispose();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    ImageIO.write(bufImg, 
"PNG", new File("bla.png"));</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">}</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+</div>
+<a name="%233+-+Render+slideshows+directly"></a>
+<h3 class="boxed">#3 - Render slideshows directly</h3>
+<div class="code">
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">File file = new 
File("example.pptx");</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">double scale = 1.5;</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">try (SlideShow&lt;?, ?&gt; 
ss = SlideShowFactory.create(file, null, true)) {</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    Dimension pgsize = 
ss.getPageSize();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    int width = (int) 
(pgsize.width * scale);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    int height = (int) 
(pgsize.height * scale);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    for (Slide&lt;?, ?&gt; 
slide : ss.getSlides()) {</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">        BufferedImage img = 
new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">        Graphics2D graphics 
= img.createGraphics();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">        // default 
rendering options</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">        
graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, 
RenderingHints.VALUE_ANTIALIAS_ON);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">        
graphics.setRenderingHint(RenderingHints.KEY_RENDERING, 
RenderingHints.VALUE_RENDER_QUALITY);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">        
graphics.setRenderingHint(RenderingHints.KEY_INTERPOLATION, 
RenderingHints.VALUE_INTERPOLATION_BICUBIC);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">        
graphics.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, 
RenderingHints.VALUE_FRACTIONALMETRICS_ON);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">        
graphics.setRenderingHint(Drawable.BUFFERED_IMAGE, new 
WeakReference&lt;&gt;(img));</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">        
graphics.scale(scale, scale);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">        // draw stuff</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">        
slide.draw(graphics);</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">        ImageIO.write(img, 
"PNG", new File("output.png"));</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">        
graphics.dispose();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">        img.flush();</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">    }</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody">}</span>
+</div>
+<div class="codeline">
+<span class="lineno"></span><span class="codebody"></span>
+</div>
+</div>
+</div>
+    
+</div>
+<!--+
+    |end content
+    +-->
+<div class="clearboth">&nbsp;</div>
+</div>
+<div id="footer">
+<!--+
+    |start bottomstrip
+    +-->
+<div class="lastmodified">
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+//  --></script>
+</div>
+<div class="copyright">
+        Copyright &copy;
+         2001-2019 <a href="https://www.apache.org/";>The Apache Software 
Foundation</a>
+</div>
+<div id="feedback">
+        Send feedback about the website to:
+    <a id="feedbackto" 
href="mailto:d...@poi.apache.org?subject=Feedback%C2%A0components/slideshow/ppt-wmf-emf-renderer.html";>d...@poi.apache.org</a>
+</div>
+<!--+
+    |end bottomstrip
+    +-->
+</div>
+</body>
+</html>



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org
For additional commands, e-mail: commits-h...@poi.apache.org

Reply via email to