From a3a6b0befcb4c603a58a52b2ecb70aaf83599423 Mon Sep 17 00:00:00 2001 From: henrikjust Date: Mon, 22 Nov 2010 18:51:18 +0000 Subject: [PATCH] w2x hidden text and split on page breaks + some w2l bugfixes git-svn-id: svn://svn.code.sf.net/p/writer2latex/code/trunk@77 f0f2a975-2e09-46c8-9428-3b39399b9f3c --- build.xml | 4 +- source/distro/Readme.txt | 8 +- source/distro/changelog.txt | 18 +++ source/distro/doc/user-manual.odt | Bin 48543 -> 48701 bytes .../writer2latex/ConfigurationDialog.java | 6 +- .../writer2latex/api/ConverterFactory.java | 6 +- .../writer2latex/latex/ConverterPalette.java | 4 +- .../writer2latex/latex/NoteConverter.java | 8 +- .../writer2latex/latex/i18n/XeTeXI18n.java | 38 +++--- .../java/writer2latex/office/OfficeStyle.java | 4 + source/java/writer2latex/xhtml/Converter.java | 6 +- .../writer2latex/xhtml/TextConverter.java | 110 ++++++++++++++---- .../java/writer2latex/xhtml/XhtmlConfig.java | 70 +++++++---- source/oxt/writer2latex/description.xml | 2 +- source/oxt/writer2xhtml/description.xml | 2 +- source/oxt/writer4latex/description.xml | 2 +- .../oxt/xhtml-config-sample/description.xml | 2 +- source/readme-source.txt | 6 +- 18 files changed, 202 insertions(+), 94 deletions(-) diff --git a/build.xml b/build.xml index abb93e4..434657d 100644 --- a/build.xml +++ b/build.xml @@ -2,7 +2,7 @@ ############################################################################ # This is the Ant build file for writer2latex # Original: Sep 2004 (mgn) - # version 1.2 (2010-10-01) + # version 1.2 (2010-11-20) ############################################################################ --> @@ -35,7 +35,7 @@ - + diff --git a/source/distro/Readme.txt b/source/distro/Readme.txt index 90d89b3..50b64c6 100644 --- a/source/distro/Readme.txt +++ b/source/distro/Readme.txt @@ -1,7 +1,7 @@ -Writer2LaTeX version 1.1.5 (development release) -================================================ +Writer2LaTeX version 1.1.9 (beta test release) +============================================== -This is the distribution of Writer2LaTeX version 1.1.5 +This is the distribution of Writer2LaTeX version 1.1.9 Latest version can be found at the web site http://writer2latex.sourceforge.net @@ -14,5 +14,5 @@ Bugs and feature requests should be reported to henrikjust (at) openoffice.org -October 2010 +November 2010 Henrik Just diff --git a/source/distro/changelog.txt b/source/distro/changelog.txt index 65fb169..30e24c1 100644 --- a/source/distro/changelog.txt +++ b/source/distro/changelog.txt @@ -1,5 +1,23 @@ Changelog for Writer2LaTeX version 1.0 -> 1.2 +---------- version 1.1.9 ---------- + +[w2x] New option page_break_split with values none (default), styles (split on page breaks defined by a style), + explicit (split on all explicit page breaks, manual or defined by a style), all (split on all page breaks, including + soft page breaks (will not split until current paragraph, table or list is finished)) + +[w2x] New option display_hidden_text (default false) to export sections, paragraphs and text marked as hidden + +[w2l] Bugfix: Export footnote configuration before other styles (otherwise some definitions may be lost) + +[w2l] XeTeX bugfix: AMS packages should be loaded before fontspec + +[w2l] XeTeX bugfix: Corrected translation of apostrophe (') and tilde (~) and removed unnecessary translations + +[w2l] Bugfix: Formatting attribute map for italic created with the configuration dialog did not work + +[w2l] Bugfix: Character formatting in footnotes and endnotes was sometimes lost + ---------- version 1.1.5 ---------- [w2x] Automatic split of files in EPUB export after 150000 characters (to avoid problems with some EPUB readers diff --git a/source/distro/doc/user-manual.odt b/source/distro/doc/user-manual.odt index 2c82d9c2e3ff15690cd6aab83c148ab872e2a2dd..3022c3bdd7f2e3d10035288a3a1921481a273618 100644 GIT binary patch delta 42849 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

