diff --git a/source/distro/changelog.txt b/source/distro/changelog.txt
index d04164d..4ddc128 100644
--- a/source/distro/changelog.txt
+++ b/source/distro/changelog.txt
@@ -2,6 +2,9 @@ Changelog for Writer2LaTeX version 1.0 -> 1.2
---------- version 1.1.8 ----------
+[w2x] New option cover_image with values true and false (default). In EPUB export, if this option is set the true the very
+ first image found in the document is used as cover image
+
[w2x] New option image_split with values "none" or a percentage. In EPUB export, if image_size is "relative", an image
of width greater than or equal to this percentage is placed in a separate file as a full screen image.
This takes effect only if the aspect ratio is at least 3:4
diff --git a/source/distro/doc/user-manual.odt b/source/distro/doc/user-manual.odt
index af4a3f0..e239ad2 100644
Binary files a/source/distro/doc/user-manual.odt and b/source/distro/doc/user-manual.odt differ
diff --git a/source/java/org/openoffice/da/comp/writer2xhtml/EpubOptionsDialog.java b/source/java/org/openoffice/da/comp/writer2xhtml/EpubOptionsDialog.java
index 6ab1038..ff25339 100644
--- a/source/java/org/openoffice/da/comp/writer2xhtml/EpubOptionsDialog.java
+++ b/source/java/org/openoffice/da/comp/writer2xhtml/EpubOptionsDialog.java
@@ -20,7 +20,7 @@
*
* All Rights Reserved.
*
- * Version 1.2 (2011-06-16)
+ * Version 1.2 (2011-06-19)
*
*/
@@ -102,6 +102,7 @@ public class EpubOptionsDialog extends OptionsDialogBase {
loadListBoxOption(xProps, "PageBreakSplit");
loadCheckBoxOption(xProps, "UseImageSplit");
loadNumericOption(xProps, "ImageSplit");
+ loadCheckBoxOption(xProps, "CoverImage");
loadCheckBoxOption(xProps, "UseSplitAfter");
loadNumericOption(xProps, "SplitAfter");
@@ -175,6 +176,8 @@ public class EpubOptionsDialog extends OptionsDialogBase {
helper.put("image_split", "none");
}
}
+
+ saveCheckBoxOption(xProps, helper, "CoverImage", "cover_image");
boolean bUseSplitAfter = saveCheckBoxOption(xProps, "UseSplitAfter");
int nSplitAfter = saveNumericOption(xProps, "SplitAfter");
@@ -206,9 +209,6 @@ public class EpubOptionsDialog extends OptionsDialogBase {
else if (sMethod.equals("UseDefaultFontChange")) {
useDefaultFontChange();
}
- else if (sMethod.equals("ImageSizeChange")) {
- imageSizeChange();
- }
else if (sMethod.equals("EditMetadataClick")) {
editMetadataClick();
}
@@ -270,6 +270,8 @@ public class EpubOptionsDialog extends OptionsDialogBase {
setControlEnabled("ImageSplit",!isLocked("image_split") && bUseImageSplit);
setControlEnabled("ImageSplitPercentLabel",!isLocked("image_split") && bUseImageSplit);
+ setControlEnabled("CoverImage", !isLocked("cover_image"));
+
boolean bUseSplitAfter = getCheckBoxStateAsBoolean("UseSplitAfter");
setControlEnabled("UseSplitAfter",!isLocked("split_after"));
setControlEnabled("SplitAfterLabel",!isLocked("split_after") && bUseSplitAfter);
@@ -298,13 +300,6 @@ public class EpubOptionsDialog extends OptionsDialogBase {
}
}
- private void imageSizeChange() {
- if (!isLocked("image_split")) {
- setControlEnabled("UseImageSplit", getListBoxSelectedItem("ImageSize")==1);
- useImageSplitChange();
- }
- }
-
private void editMetadataClick() {
Object dialog;
try {
@@ -324,7 +319,7 @@ public class EpubOptionsDialog extends OptionsDialogBase {
private void useImageSplitChange() {
if (!isLocked("image_split")) {
- boolean bEnable = getCheckBoxStateAsBoolean("UseImageSplit") && (getListBoxSelectedItem("ImageSize")==1);
+ boolean bEnable = getCheckBoxStateAsBoolean("UseImageSplit");
setControlEnabled("ImageSplitLabel",bEnable);
setControlEnabled("ImageSplit",bEnable);
setControlEnabled("ImageSplitPercentLabel",bEnable);
diff --git a/source/java/writer2latex/api/ConverterFactory.java b/source/java/writer2latex/api/ConverterFactory.java
index 453d2de..ec62e41 100644
--- a/source/java/writer2latex/api/ConverterFactory.java
+++ b/source/java/writer2latex/api/ConverterFactory.java
@@ -20,7 +20,7 @@
*
* All Rights Reserved.
*
- * Version 1.2 (2011-06-16)
+ * Version 1.2 (2011-06-19)
*
*/
@@ -33,7 +33,7 @@ public class ConverterFactory {
// Version information
private static final String VERSION = "1.1.8";
- private static final String DATE = "2011-06-16";
+ private static final String DATE = "2011-06-19";
/** Return the Writer2LaTeX version in the form
* (major version).(minor version).(patch level)
diff --git a/source/java/writer2latex/api/ConverterResult.java b/source/java/writer2latex/api/ConverterResult.java
index af3b96e..e38af10 100644
--- a/source/java/writer2latex/api/ConverterResult.java
+++ b/source/java/writer2latex/api/ConverterResult.java
@@ -16,11 +16,11 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
- * Copyright: 2002-2010 by Henrik Just
+ * Copyright: 2002-2011 by Henrik Just
*
* All Rights Reserved.
*
- * Version 1.2 (2010-04-13)
+ * Version 1.2 (2011-06-19)
*
*/
@@ -105,6 +105,14 @@ public interface ConverterResult {
*/
public ContentEntry getBibliographyFile();
+ /** Get the entry which contains the cover image
+ *
+ * @return the entry or null if a cover image does not exist
+ */
+ public ContentEntry getCoverImageFile();
+
+
+
/** Write all files of the ConverterResult
to a directory.
* Subdirectories are created as required by the individual
* OutputFile
s.
diff --git a/source/java/writer2latex/base/ConverterResultImpl.java b/source/java/writer2latex/base/ConverterResultImpl.java
index 7cf218a..e55a519 100644
--- a/source/java/writer2latex/base/ConverterResultImpl.java
+++ b/source/java/writer2latex/base/ConverterResultImpl.java
@@ -16,11 +16,11 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
-* Copyright: 2002-2010 by Henrik Just
+* Copyright: 2002-2011 by Henrik Just
*
* All Rights Reserved.
*
-* Version 1.2 (2010-04-13)
+* Version 1.2 (2011-06-19)
*
*/
@@ -53,6 +53,7 @@ public class ConverterResultImpl implements ConverterResult {
private ContentEntry lotFile;
private ContentEntry indexFile;
private ContentEntry bibliographyFile;
+ private ContentEntry coverImageFile;
private MetaData metaData = null;
@@ -77,6 +78,7 @@ public class ConverterResultImpl implements ConverterResult {
lotFile = null;
indexFile = null;
bibliographyFile = null;
+ coverImageFile = null;
metaData = null;
nMasterCount = 0;
}
@@ -209,6 +211,18 @@ public class ConverterResultImpl implements ConverterResult {
return bibliographyFile;
}
+ /** Define the entry which contains the cover image
+ *
+ * @param entry the entry
+ */
+ public void setCoverImageFile(ContentEntry entry) {
+ coverImageFile = entry;
+ }
+
+ public ContentEntry getCoverImageFile() {
+ return coverImageFile;
+ }
+
/** Set the meta data of this ConverterResult
*
* @param metaData the meta data
diff --git a/source/java/writer2latex/office/OfficeReader.java b/source/java/writer2latex/office/OfficeReader.java
index 6757603..a5182ff 100644
--- a/source/java/writer2latex/office/OfficeReader.java
+++ b/source/java/writer2latex/office/OfficeReader.java
@@ -16,11 +16,11 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
- * Copyright: 2002-2010 by Henrik Just
+ * Copyright: 2002-2011 by Henrik Just
*
* All Rights Reserved.
*
- * Version 1.2 (2010-10-27)
+ * Version 1.2 (2011-06-16)
*
*/
@@ -308,6 +308,9 @@ public class OfficeReader {
// The main content element
private Element content = null;
+
+ // The first image in the document
+ private Element firstImage = null;
// Identify OASIS OpenDocument format
private boolean bOpenDocument = false;
@@ -705,6 +708,14 @@ public class OfficeReader {
public TableReader getTableReader(Element node) {
return new TableReader(this,node);
}
+
+ /** Get the very first image in this document, if any
+ *
+ * @return the first image, or null if no images exists
+ */
+ public Element getFirstImage() {
+ return firstImage;
+ }
/** Constructor; read a document */
public OfficeReader(OfficeDocument oooDoc, boolean bAllParagraphsAreSoft) {
@@ -1122,6 +1133,11 @@ public class OfficeReader {
}
}
// todo: other indexes
+ else if (firstImage==null && sName.equals(XMLString.DRAW_FRAME)) {
+ // This may be an image (note that a replacement image for an object is OK by this definition)
+ Element image = Misc.getChildByTagName(node, XMLString.DRAW_IMAGE);
+ if (image!=null) { firstImage=image; }
+ }
// Traverse the children
Node child = node.getFirstChild();
diff --git a/source/java/writer2latex/xhtml/Converter.java b/source/java/writer2latex/xhtml/Converter.java
index 4307c74..862042f 100644
--- a/source/java/writer2latex/xhtml/Converter.java
+++ b/source/java/writer2latex/xhtml/Converter.java
@@ -20,7 +20,7 @@
*
* All Rights Reserved.
*
- * Version 1.2 (2011-06-07)
+ * Version 1.2 (2011-06-19)
*
*/
@@ -217,6 +217,10 @@ public class Converter extends ConverterBase {
converterResult.setIndexFile(new ContentEntryImpl(l10n.get(L10n.INDEX),1,htmlDoc,sTarget));
nAlphabeticalIndex = nOutFileIndex;
}
+
+ protected void setCoverImageFile(String sTarget) {
+ converterResult.setCoverImageFile(new ContentEntryImpl("Cover image",0,htmlDoc,sTarget));
+ }
protected Element createElement(String s) { return htmlDOM.createElement(s); }
diff --git a/source/java/writer2latex/xhtml/DrawConverter.java b/source/java/writer2latex/xhtml/DrawConverter.java
index 4dab3c8..5a96d2a 100644
--- a/source/java/writer2latex/xhtml/DrawConverter.java
+++ b/source/java/writer2latex/xhtml/DrawConverter.java
@@ -20,7 +20,7 @@
*
* All Rights Reserved.
*
- * Version 1.2 (2011-06-16)
+ * Version 1.2 (2011-06-19)
*
*/
@@ -97,6 +97,7 @@ public class DrawConverter extends ConverterHelper {
private boolean bConvertToPx;
private int nImageSize;
private String sImageSplit;
+ private boolean bCoverImage;
// Frames in spreadsheet documents are collected here
private Vector frames = new Vector();
@@ -106,7 +107,7 @@ public class DrawConverter extends ConverterHelper {
// Large images (for full screen) in EPUB export are collected here
private Vector fullscreenFrames = new Vector();
// This flag determines whether to collect full screen images or insert them immediately
- private boolean bCollectFullscreenFrames = false;
+ private boolean bCollectFullscreenFrames = true;
public DrawConverter(OfficeReader ofr, XhtmlConfig config, Converter converter) {
super(ofr,config,converter);
@@ -122,8 +123,9 @@ public class DrawConverter extends ConverterHelper {
bConvertToPx = config.xhtmlConvertToPx();
nImageSize = config.imageSize();
sImageSplit = config.imageSplit();
+ bCoverImage = config.coverImage();
}
-
+
///////////////////////////////////////////////////////////////////////
// Complete Draw documents/presentations
@@ -230,20 +232,36 @@ public class DrawConverter extends ConverterHelper {
else return onode;
}
+ // Add cover image (the first image in the document is taken out of context)
+ public Element insertCoverImage(Element hnode) {
+ Element currentNode = hnode;
+ if (bCoverImage) {
+ Element cover = ofr.getFirstImage();
+ if (cover!=null) {
+ converter.setCoverImageFile(null);
+ bCollectFullscreenFrames = false;
+ handleDrawElement(cover,currentNode,null,FULL_SCREEN);
+ bCollectFullscreenFrames = true;
+ currentNode = getTextCv().doMaybeSplit(hnode, 0);
+ }
+ }
+ return currentNode;
+ }
+
// Flush all full screen images, returning the new document node
public Element flushFullscreenFrames(Element hnode) {
- Element currentFrame = hnode;
+ Element currentNode = hnode;
if (converter.isTopLevel() && !fullscreenFrames.isEmpty()) {
bCollectFullscreenFrames = false;
- currentFrame = getTextCv().doMaybeSplit(hnode, 0);
+ currentNode = getTextCv().doMaybeSplit(hnode, 0);
for (Element image : fullscreenFrames) {
- handleDrawElement(image,currentFrame,null,FULL_SCREEN);
- currentFrame = getTextCv().doMaybeSplit(hnode, 0);
+ handleDrawElement(image,currentNode,null,FULL_SCREEN);
+ currentNode = getTextCv().doMaybeSplit(hnode, 0);
}
fullscreenFrames.clear();
bCollectFullscreenFrames = true;
}
- return currentFrame;
+ return currentNode;
}
public void flushFrames(Element hnode) {
@@ -400,23 +418,28 @@ public class DrawConverter extends ConverterHelper {
private void handleDrawImage(Element onode, Element hnodeBlock, Element hnodeInline, int nMode) {
Element frame = getFrame(onode);
- // First check to see if we should treat this image as a "full screen" image
- // This is only supported for EPUB documents with relative image size
- // (Currently only images are handled like this, hence the code is here rather than in handleDrawElement)
- if (bCollectFullscreenFrames && converter.isOPS() && nImageSize==XhtmlConfig.RELATIVE && !"none".equals(sImageSplit)
- && converter.isTopLevel()) {
- StyleWithProperties style = ofr.getFrameStyle(frame.getAttribute(XMLString.DRAW_STYLE_NAME));
- String sWidth = getFrameWidth(frame, style);
- String sHeight = getFrameHeight(frame, style);
- // It is if the image width exceeds a certain percentage of the current text width and the height is
- // greater than 1.33*the width (recommended by Michel "Coolmicro")
- if (sWidth!=null && sHeight!=null &&
- Misc.sub(Misc.multiply("133%",sWidth), sHeight).startsWith("-") &&
- Misc.sub(Misc.multiply(sImageSplit,converter.getContentWidth()),
- Misc.multiply(sScale,Misc.truncateLength(sWidth))).startsWith("-")) {
- fullscreenFrames.add(onode);
+ // For EPUB document some images require special treatment: Cover image and full screen images
+ if (bCollectFullscreenFrames && converter.isOPS()) {
+ // First check whether this is the cover image
+ if (bCoverImage && onode==ofr.getFirstImage()) {
return;
}
+ // Next check to see if we should treat this image as a "full screen" image
+ // (Currently only images are handled like this, hence the code is here rather than in handleDrawElement)
+ else if (!"none".equals(sImageSplit) && converter.isTopLevel()) {
+ StyleWithProperties style = ofr.getFrameStyle(frame.getAttribute(XMLString.DRAW_STYLE_NAME));
+ String sWidth = getFrameWidth(frame, style);
+ String sHeight = getFrameHeight(frame, style);
+ // It is if the image width exceeds a certain percentage of the current text width and the height is
+ // greater than 1.33*the width (recommended by Michel "Coolmicro")
+ if (sWidth!=null && sHeight!=null &&
+ Misc.sub(Misc.multiply("133%",sWidth), sHeight).startsWith("-") &&
+ Misc.sub(Misc.multiply(sImageSplit,converter.getContentWidth()),
+ Misc.multiply(sScale,Misc.truncateLength(sWidth))).startsWith("-")) {
+ fullscreenFrames.add(onode);
+ return;
+ }
+ }
}
// Get the image from the ImageLoader
@@ -462,7 +485,7 @@ public class DrawConverter extends ConverterHelper {
StyleInfo info = new StyleInfo();
String sStyleName = Misc.getAttribute(frame, XMLString.DRAW_STYLE_NAME);
if (nMode!=FULL_SCREEN) { getFrameSc().applyStyle(sStyleName,info); }
- applyImageSize(frame,info.props,false);
+ applyImageSize(frame,info.props,nMode,false);
// Apply placement
applyPlacement(frame, hnodeBlock, hnodeInline, nMode, image, info);
@@ -513,7 +536,7 @@ public class DrawConverter extends ConverterHelper {
case INLINE:
break;
case ABSOLUTE:
- sContentWidth = applyImageSize(frame,info.props,false);
+ sContentWidth = applyImageSize(frame,info.props,nMode,false);
info.props.addValue("margin-left","auto");
info.props.addValue("margin-right","auto");
applyPosition(frame,info.props);
@@ -523,10 +546,10 @@ public class DrawConverter extends ConverterHelper {
info.props.addValue("margin-bottom","2px");
info.props.addValue("margin-left","auto");
info.props.addValue("margin-right","auto");
- sContentWidth = applyImageSize(frame,info.props,true);
+ sContentWidth = applyImageSize(frame,info.props,nMode,true);
break;
case FLOATING:
- sContentWidth = applyImageSize(frame,info.props,true);
+ sContentWidth = applyImageSize(frame,info.props,nMode,true);
StyleWithProperties style = ofr.getFrameStyle(sStyleName);
if (style!=null) {
String sPos = style.getProperty(XMLString.STYLE_HORIZONTAL_POS);
@@ -918,28 +941,25 @@ public class DrawConverter extends ConverterHelper {
// TODO: For absolute placement, only absolute size makes sense
// TODO: How to handle NONE in case of text boxes? (currently using browser default, usually 100% width)
- private String applyImageSize(Element node, CSVList props, boolean bOnlyWidth) {
- if (bCollectFullscreenFrames) { // Normal image
- switch (nImageSize) {
- case XhtmlConfig.ABSOLUTE:
- return applySize(node, props, bOnlyWidth);
- case XhtmlConfig.RELATIVE:
+ private String applyImageSize(Element node, CSVList props, int nMode, boolean bOnlyWidth) {
+ switch (nImageSize) {
+ case XhtmlConfig.ABSOLUTE:
+ return applySize(node, props, bOnlyWidth);
+ case XhtmlConfig.RELATIVE:
+ if (nMode==FULL_SCREEN) {
+ props.addValue("max-width","100%");
+ props.addValue("height","100%");
+ }
+ else {
String sWidth = getFrameWidth(node, ofr.getFrameStyle(node.getAttribute(XMLString.DRAW_STYLE_NAME)));
if (sWidth!=null) {
props.addValue("width", Misc.divide(Misc.multiply(sScale,Misc.truncateLength(sWidth)),converter.getContentWidth()));
}
return sWidth;
- case XhtmlConfig.NONE:
- // Nothing to do :-)
- return getFrameWidth(node, ofr.getFrameStyle(node.getAttribute(XMLString.DRAW_STYLE_NAME)));
}
- }
- else { // Full screen image
- props.addValue("max-width","100%");
- props.addValue("height","100%");
- props.addValue("display","block");
- props.addValue("margin-left","auto");
- props.addValue("margin-right","auto");
+ case XhtmlConfig.NONE:
+ // Nothing to do :-)
+ return getFrameWidth(node, ofr.getFrameStyle(node.getAttribute(XMLString.DRAW_STYLE_NAME)));
}
return null;
}
@@ -990,7 +1010,10 @@ public class DrawConverter extends ConverterHelper {
break;
case FULL_SCREEN:
if (hnodeBlock!=null) {
- hnodeBlock.appendChild(object);
+ Element div = converter.createElement("div");
+ div.setAttribute("style", "text-align:center");
+ hnodeBlock.appendChild(div);
+ div.appendChild(object);
}
break;
case FLOATING:
diff --git a/source/java/writer2latex/xhtml/TextConverter.java b/source/java/writer2latex/xhtml/TextConverter.java
index 2a5fd51..21a03f2 100644
--- a/source/java/writer2latex/xhtml/TextConverter.java
+++ b/source/java/writer2latex/xhtml/TextConverter.java
@@ -189,6 +189,9 @@ public class TextConverter extends ConverterHelper {
hnode = form;
}
}
+
+ // Add cover image
+ hnode = getDrawCv().insertCoverImage(hnode);
// Convert content
hnode = (Element)traverseBlockText(onode,hnode);
diff --git a/source/java/writer2latex/xhtml/XhtmlConfig.java b/source/java/writer2latex/xhtml/XhtmlConfig.java
index 5f591ae..4ffac84 100644
--- a/source/java/writer2latex/xhtml/XhtmlConfig.java
+++ b/source/java/writer2latex/xhtml/XhtmlConfig.java
@@ -41,7 +41,7 @@ import writer2latex.util.Misc;
public class XhtmlConfig extends writer2latex.base.ConfigBase {
// Implement configuration methods
- protected int getOptionCount() { return 55; }
+ protected int getOptionCount() { return 56; }
protected String getDefaultConfigPath() { return "/writer2latex/xhtml/config/"; }
// Override setOption: To be backwards compatible, we must accept options
@@ -136,19 +136,20 @@ public class XhtmlConfig extends writer2latex.base.ConfigBase {
private static final int PAGE_BREAK_SPLIT = 39;
private static final int SPLIT_AFTER = 40;
private static final int IMAGE_SPLIT = 41;
- private static final int CALC_SPLIT = 42;
- private static final int DISPLAY_HIDDEN_SHEETS = 43;
- private static final int DISPLAY_HIDDEN_ROWS_COLS = 44;
- private static final int DISPLAY_FILTERED_ROWS_COLS = 45;
- private static final int APPLY_PRINT_RANGES = 46;
- private static final int USE_TITLE_AS_HEADING = 47;
- private static final int USE_SHEET_NAMES_AS_HEADINGS = 48;
- private static final int XSLT_PATH = 49;
- private static final int SAVE_IMAGES_IN_SUBDIR = 50;
- private static final int UPLINK = 51;
- private static final int DIRECTORY_ICON = 52;
- private static final int DOCUMENT_ICON = 53;
- private static final int ZEN_HACK = 54; // temporary hack for ePub Zen Garden styles
+ private static final int COVER_IMAGE = 42;
+ private static final int CALC_SPLIT = 43;
+ private static final int DISPLAY_HIDDEN_SHEETS = 44;
+ private static final int DISPLAY_HIDDEN_ROWS_COLS = 45;
+ private static final int DISPLAY_FILTERED_ROWS_COLS = 46;
+ private static final int APPLY_PRINT_RANGES = 47;
+ private static final int USE_TITLE_AS_HEADING = 48;
+ private static final int USE_SHEET_NAMES_AS_HEADINGS = 49;
+ private static final int XSLT_PATH = 50;
+ private static final int SAVE_IMAGES_IN_SUBDIR = 51;
+ private static final int UPLINK = 52;
+ private static final int DIRECTORY_ICON = 53;
+ private static final int DOCUMENT_ICON = 54;
+ private static final int ZEN_HACK = 55; // temporary hack for ePub Zen Garden styles
protected ComplexOption xheading = addComplexOption("heading-map");
protected ComplexOption xpar = addComplexOption("paragraph-map");
@@ -258,6 +259,7 @@ public class XhtmlConfig extends writer2latex.base.ConfigBase {
}
};
options[IMAGE_SPLIT] = new Option("image_split","none");
+ options[COVER_IMAGE] = new BooleanOption("cover_image","false");
options[CALC_SPLIT] = new BooleanOption("calc_split","false");
options[DISPLAY_HIDDEN_SHEETS] = new BooleanOption("display_hidden_sheets", "false");
options[DISPLAY_HIDDEN_ROWS_COLS] = new BooleanOption("display_hidden_rows_cols","false");
@@ -383,6 +385,7 @@ public class XhtmlConfig extends writer2latex.base.ConfigBase {
public int pageBreakSplit() { return ((IntegerOption) options[PAGE_BREAK_SPLIT]).getValue(); }
public int splitAfter() { return ((IntegerOption) options[SPLIT_AFTER]).getValue(); }
public String imageSplit() { return options[IMAGE_SPLIT].getString(); }
+ public boolean coverImage() { return ((BooleanOption) options[COVER_IMAGE]).getValue(); }
public boolean xhtmlCalcSplit() { return ((BooleanOption) options[CALC_SPLIT]).getValue(); }
public boolean xhtmlDisplayHiddenSheets() { return ((BooleanOption) options[DISPLAY_HIDDEN_SHEETS]).getValue(); }
public boolean displayHiddenRowsCols() { return ((BooleanOption) options[DISPLAY_HIDDEN_ROWS_COLS]).getValue(); }
diff --git a/source/oxt/writer2xhtml/Options.xcs b/source/oxt/writer2xhtml/Options.xcs
index b26acfc..b290684 100644
--- a/source/oxt/writer2xhtml/Options.xcs
+++ b/source/oxt/writer2xhtml/Options.xcs
@@ -75,6 +75,7 @@
+
diff --git a/source/oxt/writer2xhtml/Options.xcu b/source/oxt/writer2xhtml/Options.xcu
index 2c6b55f..9dbc3c5 100644
--- a/source/oxt/writer2xhtml/Options.xcu
+++ b/source/oxt/writer2xhtml/Options.xcu
@@ -115,6 +115,9 @@
30
+
+ false
+
true
diff --git a/source/oxt/writer2xhtml/W2XDialogs2/EpubMetadata.xdl b/source/oxt/writer2xhtml/W2XDialogs2/EpubMetadata.xdl
index 06b562e..d4f13ec 100644
--- a/source/oxt/writer2xhtml/W2XDialogs2/EpubMetadata.xdl
+++ b/source/oxt/writer2xhtml/W2XDialogs2/EpubMetadata.xdl
@@ -76,7 +76,7 @@
-
+
\ No newline at end of file
diff --git a/source/oxt/writer2xhtml/W2XDialogs2/EpubOptions.xdl b/source/oxt/writer2xhtml/W2XDialogs2/EpubOptions.xdl
index 57f0ba5..61e6e89 100755
--- a/source/oxt/writer2xhtml/W2XDialogs2/EpubOptions.xdl
+++ b/source/oxt/writer2xhtml/W2XDialogs2/EpubOptions.xdl
@@ -1,6 +1,6 @@
-
+
@@ -16,15 +16,15 @@
-
+
-
+
-
+
-
+
@@ -36,23 +36,23 @@
-
-
-
-
+
+
+
+
-
+
-
+
-
+
-
+
@@ -61,14 +61,14 @@
-
-
+
+
-
-
-
-
+
+
+
+
@@ -82,25 +82,25 @@
-
-
-
+
+
+
-
+
-
-
+
-
-
-
+
+
+
+
\ No newline at end of file
diff --git a/source/oxt/writer2xhtml/help/en/org.openoffice.da.writer2xhtml.oxt/epub_export.xhp b/source/oxt/writer2xhtml/help/en/org.openoffice.da.writer2xhtml.oxt/epub_export.xhp
index 6a628fb..43b1b65 100644
--- a/source/oxt/writer2xhtml/help/en/org.openoffice.da.writer2xhtml.oxt/epub_export.xhp
+++ b/source/oxt/writer2xhtml/help/en/org.openoffice.da.writer2xhtml.oxt/epub_export.xhp
@@ -139,15 +139,19 @@
Export optional document properties
If you select this option, all the document properties (File – Properties)
are exported, otherwise only the title is exported.
- Click Edit to open the dialog to edit the document properties.
- Document division
- Technically an EPUB document consists of several document parts in XHTML format.
- In principle you can have only one part, but this is not recommended. For performance reasons and because some EPUB readers have
- a limitation on the size of the individual files in the doucment you should select one or more
- of the following options to split the document.
-
+
+ Clik this to edit the document properties, e.g. author, title, date
+ Edit document properties
+ Click this button to open the dialog to edit the document properties such as
+ title, author or date.
+ Document division (page breaks)
+ These settings lets you insert page breaks at various places in the document.
+ It is recommended always to use one or more of these settings. One reason for this is that it enhances the readability of
+ your document. Another reason is technical: Page breaks splits the splits the internal structure into smaller parts.
+ This improves performance, and also some EPUB readers have a limitation on the size of the individual parts of the
+ doucment.
Select the heading level at which spliting should occur, or "None" if you do not want to split at headings
@@ -185,8 +189,9 @@
Use full screen for large images
Select this option to show large images on full screen rather than embedded in the text
- Select this option to show large images on full screen rather than embedded
- in the text.
+ Images will normally be exported as an integrated part of the text. As EPUB readers
+ may have a relatively small screen, this may not be optimal for large images.
+ Select this option to split the document at large images, which means that they will be displayed on full screen.
Minimum width
@@ -194,6 +199,13 @@
Enter the minimum width for a large image. Only images with at least this relative width
and an aspect ratio of 3:4 or higher will be export as full screen images.
+
+ Use first image as cover image
+ Check this to use the first image found in the document as cover image
+ An EPUB document often include a cover image in analogy with the cover of a book.
+ Check this to use the first image found in the document as cover image. The position
+ of the image in the original document does not matter.
+
Automatic split of long documents
Check this to enable automatic split of long documents based on the number of characters