%%KR&qUY~p^WBQ^{Odw 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 E1%5<*EdT%j delta 42753 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 diff --git a/source/java/org/openoffice/da/comp/writer2latex/ConfigurationDialog.java b/source/java/org/openoffice/da/comp/writer2latex/ConfigurationDialog.java index 8de1928..1e4f888 100644 --- a/source/java/org/openoffice/da/comp/writer2latex/ConfigurationDialog.java +++ b/source/java/org/openoffice/da/comp/writer2latex/ConfigurationDialog.java @@ -16,11 +16,11 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA * - * Copyright: 2002-2009 by Henrik Just + * Copyright: 2002-2010 by Henrik Just * * All Rights Reserved. * - * Version 1.2 (2009-11-19) + * Version 1.2 (2010-11-21) * */ @@ -73,7 +73,7 @@ public final class ConfigurationDialog extends WeakBase private String[] sFamilyNames = { "text", "paragraph", "paragraph-block", "list", "listitem" }; private String[] sOOoFamilyNames = { "CharacterStyles", "ParagraphStyles", "ParagraphStyles", "NumberingStyles", "NumberingStyles" }; - private String[] sAttributeNames = { "bold", "italics", "small-caps", "superscript", "subscipt" }; + private String[] sAttributeNames = { "bold", "italic", "small-caps", "superscript", "subscipt" }; private XComponentContext xContext; private XSimpleFileAccess2 sfa2; diff --git a/source/java/writer2latex/api/ConverterFactory.java b/source/java/writer2latex/api/ConverterFactory.java index e2590ad..ad54074 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 (2010-10-30) + * Version 1.2 (2010-11-21) * */ @@ -32,8 +32,8 @@ package writer2latex.api; public class ConverterFactory { // Version information - private static final String VERSION = "1.1.5"; - private static final String DATE = "2010-10-30"; + private static final String VERSION = "1.1.9"; + private static final String DATE = "2010-11-22"; /** Return the Writer2LaTeX version in the form * (major version).(minor version).(patch level)
diff --git a/source/java/writer2latex/latex/ConverterPalette.java b/source/java/writer2latex/latex/ConverterPalette.java index 6086654..668a16e 100644 --- a/source/java/writer2latex/latex/ConverterPalette.java +++ b/source/java/writer2latex/latex/ConverterPalette.java @@ -20,7 +20,7 @@ * * All Rights Reserved. * - * Version 1.2 (2010-03-28) + * Version 1.2 (2010-11-21) * */ @@ -206,6 +206,7 @@ public final class ConverterPalette extends ConverterBase { // Add declarations from our helpers i18n.appendDeclarations(packages,declarations); colorCv.appendDeclarations(packages,declarations); + noteCv.appendDeclarations(packages,declarations); charSc.appendDeclarations(packages,declarations); headingCv.appendDeclarations(packages,declarations); parCv.appendDeclarations(packages,declarations); @@ -216,7 +217,6 @@ public final class ConverterPalette extends ConverterBase { bibCv.appendDeclarations(packages,declarations); sectionCv.appendDeclarations(packages,declarations); tableCv.appendDeclarations(packages,declarations); - noteCv.appendDeclarations(packages,declarations); captionCv.appendDeclarations(packages,declarations); inlineCv.appendDeclarations(packages,declarations); fieldCv.appendDeclarations(packages,declarations); diff --git a/source/java/writer2latex/latex/NoteConverter.java b/source/java/writer2latex/latex/NoteConverter.java index c5260d6..b885b11 100644 --- a/source/java/writer2latex/latex/NoteConverter.java +++ b/source/java/writer2latex/latex/NoteConverter.java @@ -16,14 +16,16 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA * - * Copyright: 2002-2008 by Henrik Just + * Copyright: 2002-2010 by Henrik Just * * All Rights Reserved. * - * Version 1.0 (2008-11-23) + * Version 1.2 (2010-11-21) * */ +// TODO: Get the styles for footnotes and endnotes and use Context.resetFormattingFromStyle... + package writer2latex.latex; import java.util.LinkedList; @@ -276,6 +278,8 @@ public class NoteConverter extends ConverterHelper { } if (nodeName.equals(XMLString.TEXT_P)) { + StyleWithProperties style = ofr.getParStyle(node.getAttribute(XMLString.TEXT_STYLE_NAME)); + oc.resetFormattingFromStyle(style); palette.getInlineCv().traverseInlineText(child,ldp,oc); if (i' : buf.append("\\textgreater{}"); break; - case '\\' : buf.append("\\textbackslash{}"); break; - case '\u005e' : buf.append("\\^{}"); break; - case '_' : buf.append("\\_"); break; - case '\u0060' : buf.append("\\textasciigrave{}"); break; - case '{' : buf.append("\\{"); break; - case '|' : buf.append("\\textbar{}"); break; - case '}' : buf.append("\\}"); break; - case '~' : buf.append("\\~{}"); break; + case '#' : buf.append("\\#"); break; // Parameter + case '$' : buf.append("\\$"); break; // Math shift + case '%' : buf.append("\\%"); break; // Comment + case '&' : buf.append("\\&"); break; // Alignment tab + case '\\' : buf.append("\\textbackslash{}"); break; // Escape + case '^' : buf.append("\\^{}"); break; // Superscript + case '_' : buf.append("\\_"); break; // Subscript + case '{' : buf.append("\\{"); break; // Begin group + case '}' : buf.append("\\}"); break; // End group + case '~' : buf.append("\\textasciitilde{}"); break; // Active (non-breaking space) + case '\u00A0' : buf.append('~'); break; // Make non-breaking spaces visible default: buf.append(c); } } diff --git a/source/java/writer2latex/office/OfficeStyle.java b/source/java/writer2latex/office/OfficeStyle.java index e613f65..af30da1 100644 --- a/source/java/writer2latex/office/OfficeStyle.java +++ b/source/java/writer2latex/office/OfficeStyle.java @@ -50,6 +50,10 @@ public abstract class OfficeStyle { public String getDisplayName() { return sDisplayName; } public String getParentName() { return sParentName; } + + public OfficeStyle getParentStyle() { + return family.getStyle(sParentName); + } public String getListStyleName() { return sListStyleName; } diff --git a/source/java/writer2latex/xhtml/Converter.java b/source/java/writer2latex/xhtml/Converter.java index bcacdf5..623adc9 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 (2010-10-30) + * Version 1.2 (2010-11-22) * */ @@ -182,7 +182,7 @@ public class Converter extends ConverterBase { outFiles = new Vector(); nOutFileIndex = -1; - bNeedHeaderFooter = !bOPS && (ofr.isSpreadsheet() || ofr.isPresentation() || config.getXhtmlSplitLevel()>0 || config.getXhtmlUplink().length()>0); + bNeedHeaderFooter = !bOPS && (ofr.isSpreadsheet() || ofr.isPresentation() || config.getXhtmlSplitLevel()>0 || config.pageBreakSplit()>XhtmlConfig.NONE || config.getXhtmlUplink().length()>0); l10n = new L10n(); @@ -306,7 +306,7 @@ public class Converter extends ConverterBase { if (footer!=null) { footer.appendChild(footerPar); } } } - else if (ofr.isPresentation() || config.getXhtmlSplitLevel()>0) { + else if (nOutFileIndex>0) { for (int i=0; i<=nOutFileIndex; i++) { XhtmlDocument doc = outFiles.get(i); Document dom = doc.getContentDOM(); diff --git a/source/java/writer2latex/xhtml/TextConverter.java b/source/java/writer2latex/xhtml/TextConverter.java index 240493e..2590b1b 100644 --- a/source/java/writer2latex/xhtml/TextConverter.java +++ b/source/java/writer2latex/xhtml/TextConverter.java @@ -20,7 +20,7 @@ * * All Rights Reserved. * - * Version 1.2 (2010-10-30) + * Version 1.2 (2010-11-22) * */ @@ -41,6 +41,7 @@ import org.w3c.dom.Element; import writer2latex.util.Misc; import writer2latex.office.FontDeclaration; +import writer2latex.office.OfficeStyle; import writer2latex.office.XMLString; import writer2latex.office.IndexMark; import writer2latex.office.ListCounter; @@ -83,9 +84,12 @@ public class TextConverter extends ConverterHelper { // In any case very large files could be a performance problem, hence we do automatic splitting // after this number of characters. TODO: Make configurable. private static final int EPUB_CHARACTER_COUNT_TRESHOLD = 150000; - int nSplit = 0; // The outline level at which to split files (0=no split) - int nRepeatLevels = 5; // The number of levels to repeat when splitting (0=no repeat) - private int nLastSplitLevel = 1; // The outline level at which the last split occured + private int nPageBreakSplit = XhtmlConfig.NONE; // Should we split at page breaks? + // TODO: Collect soft page breaks between table rows + private boolean bPendingPageBreak = false; // We have encountered a page break which should be inserted asap + private int nSplit = 0; // The outline level at which to split files (0=no split) + private int nRepeatLevels = 5; // The number of levels to repeat when splitting (0=no repeat) + private int nLastSplitLevel = 1; // The outline level at which the last split occurred private int nDontSplitLevel = 0; // if > 0 splitting is forbidden boolean bAfterHeading=false; // last element was a top level heading protected Stack sections = new Stack(); // stack of nested sections @@ -134,9 +138,13 @@ public class TextConverter extends ConverterHelper { // When generating toc, a few things should be done differently private boolean bInToc = false; + + // Display hidden text? + private boolean bDisplayHiddenText = false; public TextConverter(OfficeReader ofr, XhtmlConfig config, Converter converter) { super(ofr,config,converter); + nPageBreakSplit = config.pageBreakSplit(); nSplit = config.getXhtmlSplitLevel(); nRepeatLevels = config.getXhtmlRepeatLevels(); nFloatMode = ofr.isText() && config.xhtmlFloatObjects() ? @@ -153,6 +161,7 @@ public class TextConverter extends ConverterHelper { sEntCitBodyStyle = notes.getProperty(XMLString.TEXT_CITATION_BODY_STYLE_NAME); sEntCitStyle = notes.getProperty(XMLString.TEXT_CITATION_STYLE_NAME); } + bDisplayHiddenText = config.displayHiddenText(); } /** Converts an office node as a complete text document @@ -357,11 +366,12 @@ public class TextConverter extends ConverterHelper { getDrawCv().handleDrawElement((Element)child,(Element)hnode,null,nFloatMode); } else if (nodeName.equals(XMLString.TEXT_P)) { - hnode = maybeSplit(hnode); + StyleWithProperties style = ofr.getParStyle(Misc.getAttribute(child,XMLString.TEXT_STYLE_NAME)); + hnode = maybeSplit(hnode, style); nCharacterCount+=OfficeReader.getCharacterCount(child); // is there a block element, we should use? XhtmlStyleMap xpar = config.getXParStyleMap(); - String sDisplayName = ofr.getParStyles().getDisplayName(Misc.getAttribute(child,XMLString.TEXT_STYLE_NAME)); + String sDisplayName = style!=null ? style.getDisplayName() : null; if (sDisplayName!=null && xpar.contains(sDisplayName)) { Node curHnode = hnode; @@ -400,9 +410,10 @@ public class TextConverter extends ConverterHelper { } } else if(nodeName.equals(XMLString.TEXT_H)) { + StyleWithProperties style = ofr.getParStyle(Misc.getAttribute(child,XMLString.TEXT_STYLE_NAME)); int nOutlineLevel = getOutlineLevel((Element)child); Node rememberNode = hnode; - hnode = maybeSplit(hnode,nOutlineLevel); + hnode = maybeSplit(hnode,style,nOutlineLevel); nCharacterCount+=OfficeReader.getCharacterCount(child); handleHeading((Element)child,hnode,rememberNode!=hnode); } @@ -410,7 +421,7 @@ public class TextConverter extends ConverterHelper { nodeName.equals(XMLString.TEXT_UNORDERED_LIST) || // old nodeName.equals(XMLString.TEXT_ORDERED_LIST)) // old { - hnode = maybeSplit(hnode); + hnode = maybeSplit(hnode,null); if (listIsOnlyHeadings(child)) { nDontSplitLevel--; hnode = handleFakeList(child,nLevel+1,styleName,hnode); @@ -421,21 +432,22 @@ public class TextConverter extends ConverterHelper { } } else if (nodeName.equals(XMLString.TABLE_TABLE)) { - hnode = maybeSplit(hnode); + StyleWithProperties style = ofr.getTableStyle(Misc.getAttribute(child,XMLString.TEXT_STYLE_NAME)); + hnode = maybeSplit(hnode,style); getTableCv().handleTable(child,hnode); } else if (nodeName.equals(XMLString.TABLE_SUB_TABLE)) { getTableCv().handleTable(child,hnode); } else if (nodeName.equals(XMLString.TEXT_SECTION)) { - hnode = maybeSplit(hnode); + hnode = maybeSplit(hnode,null); nDontSplitLevel--; hnode = handleSection(child,hnode); nDontSplitLevel++; } else if (nodeName.equals(XMLString.TEXT_TABLE_OF_CONTENT)) { if (!ofr.getTocReader((Element)child).isByChapter()) { - hnode = maybeSplit(hnode,1); + hnode = maybeSplit(hnode,null,1); } handleTOC(child,hnode); } @@ -452,13 +464,16 @@ public class TextConverter extends ConverterHelper { handleUserIndex(child,hnode); } else if (nodeName.equals(XMLString.TEXT_ALPHABETICAL_INDEX)) { - hnode = maybeSplit(hnode,1); + hnode = maybeSplit(hnode,null,1); handleAlphabeticalIndex(child,hnode); } else if (nodeName.equals(XMLString.TEXT_BIBLIOGRAPHY)) { - hnode = maybeSplit(hnode,1); + hnode = maybeSplit(hnode,null,1); handleBibliography(child,hnode); } + else if (nodeName.equals(XMLString.TEXT_SOFT_PAGE_BREAK)) { + if (nPageBreakSplit==XhtmlConfig.ALL) { bPendingPageBreak = true; } + } else if (nodeName.equals(XMLString.OFFICE_ANNOTATION)) { converter.handleOfficeAnnotation(child,hnode); } @@ -477,18 +492,55 @@ public class TextConverter extends ConverterHelper { return hnode; } - private Node maybeSplit(Node node) { - if (converter.isOPS() && nCharacterCount>EPUB_CHARACTER_COUNT_TRESHOLD) { - return doMaybeSplit(node, 0); - } - return node; + private boolean getPageBreak(StyleWithProperties style) { + if (style!=null && nPageBreakSplit>XhtmlConfig.NONE) { + // If we don't consider manual page breaks, we may have to consider the parent style + if (style.isAutomatic() && nPageBreakSplit0) { + return true; + } + } + return false; } - private Node maybeSplit(Node node, int nLevel) { + private Node maybeSplit(Node node, StyleWithProperties style) { + return maybeSplit(node,style,-1); + } + + private Node maybeSplit(Node node, StyleWithProperties style, int nLevel) { + if (bPendingPageBreak) { + return doMaybeSplit(node, 0); + } + if (getPageBreak(style)) { + return doMaybeSplit(node, 0); + } if (converter.isOPS() && nCharacterCount>EPUB_CHARACTER_COUNT_TRESHOLD) { return doMaybeSplit(node, 0); } - return doMaybeSplit(node, nLevel); + if (nLevel>=0) { + return doMaybeSplit(node, nLevel); + } + else { + return node; + } } private Node doMaybeSplit(Node node, int nLevel) { @@ -504,6 +556,7 @@ public class TextConverter extends ConverterHelper { if (nSplit>=nLevel && converter.outFileHasContent()) { // No objections, this is a level that causes splitting nCharacterCount = 0; + bPendingPageBreak = false; return converter.nextOutFile(); } return node; @@ -511,6 +564,8 @@ public class TextConverter extends ConverterHelper { /* Process a text:section tag (returns current html node) */ private Node handleSection(Node onode, Node hnode) { + // Unlike headings, paragraphs and spans, text:display is not attached to the style: + if (!bDisplayHiddenText && "none".equals(Misc.getAttribute(onode,XMLString.TEXT_DISPLAY))) { return hnode; } String sName = Misc.getAttribute(onode,XMLString.TEXT_NAME); String sStyleName = Misc.getAttribute(onode,XMLString.TEXT_STYLE_NAME); Element div = converter.createElement("div"); @@ -541,9 +596,10 @@ public class TextConverter extends ConverterHelper { ListStyle listStyle, int nListLevel, boolean bUnNumbered, boolean bRestart, int nStartValue) { String sStyleName = onode.getAttribute(XMLString.TEXT_STYLE_NAME); + StyleWithProperties style = ofr.getParStyle(sStyleName); + if (!bDisplayHiddenText && style!=null && "none".equals(style.getProperty(XMLString.TEXT_DISPLAY))) { return; } if (!bUnNumbered) { // If the heading uses a paragraph style which sets an explicit empty list style name, it's unnumbered - StyleWithProperties style = ofr.getParStyle(sStyleName); if (style!=null) { String sListStyleName = style.getListStyleName(); if (sListStyleName!=null && sListStyleName.length()==0) { @@ -551,6 +607,7 @@ public class TextConverter extends ConverterHelper { } } } + // Note: nListLevel may in theory be different from the outline level, // though the ui in OOo does not allow this @@ -662,6 +719,8 @@ public class TextConverter extends ConverterHelper { boolean bIsEmpty = OfficeReader.isWhitespaceContent(onode); if (config.ignoreEmptyParagraphs() && bIsEmpty) { return; } String sStyleName = Misc.getAttribute(onode,XMLString.TEXT_STYLE_NAME); + StyleWithProperties style = ofr.getParStyle(sStyleName); + if (!bDisplayHiddenText && style!=null && "none".equals(style.getProperty(XMLString.TEXT_DISPLAY))) { return; } Element par; if (ofr.isSpreadsheet()) { // attach inline text directly to parent (always a table cell) @@ -1070,7 +1129,8 @@ public class TextConverter extends ConverterHelper { nDontSplitLevel++; int nOutlineLevel = getOutlineLevel((Element)onode); Node rememberNode = hnode; - hnode = maybeSplit(hnode,nOutlineLevel); + StyleWithProperties style = ofr.getParStyle(Misc.getAttribute(child, XMLString.TEXT_STYLE_NAME)); + hnode = maybeSplit(hnode,style,nOutlineLevel); handleHeading((Element)child, hnode, rememberNode!=hnode, ofr.getListStyle(sStyleName), nLevel, bUnNumbered, bRestart, nStartValue); @@ -1535,6 +1595,9 @@ public class TextConverter extends ConverterHelper { else if (sName.equals(XMLString.TEXT_BIBLIOGRAPHY_MARK)) { handleBibliographyMark(child,hnode); } + else if (sName.equals(XMLString.TEXT_SOFT_PAGE_BREAK)) { + if (nPageBreakSplit==XhtmlConfig.ALL) { bPendingPageBreak = true; } + } else if (sName.equals(XMLString.OFFICE_ANNOTATION)) { converter.handleOfficeAnnotation(child,hnode); } @@ -1565,6 +1628,9 @@ public class TextConverter extends ConverterHelper { } private void handleSpan(Node onode, Node hnode) { + StyleWithProperties style = ofr.getTextStyle(Misc.getAttribute(onode, XMLString.TEXT_STYLE_NAME)); + if (!bDisplayHiddenText && style!=null && "none".equals(style.getProperty(XMLString.TEXT_DISPLAY))) { return; } + if (!bInToc) { String sStyleName = Misc.getAttribute(onode,XMLString.TEXT_STYLE_NAME); Element span = createInline((Element) hnode,sStyleName); diff --git a/source/java/writer2latex/xhtml/XhtmlConfig.java b/source/java/writer2latex/xhtml/XhtmlConfig.java index 7afcabe..b6a97df 100644 --- a/source/java/writer2latex/xhtml/XhtmlConfig.java +++ b/source/java/writer2latex/xhtml/XhtmlConfig.java @@ -20,7 +20,7 @@ * * All Rights Reserved. * - * Version 1.2 (2010-06-20) + * Version 1.2 (2010-11-22) * */ @@ -41,7 +41,7 @@ import writer2latex.util.Misc; public class XhtmlConfig extends writer2latex.base.ConfigBase { // Implement configuration methods - protected int getOptionCount() { return 44; } + protected int getOptionCount() { return 46; } protected String getDefaultConfigPath() { return "/writer2latex/xhtml/config/"; } // Override setOption: To be backwards compatible, we must accept options @@ -76,6 +76,12 @@ public class XhtmlConfig extends writer2latex.base.ConfigBase { public static final int IMAGE_STARMATH = 2; public static final int IMAGE_LATEX = 3; + // Page breaks + public static final int NONE = 0; + public static final int STYLES = 1; + public static final int EXPLICIT = 2; + public static final int ALL = 3; + // Options private static final int IGNORE_HARD_LINE_BREAKS = 0; private static final int IGNORE_EMPTY_PARAGRAPHS = 1; @@ -99,28 +105,30 @@ public class XhtmlConfig extends writer2latex.base.ConfigBase { private static final int LIST_FORMATTING = 19; private static final int USE_DUBLIN_CORE = 20; private static final int NOTES = 21; - private static final int CONVERT_TO_PX = 22; - private static final int SCALING = 23; - private static final int COLUMN_SCALING = 24; - private static final int FLOAT_OBJECTS = 25; - private static final int TABSTOP_STYLE = 26; - private static final int FORMULAS = 27; - private static final int ENDNOTES_HEADING = 28; - private static final int SPLIT_LEVEL = 29; - private static final int REPEAT_LEVELS = 30; - private static final int CALC_SPLIT = 31; - private static final int DISPLAY_HIDDEN_SHEETS = 32; - private static final int DISPLAY_HIDDEN_ROWS_COLS = 33; - private static final int DISPLAY_FILTERED_ROWS_COLS = 34; - private static final int APPLY_PRINT_RANGES = 35; - private static final int USE_TITLE_AS_HEADING = 36; - private static final int USE_SHEET_NAMES_AS_HEADINGS = 37; - private static final int XSLT_PATH = 38; - private static final int SAVE_IMAGES_IN_SUBDIR = 39; - private static final int UPLINK = 40; - private static final int DIRECTORY_ICON = 41; - private static final int DOCUMENT_ICON = 42; - private static final int ZEN_HACK = 43; // temporary hack for ePub Zen Garden styles + private static final int DISPLAY_HIDDEN_TEXT = 22; + private static final int CONVERT_TO_PX = 23; + private static final int SCALING = 24; + private static final int COLUMN_SCALING = 25; + private static final int FLOAT_OBJECTS = 26; + private static final int TABSTOP_STYLE = 27; + private static final int FORMULAS = 28; + private static final int ENDNOTES_HEADING = 29; + private static final int SPLIT_LEVEL = 30; + private static final int REPEAT_LEVELS = 31; + private static final int PAGE_BREAK_SPLIT = 32; + private static final int CALC_SPLIT = 33; + private static final int DISPLAY_HIDDEN_SHEETS = 34; + private static final int DISPLAY_HIDDEN_ROWS_COLS = 35; + private static final int DISPLAY_FILTERED_ROWS_COLS = 36; + private static final int APPLY_PRINT_RANGES = 37; + private static final int USE_TITLE_AS_HEADING = 38; + private static final int USE_SHEET_NAMES_AS_HEADINGS = 39; + private static final int XSLT_PATH = 40; + private static final int SAVE_IMAGES_IN_SUBDIR = 41; + private static final int UPLINK = 42; + private static final int DIRECTORY_ICON = 43; + private static final int DOCUMENT_ICON = 44; + private static final int ZEN_HACK = 45; // temporary hack for ePub Zen Garden styles protected ComplexOption xheading = addComplexOption("heading-map"); protected ComplexOption xpar = addComplexOption("paragraph-map"); @@ -161,6 +169,7 @@ public class XhtmlConfig extends writer2latex.base.ConfigBase { }; options[USE_DUBLIN_CORE] = new BooleanOption("use_dublin_core","true"); options[NOTES] = new BooleanOption("notes","true"); + options[DISPLAY_HIDDEN_TEXT] = new BooleanOption("display_hidden_text", "false"); options[CONVERT_TO_PX] = new BooleanOption("convert_to_px","true"); options[SCALING] = new Option("scaling","100%"); options[COLUMN_SCALING] = new Option("column_scaling","100%"); @@ -188,8 +197,17 @@ public class XhtmlConfig extends writer2latex.base.ConfigBase { nValue = Misc.getPosInteger(sValue,0); } }; + options[PAGE_BREAK_SPLIT] = new IntegerOption("page_break_split", "none") { + @Override public void setString(String sValue) { + super.setString(sValue); + if ("styles".equals(sValue)) { nValue = STYLES; } + else if ("explicit".equals(sValue)) { nValue = EXPLICIT; } + else if ("all".equals(sValue)) { nValue = ALL; } + else { nValue = NONE; } + } + }; options[CALC_SPLIT] = new BooleanOption("calc_split","false"); - options[DISPLAY_HIDDEN_SHEETS] = new BooleanOption("display_hidden_sheets","false"); + options[DISPLAY_HIDDEN_SHEETS] = new BooleanOption("display_hidden_sheets", "false"); options[DISPLAY_HIDDEN_ROWS_COLS] = new BooleanOption("display_hidden_rows_cols","false"); options[DISPLAY_FILTERED_ROWS_COLS] = new BooleanOption("display_filtered_rows_cols","false"); options[APPLY_PRINT_RANGES] = new BooleanOption("apply_print_ranges","false"); @@ -293,6 +311,7 @@ public class XhtmlConfig extends writer2latex.base.ConfigBase { public int listFormatting() { return ((IntegerOption) options[LIST_FORMATTING]).getValue(); } public boolean xhtmlUseDublinCore() { return ((BooleanOption) options[USE_DUBLIN_CORE]).getValue(); } public boolean xhtmlNotes() { return ((BooleanOption) options[NOTES]).getValue(); } + public boolean displayHiddenText() { return ((BooleanOption) options[DISPLAY_HIDDEN_TEXT]).getValue(); } public boolean xhtmlConvertToPx() { return ((BooleanOption) options[CONVERT_TO_PX]).getValue(); } public String getXhtmlScaling() { return options[SCALING].getString(); } public String getXhtmlColumnScaling() { return options[COLUMN_SCALING].getString(); } @@ -302,6 +321,7 @@ public class XhtmlConfig extends writer2latex.base.ConfigBase { public int formulas() { return ((IntegerOption) options[FORMULAS]).getValue(); } public int getXhtmlSplitLevel() { return ((IntegerOption) options[SPLIT_LEVEL]).getValue(); } public int getXhtmlRepeatLevels() { return ((IntegerOption) options[REPEAT_LEVELS]).getValue(); } + public int pageBreakSplit() { return ((IntegerOption) options[PAGE_BREAK_SPLIT]).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/writer2latex/description.xml b/source/oxt/writer2latex/description.xml index 7c5c8e6..1e3329e 100644 --- a/source/oxt/writer2latex/description.xml +++ b/source/oxt/writer2latex/description.xml @@ -5,7 +5,7 @@ - + diff --git a/source/oxt/writer2xhtml/description.xml b/source/oxt/writer2xhtml/description.xml index d69a0d1..1f8c566 100644 --- a/source/oxt/writer2xhtml/description.xml +++ b/source/oxt/writer2xhtml/description.xml @@ -5,7 +5,7 @@ - + diff --git a/source/oxt/writer4latex/description.xml b/source/oxt/writer4latex/description.xml index 4ecb95d..933a9db 100644 --- a/source/oxt/writer4latex/description.xml +++ b/source/oxt/writer4latex/description.xml @@ -4,7 +4,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink"> - + diff --git a/source/oxt/xhtml-config-sample/description.xml b/source/oxt/xhtml-config-sample/description.xml index c7f2657..af8e19e 100644 --- a/source/oxt/xhtml-config-sample/description.xml +++ b/source/oxt/xhtml-config-sample/description.xml @@ -2,5 +2,5 @@ - + diff --git a/source/readme-source.txt b/source/readme-source.txt index 596c889..cc4f131 100644 --- a/source/readme-source.txt +++ b/source/readme-source.txt @@ -1,4 +1,4 @@ -Writer2LaTeX source version 1.1.5 +Writer2LaTeX source version 1.1.9 ================================= Writer2LaTeX is (c) 2002-2010 by Henrik Just. @@ -53,7 +53,7 @@ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -Fromiharder.sourceforge.net: +From iharder.sourceforge.net: The class writer2latex.util.Base64 is Robert Harders public domain Base64 class @@ -95,7 +95,7 @@ In addition to oxt, the build file supports the following targets: clean -Henrik Just, May 2010 +Henrik Just, November 2010 Thanks to Michael Niedermair for writing the original ant build file